Использование Google TextToSpeech API на Heroku - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь использовать Google TextToSpeech REST API на heroku.

У меня есть файл ключа служебной учетной записи, который отлично работает локально, но я не могу понять, как я мог бы заставить его работатьна Heroku, где не установлен Google Cloud SDK.То есть рассмотрим пример вызова curl из быстрого старта :

curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) -H "Content-Type: application/json; charset=utf-8" --data "{
  'input':{
    'text':'Android is a mobile operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets.'
  },
  'voice':{
    'languageCode':'en-gb',
    'name':'en-GB-Standard-A',
    'ssmlGender':'FEMALE'
  },
  'audioConfig':{
    'audioEncoding':'MP3'
  }
}" "https://texttospeech.googleapis.com/v1beta1/text:synthesize" > synthesize-output.txt

, который зависит от команды bash $(gcloud auth application-default print-access-token), которая, в свою очередь, зависит от устанавливаемого облачного SDK Google (яя установил версию mac локально).

Я изучил использование клиентской библиотеки ruby ​​, которая, как мне кажется, обрабатывает аутентификацию под капотом, если в ней есть файл ключа через переменную GOOGLE_CLOUD_KEYFILE_JSON env, но, похоже, он не поддерживает TextToSpeech.

Как я могу выполнять вызовы TextToSpeech API для Heroku?

1 Ответ

0 голосов
/ 06 июня 2018

Вам действительно нужно использовать учетные данные учетной записи службы, чтобы получить токен доступа через OAuth 2.0.Вы можете сделать это вручную или использовать SDK.Google как набор речевых текстовых клиентских библиотек по ссылке здесь.Поддерживается несколько языков, включая Ruby, а также C #, Go, Java, Node.js, PHP и Python:

Вы можете установитьRuby SDK со следующим:

$ gem install google-cloud-speech

Затем добавьте путь к файлу учетных данных в качестве переменной среды:

$ export GOOGLE_APPLICATION_CREDENTIALS="/path/to[FILE_NAME].json"

Я использую Go и у меня есть Google Text-to-Speechпример здесь вызывает как text.synthesize (как ваш пример), так и voices.list.В этом примере содержимое файла ключа Google хранится в переменной среды, которая облегчает чтение из экземпляра Heroku.Хотя здесь используется google/google-api-go-client SDK , я только что заметил и рассмотрю вопрос об обновлении до GoogleCloudPlatform/google-cloud-go сейчас.

При этом извлекается токен доступа, а затем создается SDK клиента Google Go:

SDK Google Go поддерживает функцию преобразования текста в речьздесь:

Перейти на Heroku также легко, используя godep, как описано здесь:

У меня также есть приложение скаффолдинга, которое создаст файлы, необходимые для включения кнопки «Развернуть в Heroku» для приложения Go здесь:

Если вы используете Go и у вас есть вопросы, дайте мне знать.

...