最近做声纹识别的后端开发,在和前端做数据交互的时候需要接收语音,用了websocket方法,好处是在接收语音的同时做语音处理,即前端一边录入一边发送,后端接收一段一段的音频数据进行处理,同时可以对前面数据的处理结果进行修正,效果参考各大输入软件的音转字。
不过目前用于声纹识别的情况对于边说边处理的需求并不高,因此我虽然选择了这种方式,但接收语音数据仍然是简单的文件接收方法,接收结束后再处理。
源码用了GitHub上kaldi-gstreamer-server工程的服务器端,同时用它的客户端自己进行测试。
服务器端及客户端python源码下载地址
以上两个py.文件是可以单独运行的,如果需要实现音转字等功能可以直接使用。
根据我自己目前声纹识别的需求,对服务器端的python代码稍作修改,下面的python代码删掉了源码中与当前需求不符的冗余部分,并且标有收发语音的注释。
websocket方法实现收发语音的服务器端python代码及注释