一、云狐簡介
云狐語音識別軟件是基于百度智能云,由進擊的狐貍進行開發(fā)的一款軟件。注意,因為核心類代碼是2017年就已經寫好的了,所以使用的C#SDK包不是最新的。云狐目前支持的平臺是Windows系統(tǒng)平臺,使用時需要安裝微軟最新的.netframework。云狐的主要功能是長時間的語音識別,支持時長超過一分鐘的各種類型的語音文件識別,缺點就是速度較慢一些。
另外,云狐和云貓實際上是姐妹軟件,因為他們都是基于百度智能云,用C#進行開發(fā)的,使用的是百度最新的人工智能技術。而且他們目前都是免費的。這里聯動一下,對云貓OCR和云狐語音感興趣的同學,可以百度搜索“云貓OCR”或“云狐語音”進行了解。
二、云狐的簡單評測
云狐軟件自帶有計時功能,我們可以簡單做一下評測。從上文視頻演示的結果可以看出,1分鐘左右的語音文件,云狐可以在10秒以內識別完畢,而30分鐘左右的語音文件,云狐需要120秒即2分鐘左右,才能識別完畢。從中推算出識別速度大概是4秒/分鐘。
三、云狐軟件的代碼原理
百度智能云給出的長語音識別接口只支持一分鐘以內的語音文件的識別。而對于超過一分鐘的語音文件識別,我們需要怎么做呢?
云狐軟件的原理就是:把超過一分鐘的文件進行切片,切成若干個小于或者等于一分鐘時長的語音文件。對每個切片文件調用百度云語音識別接口進行識別,再把結果串聯起來即可。
四、云狐的代碼簡明解析
(一)核心類foxSpeechDemo
上面的代碼是根據百度SDK包文檔,進行少量改動實現的。注意為了簡便,這里貼出的代碼段可能跟具體的云狐實現代碼有一些出入。
不是任何一個語音文件都可以交給百度智能云直接識別。文件需要預處理,不然識別效果會很差。具體來說,作者用FFmpeg對語音文件進行預處理,然后再用百度接口識別。FFmpeg的命令行預處理類似下面的形式:
ffmpeg-y-i003_16k.wav-acodecpcm_s16le-fs16le-ac1-ar1600016k.pcm
(二)預處理的輔助函數
共有大概4個關于預處理的輔助函數,代碼如下:
1.此函數的主要功能是用C#程序自動執(zhí)行命令行語句,它可執(zhí)行任何語句的命令行,stringcmdStr是形參,可以將命令行語句賦值給cmdStr進行執(zhí)行。
2.此函數表示利用ffprobe命令行獲取語音文件的時長信息,以便對語音文件進行分割,注意返回值是整形變量。比如語音時長有1.5分鐘,這個函數就會返回2,以此類推。
3.此函數主要功能是對語音文件進行分割,時間單位是秒。比如我有一個2分鐘的語音文件,程序就把這個文件分成2塊,每塊60秒即1分鐘,以此類推。
4.此函數的主要功能是把切片文件轉換成百度云能夠進行正常識別的文件格式。
(三)主函數的代碼邏輯
上面是主函數里面的核心代碼段,里面有很多的注釋,大家可以仔細看看。主要功能就是整合預處理輔助函數的作用,把文件切片并轉換格式,最后提交給百度智能云進行識別,并對識別結果進行解析,把json轉換成對人類友好的文本格式。
(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )