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