roboforum.ru

Технический форум по робототехнике.

Windows + RHVoice: говорим по русски

Windows + RHVoice: говорим по русски

AndreiSk » 18 апр 2017, 01:34

В последнее время многие камрады устанавливают на своих роботов
маленькие компьютеры, работающие и под Windows.
Например, компьютер на базе платы Intel NUC, или готовый компьютер Intel Compute Stick,
и даже донглы от китайцев на базе малопотребляющих атомов.
Такое компьютеры можно запитать даже от внешнего аккумулятора, которыми завалены
компьютерные магазины и даже салоны связи.
Даже планшет под Windows иногда ставят, я читал, что так сделал тов. Scorpio.
К сожалению не помню, говорил у него робот или нет и на каком языке.
В .Net есть поддержка синтезатора речи нескольких языков, но русского там нет.

Расскажу как озвучить робота или же просто компьютер на Windows,
чтобы он говорил по русски.
Есть такой пакет RHVoice, который был также замечен в употребление тов.linvinus,
но под linux.
Под Windows настроить тоже можно, выполнив следующие пункты:

1. Качаем с страницы http://golosknigi.com/page5.html
движок RHVoice. Это ссылка «Скачать RHVoice» справа, ближе к низу.
Или же взять из прикрепленного файла RHVoice05Rus.zip
2. Распаковываем, запускаем setup.bat и устанавливаем RHVoice куда от хочет по умолчанию.
3. В командной строке (Start->Run...) вводите команду
%windir%\sysWOW64\speech\SpeechUX\SAPI.cpl
Откроется панель управления SAPI. Она 32 битная, но будет работать на Win7 64-битной (как у меня).
Выберите голос Aleksandr в качестве голоса по умолчанию. Можно любой другой, но не все голоса говорят по русски.

Как это использовать:
1. Делаем в Visual Studio консольное приложение на C#. Я использую Visual Studio 2015, но наверняка будет работать и в раньших версиях (может в 2008 даже будет).
2. Подключаем в References сборку COM «Microsoft Speech Object Library»
3. Привожу полный текст программы на C#
Код: Выделить всёРазвернуть
using SpeechLib;

namespace AppConsole {
        public static class Program {
                public static void Main(string[] args) {
                        SpVoice sp = new SpVoice();
                        sp.Speak("Hello, how are you?");
                        sp.Speak("Привет, как дела.");
                        sp.Speak("А у вас кажется маржин кол начинается.");
                        sp.Speak("Покупай лучше баксы");
                        sp.Speak("Ха ха доигрался трейдунишка");
                        sp.Speak("А вот Василий молодец");
                }
        }
}

Такая реализация будет работать, но что-то Microsoft намудрила, и оно иногда падает.
Я выдрал готовый класс из своей программы, которая мне читает сайты, книги, форумы, анекдоты и т.д.
Что-то зрение сильно упало, по возможности пытаюсь на слух получать информацию.
Пример проекта с моим классом - в приложенном файле VoiceConsole.zip
Там же скомпилированная версия, ее можно запустить чтобы проверить работу синтезатора.

