-
Notifications
You must be signed in to change notification settings - Fork 8
settings.ini
Описание настроек по умолчанию. Если mdmTerminal2/src/settings.ini
не существует, то он будет сгенерирован автоматически из CFG
в default_settings.py.
Если какие-то параметры отсутствуют в settings.ini
то они будут взяты из CFG
.
Опции логического типа могут иметь 2 состояния (регистр не важен):
-
Включено:
on
,1
,true
,yes
,enable
. -
Выключено:
off
,0
,false
,no
,disable
.
Имена секций и всех параметров должны быть обязательно в нижнем регистре иначе терминал их может проигнорировать.
Если режим включен, то пауза между ключевым словом и командой не нужна, терминал будет вести запись и искать ключевые слова одновременно. Запросы на распознавания к stt будут происходить чаще.
Для работы в этом режиме у всех моделей должны быть фразы в settings.ini
. Лучше удалить все модели перед включением и записать новую (только одну). Это исключает ложное срабатывание - записи в которых нет ключевого слова (или оно не было распознано) будут проигнорированы.
Значение опций будет проигнорировано для записи при активации: no_hello
, optimistic_nonblock_tts
, ask_me_again
, blocking_listener
(но они работают для ask:
и voice:
).
Опция clear_models
будет включена принудительно.
[settings]
# 'apikeytts' и 'apikeystt' теперь хранятся не в settings, а в секциях провайдеров
# У каждого провайдера свои 'apikeytts' и 'apikeystt'.
# 'ip_server' переименован в [smarthome] ip.
# Если терминал найдет их в settings, то сам перенес в нужную секцию.
# Провайдер синтеза речи
# google - Ключ не нужен, голос так себе.
# yandex - cм. [yandex]
# aws - Polly от AWS. Нужен аккаунт AWS.
# azure - MS Azure, см. [azure]
# rhvoice, rhvoice-rest - "локальные провайдеры". См. соответствующие секции.
providertts = google
# Провайдер распознавания речи.
# google - Ключ не нужен, хорошо распознает речь.
# wit.ai - нужен ключ.
# microsoft - нужен ключ, не тестировалось.
# yandex - см. [yandex]
# azure - MS Azure, см. [azure]
# pocketsphinx-rest, vosk-rest - "локальные провайдеры". См. соответствующие секции.
providerstt = google
# IP терминала, определяется автоматически при первом запуске.
# Используется только для проговаривания.
ip =
# Чувствительность детектора на фразы-активаторы, задается от 0 до 1.
# Чем выше, тем лучше snowboy будет реагировать на фразы и больше ложных срабатываний.
# Можно выставить отдельно для каждой модели - см. [models]
sensitivity = 0.45
# Будет проигрывать ding.wav при активации
alarmkwactivated = on
# Будет проигрывать dong.wav перед фразами. Исключение - уточняющие вопросы
alarmtts = on
# Будет проигрывать dong.wav по окончанию записи фразы.
# !!!Если blocking_listener = off, это НЕ сигнал перед началом распознавания речи.
# Распознавание идет параллельно с фразой и начинается почти сразу после ding.wav
# Ждать пока терминал закончит фразу не обязательно.
alarmstt = on
# Сигнал о том что команда успешно распознана и принята в обработку.
alarm_recognized = off
# Если 'ip_server' не задан, то ip первого кто подключится к терминалу станет 'ip_server'.
# Исключение - 127.0.0.1
first_love = on
# Терминал будет отвергать подключения от ip не совпадающих с 'ip_server'
# Включение этой опции без first_love сделает удаленную конфигурацию невозможной.
# Исключение - 127.0.0.1
last_love = off
# Индекс микрофона. Посмотреть индексы можно запустив mdmTerminal2/scripts/mic.py
# Если -1 - устройство по умолчанию.
mic_index = -1
# Запрос к провайдеру TTS не будет блокировать выполнение до генерации аудио.
# Это сокращает время ответа, т.к. запрос будет идти параллельно всяким динг-донгам
# если время отклика TTS большое, паузы между сигналами и фразой могут напрягать.
optimistic_nonblock_tts = on
# Если в записи нет слов или STT не смог ничего распознать, будет переспрашивать
# данное количество раз. Если 0 - не переспрашивает.
ask_me_again = 0
# Несущественные сообщения не будут произнесены (тихий запуск)
quiet = off
# Терминал не будет произносить приветствие при голосовой активации
no_hello = off
# Включает блокирующее распознавание речи (как в mdmTerminal)
# Распознавание начнется после приветствия или звукового сигнала
# При отключении не нужно ждать окончания приветствия,
# терминал будет записывать голос параллельно но может начать записывать сам себя :)
blocking_listener = on
# Сообщать голосом о ошибке распознавания речи.
say_stt_error = off
# Задает уровень коррекции громкости микрофона при поиске ключевых слов.
# Если у вас тихий микрофон попробуйте увеличить значение (например до 2.0),
# если громкий то наоборот - уменьшить. 1.0 - уровень без коррекции.
audio_gain = 1.0
# Лимит времени на запись после того как терминал распознал речь, в секундах.
phrase_time_limit = 12
# Делает все воспроизведения терминала блокирующими.
# Уменьшает вероятность того что терминал запишет сам себя, но его нельзя будет перебить.
no_background_play = off
# См. chrome_mode
chrome_mode = on
# Если включено обнаружение ключевой фразы в chrome_mode будет глушить все звуки.
# Это может быть не очень удобно, т.к. подвержено ложным срабатываниям.
chrome_choke = off
# Если включено будет издавать сигнал по окончанию записи в chrome_mode.
# Подвержено ложным срабатываниям.
chrome_alarmstt = off
# Язык локализации, доступен только ru (русский) и gt_en (для тестов).
# Для работы chrome_mode нужно пересоздать все модели при изменении языка или
# исправить фразы у моделей.
lang = ru
# Выводит результаты сравнения выбранного языка с базовым при загрузке.
# Может помочь в поиске ошибок. Если выбран базовый язык ничего не делает.
lang_check = off
# Позволяет использовать all-in-one плеер вместо mpg123 и aplay для воспроизведения.
# Соответствующий плеер должен быть установлен. Используйте при проблемах с mpg123/aplay.
# Список доступных плееров можно узнать из лога при запуске.
# Возможные значения: mpv, vlc, mplayer
software_player =
# Терминал будет сохранять настройки один раз - при завершении работы.
# Удобно, если они меняются часто и нужно сократить операции записи.
# При нештатном завершении работы настройки будут потеряны.
lazy_record = off
[listener]
# Детектор ключевых слов, если не задано терминал сам выберет подходящий.
# Доступно: snowboy, porcupine и empty (использует VAD как HWD).
detector =
# Терминал не ждет окончания записи, а начинает сразу распознавать голос,
# увеличивает частоту запросов к stt.
stream_recognition = on
# VAD для определение слов в аудиопотоке: snowboy, webrtc, apm, energy.
# Если выбранный VAD недоступен, будет использован energy.
# Все режимы кроме snowboy немного увеличивают потребление CPU.
vad_mode = snowboy
# Позволяет выбрать другой детектор для chrome_mode, значения аналогичны vad_mode,
# пустое значение - детектор из vad_mode.
# Например, `vad_mode = energy, vad_chrome = snowboy` нравится мне больше.
vad_chrome =
# Чувствительность VAD, только для amp и webrtc. 0...3.
vad_lvl = 0
# Начальный порог энергии для отделения слов от шума, работает только с energy.
# Если меньше 10, будет определен автоматически. Иначе будет использоваться заданный.
energy_lvl = 0
# Динамическая адаптация порога энергии, для energy.
energy_dynamic = on
# Множитель продолжительности тишины между словами.
# При низком значении может расценить паузу между словами как окончание фразы,
# но будет быстрее заканчивать запись.
# При высоком значении будет дольше слушать тишину.
# Минимальное значение 0.1, максимальное 5.0.
silent_multiplier = 1.0
# Максимальное время ожидание речи после активации, секунд.
# Если речь не будет услышана, терминал прервет запись.
speech_timeout = 3
# Терминал не будет слушать, пока музыкальный плеер играет.
# Нужно подключение к плееру.
no_listen_music = off
[smarthome]
# IP сервера majordomo, нужен для отправки команд.
# Пока он не задан терминал будет проговаривать свой IP при старте.
# Можно использовать url, примеры:
# ip = https://example.com:9999/foo/bar/baz
# ip = 192.168.1.197
ip =
# Если задан, терминал будет подключаться по указанному адресу в duplex mode.
# Формат строго <proto>:<ip>:<port>
# Поддерживается proto - tcp, tls, ws и wss (TCP, TLS, WebSocket и WebSocketSecure).
# outgoing_socket = tcp:127.0.0.1:7575
# Несовместимо с MajorDoMo.
# Подробнее https://github.com/Aculeasis/mdmTerminal2/wiki/duplex-mode
outgoing_socket =
# Используется для авторизации входящих\исходящих соединений.
# Если не задан терминал будет использовать случайное значение при исходящих,
# и авторизировать без проверки при входящих соединениях.
token =
# Если у вас много терминалов можно задать системное имя терминала
# тогда ответы будут приходить только на терминал с которого пришел запрос (наверное).
terminal =
# Если задано уйдет с запросом. Зачем? Я не знаю.
username =
# Если задан и задан username запросы пойдут с базовой аутентификацией.
password =
# Если объект и метод задан будет отправлять уведомления через API
# Подробнее https://github.com/Aculeasis/mdmTerminal2/wiki/callback
object_name =
object_method =
# Если объект и метод заданы, будет отправлять запросы при неактивности терминала,
# интервал задается в секундах, параметр status отсутствует.
# 0 - отключено.
heartbeat_timeout = 0
# Максимальное число подключений которые могут находиться в duplex mode.
# Установка значения меньше 1 отключает переход в duplex mode.
pool_size = 1
# Содержит список адресов и сетей которым разрешено поключение к серверу терминала.
# Если не задано принимает все подключения, если некорректно - отвергает все подключения.
# Например: 127.0.0.1,192.0.1.0/24
allow_addresses =
# Подавляет любые исходящие HTTP-запросы на сервер.
# Удобно для использования с duplex mode.
# Включение этой опции ломает совместимость с MajorDoMo.
disable_http = off
# Отключает сервер на 7999 порту.
# Включение этой опции ломает совместимость с MajorDoMo.
disable_server = off
# Позволяет удаленно вызывать любые методы терминала с помощью call.* команд.
unsafe_rpc = off
# Будет считать Root mean square для каждого чанка при распознавании и отправлять на сервер
# вместе с фразой (qry) минимальное, максимальное и среднее значение - rms_min,
# rms_max, rmx_avg. Нет смысла включать если данные не используются.
send_rms = off
# При передачи уведомления через http не дожидается завершения передачи предыдущего.
# Отключить, если будут проблемы с порядком получения уведомлений.
async_notify = on
[snowboy]
# Можно использовать локальный сервер для компиляции моделей, все равно API помер.
# см https://github.com/Aculeasis/mdmTerminal2/wiki/snowboy-die
url = https://snowboy.kitt.ai/api/v1/train/
# Если включено сноубой не будет компилировать модель если хоть один из образцов отличается
# по звучанию. Позволяет избежать создания плохих моделей.
clear_models = off
# Токен для API. Если этот перестанет работать можно задать свой.
token = d4977cf8ff6ede6efb8d2277c1608c7dbebf18a7
# Похоже что все эти настройки ни на что не влияют, можно не менять.
name = unknown
age_group = 30_39
gender = M
microphone = mic
[music]
# Подключается к медиа-серверу и управляет им.
# Будут работать play: и pause: пришедшие от контроллера умного дома.
# Также может ставить воспроизведение на паузу на время активности терминала.
# Можно настраивать громкость фразой 'громкость музыки <1..100>'
control = on
# Тип плеера, к которому подключается терминал. Доступно:
# - mpd: Music Player Daemon (port 6600)
# - lms: Logitech Media Server (port 9090)
# - volumio2: Volumio2 (port 80)
# - dlna: DLNA-совместимый рендер
type = mpd
# ip и порт сервера. Для dlna port не важен, а вместо ip можно задать "Friendly name"
# и терминал найдет его после смены ip.
ip = 127.0.0.1
port = 6600
# Логин и пароль для аутентификации.
username =
password =
# Поставит на паузу по: voice_activate, start_record или start_talking.
# Снимет по stop_talking и stop_record.
pause = on
# При снятии с паузы поднимать громкость постепенно.
smoothly = off
# Если больше 0, то вместо паузы будет уменьшать громкость до заданной.
quieter = 0
# Задержка перед снятием с автопаузы, в секундах.
wait_resume = 5
# Для LMS.
# Терминал подключится к первому плееру при совпадении с name, id или ip.
# Иначе, к первому плееру с тем же ip что и у терминала.
# Иначе, к первому попавшемуся плееру.
lms_player =
# Список событий, через запятую, на которые перестанет реагировать автопауза.
# Для более тонкой настройки, например:
# ignore_events = start_record,stop_record
ignore_events =
[log]
# Задает уровень логирования в файл. Возможные значения: debug, info, warn, error, crit.
file_lvl = debug
# Аналогично file_lvl, но в консоль.
print_lvl = debug
# Разрешает удаленное подключение к логгеру - терминал начнет отправлять в сокет логи в
# режиме реального времени с уровнем debug. Одновременно возможно только одно подключение.
# Для активации нужно подключиться к порту 7999 telnet-клиентом и ввести remote_log.
remote_log = on
# Выводить время в консоль с точностью до миллисекунд.
print_ms = True
# Куда вести логирование. 1 - в файл, 2 - в консоль, 3 - в файл и консоль.
method = 3
# Путь к файлу с логом.
# При первом запуске терминал выберет первую из директорий с правом на запись:
# /var/log, директорию с main.py или директорию для временных файлов
file = /var/log/mdmterminal.log
[yandex]
# Ключи для синтеза\распознавания. Можно использовать разные.
# Если ключ не указан, он будет взят с https://translate.yandex.ru, возможно это работает.
apikeytts =
apikeystt =
# Если равно 2 используется новый API от Yandex.Cloud
# Для доступа используйте сервисный аккаунт с ролью не ниже editor
# Используте секретный API-ключ (не идентификатор) в качестве ключей
# См. https://cloud.yandex.ru/docs/iam/operations/api-key/create
# Для работы с аудио используется opus, так что opus-tools должен быть установлен.
# Если равно 3 использует демоверсию Yandex.Cloud без ключей, возможно это работает.
api = 1
# Эмоциональная окраска голоса. Доступно: good, neutral, evil.
emotion = good
# Голос. Женские: jane, oksana, alyss, omazh. Мужские: zahar, ermil.
# Для api = 2 или 3 доступны премиальные голоса: alena и filipp.
speaker = alyss
# Скорость (темп) речи. От 0.1 до 3.0, 1.0 - средняя скорость человеческой речи.
speed = 1.0
# Использовать gRPC вместо унылого HTTP REST API.
# Потоковое распознавание речи будет происходить намного быстрее,
# а с `stream_recognition = on` Yandex сможет сам находить окончание фраз.
# Работает только с Yandex.Cloud (`api = 2`).
# Для поддержки gRPC нужно вручную установить пакеты:
# mdmTerminal2/env/bin/python -m pip install grpcio protobuf
grpc = off
[aws]
# https://aws.amazon.com/ru/polly
# Для доступа нужен акк AWS, первые 5 миллионов символов в месяц первые 12 месяцев бесплатно
# для русского доступны Tatyana и Maxim
speaker = Tatyana
# Данные IAM, для работы достаточно прав на "polly:SynthesizeSpeech"
access_key_id =
secret_access_key =
# Регион AWS
region = eu-central-1
# Использовать AWS SDK (boto3) для коммуникации вместо нативной реализации.
# Polly будет отвечать на 200-300 ms быстрее, а прокси для aws перестанет работать.
# boto3 должен быть установлен:
# mdmTerminal2/env/bin/python -m pip install boto3
boto3 = off
[azure]
# MS Azure, позволяет распознавать и синтезировать речь.
# Распознает плохо.
# Русские голоса (без кавычек):
# 'EkaterinaRUS'; 'Irina, Apollo'; 'Pavel, Apollo'
speaker = EkaterinaRUS
# Регион, с триальными ключами это первое слово в ссылке, например:
# Endpoint: https://westus.api.cognitive.microsoft.com/sts/v1.0
region = westus
# Ключи для синтеза\распознавания (32 символа), можно использовать один
# Триальные ключи на 30 дней можно получить по ссылке:
# https://azure.microsoft.com/en-us/try/cognitive-services/?apiSlug=speech-services#speech
apikeytts =
apikeystt =
[rhvoice-rest]
# RHVoice TTS запущенный в виде веб-сервиса. https://github.com/Aculeasis/rhvoice-rest
# Адрес и порт сервера.
# Если не задан синтезирует речь напрямую через rhvoice-wrapper,
# rhvoice-wrapper и RHVoice\rhvoice-wrapper-bin должны быть установлены.
server = http://127.0.0.1:8080
# Голос. Женские: anna, elena, irina. Мужской - aleksandr.
# Можно прописать голос для другого языка, но не все из них могут читать русский.
speaker = anna
# Темп речи, от 0 до 100.
rate = 50
# Высота речи, от 0 до 100.
pitch = 50
# Громкость речи, от 0 до 100.
volume = 50
[rhvoice]
# !!!Крайне не рекомендуется, используйте rhvoice-rest
# RHVoice TTS, получающий поток от RHVoice-test. Для работы с кэшем еще нужен lame.
# Библиотека загружается и инициализируется для каждой фразы, это очень медленно.
# Отклик на апельсинке ~2.2 сек.
# Проверка:
# echo 'This is fine' | RHVoice-test -p slt -o - | lame -thv --silent - | mpg123 -q -
# См. rhvoice-rest
speaker = anna
[pocketsphinx-rest]
# PocketSphinx STT запущенный в виде веб-сервиса.
# https://github.com/Aculeasis/pocketsphinx-rest
# Его единственный плюс в том что он локальный, медленный и не точный
# Имеет смысл ставить на сервер с нормальным CPU и если он вас хорошо понимает.
# Адрес и порт сервера.
server = http://127.0.0.1:8085
[vosk-rest]
# REST-обертка над vosk-api https://github.com/Aculeasis/vosk-rest
# или оригинальный vosk-server https://alphacephei.com/vosk/server (x86_64, тяжелый).
# Адрес и порт сервера.
# Для работы с оригинальным vosk-server иcпользуйте ws:// адрес:
# server = ws://127.0.0.1:2700
server = http://127.0.0.1:8086
[cache]
# Приоритет при поиске в кэше.
# Если ничего - берет кэш только текущего провайдера.
# Если указан - вначале указанного потом текущего.
# Если * - вначале текущего, потом любого.
tts_priority =
# Размер кэша в Мб. Проверяется при запуске.
# Если 0 - кэш не используется и будет очищен.
# Если -1 - кэш не используется и не будет очищен.
# С отключенным кэшем стрим от локальных провайдеров будет идти в wav а не mp3
# что немного быстрее.
# Если вы используете rhvoice-rest лучше всего отключить кэш.
tts_size = 100
# Абсолютный путь до директории с кэшем, начинается с /
# По умолчанию используется /<путь до main.py>/tts_cache
# Не забудьте удалить старую директорию и файлы при изменении.
path =
[models]
# При успешной генерации персональной модели терминал сохранит сюда название модели
# и фразу, если сможет определить ее через STT
# model2.pmdl = привет алиса
#
# Если STT часто распознает ключевое слово иначе, можно добавить варианты через `|`.
# Например:
# model1.pmdl = Алиса внимание|Алиса внимания
#
# Можно установить отдельное sensitivity для модели добавить значение в начале фразы
# отделив его ';' (фразу можно опустить, точка с запятой обазательна):
# model1.pmdl = 0.45;фраза
# model2.pmdl = 0.61;
# Позволяет ограничить используемые модели перечислив имена файлов моделей через запятую,
# при пустом значении будут загружаться все найденные модели.
allow =
[persons]
# Секция содержит соответствия между моделями и именами пользователей
# если терминал был активирован моделью у которой есть пользователь, то вместе с командой
# придет имя пользователя в username.
# Имя пользователя обладает приоритетом над [smarthome] username
# model2.pmdl = vasyapupkin
[proxy]
# Подробнее о настройках прокси https://github.com/Aculeasis/mdmTerminal2/wiki/proxy
enable = 0
monkey_patching = on
proxy = socks5h://127.0.0.1:9050
[google]
# Говорить медленее.
slow = off
[update]
# Терминал может самостоятельно обновляться с помощью стандартных механизмов гит.
# Для этого он должен быть установлен через git clone, а директория терминала должна
# оставаться валидным и доступным для git pull локальным репозиторием, pull не сработает
# если вы изменяли файлы терминала. Проверить доступность можно с помощью git status.
#
# Обновление засчитывается если хоть один .py файл в src/ изменился,
# или в Requirements/ появились новые пакеты.
# Интервал автоматической проверки обновлений в днях, минимум 1 день.
# Если 0 отключено. Также триггерится через rec:update_0_0
interval = 0
# Установит новые пакеты из Requirements/pip-requirements.txt через pip
# При установке по инструкции это должно работать. Неудача считается ошибкой.
#!Установка некоторых пакетов требует сборки и может потребовать много RAM.
#!Для устройств с RAM <= 512 Mb рекомендуется создать swap >= 512 Mb.
pip = on
# Установит новые пакеты из Requirements/system-requirements.txt через apt-get
# Не сработает если терминал запущен не от рута. Неудача считается ошибкой.
apt = off
# Если 1 завершится после обновления, systemd должен сам его перезапустить.
# Если 0 ничего не делает
# Если -1 сам примет решение завершаться ему или нет.
turnoff = -1
# При ошибке попытается выполнить откат сделанных изменений.
# Это не относится к новым пакетам pip и apt, только файлы терминала.
# Откат до последнего успешного обновления триггерится rec:rollback_0_0
fallback = on
[backup]
# Терминал может создавать резервные копии пользовательских файлов из /src
# Файл settings.ini, .state.json, содержимое data/ и resources/models/ упаковываются в архив
# который сохраняется в backups/, также к архиву добавляется файл timestamp
# содержащий вызов time.time() (unixtime в double).
#
# Восстановление можно выполнить через команду `backup.restore` или просто распаковать
# архив в папку src/ без файла timestamp.
# Интревал автоматического создания бэкапа, в днях.
# Если меньше 1 бэкапы создаваться не будут.
interval = 0
# Если после автоматического создания бэкапа их количество превысит max_count, терминал
# удалит наиболее старые. Если меньше 1, бэкапы не будут удаляться.
# Важно: терминал не удаляет бэкапы при вызове `backup.restore` или `backup.manual`,
# он удалит их когда создаст новый автоматический бэкап.
max_count = 3
[volume]
# Индекс карты через которую осуществляется вывод звука, определяется автоматически.
# Индексы всех карт можно посмотреть через aplay -l
card = 0
# Устройство через которое происходит управление громкостью. Заполняется
# автоматически. Если не работает или undefined, можно найти устройсто через
# amixer -c 0 scontrols и прописать вручную (Line Out, Lineout volume control и т.п),
# где -c - индекс карты.
# Можно настраивать громкость фразой 'громкость <1..100>'
line_out = Line Out
# Если включено, терминал никогда не будет проговаривать изменение громкости.
changes_quiet = off
[noise_suppression]
# Включает алгоритмы обработки аудио встроенные в Snowboy (NS, AGC etc.).
# Опция никак не зависит от `enable` и других настроек секции.
# Работает только для snowboy (детектор ключевых слов и vad_mode = snowboy),
# также увеличивает потребление CPU.
# Рекомендуется включить для некоторых универсальных (.umdl) моделей.
# Крайне не рекомендуется включать вместе с APM.
# https://github.com/Kitt-AI/snowboy/blob/master/include/snowboy-detect.h#L126
snowboy_apply_frontend = off
# Включает APM. Удаление шума будет работать всегда, остальное надо включить.
# Нагрзука на CPU будет выше - 3% -> 9%
enable = off
# APM не будет использоваться пока ключевое слово не распознано. Значительно снижает
# нагрузку на CPU, но может ухудшить адаптацию к уровню шума.
# Работает только в chrome_mode.
conservative = off
# Агрессивность удаления шума, от 0 до 3
ns_lvl = 0
# https://github.com/xiongyihui/python-webrtc-audio-processing
# Остальные настройки APM. Я плохо понимаю что они делают, так что не стал включать
# в конфиг. Если самостоятельно добавить их в конфиг, то они начнут работать.
# Тип AEC, от 1 до 2. При 0 AEC выключен
# aec_type = 0
# Уровень AEC. От 0 до 2. Возможно, работает только с aec_type = 2.
# aec_lvl = 0
# Audio Gain Control. 0 - выключено, 1 - Adaptive Digital AGC, 2 - Adaptive Analog AGC
# agc_type = 0
# Цель AGC, от 0 до 31.
# agc_target = 30
# Уровень AGC, от 0 до 100. Возможно, работает только с agc_type = 2
# agc_lvl = 100
[plugins]
# Включает поддержку плагинов.
enable = on
# Белый список плагинов, разделяется запятыми.
# Если не пуст, плагин не будет загружен если его имени нет в списке.
whitelist =
# Черный список плагинов. Плагин не будет загружен если его имя в списке.
blacklist =
# Автоматически добавлять плагины в черный список при ошибке.
blacklist_on_failure = off
[system]
# Секция для хранения различных состояний терминала.
# Изменять ее параметры нельзя.