Невозможно передавать потоковое аудио с mi c на удаленный порт в PyAudio - PullRequest
2 голосов
/ 04 мая 2020

У меня есть сервер транскрипции, который прослушивает аудио через порт на удаленном компьютере. Все работает, если я передаю предварительно записанный аудиофайл и транслирую его на порт, используя netcat

, я не могу сделать то же самое, используя mi c в качестве входа. Я пытаюсь сделать следующее, но по какой-то причине звук не передается в потоковом режиме, или я не могу видеть и происходит транскрипция, или, возможно, я не уверен, как получить ответ обратно в python

FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
CHUNK = 4800
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "recordedFile.wav"
device_index = 1
audio = pyaudio.PyAudio()

HOST = 'ip'
PORT = 5000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

index = (input())
print("recording via index "+str(index))

stream = audio.open(format=FORMAT, channels=CHANNELS,
                rate=RATE, input=True,input_device_index = 1,
                frames_per_buffer=CHUNK)
print ("recording started")
Recordframes = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
     s.sendall(data)
    Recordframes.append(data)
print ("recording stopped")

Не уверен, как получить ответ или есть какая-то другая проблема. Использование Kaldi's online2-tcp-nnet3-decode-faster в бэкэнде

1 Ответ

2 голосов
/ 04 мая 2020

Вы можете попробовать https://github.com/alphacep/vosk-server и этот пример кода . Основной l oop должен выглядеть так:

    while True:
        data = s.read(8000)
        if len(data) == 0:
            break
        await ws.send(data)
        print(await ws.recv())
...