Strage поведение с texttospeech Google API - PullRequest
0 голосов
/ 08 сентября 2018

Я начинаю знать, как использовать API Google, изменяющие пример кода Python API texttospeech. Я обнаружил проблему, когда я использую ssml Язык в текстовом файле для передачи текста в API, результирующий mp3-аудио изменил символ «é» с предложением «derechos de autor» и символ «á» с молчанием. Это происходит только тогда, когда я читаю текст из файла, если я предоставляю ssml-предложение непосредственно заявлению аргументом, при вызове этого изменения не происходит. Я искал эту проблему, и я не нашел ее, кто-нибудь может намекнуть, что здесь происходит?

Это функция, которая берет текстовое сообщение ssml из консоли и создает правильный аудиофайл mp3:

def synthesize_ssml(ssml, output):
    from google.cloud import texttospeech as texttospeech   
    client = texttospeech.TextToSpeechClient()
    input_text = texttospeech.types.SynthesisInput(ssml=ssml)
    voice = texttospeech.types.VoiceSelectionParams(language_code='es-ES')
    audio_config = texttospeech.types.AudioConfig(
        audio_encoding=texttospeech.enums.AudioEncoding.MP3)
    response = client.synthesize_speech(input_text, voice, audio_config)
    with open(output, 'wb') as out:
        out.write(response.audio_content)
        print('Audio content written to file "%s"' % output)

И это функция, которая берет ssml из файла, одного и того же текста, создает разные аудио файлы:

def synthesize_ssml_file(input, output):
    from google.cloud import texttospeech as texttospeech   
    with open(input,'r') as inp:
        input_text=texttospeech.types.SynthesisInput(ssml=str(inp.read()))
    client = texttospeech.TextToSpeechClient()
    voice = texttospeech.types.VoiceSelectionParams(language_code='es-ES')
    audio_config = texttospeech.types.AudioConfig(
        audio_encoding=texttospeech.enums.AudioEncoding.MP3)
    response = client.synthesize_speech(input_text, voice, audio_config)
    with open(output, 'wb') as out:
        out.write(response.audio_content)
        print('Audio content written to file "%s"' % output)
...