Skip to content

Latest commit

 

History

History
39 lines (29 loc) · 1.8 KB

File metadata and controls

39 lines (29 loc) · 1.8 KB

Голос agent-os

Разговор голосом поверх веб-оболочки. Секция [voice] в model.toml:

[voice]
tts_cmd = "espeak-ng -v ru --stdin -w /dev/stdout"
asr_cmd = "bash /home/agent/.agent/asr.sh"

agentd отдаёт /api/tts (текст → WAV) и /api/listen (аудио → текст) — оба прогоняют команду из конфига, stdin↔stdout. Фронт озвучивает ответы и пишет микрофон.

Озвучка (TTS)

espeak-ng (лёгкий, ставится apt install espeak-ng) работает под песочницей agentd прямо сейчас. Голос естественнее — piper (та же схема stdin→WAV). Проверено вживую: текст → валидный WAV.

Распознавание (ASR)

vosk + русская модель:

apt install -y python3-pip ffmpeg
pip3 install --break-system-packages vosk
curl -L https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip -o m.zip
unzip m.zip && mv vosk-model-small-ru-0.22 /home/agent/.agent/vosk-model
cp asr.sh vosk_transcribe.py /home/agent/.agent/

Круг проверен: espeak-фраза → /api/listen → vosk → русский текст.

Важно про песочницу. ffmpeg и vosk многопоточные и тяжёлые — под строгим SystemCallFilter=@system-service @sandbox у agentd они глохнут (espeak-у хватает, им — нет). Продакшн-путь: вынести голос в отдельный помощник вне песочницы (по образцу agent-opd), тогда agentd остаётся закалённым. Пока ASR опционален (asr_cmd = "" по умолчанию).