0

Google API を使用して texttospeech API の Python サンプル コードを変更する方法を知り始めています。問題が見つかりました。txt ファイルで ssml languaje を使用してテキストを API に渡すと、結果の mp3 オーディオが文字「é」を変更しました。 ' 'derechos de autor' という文と 'á' の文字は無音です。これは、ファイルからテキストを読み取ったときにのみ発生します.ssml文を引数でアプリケーションに直接提供すると、この変更は発生しません。この問題を検索しましたが、見つかりませんでした。誰かがここで起こっていることのヒントを教えてくれますか?

これは、コンソールから ssml texto を取得し、正しい 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)
4

0 に答える 0