使用下面的代码,结果最终总是相同的“谢谢”。任何想法可能会出什么问题。作为参考,我使用了 Whisper 包中的 load_audio 函数。还有一篇关于 twilio 和 Vosk 的文章。
@sock.route('/stream')
def stream(ws):
while True:
message = ws.receive()
packet = json.loads(message)
if packet['event'] == 'media':
# get audio as ulaw
audio = base64.b64decode(packet['media']['payload'])
add_audio(audio)
buffer = np.array([], dtype=np.float32)
def add_audio(audio):
global buffer
# convert audio to numpy array
audio = np.frombuffer(audio, np.int16).flatten().astype(np.float32) / 32768.0
buffer = np.concatenate((buffer, audio))
process_audio()
def process_audio():
global buffer
audio = whisper.pad_or_trim(buffer)
mel = whisper.log_mel_spectrogram(audio).to(model.device)
mel = torch.nan_to_num(mel)
result = whisper.decode(model, mel, options)
你找到答案了吗?我也遇到了同样的问题