【问题标题】:Google TTS client library parameter setting for Chinese language中文谷歌TTS客户端库参数设置
【发布时间】:2018-04-10 05:25:52
【问题描述】:

我尝试使用谷歌云 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]

请帮助我使用中文时如何设置参数?

【问题讨论】:

  • 来自谷歌云网站,好像还不支持中文语音API。
  • 你解决了这个问题吗?我正在用中文尝试谷歌的tts,也遇到了同样的问题。我对javascript不是很有经验。

标签: google-text-to-speech


【解决方案1】:

我使用 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()  

【讨论】:

    猜你喜欢
    • 2018-03-26
    • 2016-03-21
    • 2021-11-19
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多