小程式開發之語音搜尋(SUSE版)實例

零下一度
發布: 2017-05-20 17:13:11
原創
2481 人瀏覽過

直接呼叫微信小程式錄音接口,然後上傳到伺服器,百度語音的接口是識別不了這種格式的文件,那麼問題來了

一、如何轉碼? ffmpeg?

二、如何在PHP中使用?

本文將要解決這兩個問題。

用到的第三方工具:

1、百度語音

2、silk檔案格式轉換

一、轉碼silk文件格式

傳送門在此:github.com/kn007/silk-v3-decoder

要注意的是:

1、首先要安裝- ffmpeg ,具體安裝方法請自行百度,如果要轉碼成MP3格式,請記得啟用libmp3lame 即--enable-libmp3lame

小程式開發之語音搜尋(SUSE版)實例

2、如果在使用silk -v3-decoder 過程中提示轉碼失敗,請自行加入ffmpeg到環境變數或修改converter.sh,如下所示,建議後者,因為透過PHP執行shell腳本是不讀環境變數的

小程式開發之語音搜尋(SUSE版)實例

#二、如何在PHP中使用

#有了上面的神器之後,媽媽再也不用擔心語音辨識問題了。

目前採用thinkPHP 5作為服務端系統,在小程式端把音訊檔案上傳到後台,TP5已有檔案上傳功能的封裝,具體上傳程式碼不細說;

我們只需要讀取上傳的文件,透過shell指令進行轉碼,然後把轉碼後的文件傳送給百度語音介面即可得到語音辨識結果。

需要注意以下幾點:

1、其中php執行轉碼的程式碼如下

小程式開發之語音搜尋(SUSE版)實例

$real_file即為轉碼後的音訊檔案的絕對位址,建議轉換成WAV格式,amr格式轉換不成功,原因未知。

2、呼叫百度語音介面格式設定

需設定音訊格式為WAV,碼率為16000或8000,如圖所示:

小程式開發之語音搜尋(SUSE版)實例

三、總結

小程式語音介面和公眾號的語音介面不一樣,公眾號語音介面回傳的是amr格式,小程式的是silk格式,是Skype開源的網路音訊格式,透過傳送門中的工具即可轉碼,轉碼工具先是轉成pcm格式文件,然後轉成指定格式,其實pcm這種格式百度語音已經可以識別,有需要的童鞋可以修改converter.sh腳本。

【相關推薦】

1. 微信小程式完整原始碼下載

2. 微信小程式遊戲類別demo挑選不同顏色區塊

3. 微信小程式demo:輪播圖轉換

以上是小程式開發之語音搜尋(SUSE版)實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板