Запишите бесконечный непрерывный звук с микрофона и получите с него данные за одну секунду - PullRequest
0 голосов
/ 07 апреля 2020

Мне нужно в течение неопределенного времени записывать звук в формате 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()
...