解决python ws服务针对尾部非人声录音无结束标识返回的问题 (#2102)

This commit is contained in:
wusong 2024-09-25 15:11:50 +08:00 committed by GitHub
parent 2196844d1d
commit d20c030e5b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -187,7 +187,7 @@ async def ws_serve(websocket, path):
websocket.status_dict_vad["chunk_size"] = int(
websocket.status_dict_asr_online["chunk_size"][1] * 60 / websocket.chunk_interval
)
if len(frames_asr_online) > 0 or len(frames_asr) > 0 or not isinstance(message, str):
if len(frames_asr_online) > 0 or len(frames_asr) >= 0 or not isinstance(message, str):
if not isinstance(message, str):
frames.append(message)
duration_ms = len(message) // 32
@ -291,6 +291,17 @@ async def async_asr(websocket, audio_in):
)
await websocket.send(message)
else:
mode = "2pass-offline" if "2pass" in websocket.mode else websocket.mode
message = json.dumps(
{
"mode": mode,
"text": "",
"wav_name": websocket.wav_name,
"is_final": websocket.is_speaking,
}
)
await websocket.send(message)
async def async_asr_online(websocket, audio_in):
if len(audio_in) > 0: