Yandex tts engine что это
Перейти к содержимому

Yandex tts engine что это

  • автор:

Все в порядке, но.

Этот текст мало кто будет читать и мы можем написать здесь все, что угодно, например.
Вы живете в неведении. Роботы уже вторглись в нашу жизнь и быстро захватывают мир, но мы встали на светлый путь и боремся за выживание человечества. А если серьезно, то.

В целях обеспечения безопасности сайта от кибератак нам необходимо убедиться, что вы человек. Если данная страница выводится вам часто, есть вероятность, что ваш компьютер заражен или вы используете для доступа IP адрес зараженных компьютеров.

Если это ваш частный компьютер и вы пытаетесь зайти на сайт, например, из дома — мы рекомендуем вам проверить ваш компьютер на наличие вирусов.

Если вы пытаетесь зайти на сайт, например, с работы или открытых сетей — вам необходимо обратиться с системному администратору и сообщить, что о возможном заражении компьютеров в вашей сети.

  • © 2005-2023, «4PDA». 4PDA® — зарегистрированный товарный знак.

Настольный клиент для Yandex Speechkit text2speech на коленке

Вчера понадобилось мне записать голос для голосового (IVR) меню.. Решил воспользоваться голосами от яндекс.облака, тем более что они теперь все высококачественные, и от человеческого неотличимы. Но как бы это сделать поудобнее, чтобы не надо было потом файлы редактировать и конвертировать? Казалось бы, можно воспользоваться демкой на странице описания, но во первых там есть ограничение длины текста, во вторых она дает сохранить только запись в формате ogg, и в третьих иногда добавляет в запись рекламу. Оно и понятно в общем то, эта демка предназначена для показа технологии а не для коммерческого использования.

Резюме — надо получать записи как положено, через api, тем более что оно простое и понятное, только небольшая сложность с авторизацией. Но то что оно несложное не значит что им можно легко и просто с нуля воспользоваться, нужен хоть какой то интерфейс.

Беглый гуглёж ничего не принес, только несколько малопонятных проектов на гитхабе.

Уже думал быстренько наваять какой нибудь свой веб-интерфейс но тут вспомнил что есть Postman. Для тех кто не в теме — это замечательная программа для тестирования любых api интерфейсов.

Для дальнейших действий предполагается что вы уже зарегистрированы в яндекс.облаке, ваш аккаунт активен и оплачен (деньгами или грантом).

Итак, вооружимся документацией. Запрос к text2speech по сути это простой post запрос. Параметры передаются в теле запроса. Единственная сложность — это авторизация. Подписывать запросы надо IAM токенами, но у них срок жизни — до 12 часов, в некоторых случаях меньше. Яндекс рекомендует обновлять токены раз в час или вообще получать при каждом запросе. Получить токен можно в командной строке, но если это не автоматизировать, это придется делать руками и часто.

К счастью, у postman есть функционал pre-request script. Это когда программа, перед тем как отправить запрос к api, выполняет какие то действия. Скрипты пишутся там на js, ничего сложного. Результаты потом отправляются в запрос в переменных.

Получим сначала пару нужных значений: id каталога и oauth-токен.

Первое берется просто из адресной строки браузера

Oauth-токен берется по инструкции на этой странице (вкладка api). Я намеренно не привожу тут ссылку для его получения, чтобы вы использовали только ссылку из официальной документации. Помните, что oauth-токен — это ключ к вашему облаку, распоряжайтесь им бережливо. Кроме того, можно использовать токен для сервисного аккаунта, ему можно дать только нужные права.

Итак, открываем Postman, и заполняем запрос:

Адрес post запроса https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize, тип авторизации Bearer Token, вместо самого токена пишем конструкцию >.

Заполняем тело запроса:

Тип кодирования x-www-form-urlencoded.
Ключи:
text — >
lang — ru-RU
speed — 1
voice — oksana (список голосов доступен в документации)
emotion — good (список эмоций доступен в документации)
folderId — id каталога, который вы получили выше
format — mp3 (список форматов доступен в документации)

Ну и на вкладку pre-request script вставляем простой скрипт. Не забудьте вставить ваш oauth-токен.

const postRequest = < url: 'https://iam.api.cloud.yandex.net/iam/v1/tokens?yandexPassportOauthToken=', method: 'POST', >; pm.sendRequest(postRequest, (error, response) => < console.log(error ? error : response.json()); var tok = response.json(); console.log(tok['iamToken']); pm.collectionVariables.set("token", tok['iamToken']); >); var text = "\ Это пример текста который надо озвучить. Для переноса строки пользуйтесь обратным слешем.\ "; pm.collectionVariables.set("text", text); 

Ну вот собственно и все. Теперь если нажать на кнопку «Send» в нижнюю часть окна загрузится mp3 файл, который можно там же прослушать и сохранить.

  • yandex speechkit
  • postman
  • text2speech

Возможности модуля Text to Speech в FreePBX

В этот раз мы разберем, как правильно выполнить установку модуля Text To Speech в FreePBX, и каким образом его в дальнейшем применять. Его предназначение – синтез речи на основе текста, то есть озвучивание сохраненного текста в телефонном канале.

Итак, в текущей статье мы опишем, как грамотно инсталлировать и настроить использование Text To Speech в FreePBX, начиная с версии 13.

Область применения

Модуль позволяет синтезировать текст в речь. Это есть дает возможность озвучивать отдельные фразы и даже длинные фрагменты текста. Характерный пример использования – изменение стандартного приветствия в FreePBX.

Стоит отметить, что система является бесплатной. Однако качество речи несколько уступает аналогичному в платных модулях, так что если вопрос качества для вас принципиален, то посмотрите лучше в сторону таких коммерческих сервисов, как Yandex SpeechKit и им подобных.

