從訊飛開放平台上拿到的SDK為對一段PCM文件的語音識別,如果想體驗完整的語音識別,即說話然后得到語音識別后的結果,就需要錄音的硬件和上位機(軟件)了。
錄音硬件直接使用訊飛的2麥模塊,有喚醒后的中斷輸出和audio on USB,方便上位機采集。
下面重點講上位機軟件部分。
上位機使用樹莓派,軟件要做的事情是采集中斷,然后開始錄音(錄音采用開源arecord軟件),再調用訊飛SDK進行語音識別。
軟件的架構如下:
更詳細的子模塊如下:
創建字符設備來監測中斷,主程序中阻塞讀該字符設備。當讀成功,調用ASR子程序,ASR子程序中啟動進程,運行arecord,生成wav格式錄音文件;ASR子程序同時start兩個線程,第一個線程用來從wav文件中讀取pcm流,放到fifo中,第二個線程從fifo中獲取pcm流,調用訊飛sdk進行語音識別,獲取結果。