朋友们,之前讲过语音识别的手把手教学,前两天群里有人问关于流式语音自编码的问题,今天我讲下番外篇,主要是把这块给提一下。

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,然后按照服务端要求传数据即可,所以,这部分不详细讲,主要是讲下录音和停止录音,这部分实际上是需要传一些参数的,可以自行设置,这部分代码可以尝试自己去试试,我源代码没给出,经过上面的处理,最终输出结果如下。

手把手教你语音识别(番外篇)_客户端

 

手把手教你语音识别(番外篇)_客户端_02

分别是客户端和服务端的输出。