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)