Моя программа работает в английских версиях Win7 64-бит, Win8 32бит (планшет dell venue 8").
Я не знаю насчет Win10, у меня ее нет.
В .Net есть родной класс для синтеза и распознавания речи, но русский там не поддерживается.
Можно даже на vbscript написать, см. пример скрипта, и наверное даже на VB6

Разработчик RHVoice - Ольга Яковлева, https://github.com/Olga-Yakovleva/RHVoi ... Russian%29

Пробовал работать через сервис гугла, но после того как он спросил, а не робот ли я,
и попросил станцевать, я понял что гугл мне не друг больше и забил на него.

Возможно Microsoft выпустила что-то в этом направлении для Windows 10, если кому
известно чего - напишите.


Возможно, вы услышите неправильное ударение в слове. Как это исправить:
Найдите файл:
C:\Users\Administrator\AppData\Roaming\RHVoice\RHVoice.ini
Там есть строчки:
; следующую за ним гласную падает ударение (только русский текст).
stress_marker=Q

Буква Q перед гласной будет говорить, что на следующую за ней гласную будет ударение.
Например: "Вокруг дома." голос скажет "дома'", т.е. вокруг много домов.
А бывает что гуляешь вокруг дома, тогда надо "Гуляю вокруг дQома".
Вложения
VoiceConsole.zip
Пример на C#
(10.32 КиБ) Скачиваний: 0
RHVoice05Rus.zip
Языковой пакет RHVoice05Rus.zip
(6.81 МиБ) Скачиваний: 0

Re: Windows + RHVoice: говорим по русски

Dmitry__ » 18 апр 2017, 03:09

Лучше скомпилить RHVoice под openwrt для какого-нибудь спичечного коробка с внешней usb саундкартой :)
А я пытался перевести RHVoice на микроконтроллер, но споткнулся об язык foma и бинарные фонемы :(
http://roboforum.ru/forum2/topic17122.html

Re: Windows + RHVoice: говорим по русски

Angel71 » 18 апр 2017, 07:45

нужно ещё подождать cortana с поддержкой русского, вдруг более-менее сносное получилось. хотя настораживает упоминание ии (что у мелкосовта, что у гугли с этим немного печально).

Re: Windows + RHVoice: говорим по русски

AndreiSk » 16 мар 2018, 13:42

потихоньку перешел на винду 10, и оказалось что говорилка там работает нестабильно.
Что-то связано со сборкой мусора.
Решилось так: перед тем как говорить чего либо, создаем объект как в коде.
Использовать однажды созданный объект SpVoice не получится, что-то грохается внутри него на методе .Speak()
Теперь и в 10 и в 7 винде все работает как положено.
К тому же в винде 10 есть русскоязычный женский голос Microsoft Irina,
но бубнит-с. В общем использую голос Alexander из пакета rhvoice как самый четкий.
Еще особенность. Если две программы хотят что-то сказать, то будут говорить не одновременно, а по очереди.

По поводу на чем это можно использовать, то вот тут на другом форуме есть http://4pda.ru/forum/index.php?showforum=1077
Лично у меня есть cx w8, он на windows 8. Размеры меньше 10 на 10 см, а если снять корпус и оставить только платку то она весит грамм 50, а может и меньше. Пассивное охлаждение. Можно подпаяться к к питанию (5в). Потребляет 0.5а вроде, или меньше. Но сейчас я бы глядел на cx w8 Pro, она на 10 винде.
ps. кто нибудь видел полноценную блютус клавиатуру? никак не могу найти, все время какие то огрызки ноутбучного типа. Пока спасаюсь беспроводной logitech K270, но она usb беспроводная, лишний usb занимает, хотя приемник и микроскопический.

Re: Windows + RHVoice: говорим по русски

Angel71 » 16 мар 2018, 15:03

на али в поиске "z8350" - полно и мелких коробочек и свистков. с атомами помодней есть, но цены поболее. с гпио есть как минимум "up board"/"up core" и "LattePanda".
поиск по "full-size keyboard" + "bluetooth" или "wireless" + ещё можно "buy". клавиатур не море, но есть из чего выбрать. тыц, там же в разделе, тыц и т.д.
если сильно нужно, хочется повозиться и другие варианты не подходят, можно обычную переделать. "bluetooth hid diy", часто попадается варианты на перепрошитом hc-05. тыц, тыц,... есть и другие варианты, допустим на nrf51/nrf52.

Re: Windows + RHVoice: говорим по русски

Scorpio » 16 мар 2018, 17:20

AndreiSk писал(а):я читал, что так сделал тов. Scorpio.
К сожалению не помню, говорил у него робот или нет и на каком языке..

Еще 8 лет назад говорил по-русски на акапеловском движке. С тех пор голос Алены стал только лучше. Сейчас полно и других чистых голосов. А, встроенные в 10-й винде голоса действительно отстойные


cron
Rambler\'s Top100 Mail.ru counter