Плагин TextToSpeech
-
@Dimich-SDU:
@dev:
@Dimich-SDU:
Да, это работает.
Добрый день, это хорошо, значит проблема с токеном, попробуйте токен от сюда:
> > https://webasr.yandex.net/ttsdemo.html > > > >
Ок, сейчас с работы доеду до дома и попробую.
А что я должен буду услышать? То что будет вписано на этой странице в окне тест или то что я пропишу в своем сценарии?
Добрый день, вы должны проверить через сценарий
-
@Dimich-SDU:
@dev:
@Dimich-SDU:
Ок, сейчас с работы доеду до дома и попробую.
А что я должен буду услышать? То что будет вписано на этой странице в окне тест или то что я пропишу в своем сценарии?
Добрый день, вы должны проверить через сценарий
С токеном из ссылки работает. Спасибо большое за подсказку. И если я правильно понимаю, этот токен не будет работоспособен постоянно, он типа тестовый (временный).
Выходит проблема в моем токене. Как получить, правильный я не пойму, там на Яндекс Облаке такие джунгли в инструкциях, ничего не понятно, какая последовательность действий, куда вводить данные, которые они указывают в инструкциях, взрыв мозга сплошной.
Писал в тех.поддержку, они только посочувствовали, согласились, что инструкции и последовательность действий по получению токенов действительно очень сложны, обнадежили, что их инженеры работают над упрощением возможности получения токенов… Сразу полегчало...
Подскажите еще пожалуйста, реальный (правильный) токен должен выглядеть также как тестовый (последовательность символов, потом тире, опять символы, тире, символы...)? Или это может быть абсолютно любой набор и просто символов без тире?
Добрый день, в Яндексе происходит миграция сервиса и пока до сих пор не ясно, как и что работает из за отсутствия корректной документации. Кто то получил токены ранее и они полноценно функционируют. Можно попробовать автоматически забирать токен с тестовой страницы
-
Думаю вывести звук через Яндекс.Станцию, может у кого-то уже получилось ?
-
@fanagor, нужно api чтобы, наверное, через Яндекс-облако передать нужные данные. Вообще мне сам девайс от Яндекс понравился (неплохая аппаратная начинка и звук), но вот с софтом от Яндекс он для умного дома не слишком приспособлен...не знаю как сейчас, но раньше чтобы сделать навыки надо было постараться.
Мне кажется, что более продуктивно будет хакнуть одноплатник Яндекс-станции и залить туда debian, на который накатить тот же mdmTerminal2. Более подробно о нем писал тут.
Мне нравятся "легко программируемые" возможности такого голосового ассистента (сценарий iH и железка с mdmTerminal2). Плохо одно - нет функционально законченного устройства, на которое можно установить mdmTerminal2. В частности мне нужна железка (одноплатник с Eth, массив микрофонов, RGB-индикация, усилитель на борту с клеммами для подключения динамиков и внешним, либо POE-питанием) с установкой в потолок! - хочу спроектировать, но времени совсем нет для этого...
-
При обращении из сценария типа this.info("text2speech","admin",'Свет прихожая включен'); правильно понимаю, что в отладчике плагина должно что-то происходить ? У меня он молчит. В отладчике пусто. Тестовая фраза также не произносится. Где смотреть, кто подскажет ?
-
@fanagor Добрый день, а токен у вас есть ?
Также проверьте что у вас установлены в системе один из следующих плееров:
mplayer afplay play aplay
-
@dev токен есть. Плеер mplayer не поставился. "afplay play aplay" не нашел таких. VLC не подходит ? Не говорит, ну никак. Нет тестовой фразы. Может специфический кодек какой требуется для плагина ?
-
У кого сейчас работает text2speech?
И токен который вводится в параметрах плагина, - это IAM-токен ?
-
привел в рабочее состояние text2speech
Как оказалось, на сегодняшний момент Yandex полностью поменял API по сравнению с тем, под который написан плагин, по этому пришлось переписать немножко код (я качал и ковырял версию 0.0.4 с гитхаба).
Для того что-бы получить доступ к фунциям Yandex SpeechKit пришлось:
- зарегистрировать на себя облако создав платежный аккаунт,
- получить IAM-токен
- создать каталог в облаке (и запомнить его ID - он нам далее пригодится для синтеза звука)
- в каталоге создать - Сервисный аккаунт
- в сервисном аккаунте создать API-ключ - и запомнить его - он нам далее пригодится для синтеза звука.
Итого: по результатам регистрации на Yandex должен быть API-ключ и ID каталога.
Далее ковырял установленный плагин, заранее прошу прощения за корявый код, т.к. таких слов как js-node и CURL до текущей ситуации я не знал.
Ковырял при помощи описания API от Yandex https://cloud.yandex.ru/docs/speechkit/tts/request + гуглил по синтаксису и функциям языков.По большому счету надо переписать в плагине одну библиотеку из модуля "yandex-speech" для этого идем в: /var/lib/intrahouse-c/plugins/text2speech/node_modules/yandex-speech/lib
там есть файл: YandexTTS.jsСодержимое YandexTTS.js после моего ковыряния:
'use strict'; var request = require('request'); var fs = require('fs'); var yandex_tts_url = 'https://tts.api.cloud.yandex.net/speech/v1/tts:synthesize'; var YandexTTS = function (options, callback) { var headers = {'Authorization': 'Api-Key ' + options['developer_key']}; var dataString = 'text='+ options['text'] + '&lang='+ options['lang'] + '&voice='+ options['speaker'] + '&emotion='+ options['emotions'] + // '&speed=' + options['speed'] + ''; '&speed=0.9' + // '&folderId=' + options['folder_id'] + ''; '&folderId=b1g92u63tba34rg4c8sr'; var request_options = { url: yandex_tts_url, method: 'POST', headers: headers, body: dataString }; var file = fs.createWriteStream(options['file']); file.on('finish', callback); request(request_options).pipe(file); }; module.exports = YandexTTS;
Если кто-то будет пользоваться исправленным кодом, в коде надо заменить слово b1****************sr на ранее полученный ID каталога и в параметрах плагина надо в поле токен прописать ранее полученный API-ключ и после этого перезапустить плагин.
В параметры плагина text2speech, пытался добавить элементы: folderId и speed - но что-то у меня не получилось, - параметры в интерфейсе появились, данные там сохранялись, но вызвать их у меня не получилось.
Далее, как выяснилось, в новом API SpeechKit в качестве ответа выдает файл в формате ogg (по умолчанию), или в RAW (надо дополнительно выбирать при передаче параметров) - который потом придется преобразовывать в какой-то другой формат. Сразу в формате wav SpeechKit не синтезирует. Поэтому пришлось доустановить в линуксе mplayer, т.к. тот что был у меня установлен по умолчанию файлы ogg не проигрывал.
При вызове информатора, в тексте который необходимо озвучить можно расставлять ударения в словах вставляя перед ударной гласной 3 символа: %2B согласно документации Yandex вообще-то надо ставить символ "+" но у меня как-то не срослось с урл-кодированием передаваемого текста, и поэтому вместо "+" ставлю %2B
В целом на текущий момент синтез звука в IH работает.
И еще, изначально в text2speech не было голоса alena, - как по мне - так это самый приятный голос из синтезируемых. Его можно добавить поправив файл /var/lib/intrahouse-c/plugins/text2speech/text2speech.json добавив следующий код в параметре yandex_speaker:
{ "id": "alena", "name": "Alena" },
и после перезапуска плагина можно будет выбрать и такой голос.
-
Всем Привет !!!
Кому интересно ...... text-to-speech от RHVoice работает offline :
установка на Ubuntu 18.04 LTS server:Устанавливаем ALSA
sudo -i
apt-get install alsa alsa-tools
adduser yourusername audio
sudo init 6
alsamixer
apt-get install mpg123 # консольный playerУстанавливаем RHVoice
cd /usr/src
apt-get install -y scons gcc git flite flite1-dev expat libunistring-dev libsox-dev libpulse-dev libao-dev
git clone https://github.com/Olga-Yakovleva/RHVoice
cd RHVoice
scons
sudo scons X11=no
scons install
ldconfig
exitПроверяем
echo "привет" | RHVoice-test -p anna -o - 2>/dev/null | aplay - 2>/dev/null
Создаем сценарий и прописываем команду......
Прекрасно работает на Linux...
На Win10 не получается запустить из блока сценария ... что странно... из командной строки работает... пытался через "балаболку" тоже не получилось.
mpg123 player работает из блока сценариев без проблем (для озвучки нажатий кнопок)
Может кто-то сможет помочь с Win10!!!
Удачи...