从讯飞开放平台上拿到的SDK为对一段PCM文件的语音识别,如果想体验完整的语音识别,即说话然后得到语音识别后的结果,就需要录音的硬件和上位机(软件)了。
录音硬件直接使用讯飞的2麦模块,有唤醒后的中断输出和audio on USB,方便上位机采集。
下面重点讲上位机软件部分。
上位机使用树莓派,软件要做的事情是采集中断,然后开始录音(录音采用开源arecord软件),再调用讯飞SDK进行语音识别。
软件的架构如下:
更详细的子模块如下:
创建字符设备来监测中断,主程序中阻塞读该字符设备。当读成功,调用ASR子程序,ASR子程序中启动进程,运行arecord,生成wav格式录音文件;ASR子程序同时start两个线程,第一个线程用来从wav文件中读取pcm流,放到fifo中,第二个线程从fifo中获取pcm流,调用讯飞sdk进行语音识别,获取结果。