Голосовое управлениеПриветствую форумчане! Недавно решил заново пройти замечательную игру X3 Terran Conflict и дополнение к нему. Но играть по старому было как-то не весело, поэтому возникла идея сделать нормальное голосовое управления к игре. XXI век на дворе, пора бы уже найти путеводную нить между пилотом и кораблем.
Если вы поищите на просторах интернета, то подобных тем будет не так уж и много, а уж скачать подогнанные скрипты под игру X3 и подавно. Можете конечно сделать настройки под себя с нуля, но все же опробуйте уже готовую версию.
Почему мой выбор пал именно на VoxCommander? Эта программа отлично распознает произносимые слова, к тому же работает с русским языком, что не менее важно.
Что это?С помощью VoxCommando можно будет раздавать приказы и открывать различные окна голосовыми командами! Очень полезная вещь, особенно хороша в бою.
Небольшое
видео с демонстрацией.
Как это работает?Все просто, вы говорите, и на определенные фразы программа генерирует нажатия необходимых клавиш на клавиатуре. Комбинации, как и длительность любых нажатий может быть сколько угодно разнообразны.
Что для этого нужно?Установка занимает от силы 5 минут. Главное условие это
Windows 7 или выше, а также наличие микрофона!
1.
Скачиваем архив и устанавливаем все компоненты по порядку
- .NET Framework 4.5 - Microsoft Speech Platform Runtime v11.0 - MSSpeech_SR_ru-RU_TELE.msi (распознавание голоса) - MSSpeech_TTS_ru-RU_Elena.msi (синтез голоса, необязательно) - VoxCommando, в пути установки избегайте кириллицы и пробелов2. Запускаем файл VoxCommandoSP.exe, обязательно с пост фиксом "SP", на запрос фаервола нажимаем разрешить.
Скажите "Ева" или "Привет Ева" для проверки работоспособности3. Все команды и горячие клавиши должны быть в стоковом режиме (по умолчанию)
4. Наслаждаемся!
О командахСобственно, о командах. Программа обладает огромным потенциалом и распознает как необходимые слова:
сравнять скорость, так и связку с ними нескольких побочных:
Ева, сравняй скорость с целью.
Причем для одной команды может быть несколько голосовых:
сравнять скорость и
выровнять скорость с указанными выше побочными словами
Ко всем командам может быть приставлено слово в начале фразы:
ЕваНиже приведен список доступных команд.
Команда, написанная
курсивом не обязательна для произношения
Возможные варианты команд написаны через запятую, окончания слов можно варьировать, на точность почти не влияет.
Список команд | Общие Ева полная деактивация (отключает программу) Ева включить, перейти в режим ожидания, не слушай меня, не слушай, не слушать меня, не слушать (после этой команды программа среагирует только на простую фразу - Ева или Ева привет) Ева, Ева привет (после данного обращения программа выйдет из режима ожидания, если была в нем) для х3 Ева включить автопилот, активировать автопилот, лететь к цели Ева, выбери, покажи ближайший враг Ева, выбери, покажи следующий враг Ева, выбери, покажи предыдущий враг Ева сравнять скорость, выровнять скорость с целью Ева, активировать, включить боевой режим Ева, активировать, включить, отключить ручное управление Ева открыть грузовой отсек Ева открыть журнал сообщений, мои сообщения Ева, произведи, произвести, сделай, сделать Запрос на стыковку, посадку Ева вывести информация о цели Ева покажи, открой карту галактики Ева покажи, открой карту сектора Ева покажи информацию мой корабль, о корабле Ева покажи, открой информацию мне статус пилота, мой статус Ева открой моя собственность Ева установить связь с целью Ева стоп, полная остановка, стой, остановка Ева включить Ускорение, форсаж, полный вперед Ева поставить, поставь игру на паузу Ева открой меню оружия Ева открой торговля со станцией, режим торговли, торговую консоль Ева включить сув, активировать сув Ева открой, включи, покажи управление оружием Ева выбрать, выбери цель Ева следующая, выбрать, предыдущая ракета (один фиг листает только в одну сторону) Ева лететь, летим в сектор, в систему Ева атаковать всех врагов, противников Ева атаковать цель Ева установить, включить, выбрать, выбери, активировать группа оружия, группу оружия 1-4 Турели атаковать всех врагов Турели защищать меня, корабль Турели атаковать мою цель Турели сбивать ракеты Турели огонь, атаковать только по истребителям Турели огонь, атаковать только по кораблям Ева покажи, открой информацию о цели Ева покажи, открой консоль приказов, панель приказов цели Ева покажи, открой грузовой отсек цели Ева покажи, открой панель управления оружием, панель оружия цели Ева покажи, открой панель торговли цели (связь с верфью для торговли, например) Ева прикажи, отдай команду цель следовать за мной Ева прикажи, отдай команду цель оставаться на месте, бездействовать, остановиться Дроны атаковать мою цель Дроны защищать меня, следовать за мной Ведомые атаковать мою цель Ведомые защищать меня, следовать за мной Ева прикажи всем истребителям в секторе вернуться на базу, домой Ева прикажи всем истребителям атаковать врагов, атаковать всех врагов Ева прикажи всем истребителям атаковать мою цель Ева прикажи всем истребителям защищать меня Ева прикажи цели вернуться на базу, домой Ева прикажи цели атаковать истребители Ева прикажи цели атаковать крупные корабли Ева прикажи цели выпустить, запустить истребители, корабли Ева активируй, включи обмен грузом с целью
|
| |
Есть еще команды торговли, например: Ева купить, продать 70
штук. Программа распознает число от 1 до 100, говорите любое в этом диапазоне (можно и больше, но у меня возникли некоторые трудности). По этой команде будет произведена предварительная закупка, т.е. вам останется нажать только Enter (это сделано для безопасности, т.к. распознование чисел бывает нечетким, надо привыкнуть).
Торговые команды:
| Ева купить, продать 1-100 штук Ева купить, продать 500 штук
|
| |
Не уверен, что написал все команды, возможны еще
Жду Ваших отзывов и предложений. Если Вам понравится, то буду дальше развивать эту тему и добавлять новые команды.Как добавить свою команду?Пошаговая инструкция, номер соответствует рисунку.
1. Открываем редактор кнопкой Edit, появляется, собственно, новое окно, что-то похожее на первый рисунок;
2. Разворачиваем любую папку (лучше X3AP) и жмем на создать новую команду. Название
newcommandname только для Вас и ни на что не влияет;
3. Теперь выбрали созданную команду и нажимаем создать часть команды. В списке вам понадобится только первый вариант -
Phrase, нажимаем на него. Вот именно
Phrase определяет, какие именно слова будет воспринимать данная команда.
4. Создаем несколько, как показано на рис.4 и разбираем: Первое -
Ева, с этим все понятно, далее -
покажи, открой написаны через запятую, это значит что у вас появляется выбор, как именно сказать, хоть Ева покажи..., хоть Ева открой... Но не балуйтесь сильно с вариативностью. Далее -
карту сектора, это конец всей2 фразы. Т.е. команда сработает, когда будет произнесена целиком фраза:
Ева покажи карту сектора или
Ева открой карту сектора.
5. Хорошо, можно и упростить эту команду, как-то надоедает постоянно говорить
Ева покажи карту сектора и т.п. Есть такое чудесное преобразование Toggle Optional (рис. 5), выбираем произносимую команду, например, "Ева" - и нажимаем на кнопку. Теперь "Ева" выделено курсивом, это значит, что данное слово, фраза необязательны для произношения. Выделяем курсивом еще и
покажи, открой. Готово, можно коротко сказать - "Карта сектора" и вуаля, команда сработает.

