Как упомянуто в документах API Speech to Text ,
Вы не можете использовать JavaScript для вызова интерфейса WebSocket из браузера.Параметр watson-token, который доступен с помощью метода / v1 / распознавать, не принимает токены IAM или ключи API .Для получения информации об обходе этого ограничения см. Примечания к выпуску .
Вот известное ограничение:
Служба «Речь в текст» имеет следующееизвестное ограничение.
Экземпляры службы, использующие аутентификацию IAM, в настоящее время не могут использовать JavaScript для вызова интерфейса WebSocket речи в текст.Это ограничение применяется к любому приложению (например, к демонстрационной версии службы), которое использует JavaScript для выполнения вызовов WebSocket из браузера.Вызовы WebSocket, выполняемые на других языках, могут использовать токены IAM или ключи API.Чтобы обойти это ограничение, вы можете сделать следующее:
Вызвать интерфейс WebSocket из-за пределов браузера.Вы можете вызвать интерфейс с любого языка, который поддерживает WebSockets.См. Информацию в интерфейсе WebSocket для получения инструкций по работе с другим языком.
SDK Watson предоставляют самый простой способ вызова интерфейса WebSocket с другого языка.SDK принимают ключ API и управляют жизненным циклом токенов. Информацию об использовании интерфейса WebSocket с SDK Node.js, Java, Python и Ruby см. В справочнике API .
Используйте синхронные или асинхронные интерфейсы HTTP для выполнения распознавания речи.
Если у вас есть старая служба Speech to Text с облачными учетными данными (имя пользователя и пароль), вы можете сделать Curlзапрос на watson-token
как этот
curl -u {USERNAME}:{PASSWORD}"https://stream.watsonplatform.net/authorization/api/v1/token?url=https://stream.watsonplatform.net/speech-to-text/api"
Даже это задокументировано в документации API под параметром watson-token под Curl
Обеспечивает аутентификациютокен для сервиса.Используйте токен, основанный на учетных данных службы Cloud Foundry.Не передавайте токен доступа IAM или ключ API с этим параметром.
Обновление: Интерфейс WebSocket не может быть вызван из curl.Используйте клиентский язык сценариев для вызова интерфейса.Примеры кода для потоковой передачи аудио можно найти в каждом из SDK языков программирования, например, в Python SDK - https://github.com/watson-developer-cloud/python-sdk/blob/master/examples/microphone-speech-to-text.py
ОБНОВЛЕНИЕ 2019-02-09
Согласно документации к выпуску, теперь снова можно пройти аутентификацию в API websocket из браузера.См. https://cloud.ibm.com/docs/services/speech-to-text/release-notes.html#release-notes для выпуска от 28 января 2019 года. Однако получить токен аутентификации с помощью вашего API-ключа НЕ возможно из браузера (предотвращено CORG по соображениям безопасности).Итак, чтобы это работало: - получите токен API для Далласа (не заставил его работать для других регионов, похоже, что библиотека жестко задана для сервера Далласа) - используйте внутреннее приложение для получения токена аутентификации с использованием вашего ключа API- используйте токен аутентификации прямо из браузера, используя speech-javascript-sdk