Содержание
Демонстрационная конфигурация DEMO_SPEAK служит для иллюстрации того, как в системе CRW-DAQ можно организовывать речевые сообщения при помощи речевого синтезатора - далее называемый движок или engine. Под Windows речевой синтезатор - это пакет Speech API, под Linux - это пакет RHVoice.
Надо заметить - системный речевой синтезатор работает в основном потоке, поэтому для его вызова всегда используется префикс @system @async.
Далее, речевой синтезатор не работает, пока не установлен движок.
Под Windows надо установить Speech API. Нужно установить два компонента:
Эти компоненты доступны в Интернете:
1. spchapi.exe,
2. lhttsrur.exe и
3. lhttseng.exe.
Установка spchapi.exe происходит "молча", никаких диалогов. Установка lhttsrur.exe, lhttseng.exe происходит через стандартный диалог инсталляции. Больше настроек не требуется.
После установки движков они доступны по именам:
Под Linux устанавливается пакет daqgroup-rhvoice, входящий в состав репозитория DaqGroup:
sudo qapt-deb-installer /srv/public/mirror/addons/daqgroupkit/install-daqgroup-rhvoice.debТакже необходимо установить пакет daqgroup-crwkit:
/srv/public/mirror/addons/daqgroupkit/install-daqgroup-crwkit.runДля проверки работы:
crwkit speak "Привет, друг."В стартовой части программы demo_speak.pas стоит вызов:
t:=eval('@system @async @speech engine 1');
или (Windows)
t:=eval('@system @async @speech engine Adult Female #1 Russian (L&H)');
t:=eval('@system @async @speech engine Adult Male #1 Russian (L&H)');
или (Linux)
t:=eval('@system @async @speech engine Elena');
t:=eval('@system @async @speech engine Aleksandr');Этот вызов разрешает речевой синтезатор и устанавливает нужный речевой движок.
Список движков получается камандой главной нонсоли @speech engines.
После задания движка становятся доступны речевые сообщения.
Рекомендуется также сделать вызов:
t:=eval('@system @async @speech wait 1');Это нужно для того, чтобы синтезатор работал синхронно, т.е. ожидал завершения предыдущей фразы, прежде чем начать новую. Надо, однако, отметить, что синхронный режим блокирует (на время произнесения фразы) системную консоль, поэтому должен использоваться с осторожностью.
Собственно сообщения делаются так:
t:=eval('@system @async @speak Привет, Мир!');В завершающей части программы demo_speak.pas стоит вызов:
t:=eval('@system @async @speech engine 0');Этот вызов запрещает речевой синтезатор.
Успехов!
CRW-DAQ Copyright (c) 2002-2024 Alexey Kuryakin daqgroup@mail.ru