Фух, пол дела сделано, да и то самые легкие, идем дальше:
1. Теперь надо сделать так, чтобы при произношении этой фразы программа выполняла нужные нам действия. Выбираем саму команду и нажимаем Edit!
2. Перед вам новое окно, если совсем не разбиваетесь в английском, то
гугл-транслит вам в помощь, там все просто, а нам понадобится кнопка Add Action. Жмем.
3. Это строка вызова функции,

, хотя вам это не интересно, жмем на волшебную палочку
4. Перед вам обширное древо функций, можете покопаться в нем, может найдете что интересное. А нас интересует DxInput и KeyPress. Это плагин ввода, можно и стандартными средствами обойтись (которые встроены, т.н. InputKeys), но лучше через Dx... Нажимаем select.
5. Осталось только ввести в первое поле нужную нам букву или цифру. Сохраняем команду через ОК. и Save в редакторе. Делаем быструю перезагрузку программы "File -> Quick Restart" и можно тестировать!

Так так.. чую недовольные лица

А как же сделать нажатие нескольких клавиш одновременно и получить голосовой отклик? Что же, приступим:
1. Я сделал команду автопилота, для этого нужно нажать Shift+A. Предполагаю, что с "Ева, включи автопилот" или нечто похожее вы справитесь. Открываем редактор команд, создаем новое действие и выбираем в DxInput не KeyPress а KeyDown. Для чего все это нужно? KeyDown нажимает кнопку и держит ее до тех пор, пока на эту же кнопку не поступит команда KeyUp, так что не забываем про нее, а то таких дел можно наворотить

