Мне нужно в течение неопределенного времени записывать звук в формате wav с микрофона, чтобы я мог выбрать, когда остановить запись. Во время записи, если произнесено определенное слово, запишите, что произнесено аудио с указанным c словом. Затем мне нужно обрезать это аудио на одну секунду, чтобы передать его на следующую обработку.
Я попытался записать pydub, но он записывает до определенных секунд.
Может кто-нибудь помочь мне с решением этой проблемы?
Заранее спасибо.
import pyaudio
import numpy as np
import sys
frame = []
CHUNK = 1024
RATE = 16000
seconds = 10
p=pyaudio.PyAudio()
stream=p.open(format=pyaudio.paInt16,channels=1,rate=RATE,input=True,
frames_per_buffer=CHUNK)
for i in range((RATE / CHUNK * seconds): #go for a 10 seconds
data = np.fromstring(stream.read(CHUNK),dtype=np.int16)
print(data)
frame.append(data)
stream.stop_stream()
stream.close()
p.terminate()