Облачный текст в речь API - синтаксическая ошибка - PullRequest
0 голосов
/ 25 мая 2018

Моя цель - создать приложение для преобразования текста в речь.Я использую Google Quickstart Tutorial для преобразования текста в речь .Я следовал за первыми 6 шагами.Я застрял в разделе учебника "Синтезировать аудио из текста".Я получаю ошибки при запуске скопированного кода из учебника и вставке его в консоль.

Скопированный код

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

Это вывод на моемконсоль от запуска кода.

C:\Users\user\AppData\Local\Google\Cloud SDK>curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) -H "Content-Type: application/json; charset=utf-8" --data "{
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
curl: (6) Could not resolve host: print-access-token)

C:\Users\user\AppData\Local\Google\Cloud SDK>  'input':{
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>    '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.'
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>  },
'}' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\user\AppData\Local\Google\Cloud SDK>  'voice':{
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>    'languageCode':'en-gb',
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>    'name':'en-GB-Standard-A',
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>    'ssmlGender':'FEMALE'
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>  },
'}' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\user\AppData\Local\Google\Cloud SDK>  'audioConfig':{
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>    'audioEncoding':'MP3'
The filename, directory name, or volume label syntax is incorrect.

C:\Users\user\AppData\Local\Google\Cloud SDK>  }
'}' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\user\AppData\Local\Google\Cloud SDK>}" "https://texttospeech.googleapis.com/v1beta1/text:synthesize" > synthesize-output.txt
'}" "https:' is not recognized as an internal or external command,
operable program or batch file.

Не уверен, что это полезно, но вот вывод: список конфигурации gcloud

C:\Users\user\AppData\Local\Google\Cloud SDK>gcloud config list
[core]
account = text-to-speechaccount@sage-instrument-201620.iam.gserviceaccount.com
disable_usage_reporting = False
project = sage-instrument-201620

Your active configuration is: [default]

Другая информация Я наиболее знаком с Python.Я бы описал свои навыки как начинающего.У меня работает окно 10.

Ответы [ 2 ]

0 голосов
/ 01 августа 2018

Ваша основная проблема больше связана со следующим сообщением: «curl: (6) Не удалось разрешить host: print-access-token)», которое возникает из-за того, что Windows не распознает нотацию переменной $, поэтому существуютВы можете продолжить двумя способами:

Первый подход:

  1. Сначала выполните команду: "gcloud auth application-default print-access-token" и скопируйте значение токенав буфер обмена,

  2. Вставьте значение токена непосредственно в ваше выполнение curl, например:

curl -H "Авторизация: Bearer ya29.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "-H" Тип содержимого: application / json; charset = utf-8 "--data" {'input': {'text': 'Android - это мобильная операционная система, разработанная Google на основе ядра Linux иразработан в первую очередь для сенсорных мобильных устройств, таких как смартфоны и планшеты. '}, 'voice': {'languageCode': 'en-gb', 'name': 'en-GB-Standard-A', 'ssmlGender': 'FEMALE'}, 'audioConfig': {'audioEncoding': 'MP3 '}} "" https://texttospeech.googleapis.com/v1beta1/text:synthesize"> synthesize-text.txt

Удалите косые черты (), поскольку Windows не очень хорошо распознает символы такого типа.

Второйподход:

  1. Выполните уже упомянутую команду (gcloud auth application-default-access-token) и сохраните значение в переменной среды:

set TOKEN = the_value_of_your_token

Используйте ссылку на переменную среды токена в вызове curl:

curl -H "Авторизация: Bearer% TOKEN%" -H "Тип содержимого: application / json; charset = utf-8 "--data" {'input': {'text': 'Android - это мобильная операционная система, разработанная Google на основе ядра Linux и предназначенная главным образом для мобильных устройств с сенсорным экраном, таких как смартфоны и планшеты.'}, 'voice': {'languageCode': 'en-gb', 'name': 'en-GB-Standard-A', 'ssmlGender': 'FEMALE'}, 'audioConfig': {'audioEncoding': 'MP3 '}} "" https://texttospeech.googleapis.com/v1beta1/text:synthesize"> synthesize-text.txt

0 голосов
/ 26 мая 2018

Пример выглядит так, как будто он написан для Unix-дружественных систем.Эти системы используют '\' для разбиения многострочных команд.Если я правильно помню, Windows использует символ ^, чтобы сделать то же самое.Я попытался бы заменить все \ в этом примере на ^ и посмотреть, работает ли он.

...