概觀
一般而言,語音合成並不容易。您無法假設當應用程式讀取句子的每個字母時,輸出就會有意義。文字轉換語音應用程式的一些常見挑戰包括:
- 書寫方式相同但發音不同的字詞:I live in Las Vegas 和 This presentation broadcasts live from Las Vegas。
- 文字標準化:消除縮寫、首字母縮略字和單位的歧義:St.,可以展開為 Street 或 Saint。
- 在具有複雜映射的語言中,將文字轉換為音素,例如英文中的 tough、through 和 though。在此範例中,不同字詞的相似部分,可以根據字詞和上下文而有不同發音。
- 外文字詞 (déjà vu)、專有名詞 (François Hollande) 和俚語 (ASAP、LOL)。
Amazon Polly 提供可克服這些挑戰的語音合成功能,讓您可以專注於建置使用文字轉換語音的應用程式,而不用解決翻譯上的困難。
Amazon Polly 可將文字轉換成逼真的語音。它可讓您建立能夠自然說話的應用程式,藉此建置全新的語音式產品類別。Amazon Polly 是運用進階深度學習技術的 Amazon AI 服務,讓合成語音聽起來就像真人發音一樣。它目前包含超過 20 種語言的多種逼真語音,您可以選取最合適的語音來建置多國使用並啟用語音功能的應用程式。
此外,Amazon Polly 也提供一致、快速的回應時間,可支援即時互動對話。您可以快取並儲存 Polly 的語音檔案以進行離線重播或重新發佈。(也就是說,您轉換與儲存的東西都是屬於您的。使用語音並不會加收額外文字轉換語音的費用。) Polly 也非常容易使用。您只需將要轉換為語音的文字傳送到 Amazon Polly API。Amazon Polly 就會立即將音訊串流傳回您的應用程式,應用程式便可以直接播放,或是以標準音訊檔案格式存放,例如 MP3。
在此實驗室中,您將建立一個使用 Amazon Polly 將文字轉換為語音的基本無伺服器應用程式。該應用程式具有簡單的使用者界面,可以接受多種不同語言的文字,然後將其轉換為可以從 Web 瀏覽器播放的音訊檔案。此實驗室使用部落格文章,但您可以使用任何類型的文字。例如,您可以在烹飪時使用應用程式來閱讀食譜,或者在開車或騎車時閱讀新聞文章或書籍。
應用程式架構
您會建置一個無伺服器應用程式,亦即不需使用伺服器,因而無需佈建、無需修補、無需擴展規模。AWS Cloud 會自動處理這些事務,讓您能專心開發應用程式。
應用程式提供兩種方法:一種用於傳送新文章的相關資訊 (應轉換為 MP3 檔案),另一種用於擷取文章的相關資訊 (包括存放在 Amazon S3 儲存貯體中的 MP3 檔案連結)。這兩種方法都是透過 Amazon API Gateway 以 RESTful Web 服務呈現。
當應用程式傳送有關新文章的資訊時:
1 該資訊會由 Amazon API Gateway 公開的 RESTful Web 服務接收。此 Web 服務是由託管於 Amazon Simple Storage Service (Amazon S3) 的靜態網頁叫用。
2 Amazon API Gateway 會觸發一個 AWS Lambda 函數,即 New Post,以負責初始化產生 MP3 檔案的流程。
3 Lambda 函數會插入有關該文章的資訊到一個 Amazon DynamoDB 資料表,即所有文章相關資訊存放的地方。
4 若要非同步執行整個過程,您可以使用 Amazon Simple Notification Service (Amazon SNS) 來分離接收有關新文章的資訊並開始其音訊轉換的流程。
5 另一個 Lambda 函數 Convert to Audio 會訂閱您的 SNS 主題,並在出現新訊息時觸發 (這代表新文章應轉換為音訊檔案)。
6 Convert to Audio Lambda 函數使用 Amazon Polly 將文字轉換為指定語言 (與文字語言相同) 的音訊檔案。
7 新 MP3 檔案會儲存在專用 S3 儲存貯體。
8 文章相關資訊會在 DynamoDB 資料表內更新。存放在 S3 儲存貯體的音訊檔案 URL,會與之前儲存的資料一起保存。
當應用程式擷取有關文章的資訊時:
1 RESTful Web 服務會使用 Amazon API Gateway 進行部署。Amazon API Gateway 公開了擷取文章資訊的方法。這些方法包含文章的文字和儲存 MP3 檔案的 S3 儲存貯體的連結。此 Web 服務是由託管於 Amazon S3 的靜態網頁叫用。
2 Amazon API Gateway 會叫用 Get Post Lambda 函數,以部署用於擷取文章資料的邏輯。
3 Get Post Lambda 函數會從 DynamoDB 資料表擷取有關文章的資訊 (包括對 Amazon S3 的參考) 並傳回資訊。
涵蓋的主題
此實驗室結束後,您將能夠:
- 建立 Amazon DynamoDB 以存放資料
- 建立 Amazon API Gateway RESTful API
- 建立由 API Gateway 觸發的 AWS Lambda 函數
- 連接 AWS Lambda 函數與 Amazon Simple Notification Service (SNS)
- 使用 Amazon Polly 合成各種語言和語音的語音
圖示圖例
此實驗室使用各種圖示提醒您注意不同類型的指示和注意事項。下列清單說明各圖示的用途:
- 您必須執行的命令
- 您可使用的範例輸出,以驗證命令的輸出內容或經過編輯的檔案
- 提示、秘訣或重要指引
- 有特殊影響或重要性的資訊 (如果您錯過此資訊,不會對設備或資料造成太大的問題,但可能會導致需要重複特定步驟)
- 警告:不可逆且可能造成命令或程序失敗的動作 (包含設定後無法變更的警告)。