Оффлайн распознавание речи. PocketSphinx.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

sleepy
Сообщения: 24
Зарегистрирован: Чт июн 11, 2015 9:17 pm
Откуда: Ростов-на-Дону
Благодарил (а): 2 раза
Поблагодарили: 7 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение sleepy » Ср окт 21, 2015 10:42 am

coolermister писал(а):Как и обещал, отписываюсь о микрофоне. Купил stelberry m30, тк шорох в Минске днем с огнем не найти. Слышит этот микрофон действительно далеко и отчетливо. Записывал и проигрывал. Но есть одно большое но, а именно просто ужасный постоянный фон. Мне пока кажется что эти помехи лезут по питанию. Если нет, то придется тренировать шумовую модель ( Из за помех, сфинкс даже отказывается запускаться. Но даже на их фоне речь слышно хорошо. Попробую по подключать его по разному, но уже днем..
Купил вчера шорох-8. На скрутках подключил. По началу не работал. Оказалось, что функция драйвера "формирования луча" портит малину. С ней микрофон вообще не работает.
А вот с другими "Подавление шумов" и подавление эхо становиться гораздо лучше.
"Подавление шумов" очень помогает! У меня микрофон лежал рядом с вентилятором, шут был не слабый, так вот данная функция вообще убирает его.

Как спаяю, проверю уже в распознавалке, тогда отпишусь.

p.s.
По ссылки на гугл диск, я периодически обновляю файлы.
Пока что там добавился текстовый файл-сборник ссылок и действия для создания распозновалки.
Скоро выложу обновление main.py - вынес все параметры во внешний ini файл и добавил параметры отключения gui. (добавлю 21.10.15 вечерком)
coolermister
Сообщения: 49
Зарегистрирован: Пт июл 31, 2015 9:23 am
Благодарил (а): 12 раз
Поблагодарили: 17 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение coolermister » Ср окт 21, 2015 5:49 pm

Заработало) Микрофон запитал через стабилизатор напряжения, и повесил сглаживающих кондеров на выход. Но основная проблема была в рассогласовании выходов микрофона, и микрофонного входа на материнке. Решение, либо рассчитать резисторный делитель, либо отключить усиление, и уменьшить громкость в alsa) К сожалению ubuntu server не позволяет захватывать аудио с линейного входа. Результаты великолепные! Распознает команды даже из коридора, без повышения голоса. В комнате так вообще шикарно, просто сказал вслух, как обычно) Пересоставлю словарь, и грамматику, для улучшения результатов.
coolermister
Сообщения: 49
Зарегистрирован: Пт июл 31, 2015 9:23 am
Благодарил (а): 12 раз
Поблагодарили: 17 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение coolermister » Ср окт 28, 2015 9:54 am

Sleepy, не могли бы вы описать как использовали и составляли языковую модель? Я составлял по статье с хабра, и с ней у меня распознает отдельно взятые слова, или вообще ничего) И еще, вы тренировали аккустическую модель?
upd. собрал версию 5prealpha. но она почему то не пишет в stdout. То есть в конвеер. Просто в консоли выводит..
sleepy
Сообщения: 24
Зарегистрирован: Чт июн 11, 2015 9:17 pm
Откуда: Ростов-на-Дону
Благодарил (а): 2 раза
Поблагодарили: 7 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение sleepy » Пт окт 30, 2015 11:27 am

coolermister писал(а):Sleepy, не могли бы вы описать как использовали и составляли языковую модель? Я составлял по статье с хабра, и с ней у меня распознает отдельно взятые слова, или вообще ничего) И еще, вы тренировали аккустическую модель?
upd. собрал версию 5prealpha. но она почему то не пишет в stdout. То есть в конвеер. Просто в консоли выводит..
Та что у меня сейчас сделана через он-лайн сервис.
http://cmusphinx.sourceforge.net/wiki/tutoriallm вот по этой инструкции.
http://www.speech.cs.cmu.edu/tools/lmtool-new.html это сам сервис.
Но я не уверен, что это правильно. Но работает.

Вообще правильно надо сделать через srilm
https://github.com/desilinguist/swig­srilm тут качаем
Но как собирать, я не знаю. Не разбирался.

А по поводу тренировки...
Я через gui сервера на пайтоне записываю под каждую фразу/слово отдельный аудио файл.
А потом другим скриптом запускаю все необходимые команды и получаю файл, который надо добавить в параметр при запуске распознавалки.

Как я понял, самое главное составить правильно предложения команд.
И либо сделать по правилам lm, которая автоматом расставляет "веса" к каждому слову, либо же написать грамматику с весами.

Вот составить правильный список команд для меня кажется самым проблемным, остальное мелочи программирования.
coolermister
Сообщения: 49
Зарегистрирован: Пт июл 31, 2015 9:23 am
Благодарил (а): 12 раз
Поблагодарили: 17 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение coolermister » Вс ноя 01, 2015 11:08 am

