Не имею никаких контактов со сбером и никак к ним не отношусь! Просто нашёл БЕСПЛАТНЫЙ инструмент и реализовал для СЕБЯ компонент. Используйте, как есть, все доработки и хотелки реализуйте самостоятельно
Компонент, позволяющий генерировать голос использую SaluteSpeech API. Пока бесплатно доступно 200 000 символов для физ. лиц. Мне для того чтобы проговорил с утра погоду и разную инфу с датчиков, достаточно, всё приятнее гугл-транслейта произношение.
Подробнее: https://developers.sber.ru/portal/products/smartspeech
- Зарегистрироваться как частное лицо на https://developers.sber.ru/studio
- Создать проект SaluteSpeech
- Сгенерировать токен "Авторизационные данные"
скопировать sbertts в custom_components
Настройки -> Устройства и службы -> Добавить интеграцию -> SaluteSpeech TTS
Укажите:
authentication(base64client_id:client_secret)languagevoicerate
После добавления интеграции можно менять дефолтные language/voice/rate через:
Настройки -> Устройства и службы -> SaluteSpeech TTS -> Настроить.
authentication - готовый токен basic авторизации, взять можно в ЛК или сделать самому закодировать в base64 строку client_id:client_secret
Доступные voice
- Nec - Наталья
- Bys - Борис
- May - Марфа
- Tur - Тарас
- Ost - Александра
- Pon - Сергей
- Kin - EN Kira
Kira доступна только при использовании английского языка (en-US)
доступные rate
- 8000
- 24000
action: tts.speak
target:
entity_id: tts.salutespeech
data:
media_player_entity_id: media_player.bt_03
message: "Текст"
options:
language: ru-RU
voice: Nec
rate: "24000"
Можно менять voice/rate/language в options на каждый вызов, не создавая отдельные интеграции под каждый голос.
Поддерживается язык SSML, нужно использовать тег <speak>
https://developers.sber.ru/docs/ru/salutespeech/synthesis/ssml
Все желающие, кто может внести улучшения, присылайте PR
Что хотелось бы реализовать:
- Вывести в аттрибуты количество оставшегося запаса символов (но я не нашёл как это сделать через API)
- Добавить так же распознавание речи из аудио (STT)