朋友们,之前讲过语音识别的手把手教学,前两天群里有人问关于流式语音自编码的问题,今天我讲下番外篇,主要是把这块给提一下。
1、流式数据客户端代码(python)
import wave
import numpy as np
f = wave.open("C:\\Users\\lidongdong\\Desktop\\asr16.wav")
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
str_audio = f.readframes(nframes)
f.close()
import asyncio
import datetime
import random
import websockets
import nest_asyncio
import io
import time
nest_asyncio.apply()
import json
async def send_data():
uri = "ws://localhost:8010/ws/asr/offlineStream"
post_data = {"data":str(str_audio),"signal":"start"}
async with websockets.connect(uri) as websocket:
await websocket.send(str_audio)
greeting = await websocket.recv()
post_data = {"data":str_audio,"signal":"end"}
time.sleep(10)
await websocket.send(str_audio)
print(greeting+"?")
loop = asyncio.get_event_loop()
loop.run_until_complete(send_data())
2、代码解析
代码其实挺简单,其实就是建立websocket,然后按照服务端要求传数据即可,所以,这部分不详细讲,主要是讲下录音和停止录音,这部分实际上是需要传一些参数的,可以自行设置,这部分代码可以尝试自己去试试,我源代码没给出,经过上面的处理,最终输出结果如下。
分别是客户端和服务端的输出。