Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Инструкция: Как вывести звук на bluetooth колонку? #17

Closed
DivanX10 opened this issue Mar 13, 2023 · 2 comments

Comments

@DivanX10
Copy link

Спасибо вам за эту интеграцию с нормальным синтезом речи. Хотел бы добавить мануал как добавить вывод звука, если имеется bluetooth колонка. Все дело в том, что в документации пишется, что надо добавить в configuration.yaml и это конечно работает, но при выборе объекта, куда будем выводить звук может не оказаться bluetooth колонки. Я долго искал решение и нашел. Думаю, что, кто с этим столкнется, это будет полезным и сократит время.

tts:
  - platform: marytts
    host: localhost # Адрес сервера
    port: 9898
    codec: WAVE_FILE
    voice: xenia # Имя голоса который хотите использовать.
    language: ru # Не используется. Настройки языка указываются в настройках сервера.
  1. Если Home Assistant как основная ОС (HAOS), то читаем эту документацию TTS Bluetooth Speaker for Home Assistant

  2. Если Home Assistant стоит на Debian, то делаем следующее

Отредактируем client.conf

nano /etc/pulse/client.conf

Добавим следующее

default-server = unix:/usr/share/hassio/audio/external/pulse.sock
autospawn = no

image

Перезапускаем pulseaudio

pulseaudio -k && pulseaudio --start

Ставим аддон Mopidy версии Current version: 2.1.1 и ставим только эту версию. Mopidy 2.2.0 не ставить - она сломанная. Подробнее про поломанную версию Mopidy 2.2.0 читать здесь

Добавляем в configuration.yaml

#MPD music player daemon
media_player:
  - platform: mpd
    name: "MPD Mopidy"
    host: localhost
    port: 6600

Перезагружаем Home Assistant полностью, чтобы перезагрузился сам Debian
image

Подключаем bluetooth колонку к Debian, kb,j через GUI, либо через консоль используя команду bluetoothctl

Включим bluetooth

power on

Запуск сканирования девайсов

scan on

Как увидели свой девайс, спариваемся с устройством

pair mac адрес девайса

Подключаемся к устройству

connect mac адрес девайса

Добавляем устройство в доверенные

trust  mac адрес девайса

Далее, как добавлен bluetooth девайс то в двух аддонов Rhasspy Assistant и Mopidy нужно указать источник вывода звука bluetooth девайса

  1. В Rhasspy Assistant указываем так
    image

  2. В Mopidy указываем так
    image

После этого открываем Панель разработчика => Службы
Вид в текстовом файле
image

service: tts.marytts_say
data:
  entity_id: media_player.mpd_mopidy
  message: >-
    Спустя 15 лет жизнь некогда бороздившего космические просторы Жана-Люка
    Пикара

Вид в GUI
image

@Navatusein
Copy link
Owner

Спасибо за инструкцию! Уже добавил в основную ветку.

@DivanX10
Copy link
Author

Еще один вариант, если нет желания использовать аддон mopidy по своим веским причинам и если Home Assistant установлен на Debian. Например мы хотим слушать свою коллекцию музыки, то удобнее использовать свой MPD и следовательно чтобы работал голосовой синтез речи, а также это позволит вывести на несколько колонок, если это указать в конфиге MPD.

Устанавливаем MPD командой

sudo apt update
sudo apt install mpd

Прописываем конфиг для работы MPD. MPD по умолчанию использует учетную запись mpd и группу audio. Это ограничивает нас в том, что мы не можем размещать файлы mpd в другом месте, например в папке home. Поэтому в конфиге я специально использую учетную запись root и группу root, так как это позволяет мне размещать файлы для MPD там, где мне хочется и MPD при запуске не будет ругаться на запрещенный доступ к папкам mpd

music_directory			"/home/mpd/music"
playlist_directory		"/home/mpd/playlists"
db_file				"/home/mpd/tag_cache"
log_file			"/home/mpd/mpd.log"
pid_file			"/home/mpd/pid"
state_file			"/home/mpd/state"
sticker_file			"/home/mpd/sticker.sql"
user				"root"
group				"root"
bind_to_address			"0.0.0.0"
port				"6600"
filesystem_charset		"UTF-8"


audio_output {
	type "pulse"
	name "Pulse Mi Portable Bluetooth Speaker"
	sink "bluez_sink.F4_4E_FD_13_60_1E.a2dp_sink"
}


decoder {
        plugin		"wildmidi"
        enabled		"no"
        #config_file	"/etc/timidity/timidity.cfg"
}

В Debian узнать имя bluetooth колонки можно командой

Вывести список звуковых карт

pacmd list-cards

Узнать активные профили

pacmd list-cards | grep 'active profile'

Если в Debian не отображаются звуковые карты (например будет вот так 0 card(s) available), то вероятно они переехали в Home Assistant и можно получить список через терминал аддон SSH & Web Terminal.

В терминале аддона SSH & Web Terminal вводим команду для вывода звуковых карт

pactl list sinks

Получим список звуковых карт
image


Справочная информация

Запустить MPD

sudo systemctl start mpd

Остановить MPD

sudo systemctl stop mpd

Проверить статус MPD

sudo systemctl status mpd

Перезапустить MPD

sudo systemctl restart mpd

Редактировать конфиг mpd.conf

sudo nano /etc/mpd.conf

Очистить запись в конфиге mpd.conf. Удаляется все и будет чистый файл и можно снова все вставить

sudo echo -n > /etc/mpd.conf

Удалить пакет mpd

sudo apt remove mpd
sudo apt autoclean && sudo apt autoremove

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants