File size: 1,393 Bytes
ccabf63 c890329 d087b4c c890329 8531c03 d087b4c c890329 d087b4c c890329 d087b4c c890329 fda39ae c890329 d087b4c c890329 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import streamlit as st
import pyaudio
import wave
# Параметры записи
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
CHUNK = 1024
# Функция записи
def record_audio(duration, output_file="output.wav"):
audio = pyaudio.PyAudio()
stream = audio.open(format=FORMAT, channels=CHANNELS,
rate=RATE, input=True,
frames_per_buffer=CHUNK)
st.write("🎙️ Запись...")
frames = []
for _ in range(0, int(RATE / CHUNK * duration)):
data = stream.read(CHUNK)
frames.append(data)
st.write("✅ Запись завершена!")
# Остановка записи
stream.stop_stream()
stream.close()
audio.terminate()
# Сохранение файла
with wave.open(output_file, 'wb') as wf:
wf.setnchannels(CHANNELS)
wf.setsampwidth(audio.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
return output_file
# Streamlit интерфейс
st.title("🎙️ Простой диктофон на PyAudio")
duration = st.slider("Длительность записи (секунды)", 1, 60, 5)
if st.button("Начать запись"):
output_file = record_audio(duration)
st.audio(output_file, format="audio/wav")
st.success(f"Файл сохранён: {output_file}") |