我尝试使用 Google 云 API 进行文本转语音,这是示例代码,它适用于英语;但是当我将 language_code='en-US' 更改为 'zh-CN' 并将输入文本设置为中文单词时,显示错误: 400 没有与 TTS 请求匹配的 TTS 语音。请更正语音选择参数并重试。
import argparse
# [START tts_synthesize_text]
def synthesize_text(text):
"""Synthesizes speech from the input string of text."""
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
input_text = texttospeech.types.SynthesisInput(text=text)
# Note: the voice can also be specified by name.
# Names of voices can be retrieved with client.list_voices().
voice = texttospeech.types.VoiceSelectionParams(
language_code='en-US',
ssml_gender=texttospeech.enums.SsmlVoiceGender.FEMALE)
audio_config = texttospeech.types.AudioConfig(
audio_encoding=texttospeech.enums.AudioEncoding.MP3)
response = client.synthesize_speech(input_text, voice, audio_config)
# The response's audio_content is binary.
with open('output.mp3', 'wb') as out:
out.write(response.audio_content)
print('Audio content written to file "output.mp3"')
# [END tts_synthesize_text]
请问我使用中文时如何设置参数?
最佳答案
我使用 gTTS 包来解决这个问题,它对我有用,这是代码:
def text_to_speech_gtts(res_ans):
from gtts import gTTS
volume=1.0
music_file="ans01.mp3"
tts = gTTS(text=res_ans, lang='zh-tw')
tts.save(music_file)
freq = 25000 # audio CD quality
bitsize = -16 # unsigned 16 bit
channels = 2 # 1 is mono, 2 is stereo
buffer = 2048 # number of samples (experiment to get best sound)
pg.mixer.init(freq, bitsize, channels, buffer)
# volume value 0.0 to 1.0
pg.mixer.music.set_volume(volume)
clock = pg.time.Clock()
try:
pg.mixer.music.load(music_file)
except pg.error:
print("File {} not found! ({})".format(music_file, pg.get_error()))
pg.mixer.music.play()
while pg.mixer.music.get_busy():
# check if playback has finished
clock.tick(30) #
pg.mixer.music.stop()
pg.mixer.quit()
关于google-text-to-speech - Google TTS 客户端库中文参数设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49745935/