Вопросы и ответы про SpeechKit
Общие вопросы
Я могу получить логи моей работы в сервисах?
Да, вы можете запросить записи о том, что происходило с вашими ресурсами, из логов сервисов Yandex Cloud. Подробнее читайте в разделе Запросы данных.
Как посмотреть статистику запросов к API
Вы можете посмотреть статистику в консоли управления
Когда вы используете сервис, баланс автоматически уменьшается. Подробнее об оплате ресурсов в Yandex Cloud.
Как увеличить квоты / Что делать при ошибке «429 Too Many Requests»
Ошибка 429 Too Many Requests
означает, что превышены квоты, установленные для вашего каталога. Значения квот по умолчанию указаны в таблице.
Чтобы увеличить квоты, обратитесь в поддержку. В обращении обязательно укажите идентификатор каталога и желаемые квоты в формате «Название — Значение».
Для чего используется идентификатор каталога (folderId)
В сервисе SpeechKit folderId
нужен для авторизации (проверки прав доступа) и оплаты ресурсов.
При выполнении запроса от имени сервисного аккаунта не нужно указывать folderId
, потому что по умолчанию используется идентификатор каталога, в котором создан этот аккаунт. Если указать другой каталог, то сервис вернет ошибку.
При авторизации от имени пользовательского аккаунта указание идентификатора каталога folderId
обязательно.
В зависимости от используемого API передавать идентификатор каталога нужно в заголовках или в теле запроса. Подробнее об аутентификации в SpeechKit см. в разделе Аутентификация в API SpeechKit.
Как сгенерировать IAM-токен
Вы можете сгенерировать IAM-токен, например, воспользовавшись интерфейсом командной строки Yandex Cloud. Все способы получения IAM-токена описаны для аккаунта на Яндексе, федеративного аккаунта и сервисного аккаунта в документации Yandex Identity and Access Management.
Несмотря на то, что срок жизни IAM-токена — не более 24 часов, мы рекомендуем использовать его для аутентификации в сервисе SpeechKit как наиболее безопасный способ.
Что делать при ошибке авторизации «401 Unauthorized»
Если в ответ на запрос сервер SpeechKit возвращает ошибку 401 Unauthorized
, проверьте, есть ли у аккаунта, от имени которого вы отправляете запросы, необходимые роли. Также проверьте способ авторизации и ключ или токен для авторизации: возможно, вы получили его для одного аккаунта, а запрос выполняете от имени другого.
При использовании сервисного аккаунта не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
На каких условиях можно использовать результаты работы сервиса SpeechKit
- Мы не налагаем ограничений на использование результатов работы сервиса SpeechKit. Вы можете использовать их по вашему усмотрению в рамках законодательства Российской Федерации.
- Вы можете свободно использовать демо-стенд. Обратите внимание, что он имеет ограничения.
- Сервис SpeechKit предоставляет API, предназначенный для использования в системах, требующих генерации или распознавания речи. Готового программного продукта в виде веб-интерфейса или запускаемого приложения в настоящее время нет.
Распознавание речи (STT)
Некорректные ударения и произношение
Создайте обращение и приложите примеры, чтобы разработчики могли внести корректировки к следующим релизам модели синтеза.
Плохое качество распознавания при 8кГц
Если проблема систематическая (десятки процентов от общей доли запросов), создайте обращение и приложите примеры для исследования. Чем больше примеров вы пришлете, тем вероятнее разработчики обнаружат проблему.
Форма обратной связи по качеству распознавания
При возникновении проблем обратитесь в службу поддержки
Два канала распознались в один / Как распознать каждый канал отдельно
Распознавание многоканальных аудиофайлов доступно только при асинхронном распознавании.
Проверьте формат вашей записи:
- Для LPCM используйте параметр config.specification.audioChannelCount, равный 2.
- Для MP3 и OggOpus указывать параметр не нужно, поскольку информация о количестве каналов уже содержится в файле. Файл автоматически распределится на нужное количество записей.
Распознанный текст в ответе разделяется параметром channelTag.
Можно ли распознавать 2 и более голосов с разделением на дикторов?
Распознавание многоканальных аудиофайлов доступно только при асинхронном распознавании.
Во время распознавания текст не разделяется по голосу, но вы можете разместить голоса в разных каналах и разделить распознанный текст в ответе параметром channelTag.
Количество каналов можно указать в запросе с помощью параметра config.specification.audioChannelCount.
Неполное распознавание аудио
Если вы распознаете потоковое аудио, попробуйте использовать разные версии API: API v1 или API v3.
Для распознавания аудиофайлом попробуйте разные модели.
Файл короче чем лимит, но при распознавании возникает ошибка
Если файл многоканальный, то учитывайте суммарное время записи всех каналов. Список ограничений см. в разделе Квоты и лимиты в SpeechKit.
Ошибка Internal Server Error
Убедитесь, что формат, указываемый в запросе, и реальный формат файла соответствуют друг другу. Если ошибку исправить не получается, пришлите нам примеры аудиофайлов, которые не удается распознать.
Когда высылается ответ при распознавании?
При синхронном и асинхронном распознавании ответ присылается один раз — после обработки запроса.
При потоковом режиме распознавания вы можете настроить поведение сервера. По умолчанию сервер возвращает ответ только после распознавания всей переданный фразы. С помощью параметра partialResults можно настроить распознавание так, чтобы сервер возвращал также и промежуточные результаты распознавания.
Получение промежуточных результатов позволит быстрее реагировать на распознаваемую речь, не дожидаясь окончания фразы.
Где найти пример для распознавания аудиофайлов?
Примеры использования SpeechKit собраны в разделе Практические руководства. Если вы хотите распознать предзаписанные аудиофайлы, используйте асинхронное распознавание.
Где найти пример для распознавания речи с микрофона?
Пример потокового распознавания речи, продиктованной на микрофон.
Можно ли использовать POST для потокового распознавания?
Потоковое распознавание использует механизм удаленного вызова процедур gRPC и не поддерживается в REST API, поэтому использовать метод POST не получится.
Обрывается / завершается сессия потокового распознавания
При использовании API v2 для потокового распознавания сервис ожидает аудиоинформацию. Если в течение 5 секунд данные не приходят, сессия завершается. Этот параметр нельзя изменить в API v2.
Потоковое распознавание работает в режиме реального времени. Вы можете отправлять на распознавание «тишину», чтобы сервис не закрыл соединение.
Мы рекомендуем использовать API v3 для потокового распознавания. Для отправки "тишины" в API v3 есть специальный тип сообщений, поэтому ее не придется имитировать в аудиозаписи самостоятельно.
Как определяется конец фразы и длительность сессии распознавания?
Конец фразы определяется по «тишине» после фразы автоматически. Подробнее об определении конца фразы см. в разделе Определение конца фразы.
Максимальная длительность сессии потокового распознавания составляет 5 минут.
Что делать, если SpeechKit не дослушивает или, наоборот, слишком долго ждет окончания разговора?
Перебивание и задержки при потоковом распознавании могут быть связаны с определением конца фразы. О том, как настроить EOU, см. рекомендации в разделе Определение конца фразы.
Ошибка OutOfRange desc = Exceeded maximum allowed stream duration
Эта ошибка означает, что превышена максимально допустимая длительность сессии распознавания. В этом случае вам нужно заново открыть сессию.
Для потокового распознавания максимальная длительность сессии составляет 5 минут. Это техническое ограничение, обусловленное особенностями архитектуры Yandex Cloud, изменить его нельзя.
Из чего складывается стоимость использования?
Примеры расчета стоимости использования, правила тарификации и актуальные цены смотрите в разделе Правила тарификации для SpeechKit.
Синтез речи (TTS)
Как озвучивать длинные тексты?
Чтобы озвучить большой текст, разбейте его на части любым удобным для вас способом. Максимальный размер запросов на синтеза речи составляет 5000 символов.
Как настроить ударения и произношение?
Чтобы скорректировать произношение отдельных слов и текста в целом, воспользуйтесь разметкой SSML или TTS.
Как добавить паузу в тексте?
Чтобы поставить паузу в тексте, используйте TTS-разметку. В скобках укажите длительность паузы в миллисекундах. Пауза появится в тех местах, где вы поставите тег. Например: Начало sil<[3000]> продолжение через 3 секунды
.
Запрос cURL не работает в Windows PowerShell
В терминале Windows PowerShell команда curl
является псевдонимом системного вызова Invoke-WebRequest
В документации Yandex Cloud примеры вызовов API даны в синтаксисе командной оболочки Bash. Вы можете запустить эти примеры без изменений в консоли Linux, терминале macOS или терминале WSL Windows 10 и выше. Чтобы запустить примеры в Windows PowerShell, потребуется их переработать самостоятельно. Подробнее о соответствии команд Bash и Powershell и советы см. в разделе Работа с Yandex Cloud CLI и API в Microsoft Windows.
Из чего складывается стоимость синтеза?
Примеры расчета стоимости использования, правила тарификации и актуальные цены смотрите в разделе Правила тарификации для SpeechKit.