2015-09-19 4 views
1

Я хотел бы использовать Alexa Voice Service от Amazon (AVS), но когда я использую Recognize Speech Request, все, что я верну, это «{message: null}». Проверка подлинности работает, запрос кажется правильным, потому что я получил сообщения об ошибках из API, когда аутентификация не удалась или запрос был искажен.Как кодировать аудио для Alexa Voice?

У меня есть звуковой файл wav, 16000 Гц, 1 канал, и используйте base64_encode() для PHP, чтобы кодировать содержимое wav-файла.

Для аудиофайла документация AVS только говорит Type: Binary Data. Represents the data for the audio.

Вот запрос я посылаю:

Headers

POST /v1/avs/speechrecognizer/recognize HTTP/1.1 
Host: access-alexa-na.amazon.com 
Content-Type: multipart/form-data; boundary=86371ffc080fbb6fc614e8e36d0b8a4d 
Authorization: Bearer Atza|IQEBL... (valid token) 
Transfer-Encoding: chunked 
Cache-Control: no-cache 

тела

--86371ffc080fbb6fc614e8e36d0b8a4d 
Content-Disposition: form-data; name="request" 
Content-Type: application/json; charset=UTF-8 

{ 
    "messageHeader": { 
     "deviceContext": [ 
      { 
       "name":"playbackState", 
       "namespace":"AudioPlayer", 
       "payload": { 
        "streamId": "xxxxxxxxxxxx", 
        "offsetInMilliseconds": "xxxxxxxxxxxx", 
        "playerActivity": "xxxxxxxxxxxx" 
       } 
      } 
     ] 
    }, 
    "messageBody": { 
     "profile": "alexa-close-talk", 
     "locale": "en-us", 
     "format": "audio/L16; rate=16000; channels=1" 
    } 
} 

--86371ffc080fbb6fc614e8e36d0b8a4d 
Content-Disposition: form-data; name="audio" 
Content-Type: audio/L16; rate=16000; channels=1 

SUQzAgAAAAAQS1RUMgAAFwBhb...(truncated result of base64_encode(file.wav)) 
--86371ffc080fbb6fc614e8e36d0b8a4d-- 

Любая идея, что случилось /отсутствует?

ответ

0

Кодирование для звукового файла должен быть Linear PCM не основывают 64. Надеюсь, что это помогает

+1

Извините, этот довольно глупый вопрос, но могу ли я просто скопировать содержимое двоичного файла в тело сообщения (например, «5249 4646 b80a 0200 5741 5645 666d 7420 ...»)? – daniel

0

Тело POST должен содержать сырые аудио двоичные данные. Вы можете использовать такой инструмент, как sox, чтобы преобразовать аудио в формат AVS, ожидающий его, в котором находится моно канал, частота дискретизации 16 кГц, подписанный 16 бит PCM.

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

  • Нет связанных вопросов^_^