本教學課程會示範如何使用語音合成標記語言 (SSML) 朗讀地址文字檔案。你可以使用 SSML 標記標註一連串文字,自訂 Text-to-Speech 合成音訊。
純文字 | 純文字的 SSML 轉譯 |
---|---|
123 Street Ln |
<speak>123 Street Ln</speak> |
1 Number St |
<speak>1 Number St</speak> |
1 Piazza del Fibonacci |
<speak>1 Piazza del Fibonacci</speak> |
目標
使用 SSML 和 Text-to-Speech 用戶端程式庫,將合成語音要求傳送至 Text-to-Speech。
費用
如需費用資訊,請參閱文字轉語音定價頁面。
事前準備
- 確認您在 Google Cloud 控制台中擁有 Text-to-Speech 專案。
- 本教學課程可讓您使用 Java、Node.js 或 Python。 如果您打算使用 Java,請下載並安裝 Maven。如果您打算使用 Node.js,請下載 npm。
下載程式碼範例
如要下載程式碼範例,請複製 Google Cloud 您打算使用的程式設計語言的 GitHub 範例。
Java
本教學課程使用 Google Cloud Platform Java 範例存放區 texttospeech/cloud-client/src/main/java/com/example/texttospeech/
目錄中的程式碼。
如要下載並前往本教學課程的程式碼,請從終端機執行下列指令。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git cd java-docs-samples/texttospeech/cloud-client/src/main/java/com/example/texttospeech/
Node.js
本教學課程使用 Google Cloud Platform Node.js 範例存放區的 texttospeech
目錄中的程式碼。
如要下載並前往本教學課程的程式碼,請在終端機中執行下列指令。
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git cd texttospeech/
Python
本教學課程使用 Google Cloud Platform Python 範例存放區 texttospeech/snippets
目錄中的程式碼。
如要下載並前往本教學課程的程式碼,請從終端機執行下列指令。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git cd samples/snippets
安裝用戶端程式庫
本教學課程使用 Text-to-Speech 用戶端程式庫。
Java
本教學課程使用下列依附元件。
Node.js
在終端機執行下列指令。
npm install @google-cloud/text-to-speech
Python
在終端機執行下列指令。
pip install --upgrade google-cloud-texttospeech
設定 Google Cloud Platform 憑證
Provide authentication credentials to your application code by setting the
environment variable GOOGLE_APPLICATION_CREDENTIALS
. This
variable applies only to your current shell session. If you want the variable
to apply to future shell sessions, set the variable in your shell startup file,
for example in the ~/.bashrc
or ~/.profile
file.
Linux 或 macOS
export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
Windows
For PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH
"
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
For example:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\service-account-file.json"
For command prompt:
set GOOGLE_APPLICATION_CREDENTIALS=KEY_PATH
Replace KEY_PATH
with the path of the JSON file that contains your credentials.
匯入程式庫
本教學課程使用下列系統和用戶端程式庫。
Java
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Java API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Node.js API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Python API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
使用 Text-to-Speech API
以下函式會採用以 SSML 標記的文字字串和 MP3 檔案名稱。這項函式會使用以 SSML 標記的文字,生成合成音訊。 函式會將合成音訊儲存為指定為參數的 MP3 檔案名稱。
整個 SSML 輸入內容只能由單一聲音朗讀。
您可以在 VoiceSelectionParams
物件中設定語音。
Java
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Java API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Node.js API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Python API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
個人化合成音訊
下列函式會接收文字檔的名稱,並將檔案內容轉換為以 SSML 標記的文字字串。
Java
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Java API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Node.js API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱這篇文章。 詳情請參閱 Text-to-Speech Python API 參考說明文件。
如要向 Text-to-Speech 服務驗證身分,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
馬上開始全面整合吧!
這個程式會使用下列輸入內容。
123 Street Ln, Small Town, IL 12345 USA 1 Jenny St & Number St, Tutone City, CA 86753 1 Piazza del Fibonacci, 12358 Pisa, Italy
將上述文字傳遞至 text_to_ssml()
會產生下列標記文字。
<speak>123 Street Ln, Small Town, IL 12345 USA <break time="2s"/>1 Jenny St & Number St, Tutone City, CA 86753 <break time="2s"/>1 Piazza del Fibonacci, 12358 Pisa, Italy <break time="2s"/></speak>
執行程式碼
如要產生合成語音的音訊檔,請從指令列執行下列程式碼。
Java
Linux 或 MacOS
在 java-docs-samples/texttospeech/cloud-client/
目錄中,於指令列執行下列指令。
$ mvn clean package
Windows
在 java-docs-samples/texttospeech/cloud-client/
目錄中,於指令列執行下列指令。
$ mvn clean package
Node.js
Linux 或 MacOS
在 hybridGlossaries.js
檔案中,取消註解已註解的變數 TODO (developer)
。
在下列指令中,將 projectId 替換為您的 Google Cloud 專案 ID。
在 nodejs-docs-samples/texttospeech
目錄中,於指令列執行下列指令。
$ node ssmlAddresses.js projectId
Windows
在 hybridGlossaries.js
檔案中,取消註解已註解的變數 TODO (developer)
。
在下列指令中,將 projectId 替換為您的 Google Cloud 專案 ID。
在 nodejs-docs-samples/texttospeech
目錄中,於指令列執行下列指令。
$env: C:/Node.js/node.exe C: ssmlAddresses.js projectId
Python
Linux 或 MacOS
在 python-docs-samples/texttospeech/snippets
目錄中,於指令列執行下列指令。
$ python ssml_addresses.py
Windows
在 python-docs-samples/texttospeech/snippets
目錄中,於指令列執行下列指令。
$env: C:/Python3/python.exe C: ssml_addresses.py
檢查輸出內容
這個程式會輸出合成語音的 example.mp3 音訊檔案。
Java
前往 java-docs-samples/texttospeech/cloud-client/resources/
目錄。
檢查 resources
目錄是否有 example.mp3 檔案。
Node.js
前往 nodejs-docs-samples/texttospeech/resources/
目錄。
檢查 resources
目錄是否有 example.mp3 檔案。
Python
進入「python-docs-samples/texttospeech/snippets/resources
」。
檢查 resources
目錄是否有 example.mp3 檔案。
聆聽下列音訊片段,確認 example.mp3 檔案的音效是否相同。
疑難排解
如果忘記在指令列中設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數,系統會產生下列錯誤訊息:
The Application Default Credentials are not available.
如果傳遞不存在的檔案名稱
text_to_ssml()
,系統會產生下列錯誤訊息:IOError: [Errno 2] No such file or directory
傳遞包含 None 的 ssml_text 參數給
ssml_to_audio()
會產生下列錯誤訊息:InvalidArgument: 400 Invalid input type. Type has to be text or SSML
請確認您是從正確的目錄執行程式碼。
後續步驟
- 探索其他 SSML 標記。
- 瞭解如何搭配翻譯和 Vision 使用 SSML
清除所用資源
如要避免系統向您的 Google Cloud Platform 帳戶收取您在本教學課程中所用資源的相關費用,請前往 Google Cloud 控制台刪除您不需要的專案。
刪除專案
- 前往 Google Cloud 控制台的「專案」頁面。
- 在專案清單中選取您要刪除的專案,並按一下 [Delete] (刪除)。
- 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 刪除專案。