Интернет Веб-сервисы
|
Поделиться
«Яндекс» объявил о переходе на использование в мобильных приложениях технологии распознавания голоса собственной разработки под названием Yandex SpeechKit. До этого поисковик использовал для этих целей платформу, созданную компанией Nuance.
Yandex SpeechKit работает в операционных системах iOS и Android, поддерживает, по словам создателей, две темы запросов: «общую» (все, что ищут в интернете) и «гео», связанную с поиском адресов, названий организаций и т.
Голосовой ввод сейчас доступен только на русском языке, таким образом украинская и турецкая версии поисковика по-прежнему продолжают использовать движок Nuance.
Библиотеки Yandex SpeechKit как для Android, так и для iOS разработчикам предоставляются бесплатно, однако число бесплатных запросов к движку распознавания голоса ограничено 10 тыс. запросов в день. Стоимость обращения при превышении этого числа не установлена, сообщили CNews в «Яндексе».
Публикация Yandex SpeechKit именно для мобильных платформ, по словам руководителя проекта Дениса Филиппова, была обусловлена особенной актуальностью голосовых технологий « там, где есть сложности с текстовым вводом, а это прежде всего мобильные устройства». Но, говорит Филиппов, он думает и над созданием фреймворка и для десктопных приложений.
5 команд на 1 продукт: как X5 выстроила рабочие процессы от визуализации и прозрачных взаимосвязей до работы с блокерами, WIP-лимитов и аналитики
Бизнес-коммуникации
По результатам внутренних исследований поисковика, Yandex SpeechKit способен верно распознавать 84% слов в «общепоисковой» категории и 94% слов – по геозапросам. Средняя скорость распознавания составляет 1,1 секунды.
При создании Yandex SpeechKit было использовано около 300 часов мужской, женской и детской речи для обучения акустических моделей и «сотни миллионов специально подготовленных текстов» для обучения языковой модели.
Руководитель проекта Yandex SpeechKit Денис Филиппов
Стоит заметить, что API распознавания речи для мобильных устройств (но исключительно под управлением Android) предоставляется Google (API android.speech). В его описании ограничение на количество бесплатных обращений не встречается.
Владислав Мещеряков
Скрипт для озвучивания длинного текста.
Для того начала нам нужно будет зарегистрироваться в Yandex Cloud и создать платежный аккаунт.
Дальше нужно получить API ключ, при помощи которого мы будем авторизовывать наши запросы.
Откройте https://console.cloud.yandex.ru/cloud
Кликните на фолдерДалее в левом меню перейдите на вкладку Сервисные аккаунты.
Нам потребуется создать один. У меня уже он есть, но вот подробная инструкция как создать еще один:
Кликните на кнопку «Создать сервисный аккаунт»Задайте ему имя и добавьте роль editor
.
После этого клините в только что созданный аккаунт и создайте новый API-ключ.
Ключу можно добавить описание, чтобы не путаться потом между разными ключами.Скопируйте API-ключ в какой-нибудь файл. Потому что больше его увидеть нельзя будет. Можно будет только создать новый.
Код на Python 3.8 для озвучивания текста. Для примера я взял текст А.С. Пушкина из Повестей Белкина, потому что он уже в public domain и на него не распространяются авторские права. Текст я сохранил в кодировке utf-8
и немного почистил от сносок. Так же оставил только русские переводы французских фраз, так как SpeechKit не поддерживает французский язык.
Я заметил, что несмотря на то, что поддерживается синтез звука по отрывкам текста длинной до 5000 тыс знаков, лучше работает с небольшими кусками. Поэтому я поделил текст на отдельные предложения и озвучивал их.
У SpeechKit есть мужские и женские голоса и теоретически, женские реплики можно было бы озвучить отдельно другим голосом, но для этого пришлось бы дополнительно разметить текст, а я хотел сделать максимально простой пример.
Размер выбранного произведения — 22 тыс. знаков. Озвучивание его при помощи премиального голоса Филипп обошлось в 27₽.
Этот скрипт побьет текст на предложения, озвучит их в SpeechKit и потом склеит результат при помощи ffmpeg
.
Как установить ffmpeg на ваш компьютер можно посмотреть тут.
Весь код примера на гитхаб.
Кстати если вам хочется получить вместо Ogg Opus файла обычный MP3, то сделать это можно при помощи того же ffmpeg
.
Для этого нужно выполнить следующую команду
ffmpeg -i out/output.ogg -acodec libmp3lame out/output.mp3
После этого в терминале вы увидите примерно следющее
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
built with Apple clang version 12.0.0 (clang-1200.0.32.28)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.1_9 --enable-shared --enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr --enable-videotoolbox --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
Input #0, ogg, from 'out/output.ogg':
Duration: 00:25:40.29, start: 0.006500, bitrate: 85 kb/s
Stream #0:0: Audio: opus, 48000 Hz, mono, fltp
Metadata:
encoder : Lavf57.56.100
Stream mapping:
Stream #0:0 -> #0:0 (opus (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
Output #0, mp3, to 'output.mp3':
Metadata:
TSSE : Lavf58.45.100
Stream #0:0: Audio: mp3 (libmp3lame), 48000 Hz, mono, fltp
Metadata:
encoder : Lavc58.91.100 libmp3lame
size= 12039kB time=00:25:40.29 bitrate= 64.0kbits/s speed=87.9x
video:0kB audio:12039kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0. 001922%
Как видно наш исходный поток opus, 48000 Hz, mono, 85 kb/s
был пережат в mp3 с параметрами mp3 (libmp3lame), 48000 Hz, mono, fltp 64.0kbits/s
.
Дьявол кроется в деталях, так что для получения действительно качественного продукта придется хорошо подготовить текст и вероятно внимательно отслушать результат. Удачных экспериментов.
Powered by Universal Speech Solutions LLC
Выпущен плагин Yandex Speech Recognition (SR) 1.6.0 для сервера UniMRCP (UMS).
Плагин основан на следующих компонентах:
В настоящее время бинарники доступны для следующих дистрибутивов Linux:
Этот выпуск создан для более новых версий gRPC, Protobuf и API Яндекса/Google. В выпуске представлено множество дополнительных функций и улучшений существующей функциональности.
Ниже приводится подробный список изменений, внесенных в этот выпуск.
Посетите страницу плагина Yandex SR для получения дополнительной информации.
http://www.unimrcp.org/ysr
Спасибо за использование UniMRCP.
—
Арсен Чалоян
Автор UniMRCP
http://www.unimrcp.org
Обратите внимание, что бинарные пакеты для Ubuntu 22.04 LTS были опубликованы и могут быть получены через следующий репозиторий APT. …Подробнее
Просмотреть все сообщения
© Copyright 2008 — 2023 Арсен Чалоян
Вернуться к началу
Classic Docs
Поиск
Этот компонент нужен доступ в Интернет, так как он будет запрашивать переводы в сервисе Яндекс Переводчик. См. http://api.yandex.com/translate/ для получения дополнительной информации
Компонент Yandex Translate используется в примере приложения ThunkableChat: Чат с мгновенным переводом 55
Запросить перевод ( язык для перевода, текст для перевода)
Запрашивает перевод в сервис Яндекс Переводчик с указанием текста для перевода и языка для перевода текста. Язык должен быть указан в двухзначном коде, например. ‘en’ для английского, а список поддерживаемых языков приведен ниже. Яндекс Переводчик попытается определить исходный язык. Вы также можете указать язык для перевода, т. е. «es-ru» укажет испанский на русский
Got Translation (responseCode, translation)
Событие, срабатывающее, когда сервис Яндекс Переводчик возвращает переведенный текст. Даже также предоставляет код ответа для обработки ошибок. Если responseCode не равен 200, то что-то пошло не так и перевод будет недоступен. Вы можете оформить свой ключ на Яндекс
По данным Яндекса, доступно более 90 языков, включая нижеуказанные
Код языка | |
Датский | |
англ. |