![]() |
![]() |
Gemini-TTS 是我们 Text-to-Speech 技术的最新发展,它不仅能生成自然流畅的音频,还能通过基于文本的提示对生成的音频进行精细控制。借助 Gemini-TTS,您可以合成单人或多人语音,从短片段到长篇叙事,精准设定风格、口音、语速、语调,甚至情感表达,所有这些元素均可通过自然语言提示来灵活调控。
如需在控制台中探索此模型,请参阅Model Garden中的 Gemini-TTS 模型卡片(可通过“媒体工作室”标签页访问)。
试用 Vertex AI (Vertex AI Studio) 中的 Gemini-TTS
以下产品支持 Gemini-TTS 功能:
gemini-2.5-flash-tts
:Gemini 2.5 Flash TTS 非常适合经济实惠的日常 TTS 应用。gemini-2.5-pro-tts
:Gemini 2.5 Pro TTS 非常适合可控的语音生成 (TTS),并且能够以出色的质量处理复杂的提示。
型号 | 优化目标 | 输入模态 | 输出模态 | 一位说话者 | 多说话者 |
---|---|---|---|---|---|
Gemini 2.5 Flash TTS | 低延迟、可控的单扬声器和多扬声器文字转语音音频生成,适用于经济实惠的日常应用 | 文本 | 音频 | ✔️ | ✔️ |
Gemini 2.5 Pro TTS | 高度控制,适用于播客生成、有声读物、客户支持等结构化工作流程 | 文本 | 音频 | ✔️ | ✔️ |
其他控制措施和功能包括:
自然对话:语音互动质量出色,表达方式和韵律(节奏模式)更恰当,延迟非常低,因此您可以流畅地对话。
风格控制:使用自然语言提示,您可以引导对话采用特定口音,并生成各种语气和表达方式(包括耳语),从而调整对话中的表达方式。
动态表演:这些模型可以生动地朗读诗歌、新闻报道和精彩的故事,让文本活灵活现。它们还可以根据要求以特定情绪表演,并发出特定口音。
增强的语速和发音控制功能:控制朗读速度有助于确保发音(包括特定字词)更加准确。
示例
model: "gemini-2.5-pro-tts" prompt: "You are having a casual conversation with a friend. Say the following in a friendly and amused way." text: "hahah I did NOT expect that. Can you believe it!." speaker: "Callirhoe"
model: "gemini-2.5-flash-tts" prompt: "Say the following in a curious way" text: "OK, so... tell me about this [uhm] AI thing.", speaker: "Orus"
model: "gemini-2.5-flash-tts" prompt: "Say the following" text: "[extremely fast] Availability and terms may vary. Check our website or your local store for complete details and restrictions." speaker: "Kore"
如需了解如何以编程方式使用这些声音,请参阅使用 Gemini-TTS 部分。
语音选项
Gemini-TTS 提供多种语音选项,与我们现有的 Chirp 3:高清语音类似,每种选项都有不同的特点:
名称 | 性别 | 演示 |
---|---|---|
Achernar | 女 | |
Achird | 男 | |
Algenib | 男 | |
Algieba | 男 | |
Alnilam | 男 | |
Aoede | 女 | |
Autonoe | 女 | |
Callirrhoe | 女 | |
冥卫一 | 男 | |
Despina | 女 | |
土卫二 | 男 | |
Erinome | 女 | |
Fenrir | 男 | |
Gacrux | 女 | |
土卫八 | 男 | |
Kore | 女 | |
Laomedeia | 女 | |
Leda | 女 | |
Orus | 男 | |
Pulcherrima | 女 | |
Puck | 男 | |
Rasalgethi | 男 | |
Sadachbia | 男 | |
Sadaltager | 男 | |
Schedar | 男 | |
Sulafat | 女 | |
Umbriel | 男 | |
Vindemiatrix | 女 | |
Zephyr | 女 | |
Zubenelgenubi | 男 |
支持的语言
Gemini-TTS 支持以下语言:
语言 | BCP-47 代码 | 发布就绪情况 |
---|---|---|
阿拉伯语(埃及) | ar-EG | GA |
荷兰语(荷兰) | nl-NL | GA |
英语(印度) | en-IN | GA |
英语(美国) | en-US | GA |
法语(法国) | fr-FR | GA |
德语(德国) | de-DE | GA |
印地语(印度) | hi-IN | GA |
印度尼西亚语(印度尼西亚) | id-ID | GA |
意大利语(意大利) | it-IT | GA |
日语(日本) | ja-JP | GA |
韩语(韩国) | ko-KR | GA |
马拉地语(印度) | mr-IN | GA |
波兰语(波兰) | pl-PL | GA |
葡萄牙语(巴西) | pt-BR | GA |
罗马尼亚语(罗马尼亚) | ro-RO | GA |
俄语(俄罗斯) | ru-RU | GA |
西班牙语(西班牙) | es-ES | GA |
泰米尔语(印度) | ta-IN | GA |
泰卢固语(印度) | te-IN | GA |
泰语(泰国) | th-TH | GA |
土耳其语(土耳其) | tr-TR | GA |
乌克兰语(乌克兰) | uk-UA | GA |
越南语(越南) | vi-VN | GA |
南非荷兰语(南非) | af-ZA | 预览版 |
阿尔巴尼亚语(阿尔巴尼亚) | sq-AL | 预览版 |
阿姆哈拉语(埃塞俄比亚) | am-ET | 预览版 |
阿拉伯语(全球) | ar-001 | 预览版 |
亚美尼亚语(亚美尼亚) | hy-AM | 预览版 |
阿塞拜疆语(阿塞拜疆) | az-AZ | 预览版 |
孟加拉语(孟加拉) | bn-bd | 预览版 |
巴斯克语(西班牙) | eu-ES | 预览版 |
白俄罗斯语(白俄罗斯) | be-BY | 预览版 |
保加利亚语(保加利亚) | bg-BG | 预览版 |
缅甸语(缅甸) | my-MM | 预览版 |
加泰罗尼亚语(西班牙) | ca-ES | 预览版 |
宿务语(菲律宾) | ceb-PH | 预览版 |
中文、普通话(中国) | cmn-cn | 预览版 |
中文普通话(台湾) | cmn-tw | 预览版 |
克罗地亚语(克罗地亚) | hr-HR | 预览版 |
捷克语(捷克共和国) | cs-CZ | 预览版 |
丹麦语(丹麦) | da-DK | 预览版 |
英语(澳大利亚) | en-AU | 预览版 |
英语(英国) | en-GB | 预览版 |
爱沙尼亚语(爱沙尼亚) | et-EE | 预览版 |
菲律宾语(菲律宾) | fil-PH | 预览版 |
芬兰语(芬兰) | fi-FI | 预览版 |
法语(加拿大) | fr-CA | 预览版 |
加利西亚语(西班牙) | gl-ES | 预览版 |
格鲁吉亚语(格鲁吉亚) | ka-GE | 预览版 |
希腊语(希腊) | el-GR | 预览版 |
古吉拉特语(印度) | gu-IN | 预览版 |
海地克里奥尔语(海地) | ht-HT | 预览版 |
希伯来语(以色列) | he-IL | 预览版 |
匈牙利语(匈牙利) | hu-HU | 预览版 |
冰岛语(冰岛) | is-IS | 预览版 |
爪哇语(爪哇) | jv-JV | 预览版 |
卡纳达语(印度) | kn-IN | 预览版 |
贡根语(印度) | kok-in | 预览版 |
老挝语(老挝) | lo-LA | 预览版 |
拉丁语(梵蒂冈) | la-VA | 预览版 |
拉脱维亚语(拉脱维亚) | lv-LV | 预览版 |
立陶宛语(立陶宛) | lt-IT | 预览版 |
卢森堡语(卢森堡) | lb-LU | 预览版 |
马其顿语(北马其顿) | mk-MK | 预览版 |
迈蒂利语(印度) | mai-IN | 预览版 |
马尔加什语(马达加斯加) | mg-MG | 预览版 |
马来语(马来西亚) | ms-MY | 预览版 |
马拉雅拉姆语(印度) | ml-IN | 预览版 |
蒙古语(蒙古) | mn-MN | 预览版 |
尼泊尔语(尼泊尔) | ne-NP | 预览版 |
挪威博克马尔语(挪威) | nb-NO | 预览版 |
尼诺斯克挪威语(挪威) | nn-NO | 预览版 |
奥里亚语(印度) | or-IN | 预览版 |
普什图语(阿富汗) | ps-AF | 预览版 |
波斯语(伊朗) | fa-IR | 预览版 |
葡萄牙语(葡萄牙) | pt-PT | 预览版 |
旁遮普语(印度) | pa-IN | 预览版 |
塞尔维亚语(塞尔维亚) | sr-RS | 预览版 |
信德语(印度) | sd-IN | 预览版 |
僧伽罗语(斯里兰卡) | si-LK | 预览版 |
斯洛伐克语(斯洛伐克) | sk-SK | 预览版 |
斯洛文尼亚语(斯洛文尼亚) | sl-SI | 预览版 |
西班牙语(拉丁美洲) | es-419 | 预览版 |
西班牙语(墨西哥) | es-MX | 预览版 |
斯瓦希里语(肯尼亚) | sw-KE | 预览版 |
瑞典语(瑞典) | sv-SE | 预览版 |
乌尔都语(巴基斯坦) | ur-PK | 预览版 |
区域可用性
Gemini-TTS 模型已在以下 Google Cloud 区域推出:
Google Cloud 可用区 | 发布就绪情况 |
---|---|
global |
GA |
支持的输出格式
默认响应格式为 LINEAR16
。其他支持的格式包括:
API 方法 | 格式 |
---|---|
batch |
ALAW、MULAW、MP3、OGG_OPUS 和 PCM |
streaming |
不支持 |
使用 Gemini-TTS
了解如何使用 Gemini-TTS 模型合成单人语音和多人语音。
准备工作
开始使用 Text-to-Speech 之前,您必须在Google Cloud 控制台中按照以下步骤启用此 API:
- 在项目上启用 Text-to-Speech。
- 确保已为 Text-to-Speech 启用结算功能。
- 为您的开发环境设置身份验证。
设置 Google Cloud 项目
-
您可以选择现有项目,也可以创建一个新项目。如需详细了解如何创建项目,请参阅 Google Cloud 文档。
如果您创建新项目,系统会显示一条消息,提示您关联结算账号。如果您使用的是现有项目,请务必启用结算功能
选择项目并将其关联到结算账号后,您就可以启用 Text-to-Speech API。前往页面顶部的搜索产品和资源栏,然后输入“speech”。从结果列表中选择 Cloud Text-to-Speech API。
如果您想先试用 Text-to-Speech 而不将其与项目关联,请选择试用此 API 选项。如需启用 Text-to-Speech API 以与项目搭配使用,请点击启用。
为您的开发环境设置身份验证。 如需了解相关说明,请参阅为 Text-to-Speech 设置身份验证。
执行同步单说话人合成
Python
# google-cloud-texttospeech minimum version 2.29.0 is required.
import os
from google.cloud import texttospeech
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def synthesize(prompt: str, text: str, output_filepath: str = "output.mp3"):
"""Synthesizes speech from the input text and saves it to an MP3 file.
Args:
prompt: Styling instructions on how to synthesize the content in
the text field.
text: The text to synthesize.
output_filepath: The path to save the generated audio file.
Defaults to "output.mp3".
"""
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text=text, prompt=prompt)
# Select the voice you want to use.
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
name="Charon", # Example voice, adjust as needed
model_name="gemini-2.5-pro-tts"
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.MP3
)
# Perform the text-to-speech request on the text input with the selected
# voice parameters and audio file type.
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
# The response's audio_content is binary.
with open(output_filepath, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file: {output_filepath}")
CURL
# Make sure to install gcloud cli, and sign in to your project.
# Make sure to use your PROJECT_ID value.
# The available models are gemini-2.5-flash-tts and gemini-2.5-pro-tts.
# To parse the JSON output and use it directly see the last line of the command.
# Requires JQ and ffplay library to be installed.
PROJECT_ID=YOUR_PROJECT_ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Say the following in a curious way",
"text": "OK, so... tell me about this [uhm] AI thing."
},
"voice": {
"languageCode": "en-us",
"name": "Kore",
"model_name": "gemini-2.5-flash-tts"
},
"audioConfig": {
"audioEncoding": "LINEAR16"
}
}' \
"https://texttospeech.googleapis.com/v1/text:synthesize" \
| jq -r '.audioContent' | base64 -d | ffplay - -autoexit
使用自由格式的文本输入执行同步多说话人合成
Python
# google-cloud-texttospeech minimum version 2.31.0 is required.
import os
from google.cloud import texttospeech
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def synthesize_multispeaker_freeform(
prompt: str,
text: str,
output_filepath: str = "output_non_turn_based.wav",
):
"""Synthesizes speech from non-turn-based input and saves it to a WAV file.
Args:
prompt: Styling instructions on how to synthesize the content in the
text field.
text: The text to synthesize, containing speaker aliases to indicate
different speakers. Example: "Sam: Hi Bob!\nBob: Hi Sam!"
output_filepath: The path to save the generated audio file. Defaults to
"output_non_turn_based.wav".
"""
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text=text, prompt=prompt)
multi_speaker_voice_config = texttospeech.MultiSpeakerVoiceConfig(
speaker_voice_configs=[
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker1",
speaker_id="Kore",
),
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker2",
speaker_id="Charon",
),
]
)
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
model_name="gemini-2.5-pro-tts",
multi_speaker_voice_config=multi_speaker_voice_config,
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.LINEAR16,
sample_rate_hertz=24000,
)
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
with open(output_filepath, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file: {output_filepath}")
CURL
# Make sure to install gcloud cli, and sign in to your project.
# Make sure to use your PROJECT_ID value.
# The available models are gemini-2.5-flash-tts and gemini-2.5-pro-tts
# To parse the JSON output and use it directly see the last line of the command.
# Requires JQ and ffplay library to be installed.
# google-cloud-texttospeech minimum version 2.31.0 is required.
PROJECT_ID=YOUR_PROJECT_ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Say the following as a conversation between friends.",
"text": "Sam: Hi Bob, how are you?\\nBob: I am doing well, and you?"
},
"voice": {
"languageCode": "en-us",
"modelName": "gemini-2.5-flash-tts",
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{
"speakerAlias": "Sam",
"speakerId": "Kore"
},
{
"speakerAlias": "Bob",
"speakerId": "Charon"
}
]
}
},
"audioConfig": {
"audioEncoding": "LINEAR16",
"sampleRateHertz": 24000
}
}' \
"https://texttospeech.googleapis.com/v1/text:synthesize" \
| jq -r '.audioContent' | base64 -d | ffplay - -autoexit
使用结构化文本输入执行同步多说话人合成
多讲话人功能支持结构化文本输入,能够以类似人类的方式智能地将文本转化为语音。例如,这种输入对于地址和日期非常有用。自由格式文本输入会按原样朗读文本。
Python
# google-cloud-texttospeech minimum version 2.31.0 is required.
import os
from google.cloud import texttospeech
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def synthesize_multispeaker_structured(
prompt: str,
turns: list[texttospeech.MultiSpeakerMarkup.Turn],
output_filepath: str = "output_turn_based.wav",
):
"""Synthesizes speech from turn-based input and saves it to a WAV file.
Args:
prompt: Styling instructions on how to synthesize the content in the
text field.
turns: A list of texttospeech.MultiSpeakerMarkup.Turn objects representing
the dialogue turns.
output_filepath: The path to save the generated audio file. Defaults to
"output_turn_based.wav".
"""
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(
multi_speaker_markup=texttospeech.MultiSpeakerMarkup(turns=turns),
prompt=prompt,
)
multi_speaker_voice_config = texttospeech.MultiSpeakerVoiceConfig(
speaker_voice_configs=[
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker1",
speaker_id="Kore",
),
texttospeech.MultispeakerPrebuiltVoice(
speaker_alias="Speaker2",
speaker_id="Charon",
),
]
)
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
model_name="gemini-2.5-pro-tts",
multi_speaker_voice_config=multi_speaker_voice_config,
)
audio_config = texttospeech.AudioConfig(
audio_encoding=texttospeech.AudioEncoding.LINEAR16,
sample_rate_hertz=24000,
)
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config
)
with open(output_filepath, "wb") as out:
out.write(response.audio_content)
print(f"Audio content written to file: {output_filepath}")
CURL
# Make sure to install gcloud cli, and sign in to your project.
# Make sure to use your PROJECT_ID value.
# The available models are gemini-2.5-flash-tts and gemini-2.5-pro-tts.
# To parse the JSON output and use it directly see the last line of the command.
# Requires JQ and ffplay library to be installed.
# google-cloud-texttospeech minimum version 2.31.0 is required.
PROJECT_ID=YOUR_PROJECT_ID
curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "x-goog-user-project: $PROJECT_ID" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "Say the following as a conversation between friends.",
"multiSpeakerMarkup": {
"turns": [
{
"speaker": "Sam",
"text": "Hi Bob, how are you?"
},
{
"speaker": "Bob",
"text": "I am doing well, and you?"
}
]
}
},
"voice": {
"languageCode": "en-us",
"modelName": "gemini-2.5-flash-tts",
"multiSpeakerVoiceConfig": {
"speakerVoiceConfigs": [
{
"speakerAlias": "Sam",
"speakerId": "Kore"
},
{
"speakerAlias": "Bob",
"speakerId": "Charon"
}
]
}
},
"audioConfig": {
"audioEncoding": "LINEAR16",
"sampleRateHertz": 24000
}
}' \
"https://texttospeech.googleapis.com/v1/text:synthesize" \
| jq -r '.audioContent' | base64 -d | ffplay - -autoexit
在媒体工作室中执行语音合成
您可以使用 Google Google Cloud 控制台中的媒体工作室来试验文字转语音模型。该工具提供了一个用户界面,可用于快速生成合成音频、收听合成音频,以及尝试不同的风格指令和参数。
在 Google Google Cloud 控制台中,依次前往 Vertex AI Studio > Media Studio 页面。
从媒体下拉菜单中选择语音。
在文本字段中,输入要合成语音的文本。
在设置窗格中,配置以下设置:
- 模型:选择要使用的文字转语音 (TTS) 模型,例如
Gemini 2.5 Pro TTS
。如需详细了解可用的模型,请参阅文字转语音模型。 - 风格说明:可选:输入一段文字提示,用于描述所选的讲话风格、语气和情感表达。这样,您就可以在默认旁白之外进一步指导模型的表现。例如:“以平静专业的语气为纪录片配音。”。
- 语言:选择输入文本的语言和地区。模型会以所选语言和口音生成语音。例如,英语(美国)。
- 语音:为旁白选择预定义的语音。该列表包含所选模型和语言的可用语音,例如 Acherner(女声)。
- 模型:选择要使用的文字转语音 (TTS) 模型,例如
可选:展开“高级选项”部分,以配置技术音频设置:
- 音频编码:选择输出音频文件的编码。
LINEAR16
是一种无损的未压缩格式,适合进行高品质音频处理。MULAW
也可用于压缩音频输出。 - 音频采样率:选择采样率(以赫兹 [Hz] 为单位)。这决定了音频质量。较高的值(例如 44,100 Hz)表示高保真音频,相当于 CD 音质。
- 速度:移动滑块或输入值,调整语速。小于 1 的值会减慢语速,大于 1 的值会加快语速。默认值为 1。
- 音量增益(分贝):以分贝 (dB) 为单位调整输出音频的音量。正值会增加音量,负值会减小音量。默认值为 0。
- 音频编码:选择输出音频文件的编码。
点击文本框右侧的发送图标以生成音频。
生成的音频会显示在媒体播放器中。点击播放按钮即可收听输出。您可以继续调整设置,并根据需要生成新版本。
提示技巧
要想根据文字制作出引人入胜且自然流畅的音频,就需要了解口语的细微差别,并将其转换为脚本形式。以下提示可帮助您撰写真实可信的脚本,并捕捉所选的语气。
语音控制的三大杠杆
为了获得最可预测且细致的结果,请确保以下三个组成部分与您的预期输出保持一致。
风格提示 决定整体情感基调和表达方式的主要因素。提示会为整个语音片段设置上下文。
示例:
You are an AI assistant speaking in a friendly and helpful tone.
示例:
Narrate this in the calm, authoritative tone of a nature documentary narrator.
文本内容 您要合成的字词的语义含义。与风格提示在情感上保持一致的富有表现力的短语会比中性文本产生更可靠的结果。
良好:使用“惊恐”语气提示时,最好搭配“
I think someone is in the house.
”之类的文字效果欠佳:如果提示要求使用惊恐的语气,但文本中包含
The meeting is at 4 PM.
等内容,则会产生模棱两可的结果。
标记标签:带方括号的标记(例如 [sigh]
)最适合用于注入特定的本地化操作或样式修改,而不适合用于设置整体基调。它们与风格提示和文本内容协同工作。
标记代码指南
我们的研究表明,带方括号的标记代码以三种不同的模式运行。了解代码的模式是有效使用代码的关键。
模式 1:非正常说话声
标记会被可听到的非语音发声(例如叹气、笑声)取代。系统不会读出标记本身。这些提示非常适合添加真实、真人般的犹豫和反应。
标记 | 行为 | 可靠性 | 指南 |
---|---|---|---|
[sigh] |
插入叹气声。 | 高 | 叹气的感情色彩会受到提示的影响。 |
[laughing] |
插入笑声。 | 高 | 为获得最佳效果,请使用具体提示。例如,一般提示可能会产生惊讶的笑声,而“以开心的笑声回应”则会产生开心的笑声。 |
[uhm] |
插入犹豫声音。 | 高 | 有助于营造更自然、更具对话感的体验。 |
模式 2:样式修饰符
标记不会被朗读,但会修改后续语音的朗读方式。修改的范围和持续时间可能会有所不同。
标记 | 行为 | 可靠性 | 指南 |
---|---|---|---|
[sarcasm] |
为后续短语添加讽刺语气。 | 高 | 此标记是一个强大的修饰符。这表明,抽象概念可以成功引导模型的交付。 |
[robotic] |
使后续语音听起来像机器人。 | 高 | 效果可以覆盖整个短语。支持性风格提示(例如“以机器人方式说出这句话”)仍建议使用,以获得最佳效果。 |
[shouting] |
提高后续语音的音量。 | 高 | 与匹配的风格提示搭配使用时效果最佳(例如,“大声喊出下一部分”)和表示大声喊叫的文字。 |
[whispering] |
降低后续语音的音量。 | 高 | 如果风格提示也明确具体(例如,“现在,请尽可能轻声地朗读这一部分”。 |
[extremely fast] |
加快后续语音的速度。 | 高 | 非常适合用于免责声明或快节奏对话。所需提示支持极少。 |
模式 3:朗读标记(形容词)
标记本身会以单词的形式读出,同时还会影响整个句子的语气。此行为通常适用于情感形容词。
警告:由于标记本身会被读出,因此对于大多数使用情形,此模式可能会产生不良的副作用。建议改用风格提示来设置这些情感基调。
标记 | 行为 | 可靠性 | 指南 |
---|---|---|---|
[scared] |
说出“害怕”一词,句子采用害怕的语气。 | 高 | 性能高度依赖于文本内容。“我刚才听到窗户碎裂的声音”这句话会产生真正害怕的结果。中性短语会生成“诡异”但不太真实的结果。 |
[curious] |
说出“好奇”一词,句子采用好奇的语气。 | 高 | 使用疑问短语来支持标记的意图。 |
[bored] |
说出“无聊”一词,句子采用无聊的单调语气。 | 高 | 搭配平淡或重复的文字使用,效果最佳。 |
模式 4:步调和暂停
这些标记会在生成的音频中插入静音,让您能够精细地控制节奏、时间和步调。标准标点符号(逗号、句号、分号)也会产生自然的停顿,但这些标记可提供更明确的控制。
标记 | 行为 | 可靠性 | 指南 |
---|---|---|---|
[short pause] |
插入短暂的暂停,类似于逗号(约 250 毫秒)。 | 高 | 用于分隔子句或列表项,以提高清晰度。 |
[medium pause] |
插入标准暂停,类似于句子中断(约 500 毫秒)。 | 高 | 可有效分隔不同的句子或想法。 |
[long pause] |
插入明显的暂停,以产生戏剧效果(约 1000 毫秒以上)。 | 高 | 用于戏剧性定时。例如:“答案是…[long pause] ...不。”避免过度使用,因为这可能会显得不自然。 |
获得可靠结果的关键策略
协调所有三个要素 为尽可能提高可预测性,请确保样式提示、文本内容和所有标记标签在语义上保持一致,并朝着同一目标努力。
使用情感丰富的文字 不要仅依赖提示和标记。为模型提供丰富且具有描述性的文本。对于讽刺、恐惧或兴奋等细微的情绪,这一点尤为重要。
撰写具体详细的提示 风格提示越具体,结果就越可靠。“笑着回应”比仅使用
[laughing]
更好。“像 20 世纪 40 年代的电台新闻播音员那样说话”比“以老式的方式说话”更好。测试和验证新代码 新代码或未经测试的代码的行为并不总是可预测的。您认为的样式修饰符标记可能会被朗读。在部署到生产环境之前,请务必先测试新的代码或提示组合,以确认其行为。