2. Вопрос, как же нажать Shift? Для этого используются простые наборы англ. слов, посмотреть их можно на офф. вики. А нам понадобится LeftShift. Создаем действие KeyDown с нажатием LeftShift, потом KeyPress с"A" и KeyUp с отпуском LeftShift. У вас должно получиться один в один как на рис.2. Жмем Save&Execute и смотрим на главную консоль, если команды прошли без ошибок, как на рисунке, то все сделано скорее всего правильно, можно перезапускать и тестить.
3. Как сделать голосовой отклик? Создаем в этой команде новое действие Audio -> Play.
4. В первом окне прописываем путь к файлу, профит. Можно прописать полный путь (C:\VoxCommando и т.д.), или сделать проще. Как показано у меня. Без указания диска программа вычисляет путь от себя, т.е. от своего текущего местоположения.
5. Хотите сделать разнообразный отклик а не постоянное "Да, Капитан", тогда изменяем путь CSound\Yes_
1.wav и вместо "1" ставим {Rnd.1.X}, где Х - количество звуковых файлов, сохраненные под этими именами. У меня так: (Yes_1.wav,Yes_2.wav,Yes_3.wav,Yes_4.wav и т.д.)
Как синтезировать голос?Ищем и устанавливаем следующие программы:
- Синтезатор речи: IVONA Reader
- Голос к нему: Tatyana - female - Q2 2013
- Обработка голоса: Sony Sound Forge Pro 11
Проблем с поиском не должно возникнуть, если что, в личкуНа этом все приготовления готовы, открываете Ivona и создаете новый документ

В этом документе прогоняется текст, как он будет говориться и т.п. Далее - сохранить - File - Save As Text, с таким же успехом можно самому создать свой текстовый документ и ввести все там.
Возвращаемся в главное меню и нажимаем сохранить голос

Указываем наш текстовый документ, выбираем .wav(mp3 из ivona не обрабатывается sonyforge) и жмем Read to File. Готово. Но перед этим стоит пробежать по настройкам скорости голоса в самой последней вкладке, если это нужно и звучит лучше.
Все, звук есть, теперь нужно его обработать. Открываем его с помощью Sony...
Далее, эффекты - хорус, выбираем настройку Хорус 2

Все, можно сохранять, звук готов. Ползунками можно добиться еще более эффектного звучания, по обстановке.
Кстати, программа, вернее один из плагинов умеет синтезировать речь на лету, т.е. что вы напишете, то она и скажет. Довольно удобная фишка поначалу.
Основы я объяснил, остальное смотрите как сделано у меня, или в wiki