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