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}")