2016-12-07 3 views
0

Когда я бегу простую команду на моей Linux машине:Google Speech API ошибка

curl -X POST \ 
--data-binary @'1.wav' \ 
--header 'Content-Type: audio/l16; rate=16000;' \ 
'https://www.google.com/speech-api/v2/recognize?output=json&lang=he-IL&key=THE_KEY' 

Я получаю сообщение об ошибке:

Your client does not have permission to get URL /speech-api/v2/recognize?output=json&lang=he-IL&key=THE_KEY from this server. Invalid key. That’s all we know.

не

Ключ, который я генерироваться имеет никаких ограничений (и он был включен для речи api).
Я даже добавил IP-адрес сервера, и я получил ту же ошибку.

Результаты, которые я нашел до сих пор, связаны с клиентом chrome ... Im on shell.

Благодаря

+0

Вы уверены, что вы сгенерировали ключ API здесь: https://developers.google.com/maps/documentation/javascript/get- api-key #, и вы передаете этот ключ в свой запрос? – nitinsh99

+0

@ nitinsh99, это не карта, это google speech api. и да, я передаю ключ, и я не могу разоблачить его здесь – SexyMF

ответ

0
  1. Создание запроса JSON-файл с текстом, и сохранить его в качестве синхронизации request.json простого текстового файла:

    { 'config': { 'encoding':'FLAC', 'sampleRate': 16000, 'languageCode': 'en-US' }, 'audio': { 'uri':'gs://your-gcloud-bucket/audio.wav' } }

    Это JSON фрагмент показывает, что аудиофайл имеет формат WAV-кодирования, частоту дискретизации 16000 Гц и что аудиофайл хранится в облачном хранилище Google в данном URI. Аудиофайл является общедоступным, поэтому для доступа к файлу вам не понадобятся учетные данные для аутентификации (хотя для использования API требуется учетные данные для проверки подлинности).

  2. Идентифицироваться к учетной записи службы, передавая свой service account key file:

    $ gcloud auth activate-service-account --key-file=service-account-key-file

  3. Получить в authorizaton маркер, используя учетную запись службы:

    $ gcloud auth print-access-token access_token

  4. Используйте завиток для сделать речь: syncrecognize запрос, передав ему маркер доступа, который вы напечатали, и имя файла JSO N просить установить на шаге 1:

    $ curl -s -k -H "Content-Type: application/json" \ -H "Authorization: Bearer access_token" \ https://speech.googleapis.com/v1beta1/speech:syncrecognize \ -d @sync-request.json

+0

whats 'gs: //'? У меня есть файл, сохраненный в 'http: //' thanks – SexyMF

+0

А что такое 'gcloud'? не могу ли я сделать все от завитки? thanks – SexyMF

+1

@SexyMF 'gs: //' - это префикс внутреннего протокола, указывающий, что вы хотите прочитать файл из ведра Google Cloud Storage. Это необходимо, когда вы обрабатываете аудио более 60 секунд, но вы можете пропустить с помощью облачного хранилища, отправив кодированное представление вашего аудио в base-64, изменив 'uri' для' audio' и строку base-64 в вашей 'sync -request.json'. –

Смежные вопросы