PermissionDenied: 403 Запрос имеет недостаточные области проверки подлинности - PullRequest
0 голосов
/ 16 января 2019

Чтобы получить API преобразования текста в речь из скрипта Python на GCE, я попытался использовать следующий код, работающий под GCE:

"""Synthesizes speech from the input string of text or ssml.

Note: ssml must be well-formed according to:
    https://www.w3.org/TR/speech-synthesis/
"""

# Authorize server-to-server interactions from Google Compute Engine.
import httplib2
from oauth2client.contrib import gce

credentials = gce.AppAssertionCredentials(
  scope='https://www.googleapis.com/auth/cloud-platform')
http = credentials.authorize(httplib2.Http())

from google.cloud import texttospeech

# Instantiates a client
client = texttospeech.TextToSpeechClient()

# Set the text input to be synthesized
synthesis_input = texttospeech.types.SynthesisInput(text="This is a test. It is only a test.")

# 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"')

Я ожидал файл output.mp3, который будетсодержать речь «Это тест. Это всего лишь тест».

Я получил: «PermissionDenied: 403 У запроса недостаточно областей аутентификации.»

Я использовал You-TubeAPI и аутентификация работали над этим.Что мне здесь не хватает?

1 Ответ

0 голосов
/ 17 января 2019

Находясь на экземпляре GCE, попробуйте установить для областей доступа для экземпляра значение «Разрешить полный доступ ко всем облачным API» и повторите попытку.

Также убедитесь, что вы используете клиентскую библиотеку и учетную запись службы.введите правильно, как описано в [2]

[1] https://cloud.google.com/compute/docs/access/service-accounts?hl=en_US&_ga=2.55324139.-1189275507.1546438047#accesscopesiam

[2] https://cloud.google.com/text-to-speech/docs/reference/libraries

...