Ma clé est prête à être utilisée pour faire des demandes et recevoir un discours à partir d'un texte de Google.
J'ai essayé ces commandes et bien d'autres.
La documentation n'offre aucune solution simple pour démarrer avec Python que j'ai trouvée. Je ne sais pas où va ma clé API avec le JSON et l'URL
(J'ai mis ma clé réelle dans le bloc ci-dessus. Je ne vais tout simplement pas la partager ici.)
3 Réponses :
J'ai trouvé la réponse et j'ai perdu le lien parmi les 150 pages de documentation Google que j'avais ouvertes.
#(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"')
Ma tâche fastidieuse était d'essayer d'envoyer la requête via un JSON avec Python, mais cela semble être via leurs propres modules, ce qui fonctionne bien. Notez que le genre de voix par défaut est "neutre".
pip install --upgrade google-cloud-texttospeech
À l'aide d'exemples Python de Google trouvés: https://cloud.google.com/text-to-speech/ docs / références / bibliothèques Remarque: dans l'exemple de Google, il n'inclut pas correctement le paramètre de nom. et https://github.com/ GoogleCloudPlatform / python-docs-samples / blob / master / texttospeech / cloud-client / quickstart.py
voice = texttospeech.types.VoiceSelectionParams( language_code='en-US', name='en-US-Wavenet-C', ssml_gender=texttospeech.enums.SsmlVoiceGender.FEMALE)
Liste des voix: https://cloud.google.com/text-to-speech/docs/voices
Dans l'exemple de code ci-dessus, j'ai changé la voix du code d'exemple de Google pour inclure le paramètre de nom et utiliser la voix Wavenet (bien améliorée mais plus chère à 16 $ / million de caractères) et le genre SSML en FEMALE.
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"')
Dans la partie de sélection de voix, voici "language_code = 'en-US', ssml_gender = texttospeech.enums.SsmlVoiceGender.NEUTRAL)", savez-vous comment je peux obtenir la voix 'en-US-Wavenet-F' sur le TTS Google Page d'exemple?
J'ai trouvé leur liste. Cause étrange, quel que soit le nom de la voix, toutes les voix du même code de langue sonnent de la même manière cloud.google.com/text-to-speech/docs/voices . En d'autres termes, «en-US» renvoie toujours exactement la même voix. Aucun changement si je le change en «en-US-Wavenet-F» ou quoi que ce soit d'autre.
Je l'ai. Pour toute référence future possible, après language_code, vous ajoutez name = 'en-US-Wavenet-F', sous cette ligne pour obtenir ce que j'ai essayé d'obtenir.
Comment utiliser cet exemple pour appeler une représentation JSON externe comprenant à la fois des paramètres ssml et de sélection vocale comme celui-ci cloud.google.com/text-to-speech/docs/ssml#tips_for_using_ssm l ?
Comment se fait-il que speech client.list voices () ne répertorie pas les voix avec Wavenet?
Si vous souhaitez éviter d'utiliser l'API google Python, vous pouvez simplement le faire:
import requests import json url = "https://texttospeech.googleapis.com/v1beta1/text:synthesize" text = "This is a text" data = { "input": {"text": text}, "voice": {"name": "fr-FR-Wavenet-A", "languageCode": "fr-FR"}, "audioConfig": {"audioEncoding": "MP3"} }; headers = {"content-type": "application/json", "X-Goog-Api-Key": "YOUR_API_KEY" } r = requests.post(url=url, json=data, headers=headers) content = json.loads(r.content)
C'est similaire à ce que vous avez fait mais vous devez inclure votre clé API. p>
les documents n'offrent pas solutions pour Python ?
J'ai vu ça. Je voulais dire dans l'OP, il n'y a pas d'équivalent Python dans le lien que j'ai publié. Je ne comprends pas ce qu'est ce lien, (le code). Je ne comprends pas où va ma clé API. C'est peut-être tout ce dont j'ai besoin. Où ce code voit-il l'API? Je n'ai pas réussi à trouver un moyen d'utiliser ce genre de choses n'importe où après avoir cherché toute la journée.
Quand vous dites API Key, je suppose que vous voulez dire la clé API que vous avez configurée lors de la configuration de Google Cloud, n'est-ce pas? Cela vaut peut-être la peine de lire la configuration complète depuis le début a>. La clé API que vous avez téléchargée au format JSON est quelque chose que vous définissez dans votre environnement en tant que
GOOGLE_APPLICATION_CREDENTIALS
(voir étape 2). Ils ont ensuite des instructions supplémentaires sur la manière de configurer correctement votre environnement Python .Comme l'a souligné aug, il existe un démarrage rapide Python sur le lien qu'ils ont fourni. Le démarrage rapide Python fournit des fonctionnalités équivalentes à l'exemple CURL auquel vous avez lié. De plus, comme le mentionne aug, vous devez utiliser un compte de service, pas une clé API.
Eric, vous écrivez ces documents? Respectueusement, ils sont très opaques et déroutants. Difficile à trouver. C'est comme s'il y avait 3 versions leurres de tout. Non lié à l'endroit où je me suis inscrit. Hier, il y avait 10 heures à essayer de faire en sorte que Python fasse ce que cette commande CURL a fait. Aujourd'hui, environ 8 heures ont été passées à essayer de savoir où saisir le nom de la voix et qu'il était différent de language_code. Vous avez voté contre ma question?
et j'ai entré ma clé API dans mon shell. Ça fonctionne maintenant.