Alan Tsai 的學習筆記


學而不思則罔,思而不學則殆,不思不學則“網貸” 記錄軟體開發的點點滴滴 著重於微軟技術、網頁開發、DevOps、C#, Asp .net Mvc、Azure、AI、Chatbot、Docker、Data Science

[chatbot + AI = 下一代操作模式][33]C#使用Translator Speech API服務達到語音轉文字加翻譯

[chatbot + AI = 下一代操作模式][33]C#使用Translator Speech API服務達到語音轉文字加翻譯.jpg
圖片來源:https://pixabay.com/en/books-spine-colors-pastel-1099067/ 

在上一篇([32]Cognitive Service語音服務相關介紹)介紹了Cognitive Service裡面對於語音相關的服務介紹,在接下來將會關注在語音轉文字加翻譯的服務上面。

上篇提到有兩個服務在做這件事情,分別為Speech Service以及Translator Speech API。個人使用經驗是Translator Speech API比較準確,因此在這篇將環繞在如何在C#使用Translator Speech API。

這篇的程式碼github頁面是alantsai-samples/mhat-hotelbot:blog/chapter-33

使用Translator Speech API

Translator Speech API的文件在這邊:文件位置,基本上可以從上面找到不同語言的Quickstarts, 稍後的C# Console程式也是基於這個Quickstart的内容。

要使用Translator Speech Api基本上需要:

  1. 從Azure建立Key
  2. 從文件瞭解API參數
  3. 建立一個C# Console整合功能

從Azure建立Key

和其他的Cognitive Service服務一樣,要使用服務要先在Azure建立出一個key。如果測試用,只需要Free版本即可。

首先進入到Azure的portal找到Translator Speech的服務按下Create,也可以用這個 鏈接直接開啓建立畫面:

  1. Name - 輸入可以識別的名稱就好
  2. Pricing Tier - 測試用Free即可,有10小時可以用。其他等級以及費用可以在右邊展開的畫面看到
  3. Resource Group - 選擇要放在那個Resource Group
chrome_2018-08-14_18-08-33.png
建立Translator Speech

沒問題了之後,按下Create,然後稍等一下服務建立出來之後在點進去。

看到一個常見的畫面,點選Keys,記錄好其中一組即可:

chrome_2018-08-14_22-07-40.png
取得Key值

這邊和其他Cognitive Service不同的是,下面的Api Endpoint和Api Reference其實都是錯的内容。

從文件瞭解API參數

有了key之後,就可以使用Translator Speech API,但是怎麽呼叫這個API呢?

Translator Speech Api是一個WebSocket的服務,API的文件在這裡,在裡面有幾個重要的參數:

from
輸入的來源語言
to
文字要被翻譯的語言
format
語音的格式,有支援audio/wavaudio/mp3。預設是wav。wav檔案要求16 bit, single channel PCM with a sampling rate of 24kHz or 16kHz

當然,這邊列的只有幾個比較重要的參數,完整的參數還是要看文件裡面。

建立一個C# Console整合功能

整個程式碼有點長,因此這邊不會show code的部分,不過整個console程式拆解下來大概有:

  1. TranslateSpeech:這個方法在設定呼叫url的參數以及實際觸發送語音檔案以及從Translator Speech Api得到結果的部分
  2. Send:定義把要辨識的聲音檔案發送出去的方法
  3. Receive:定義從Translator Speech Api取得辨識結果的方法

要呼叫使用console之前需要修改static string key = "";,把從Azure取得的key放到這個variable裡面。

測試的語音檔則是speak.wav,這個語音内容是:What's the wather like?

剩下的應該還滿直覺容易懂,完整的程式碼請看: mhat-hotelbot/src/MHAT.TranslatorSpeechQuickStart/Program.cs

測試結果

接下來就把整個C# Console run起來,看到的結果如下圖:

cmd_2018-08-14_23-36-33.png
語音文字識別成功并且翻譯成爲繁體中文

從截圖可以發現:

  1. 語音轉文字成功
  2. 轉出的文字被翻譯成爲繁體中文

這個api其實有支援直接把翻譯的文字變成語音,所以其實可以達到即使語音翻譯。

結語

這篇介紹了如何用程式碼的方式來呼叫Translator Speech Api。做出了一個C#的Console程式,并且可以看出識別的很成功。

在下一篇([34]賦予Chatbot用語音下指令以及翻譯的功能)將把這個服務整合到chatbot裡面。


如果文章對您有幫助,就請我喝杯飲料吧
街口支付QR Code
街口支付QR Code
街口支付QR Code
支付寶QR Code
街口支付QR Code
微信支付QR Code
comments powered by Disqus