*** CURL error: 'Couldn't resolve host 'moderate.cleantalk.ru'' or disabled allow_url_fopen in php.ini. Antispam service cleantalk.org ***
Последний раз редактировалось coolermister Пт ноя 13, 2015 12:47 pm, всего редактировалось 1 раз.
coolermister
Сообщения: 49
Зарегистрирован: Пт июл 31, 2015 9:23 am
Благодарил (а): 12 раз
Поблагодарили: 17 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение coolermister » Вс ноя 01, 2015 9:39 pm

sleepy, большое спасибо) Дописал исходники версии 5prealpha, теперь она выводит в stdout, и все работает) Действительно, я языковой моделью в разы лучше) Даже и тренировка не нужна.. Вы решили как нибудь проблему ложных срабатываний? Со старым микрофоном я такой проблемы не наблюдал, а вот с новым другое дело. Решение видимо именно в правильном составлении команд?
p.s. Если кого интересует новая версия пишите - выложу.
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение Amarok » Пн ноя 02, 2015 6:58 am

выкладывай
Моя Алиска живёт на Proxmox в Debian 12
sleepy
Сообщения: 24
Зарегистрирован: Чт июн 11, 2015 9:17 pm
Откуда: Ростов-на-Дону
Благодарил (а): 2 раза
Поблагодарили: 7 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение sleepy » Пн ноя 02, 2015 9:17 am

coolermister, я пока отложил разработку из-за переездов :(
А идеи по ложным срабатываниям:
- чистка от шумов (телик) - с помощью двух микрофонов, как Вы ранее писали.
- нужно чтобы домовой мог управлять всеми звуками в доме, мог определять в какой комнате обращаются и чётко определял одно ключевое слово и чтобы оно не срабатывало от любого шума.
идея в том, чтобы говорить "домовой/алиса/эйтытам", а умный дом определял в какой комнате к нему обратились и тушил там все звуки и уже слушал команды, после чего говорим "спасибо/благодарствую" и умный дом возвращает звук обратно.

Что нужно для чистки Вы уже писали.
А для второй идеи нужен мультирум(для управления звуками)(например sdm тут на форуме есть)+управления теликом через ИК+управление прочими звуковыми приборами,
(дальше просто идея) в каждую комнату по микрофону и на каждый микрофон свой сервер распозновалки, при этому распознование передаёт не только фразу, но и номер микрофона по которому и определяем расположение.

upd: Для более точного анализа определения речи, можно ещё анализировать где вообще находятся люди. Самый просто способ через датчики движения, но лучше конечно через камеры с определением лиц с помощью библиотеки opencv. Но opencv это уже отдельная тема, к ней перейдём, как тут добьём :)

Вы lm как сделали? через он-лайн или через ­srilm ?
Аватара пользователя
Amarok
Сообщения: 1427
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение Amarok » Пн ноя 02, 2015 10:03 am

coolermister писал(а):Заработало) Микрофон запитал через стабилизатор напряжения, и повесил сглаживающих кондеров на выход
Схему можно?
Моя Алиска живёт на Proxmox в Debian 12
coolermister
Сообщения: 49
Зарегистрирован: Пт июл 31, 2015 9:23 am
Благодарил (а): 12 раз
Поблагодарили: 17 раз

Re: Оффлайн распознавание речи. PocketSphinx.

Сообщение coolermister » Пн ноя 02, 2015 12:40 pm

Amarok, Схема элементарная, во вложении.Но если у вас шум, главная проблема была в
Но основная проблема была в рассогласовании выходов микрофона, и микрофонного входа на материнке. Решение, либо рассчитать резисторный делитель, либо отключить усиление, и уменьшить громкость
. Такая стабилизация это больше перестраховка. Исходники приложу по позже, я их куда то дел) Думаю как доберусь, так уже и шапку обновлю.
sleepy, lm я сделал онлайн. Пытался въехать в срилм, но там вообще какая то жесть) Может быть использовать еще один микрофон например, на котором будет сфинкс в режиме поиска ключевого слова? И когда слово найдено, включает основное распознавание? Изврат конечно, но в линуксе alsa не позволяет двум программам производить захват) Походу скоро придется пересобирать опять, под ненавистный pulseaudio)
Впринципе, сейчас у меня все работает хорошо. Но это когда я один в комнате) Когда я с кем то разговариваю, начинается самопроизвольное моргание света, включение принтера, и так далее) Короче сюжет для низкобюджетного ужастика)
Для более точного анализа определения речи, можно ещё анализировать где вообще находятся люди. Самый просто способ через датчики движения, но лучше конечно через камеры с определением лиц с помощью библиотеки opencv. Но opencv это уже отдельная тема, к ней перейдём, как тут добьём :)
Не кисло вы замахнулись)) Если opencv юзать, можно и авторизацию по лицу сделать)
Вложения
подключение.PNG
подключение.PNG (16.31 КБ) 9941 просмотр
За это сообщение автора coolermister поблагодарил:
Amarok (Пн ноя 02, 2015 1:17 pm)
Рейтинг: 1.16%
Ответить