И еще одна небольшая ремарка: модуль не способен работать с динамической вставкой данных. Озвучивается только текст, который прописывается в соответствующем поле (Text). При этом нельзя применять какие-либо переменные и изменять данные по ходу действия.

Если есть потребность в динамическом синтезе речи, то здесь подойдет такое решение, как eSpeak , которое отлично подходит для работы в связке с Asterisk .

Установка

Разберем, как правильно инсталлировать Text To Speech Engines и Text To Speech .

Инсталляция модуля Text To Speech Engines

Перед запуском основного модуля необходимо установить вспомогательный – Text To Speech Engines , отвечающий за подключение синтезирующих речь систем к FreePBX.

Для его инсталляции необходимо выполнить следующие шаги:

  1. Открыть меню Admin и найти там вкладку Module Admin . Там следует нажать Check Online .
  2. Перейти в раздел Settings и отыскать там вспомогательный Text To Speech Engines . Затем необходимо нажать на соответствующую кнопку для загрузки и установки.
  3. Появится окно, в котором следует нажать Confirm , подтвердив таким способом, что вы согласны установить продукт. Ожидаем, когда закончится установка, и переходим к следующему шагу.

Инсталляция Text To Speech

Инсталляция основного модуля также проводится в три этапа:

  1. Открываем Admin → Module Admin . Необходимо выбрать группу модулей Extended нажатием Check Online . Если она активна, оставляем опцию в текущем состоянии.
  2. Ищем пункт меню Applications , который должен содержать искомый модуль Text To Speech . Выбираем пункт Download and Install для его загрузки и установки.
  3. Жмем Confirm после завершения процесса скачивания и появления окна с уведомлением, тем самым подтвердив инсталляцию.

Как только работы по установке основного и вспомогательного модулей будут завершены, следует нажать Apply Config .

Настройка

Чтобы настроить продукт, откроем вкладку Applications → Text To Speech . Здесь находим кнопку Add TTS , нажимаем ее. Прописываем или выбираем:

  • Name (любое подходящее имя);
  • Text (текст, написанный на поддерживаемом программой синтеза речи языке);
  • Choose an Engine (система синтеза речи, по умолчанию используется Flite );
  • Destination (направление, по которому будет направлен звонок после озвучивания материала).

Стоит учитывать, что Flite не умеет работать с русским языком. Чтобы решить эту проблему, можно использовать одну хитрость – писать текст транслитом. Чуть ниже мы разберем систему синтеза eSpeak , в которой предусмотрена поддержка русского языка.

Применение на практике

Для направления вызова в модуль требуется выбрать его в перечне Destination .

Разберем пример, в котором используются входящие маршруты. Откроем Connectivity → Inbound Routes , где создадим новый или модифицируем существующий маршрут. Укажем требуемые параметры, для опции Set Destination определим Text To Speech .

Как добавить систему синтеза

Разберем, как интегрировать с модулем Text To Speech новую систему, синтезирующую речь. В качестве образца возьмем уже упоминавшийся нами eSpeak . Его установке посвящены другие труды, поэтому заострять внимание на этом не будем. Просто условимся, что он уже инсталлирован и нормально функционирует.

Для добавления решения eSpeak в качестве речевой синтезирующей системы откроем Settings → Text To Speech Engines и нажмем Add TTS Engine . Необходимо заполнить 2 поля:

  • Engine Name ,
  • Engine Path .

В первом поле необходимо указать наименование системы синтеза (в данном случае eSpeak). Во втором указывается путь к бинарному файлу ( /usr/bin/espeak ).

Стоит упомянуть, что изначально система может распознать только 4 системы, синтезирующие речь. К ним относятся: Flite, Text2Wave, Pico, Swift. Как видно, eSpeak в этом перечне отсутствует. Для расширения списка поддерживаемых систем открываем файл /var/www/html/admin/modules/tts/agi-bin/propolys-tts.agi . Он содержит блок кода Switch ($engine). Добавим в него:

case 'espeak': exec($enginebin." -f $textfile -w $tmpwavefile -s 100 -v ru+3"); break;

Этот код необходим для запуска синтеза речи посредством eSpeak . Чтобы применить настройки, в консоли операционной системы Linux указываем:

После указанных изменений модуль eSpeak может использоваться системой FreePBX.

Text 2 Speech. Появилась потребность использовать какой-нибудь синтезатор на русском. Есть варианты?

Появилась потребность использовать какой-нибудь синтезатор. Что-то наподобие yandex speechkit только бесплатный и для коммерческих целей. Есть идеи? Должно быть на русском. Может быть можем тренить модельку сами. Желательно питон

  • python
  • python-3.x
  • искусственный-интеллект
  • text-to-speech

Отслеживать
задан 26 мая в 21:50
Daniel Azamat Daniel Azamat
Есть rtx 3090 + 32 gb ram + 500 gb ssd m2
26 мая в 22:12

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Можно и самому модель сделать, но готовые варианты всегда быстрее и проще использовать: https://pythonprogramminglanguage.com/text-to-speech/ В этой статье можете найти основную полезную инфу по библиотеке Pyttsx, она должна подойти для описанных вами задач

PS.Tacotron 2 ,Mozilla TTS, ESPnet, DeepSpeech, WaveNet тоже должны подойти

Отслеживать
ответ дан 26 мая в 21:57
1,251 1 1 золотой знак 2 2 серебряных знака 17 17 бронзовых знаков
ModuleNotFoundError: No module named ‘engine’
26 мая в 22:07
Очень плохо распознает даже слово привет((
26 мая в 22:11

@DanielAzamat есть еще: Tacotron 2 ,Mozilla TTS, ESPnet, DeepSpeech, WaveNet Они все имеют свои особенности, так что вам надо будет выбрать наиболее подходящую

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *