web-dev-qa-db-ja.com

PythonでGoogleのText-to-SpeechAPIを使用する方法

私の鍵は、リクエストを送信し、Googleからのテキストからスピーチを取得する準備ができています。
これらのコマンドやその他多くのコマンドを試しました。
ドキュメントには、Pythonを見つけました。APIキーがJSONとURLと一緒にどこにあるのかわかりません。

ここにある彼らのドキュメントの1つの解決策はCURL用です。 。ただし、ファイルを取得するために送信する必要がある要求の後にtxtをダウンロードする必要があります。 Pythonでこれを行う方法はありますか?それは私がそれらを返さなければならないtxtを含みませんか?私は文字列のリストをオーディオファイルとして返すだけです。

My Code

(実際のキーを上のブロックに配置します。ここでは共有しません。)

3
Renoldus

PythonアプリをJSONファイル用に構成し、クライアントライブラリをインストールする

  1. サービスアカウントを作成する
  2. サービスアカウントを使用してサービスアカウントキーを作成する ここ
  3. JSONファイルをダウンロードして安全に保存する
  4. PythonアプリにGoogleアプリケーションの認証情報を含める
  5. ライブラリをインストールします:pip install --upgrade google-cloud-texttospeech

GoogleのPython見つかった例: https://cloud.google.com/text-to-speech/docs/reference/libraries 注:Googleの例ではnameパラメーターが正しく含まれていません。および https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/texttospeech/cloud-client/quickstart.py

以下は、Googleアプリの認証情報と女性のウェーブネット音声を使用した例から変更されたものです。

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/home/yourproject-12345.json"

from google.cloud import texttospeech

# Instantiates a client
client = texttospeech.TextToSpeechClient()

# Set the text input to be synthesized
synthesis_input = texttospeech.types.SynthesisInput(text="Do no evil!")

# Build the voice request, select the language code ("en-US") 
# ****** the NAME
# and the ssml voice gender ("neutral")
voice = texttospeech.types.VoiceSelectionParams(
    language_code='en-US',
    name='en-US-Wavenet-C',
    ssml_gender=texttospeech.enums.SsmlVoiceGender.FEMALE)

# Select the type of audio file you want returned
audio_config = texttospeech.types.AudioConfig(
    audio_encoding=texttospeech.enums.AudioEncoding.MP3)

# Perform the text-to-speech request on the text input with the selected
# voice parameters and audio file type
response = client.synthesize_speech(synthesis_input, voice, audio_config)

# The response's audio_content is binary.
with open('output.mp3', 'wb') as out:
    # Write the response to the output file.
    out.write(response.audio_content)
    print('Audio content written to file "output.mp3"')

声、名前、言語コード、SSML性別など

音声のリスト: https://cloud.google.com/text-to-speech/docs/voices

上記のコード例では、音声をGoogleのサンプルコードから変更して、nameパラメーターを含め、Wavenet音声(大幅に改善されましたが、100万文字あたり16ドルより高価)とSSMLGenderをFEMALEに使用しました。

voice = texttospeech.types.VoiceSelectionParams(
        language_code='en-US',
        name='en-US-Wavenet-C',
        ssml_gender=texttospeech.enums.SsmlVoiceGender.FEMALE)
5
CodeRaptor

答えを見つけて、私が開いていた150のGoogleドキュメントページ間のリンクを失いました。

#(Since I'm using a Jupyter Notebook)
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="/Path/to/JSON/file/jsonfile.json"
from google.cloud import texttospeech

# Instantiates a client
client = texttospeech.TextToSpeechClient()

# Set the text input to be synthesized
synthesis_input = texttospeech.types.SynthesisInput(text="Hello, World!")

# Build the voice request, select the language code ("en-US") and the ssml
# voice gender ("neutral")
voice = texttospeech.types.VoiceSelectionParams(
    language_code='en-US',
    ssml_gender=texttospeech.enums.SsmlVoiceGender.NEUTRAL)

# Select the type of audio file you want returned
audio_config = texttospeech.types.AudioConfig(
    audio_encoding=texttospeech.enums.AudioEncoding.MP3)

# Perform the text-to-speech request on the text input with the selected
# voice parameters and audio file type
response = client.synthesize_speech(synthesis_input, voice, audio_config)

# The response's audio_content is binary.
with open('output.mp3', 'wb') as out:
    # Write the response to the output file.
    out.write(response.audio_content)
    print('Audio content written to file "output.mp3"')

私の時間のかかる追求は、Pythonを使用してJSONを介してリクエストを送信しようとすることでしたが、これは独自のモジュールを介して行われているようで、正常に機能します。デフォルトの音声の性別は「ニュートラル」であることに注意してください。

0
Renoldus