在後-GPT時代,語音互動變得日益重要,從虛擬助手到幫助視障用戶瀏覽數字內容的輔助功能。Amazon Polly不僅使添加文本轉語音功能變得更簡單,還通過支援多種語言和廣泛的聲音,為用戶提供高度個性化和身臨其境的使用體驗。
本教程旨在教讀者如何設置Amazon Polly並將其集成到應用程序中,發揮語音互動的潛力,為更動態和更具可訪問性的數字體驗鋪平道路。
什麼是Amazon Polly?
Amazon Polly是一個文本轉語音(TTS)服務,採用先進的深度學習技術合成自然聽起來的語音。它是最尖端的TTS服務之一,允許開發人員創建能以非常類似人類的方式“說話”的應用程序。該服務支援超過60種聲音,涵蓋30多種語言,滿足具有不同語言需求的全球觀眾。
Amazon Polly 的一個關鍵功能是其使用神經文本轉語音(NTTS)技術,提供比傳統語音合成系統更具表現力和自然的聲音。這包括調整語音屬性,如音調、音量和說話速度,讓開發人員對音頻輸出進行精確控制。例如,開發人員可以使語音更加愉快、興奮或充滿同理心,增強與用戶的情感聯繫。
Amazon Polly 還支持功能,如語音標記,允許開發人員將語音與視覺元素同步,例如在說話時突出顯示文本或使角色與音頻同步調整嘴唇動作。這使其成為互動故事、教育內容和無障礙工具的理想解決方案。
無論您是在構建語音啟動的虛擬助手、有聲書平台還是具有語音功能的 IoT 設備,Amazon Polly 提供了實現您想法所需的靈活性和可擴展性。
設置 Amazon Polly
現在,讓我們動手設置 Amazon Polly!本部分概述如何執行此操作。
步驟 1:創建 AWS 帳戶
要使用Amazon Polly,您首先需要一個AWS帳戶。如果您還沒有,請前往AWS註冊頁面並按照步驟創建。請確保提供有效的結算信息,因為AWS服務(包括Polly)是根據使用量計費。
權限的IAM設置
我建議設置一個具有必要權限來管理Amazon Polly資源的IAM(身份和訪問管理)用戶。分配AmazonPollyFullAccess策略以確保用戶可以訪問所有Polly功能。
第2步:導航至Amazon Polly
登入AWS管理控制台後,在頂部的搜索欄中搜索Polly。
AWS控制台中的搜索選單。
點擊Amazon Polly服務以進入Polly界面。
使用Amazon Polly進行文本轉語音
通常,開發人員使用Amazon Polly API將文本轉語音功能直接整合到其應用程序中。但是,您也可以使用AWS Polly界面快速嘗試不同的語音和設置,而無需編寫代碼。要做到這一點,請在Polly界面中單擊嘗試 Polly 按鈕。此按鈕可讓您從AWS控制台中嘗試各種文本輸入、語音類型和輸出格式,使您能夠在以編程方式實施之前輕鬆探索Polly的功能。
基本文本轉語音轉換
要執行基本的文本轉語音轉換,請在輸入框中輸入一個句子,例如”你好,歡迎來到 Amazon Polly!”。您也可以選擇引擎類型(例如生成式、長篇、神經或標準)、語言和聲音。點擊播放立即聆聽輸出,或點擊下載將其下載為 .mp3
文件。
在 AWS 控制台中的 Amazon Polly 介面。
為文本轉語音設置 AWS SDK
您需要設置AWS SDK將Amazon Polly集成到您的應用程序中。這樣您就可以直接從代碼中與Amazon Polly進行交互,從而實現更具動態性和可定製性的文本轉語音功能。
在本教程中,我們將使用Python SDK(boto3)。通過pip安裝boto3
:
pip install boto3
然後,使用AWS CLI配置您的AWS憑證:
aws configure
在CLI上使用aws configure命令。
通過SDK生成語音
這是一個簡單的Python腳本,用於使用Amazon Polly將文本轉換為語音:
import boto3 polly = boto3.client('polly') response = polly.synthesize_speech( Text='Hello, this is a test of Amazon Polly.', OutputFormat='mp3', VoiceId='Joanna' ) with open('speech.mp3', 'wb') as file: file.write(response['AudioStream'].read())
此腳本從文本生成語音並將其保存為mp3文件。
Amazon Polly的高級功能
儘管Amazon Polly以其基本的文本轉語音功能而聞名,但它還提供了一系列高級功能,讓開發人員可以創建更複雜和互動式的語音體驗。
使用 SSML(語音合成標記語言)
SSML(語音合成標記語言)允許開發者控制各種語音方面,例如音調、語速、音量和重音,使音頻輸出更加生動和自然。
使用 SSML 標籤,您可以添加停頓、調整說話風格,甚至逐字拼寫縮寫。這種靈活性對於講故事、電子學習平台和客戶服務應用等場景特別有用,因為語調和表達風格對用戶參與度有顯著影響。
例如,您可以強調某些詞語以傳達重要性,或調整教學內容的語速以確保清晰度。
以下是如何使用 SSML 與 Polly SDK:
response = polly.synthesize_speech( Text="<speak><emphasis level='strong'>Important</emphasis> message!</speak>", TextType='ssml', OutputFormat='mp3', VoiceId='Matthew' ) # 保存音頻文件 with open('speech_ssml.mp3', 'wb') as file: file.write(response['AudioStream'].read())
這個例子強調了「重要」這個詞,使其在口語信息中突出,增強了對聽眾的情感影響。SSML還支持諸如音素發音、耳語和添加音效等高級功能,讓開發者完全掌控語音體驗。
語音標記以便於口型同步
語音標記提供時間對齊的元數據,使開發者能夠將語音與動畫、文本高亮或角色口型動作同步。
這一功能對於互動應用程序尤為重要,例如虛擬角色、教育遊戲或卡拉OK風格的文本高亮。
通過在語音合成的同時請求語音標記,您可以獲得每個單詞或句子的詳細時間信息,從而創建動態的同步多媒體體驗。
例如,您可以將角色的口型動畫與口語詞語同步,或者隨著敘述而即時突出文本。以下是如何請求語音標記:
response = polly.synthesize_speech( Text='Hello, world!', OutputFormat='json', VoiceId='Emma', SpeechMarkTypes=['word'] ) # 將語音標記保存到一個 JSON 檔案 with open('speech_marks.json', 'wb') as file: file.write(response['AudioStream'].read())
輸出 JSON:
{"time":6,"type":"word","start":0,"end":5,"value":"Hello"} {"time":714,"type":"word","start":7,"end":12,"value":"world"}
上述示例為每個單詞請求語音標記,返回一個帶有時間戳和文本數據的 JSON 對象。開發人員可以利用這些信息逐幀同步動畫,使音視覺體驗更具吸引力和真實感。
使用亞馬遜 Polly 進行實時串流
對於像語音助手、現場評論或互動聊天機器人等實時應用,亞馬遜 Polly 支持使用 WebSocket 協議或支持 HLS(HTTP Live Streaming)的媒體播放器進行串流。
這使得應用程序能夠在合成音頻時開始播放,減少延遲並創造更具響應性的用戶體驗。實時流媒體非常適合即時性至關重要的場景,例如實時客戶支持或對話式人工智能。
開發者可以利用這個功能來構建語音啟動的設備、新聞閱讀器或能夠即時響應用戶輸入的互動故事應用程序。
管理 Amazon Polly 資源
有效管理 Amazon Polly 資源對於優化性能、成本和可擴展性至關重要。通過戰略性地存儲語音文件和監控使用情況,您可以確保高效的資源利用,同時保持高質量的用戶體驗。
Amazon Polly 與其他 AWS 服務無縫集成,例如用於存儲的 Amazon S3 和 AWS 費用監控儀表板用於 成本監控,使資源管理變得更簡單。
創建和管理語音文件
Amazon Polly 允許您將合成語音存儲在 Amazon S3 中,以便進行可擴展的存儲和輕鬆檢索。這種方法尤其適用於具有重複音頻需求的應用程序,如電子學習平台、有聲書或客戶支持機器人,在這些應用中,您可以重複使用音頻文件,而不是每次都合成語音。
通過在 S3 中存儲頻繁使用的語音輸出,您可以通過直接從雲端提供快取的音頻文件來降低成本並提高性能。
s3 = boto3.client('s3') s3.upload_file('speech.mp3', 'your-bucket-name', 'speech.mp3')
監控使用情況和成本
利用 AWS 計費與成本管理儀表板來有效監控使用情況和成本。該儀表板提供詳細的成本細分、使用報告,以及設置預算和警報的能力,以避免意外收費。
監控成本在使用神經語音時尤其重要,因為這些語音比標準語音更昂貴。您還可以追蹤使用指標,例如合成的字符數和 API 調用的頻率,這可以幫助您優化資源利用。
AWS 成本儀表板範例。
使用 Amazon Polly 的最佳實踐
在使用 Amazon Polly 時,採用最佳實踐可以確保最佳性能、成本效益和用戶體驗。以下是一些關鍵指導方針:
選擇合適的語音
選擇合適的語音取決於應用程序的目的和目標受眾。Amazon Polly 提供各種語音,包括標準語音和神經語音,每種語音都具有獨特的音調和特徵。
- 神經語音提供更自然和富有表現力的聲音,但價格較高。因此,它們非常適合需要高情感參與的應用程序,如有聲書或故事說明。
- 標準語音為客服聊天機器人等基於效用的應用程序提供了一個具有成本效益的解決方案。通過用戶反饋測試不同的語音有助於選擇最適合您應用程序需求的語音。
優化語音輸出
利用SSML(語音合成標記語言)來通過調整音調、速率和音量參數來增強語音質量。通過微調這些設置,您可以創建更具動態和吸引力的音頻體驗。
例如,降低說話速度可以提高教學內容的清晰度,而強調關鍵短語可以增強故事性。嘗試不同的SSML標記可以幫助您實現最自然的語音。
降低成本
在使用Amazon Polly時,應考慮控制語音生成的頻率以及將頻繁使用的音頻文件存儲在S3中以便重複使用,以優化成本。這種方法可以減少重複的API調用,降低合成成本。
此外,通過策略性地使用標準和神經語音,可以在成本和質量之間取得平衡。
舉例來說,僅在歡迎訊息等關鍵接觸點使用神經音效,而標準音效則處理資訊內容。在AWS計費儀表板中設定使用限制和成本警報有助於維持預算控制,避免意外支出。
結論
Amazon Polly是一項強大的文本轉語音服務,利用先進的深度學習技術將文字轉換為逼真的語音,增強用戶體驗和可訪問性。
在本教程中,我們探討了Amazon Polly的基本功能,從設置AWS SDK到以程式設計方式生成語音。我們還涵蓋了高級功能,如使用SSML進行定制語音輸出,利用Speech Marks進行嘴唇同步和動畫,以及實施動態語音應用的即時流式傳輸。
將Amazon Polly集成到您的應用程序中,可以創建極具互動性和個性化的語音體驗,滿足全球受眾的需求。無論您是在構建虛擬助手、有聲書、教育平台還是無障礙工具,Amazon Polly都提供了靈活性、可擴展性和先進功能,幫助實現您的創意。
如果您是AWS的新手,並希望加強您的雲技能,請考慮探索這些相關課程:
- AWS概念 – 學習AWS雲計算背後的基本概念。
- AWS雲技術與服務 – 親自操作主要AWS服務及其實際應用。
- AWS安全性和成本管理 – 了解保護AWS資源和優化成本的最佳實踐。
- AWS雲從業者認證培訓 – 通過結構化學習路徑準備AWS雲從業者CLF-C02考試。