Google Cloud Speech API是由谷歌雲平臺提供的,利用機器學習技術將語音轉換爲文字的服務。這個API能識別超過80種語言和語言變體,包括中文、日語、英語甚至廣東話。此次,我總結了使用Google Cloud Speech API的基本流程。html
在Cloud Speech API概覽頁,咱們能夠體驗將語音轉換爲文字的效果。只須要選擇一種語言便可開始使用,甚至不須要登陸谷歌帳號。(加載出來須要一些時間)編程
使用Cloud Speech API須要登陸谷歌雲平臺並申請免費試用,申請試用谷歌雲平臺的流程能夠參考這篇文章 。json
咱們假定你可以使用谷歌雲平臺,而且已經建立了一個項目,下面介紹如何把Cloud Speech API添加到項目中。segmentfault
點擊控制檯左上角的 ☰
打開導航欄,找到 API和服務
→ 庫
。api
在搜索框中鍵入 Speech
便可找到 Cloud Speech API
。瀏覽器
打開API頁面,點擊 啓用
。app
回到以前的頁面,選擇 憑據
→ 建立憑據
→ API密鑰
。curl
立刻 API密鑰
就建立好了,雖然隨時都能在這個頁面查詢,但爲了方便起見,將其記錄下來備用吧,很快就要用到它。機器學習
限制密鑰
選項默認狀況下應該是「無」,此次只是試着使用API,保持默認「無」便可。編程語言
雖然有些麻煩,可是接下來咱們要準備聲音文件。Cloud Speech API沒辦法直接識別mp三、mp4中的聲音,咱們須要準備FLAC、WAV格式的音頻。並且僅支持單聲道音頻,因此通常都須要轉碼之類的工做。
詳細的聲音文件要求參見:AudioEncoding | Google Cloud Speech API
基於上述狀況,我讀了下面這段文稿,並製成了FLAC格式(單聲道)的聲音文件。是用手機麥克風進行錄音的,質量通常(´・ω・`) 是否能夠正確識別呢?
寄蜉蝣於天地,渺滄海之一粟。哀吾生之須臾,羨長江之無窮。挾飛仙以遨遊,抱明月而長終。
若是要使用Cloud Speech API識別本地聲音文件,必須將音頻文件編碼爲base64,而後嵌入到稍後將建立的json請求文件中,這雖然可行但並不方便。若是你想使用這種方法,請參考:Embedding Base64 encoded audio | Google Cloud Speech API
咱們將使用另外一種方案,將聲音文件上傳到Google Cloud Storage。
點擊控制檯左上角的 ☰
打開導航欄,找到 存儲
→ 瀏覽器
。
點擊 建立存儲分區
。
輸入合適的 存儲分區名稱
,後文將要用到。默認存儲類別選擇"Multi-Regional",Multi-Regional位置選擇"亞洲"。點擊 建立
。
點擊 上傳文件
,上傳聲音文件,勾選 公開連接
。(該音頻將能被任何人訪問,請注意)
2018年10月18日更新:
剛看了一下,頁面有所改變,暫時沒找到公開單個音頻文件的方法。
你能夠這樣作,把整個存儲分區公開:
導航欄→存儲→瀏覽器→存儲分區最後有個選項,點開來→修改存儲分區權限→「添加成員」填「allUsers」,「角色」選「存儲對象查看者」→添加
注意:這樣該分區內全部內容均可能被任何人訪問到
另外,請記住上傳文件的 文件名
,後文將用到。
終於,可使用Cloud Speech API將語音轉換爲文字了。
首先,咱們新建一個json格式的請求文件(request.json)。文件名無特殊要求。
{ "config": { "encoding":"FLAC", "languageCode":"cmn-Hans-CN" }, "audio": { "uri":"gs://存儲分區名稱/文件名" } }
注意3個地方:
cmn-Hans-CN
:表示識別語言爲中文普通話。經常使用的還有American English (en-US
)、British English (en-GB
)、日本語(ja-JP
)、廣東話(yue-Hant-HK
)。更多語言支持能夠在Language Support | Google Cloud Speech API查詢。
存儲分區名稱
:剛纔是否有記錄下來呢?若是沒有記住能夠點擊控制檯左上角的 ☰
打開導航欄,找到 存儲
→ 瀏覽器
查看。
文件名
:存儲在Cloud Storage中的音頻文件名,能夠在存儲分區中查看。
最後,咱們使用curl命令(Windows平臺需另外安裝)向Cloud Speech API發出請求。
cd到json請求文件所在目錄。
curl -H "Content-Type: application/json" -d @request.json
"https://speech.googleapis.com/v1/speech:recognize?key=API密鑰
"
注意2個加粗處:
request.json
:json請求文件的文件名。
API密鑰
:替換爲你記錄下來的API密鑰。若是沒有記下來,能夠點擊控制檯左上角的 ☰
打開導航欄,找到 API和服務
→ 憑據
查看。
獲得結果:
能夠看到返回結果也是json格式的數據。"confidence"是置信度,越接近1準確性越高。
第一次嘗試語音識別服務,獲得結果的時候很開心。或許有人會驚訝上例語音識別的準確性,但正如文章開頭所說「Cloud Speech API是利用機器學習技術將語音轉換爲文字的服務」,像上例中這樣的俗語、名著甚至是歌詞,準確率都出奇地高。若是你錄製一段平常語音交給Cloud Speech API識別,結果就不那麼滿意了。
最後,此次只是使用curl命令在LX終端得到了識別結果,下次將會總結如何在編程語言中使用Cloud Speech API。
感謝你閱讀文章!