試用 Colab 筆記本 |
在 GitHub 中查看筆記本 |
Text-to-Speech Chirp 3:HD 語音是最新一代的 Text-to-Speech 技術,這些聲音採用最新生成模型,因此能呈現真實感和情緒共鳴。
如要在 Google Cloud 控制台中探索及測試語音模型,請前往 Media Studio。
試用 Chirp 3:開啟 HD 語音 (Vertex AI Studio)
語音選項
系統提供多種語音選項,各有不同特色:
| 名稱 | 性別 | 示範 |
|---|---|---|
| Achernar | 女性 | |
| Achird | 男性 | |
| Algenib | 男性 | |
| Algieba | 男性 | |
| Alnilam | 男性 | |
| Aoede | 女性 | |
| Autonoe | 女性 | |
| Callirrhoe | 女性 | |
| Charon | 男性 | |
| Despina | 女性 | |
| Enceladus | 男性 | |
| Erinome | 女性 | |
| Fenrir | 男性 | |
| Gacrux | 女性 | |
| Iapetus | 男性 | |
| Kore | 女性 | |
| Laomedeia | 女性 | |
| Leda | 女性 | |
| Orus | 男性 | |
| Pulcherrima | 女性 | |
| Puck | 男性 | |
| Rasalgethi | 男性 | |
| Sadachbia | 男性 | |
| Sadaltager | 男性 | |
| Schedar | 男性 | |
| Sulafat | 女性 | |
| Umbriel | 男性 | |
| Vindemiatrix | 女性 | |
| Zephyr | 女性 | |
| Zubenelgenubi | 男性 |
支援的語言
Chirp 3:HD 語音支援下列語言:
| 語言 | BCP-47 代碼 |
|---|---|
| 阿拉伯文 (通用) | ar-XA |
| 孟加拉文 (印度) | bn-IN |
| 丹麥文 (丹麥) | da-DK |
| 荷蘭文 (比利時) | nl-BE |
| 荷蘭文 (荷蘭) | nl-NL |
| 英文 (澳洲) | en-AU |
| 英文 (印度) | en-IN |
| 英文 (英國) | en-GB |
| 英文 (美國) | en-US |
| 芬蘭文 (芬蘭) | fi-FI |
| 法文 (加拿大) | fr-CA |
| 法文 (法國) | fr-FR |
| 德文 (德國) | de-DE |
| 古吉拉特文 (印度) | gu-IN |
| 北印度文 (印度) | hi-IN |
| 印尼文 (印尼) | id-ID |
| 義大利文 (義大利) | it-IT |
| 日文 (日本) | ja-JP |
| 卡納達文 (印度) | kn-IN |
| 韓文 (韓國) | ko-KR |
| 馬拉雅拉姆文 (印度) | ml-IN |
| 中文 (中國) | cmn-CN |
| 馬拉地文 (印度) | mr-IN |
| 挪威博克馬爾文 (挪威) | nb-NO |
| 波蘭文 (波蘭) | pl-PL |
| 葡萄牙文 (巴西) | pt-BR |
| 俄文 (俄羅斯) | ru-RU |
| 西班牙文 (西班牙) | es-ES |
| 西班牙文 (美國) | es-US |
| 斯瓦希里文 (肯亞) | sw-KE |
| 瑞典文 (瑞典) | sv-SE |
| 泰米爾文 (印度) | ta-IN |
| 泰盧固文 (印度) | te-IN |
| 泰文 (泰國) | th-TH |
| 土耳其文 (土耳其) | tr-TR |
| 烏克蘭文 (烏克蘭) | uk-UA |
| 烏都文 (印度) | ur-IN |
| 越南文 (越南) | vi-VN |
區域供應情形
Chirp 3:HD 語音分別在下列 Google Cloud 區域推出:
| Google Cloud 可用區 | 發布準備完成度 |
|---|---|
global |
正式發布版 |
us |
正式發布版 |
eu |
正式發布版 |
asia-southeast1 |
正式發布版 |
europe-west2 |
正式發布版 |
asia-northeast1 |
正式發布版 |
支援的輸出格式
預設回覆格式為 LINEAR16,其他支援的格式包括:
| API 方法 | 格式 |
|---|---|
streaming |
ALAW、MULAW、OGG_OPUS 和 PCM |
batch |
ALAW、MULAW、MP3、OGG_OPUS 和 PCM |
使用 Chirp 3:HD 語音
瞭解如何使用 Chirp 3:HD 語音合成語音。
執行串流語音合成要求
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱「Text-to-Speech Python API 參考文件」。
如要向 Text-to-Speech 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
執行線上語音合成要求
Python
如要瞭解如何安裝及使用 Text-to-Speech 的用戶端程式庫,請參閱「Text-to-Speech 用戶端程式庫」。詳情請參閱「Text-to-Speech Python API 參考文件」。
如要向 Text-to-Speech 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
編寫腳本和提示詞訣竅
如要根據文字內容建立自然流暢的語音,必須先瞭解口語的細微差異,然後轉換成腳本。請參考下列訣竅,撰寫出真實且符合所選語氣的腳本。
瞭解目標:自然語音
主要目標是盡可能讓合成語音聽起來像自然的人聲,因此需做到以下事項:
- 模仿自然語速:說話速度的快慢。
- 打造流暢語氣:確保句子和詞組之間轉換順暢。
- 加入真實停頓點:加入停頓點,來強調語氣或提升清晰度。
- 捕捉對話語氣:讓音訊聽起來像真實對話。
自然語音的關鍵技巧
標點符號可控制語速和流暢度
- 句號 (.):表示句子結束和較長的停頓。用來分隔完整想法,清楚劃分句子界線。
- 逗號 (,):表示句子中較短的停頓。用來分隔子句、列出項目,或短暫停頓一下。
- 刪節號 (…):代表較長且刻意的停頓。可能表示想法未完、猶豫或戲劇性的停頓。
- 例如:「And then… it happened.」(然後…就發生了。)
- 連字號 (-):可用來表示短暫停頓或思緒突然中斷。
- 例如:「"I wanted to say - but I couldn't.」(我想說,但說不出口。)
加入停頓和語塞
- 策略性停頓:使用刪節號、逗號或連字號,在人類說話者自然會停下來換氣或強調語氣的地方製造停頓。
- 語塞 (嗯和呃):雖然部分 Text-to-Speech 模型會自動處理語塞,但請務必瞭解,語塞的作用是讓語音更自然,不會太過機械式。即便模型會加入語塞,瞭解這些內容在人類說話中自然出現的位置,有助於掌握腳本的整體流暢度。
實驗與疊代
- 重新合成:請放心使用相同語音多次重新合成同一則訊息。標點符號、間距或用字稍有調整,最終音訊就會有顯著差異。
- 仔細聆聽:密切注意合成音訊的語速、流暢度和整體語氣。找出聽起來不自然的地方,並據此調整腳本。
- 語音變化:如果系統允許,請嘗試使用不同語音,找出最適合腳本和所選語氣的語音。
實用腳本編寫訣竅
- 大聲朗讀:合成前,請先大聲朗讀腳本。這麼一來,就能找出不自然的措辭、停頓和需要調整的地方。
- 撰寫口語化內容:使用縮寫 (例如「it's」、「we're」) 和非正式用語,讓腳本聽起來更自然。
- 考慮情境:腳本的語氣和語速應與音訊情境相符,正式簡報與輕鬆對話的撰寫方式便不同。
- 拆解複雜句子:文字轉語音引擎可能難以處理冗長複雜的句子,請將長句拆成較短且容易整理的句子。
腳本改寫範例
原始腳本 (機械式):「產品現已推出。我們推出了新功能,非常令人興奮。」
改寫後腳本 (自然):「這項產品現在已正式推出…而且我們新增了幾項實用的新功能。嗯,滿…滿令人期待的。」
原始腳本 (機械式):「這是自動傳送的確認訊息。預訂已處理完畢。以下是您即將入住的詳細資訊。預訂號碼為 12345。登記的房客姓名為 Anthony Vasquez,入住日期為 3 月 14 日。退房日期為 3 月 16 日。房型為豪華套房。房客人數為 1 人。入住時間為下午 3 點。退房時間為上午 11 點。請注意,根據取消政策,取消訂房必須在抵達前 48 小時通知我們。如未在期限內通知,我們將收取一晚的住宿費用。預訂時還享有其他福利,包括免費 Wi-Fi、健身中心和免費早餐。如有任何疑問,請直接撥打 855-555-6689 與飯店聯絡。感謝您選擇入住本飯店。」
改寫後腳本 (自然):「Anthony Vasquez,您好,很高興能為您確認預訂!您已完成預訂 3 月 14 日到 3 月 16 日的住宿,入住我們的精緻豪華套房,房客數為 1 位。您的確認編號是 12345,供您需要時可做查詢。
然後提醒您,入住時間是下午 3 點,退房時間是上午 11 點。
這邊跟您告知一下我們的取消政策…如需取消訂房,麻煩在抵達前至少 48 小時通知我們,否則會酌收一晚的住宿費用。
為讓您有個更難忘的住宿體驗,我們提供免費 Wi-Fi、健身中心,而且每天早上都有美味的免費早餐!
如果有任何問題,歡迎隨時撥打 855-555-6689 與我們聯絡。本飯店誠心期待您的蒞臨!」
改寫說明:
- 刪節號 (…) 會產生停頓,用於強調語氣。
- 「and we've」使用縮寫,語氣更口語化。
- 「嗯,滿…滿令人期待的」這句話則加入少許的語塞和強調。
- 「麻煩」做為友善提醒,緩和語氣。
只要遵循這些指南,就能建立自然、誠懇且像真人的文字轉語音腳本。請記住,練習和實驗是掌握這項技能的關鍵。
Chirp 3:支援 HD SSML
語音合成標記語言 (SSML) 標記可讓您進一步控制文字轉換為語音的方式。使用 SSML,您可以指定發音、段落,控制及影響輸入文字的整體結構,讓音訊聽起來更自然流暢。
支援的 SSML 元素
Chirp 3:HD 語音支援部分可用的 SSML 標記,詳情請參閱本文。合成程序會忽略不在此清單上的標記。
<speak>:SSML 文字的根元素。<say-as>:可提供內含文字的發音提示。請注意,不支援interpret-as="expletive"或interpret-as="bleep"。<p>:代表段落。<s>:代表句子。<phoneme>:提供內含文字的語音發音。<sub>:朗讀別名值,而不是元素的內含文字。
使用 SSML 的 SynthesizeSpeechRequest 範例:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"ssml": "<speak>Here are <say-as interpret-as=\"characters\">SSML</say-as> samples. I can also substitute phrases, like the <sub alias=\"World Wide Web Consortium\">W3C</sub>. Hi,<phoneme alphabet=\"ipa\" ph=\"ˌmænɪˈtoʊbə\">manitoba<phoneme>! Finally, I can speak a paragraph with two sentences. <p><s>This is sentence one.</s><s>This is sentence two.</s></p></speak>",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
Chirp 3:HD 語音控制
語音控制功能專為 HD 語音合成功能所設計。您可透過「Chirp 3:HD 語音控制選項」管理語速控制、停頓控制和自訂發音。
語速控制
您可以使用語速參數來調整生成的音訊速度。透過語速參數可以調慢或調快語音速度,值介於 0.25 倍 (非常慢) 到 2 倍 (非常快) 之間。如要設定語速,請在要求中使用 speaking_rate 參數。請選擇介於 0.25 至 2.0 之間的值,值低於 1.0 會減緩語速,值高於 1.0 則會加快語速,值為 1.0 表示語速無調整。
使用語速控制的 SynthesizeSpeechRequest 範例:
{
"audio_config": {
"audio_encoding": "LINEAR16",
"speaking_rate": 2.0,
},
"input": {
"text": "Once upon a time, there was a cute cat. He was so cute that he got lots of treats.",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
使用語速控制的 StreamingSynthesizeConfig 範例:
{
"streaming_audio_config": {
"audio_encoding": "LINEAR16",
"speaking_rate": 2.0,
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
語速控制音訊範例:
| 說話速率 | 輸出 |
|---|---|
| 0.5 | |
| 1.0 | |
| 2.0 |
停頓控制
使用 markup 輸入欄位,直接在文字中嵌入特殊標記,即可在 AI 生成的語音中插入停頓。請注意,停頓標記只適用於 markup 欄位,在 text 欄位中則無效。
這些標記會指示 AI 建立靜音時間,但停頓的確切長度不固定。AI 會根據情境調整長度,就像人類說話時會受說話者、地點和句子結構影響。可用的停頓標記有 [pause short]、[pause long] 和 [pause]。如要瞭解不使用標記建立停頓的替代方法,請參閱「提示詞撰寫和編排指南」。
AI 模型有時可能會忽略停頓標記,尤其是當這些標記在文字中的位置不自然時。您可以合併多個停頓標記來延長靜音時間,但過度使用可能會產生問題。
使用停頓控制的 SynthesizeSpeechRequest 範例:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"markup": "Let me take a look, [pause long] yes, I see it.",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
使用停頓控制的 StreamingSynthesisInput 範例:
{
"markup": "Let me take a look, [pause long] yes, I see it.",
}
停頓控制音訊範例:
| 標記輸入 | 輸出 |
|---|---|
| 「讓我看看。好,我看到了。」 | |
| 「讓我看看。[pause long] 好,我看到了。」 |
自訂發音
如要自訂發音,您可以為輸入文字中的字詞指定 IPA 或 X-SAMPA 語音表示法。請務必使用適合語言的音素,確保正確呈現內容。如要進一步瞭解音素覆寫,請參閱「音素說明文件」。
使用自訂發音的 SynthesizeSpeechRequest 範例:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"text": "There is a dog in the boat",
"custom_pronunciations": {
"phrase": "dog",
"phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
"pronunciation": "\"k{t",
}
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
使用自訂發音的 StreamingSynthesizeConfig 範例:
{
"streaming_audio_config": {
"audio_encoding": "LINEAR16",
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
"custom_pronunciations": {
"phrase": "dog",
"phonetic_encoding": "PHONETIC_ENCODING_X_SAMPA",
"pronunciation": "\"k{t",
}
}
自訂發音音訊範例:
| 已套用自訂發音 | 輸出 |
|---|---|
| 無 | |
| 「dog」的發音為 ""k{t" |
覆寫的詞組可以採用任何格式,包括使用符號。舉例來說,如果詞組比對可能因語境而產生歧義 (常見於中文和日文等語言),或是句子中某個字有多種發音方式,可以透過格式化詞組來消除歧義。舉例來說,為避免意外覆寫輸入中其他有「read」字詞的內容,輸入文字和覆寫的詞組都可以將 "read" 格式化為 "read1"、"[read]" 或 "(read)"。
請參閱以下範例,瞭解如何為句子套用自訂發音,其中「read」有兩種發音方式:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"text": "I read1 a book, and I will now read2 it to you.",
"custom_pronunciations": {
"phrase": "read1",
"phonetic_encoding": "PHONETIC_ENCODING_IPA",
"pronunciation": "rɛd",
}
"custom_pronunciations": {
"phrase": "read2",
"phonetic_encoding": "PHONETIC_ENCODING_IPA",
"pronunciation": "riːd",
}
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
| 已套用自訂發音 | 輸出 |
|---|---|
| 以兩種方式覆寫「read」 |
此外,自訂發音可搭配標記輸入,因此也能使用停頓標記:
{
"audio_config": {
"audio_encoding": "LINEAR16",
},
"input": {
"markup": "Did you [pause long] read this book?",
"custom_pronunciations": {
"phrase": "read",
"phonetic_encoding": "PHONETIC_ENCODING_IPA",
"pronunciation": "riːd",
}
},
"voice": {
"language_code": "en-US",
"name": "en-us-Chirp3-HD-Leda",
}
}
| 已使用自訂發音 | 輸出 |
|---|---|
| 使用停頓標記覆寫發音 |
語音控制支援的語言
語速控制適用於所有語言代碼。
停頓控制適用於所有語言代碼。
自訂發音適用於所有語言代碼,bn-in、gu-in、nl-be、sw-ke、th-th、uk-ua、ur-in 和 vi-vn 除外。
常見問題
常見問題與解答:
如何控制語速和流暢度,以提升語音輸出品質?
如要改寫文字提示詞來提升語音輸出品質,請參閱「提示詞撰寫和編排指南」。
如何以支援語言使用語音?
語音名稱採用特定格式,因此只要指定專屬語音,就能在支援的語言中使用。格式為 \<locale\>-\<model\>-\<voice\>。舉例來說,如要使用 Chirp 3:HD 語音模型,以 Kore 語音合成英文 (美國) 語音,請指定 en-US-Chirp3-HD-Kore。
試用 Colab 筆記本
在 GitHub 中查看筆記本