Update app.py
Browse files
app.py
CHANGED
@@ -1,47 +1,15 @@
|
|
1 |
-
|
2 |
-
import
|
3 |
-
import wave
|
4 |
|
5 |
-
#
|
6 |
-
|
7 |
-
|
8 |
-
RATE = 44100
|
9 |
-
CHUNK = 1024
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
rate=RATE, input=True,
|
16 |
-
frames_per_buffer=CHUNK)
|
17 |
-
st.write("🎙️ Запись...")
|
18 |
-
frames = []
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
st.write("✅ Запись завершена!")
|
25 |
-
|
26 |
-
# Остановка записи
|
27 |
-
stream.stop_stream()
|
28 |
-
stream.close()
|
29 |
-
audio.terminate()
|
30 |
-
|
31 |
-
# Сохранение файла
|
32 |
-
with wave.open(output_file, 'wb') as wf:
|
33 |
-
wf.setnchannels(CHANNELS)
|
34 |
-
wf.setsampwidth(audio.get_sample_size(FORMAT))
|
35 |
-
wf.setframerate(RATE)
|
36 |
-
wf.writeframes(b''.join(frames))
|
37 |
-
|
38 |
-
return output_file
|
39 |
-
|
40 |
-
# Streamlit интерфейс
|
41 |
-
st.title("🎙️ Простой диктофон на PyAudio")
|
42 |
-
duration = st.slider("Длительность записи (секунды)", 1, 60, 5)
|
43 |
-
|
44 |
-
if st.button("Начать запись"):
|
45 |
-
output_file = record_audio(duration)
|
46 |
-
st.audio(output_file, format="audio/wav")
|
47 |
-
st.success(f"Файл сохранён: {output_file}")
|
|
|
1 |
+
from scipy.io.wavfile import write
|
2 |
+
import sounddevice as sd
|
|
|
3 |
|
4 |
+
samplerate = 44100 # Частота дискретизации
|
5 |
+
duration = 5 # Длительность записи
|
6 |
+
filename = "output.wav" # Имя файла
|
|
|
|
|
7 |
|
8 |
+
print("🎙️ Начинаем запись...")
|
9 |
+
audio = sd.rec(int(samplerate * duration), samplerate=samplerate, channels=2, dtype='int16')
|
10 |
+
sd.wait() # Ждём окончания записи
|
11 |
+
print("✅ Запись завершена!")
|
|
|
|
|
|
|
|
|
12 |
|
13 |
+
# Сохраняем в WAV-файл
|
14 |
+
write(filename, samplerate, audio)
|
15 |
+
print(f"Файл сохранён: {filename}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|