Watson Speech to Text аутентификация
Я пытаюсь использовать Transcribe с микрофона, работающего на моем сервере, в качестве отправной точки.
Код простой, но у меня проблемы с токеном.
в IBMcloud я создал идентификатор IAM-службы с помощью средства
просмотра политик доступа, службы речи в текст Reader 14 во всех группах ресурсов
создал апики из этого
создал файл токена
curl -k -X POST --output token \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey={apikey}" \
"https://iam.cloud.ibm.com/identity/token"
в ответе есть access_token, но javascript SDK 0.38.1 ищет accessToken
при запуске микрофона появляется сообщение об ошибке сокета wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize"
Я проверил срок действия токена.
Я подтвердил, что это проблема с авторизацией:
curl -X GET "https://stream.watsonplatform.net/speech-to-text/api/v1/models?access_token="{accessToken}"
отвечает "неавторизованный"
Я изучил и не знаю, что делать дальше. Я предполагаю, что я неправильно генерирую токен.
1 ответ
Я бы оставил генерацию токенов коду. Все SDK имеют компонент IAMAuthenticator. Полная документация по Node.js находится здесь. Это очень простой пример, в котором вы передаете ключ API:
import { IamAuthenticator } from 'ibm-cloud-sdk-core';
const authenticator = new IamAuthenticator({
apikey: '{apikey}',
});
После этого вы создаете экземпляр службы, например STT.