Управление Умным Домом с помощью голоса
Re: Управление Умным Домом с помощью голоса
Копался на гитхабе, нашёл проект называется Jarvis, используется google
http://cranklin.wordpress.com/2012/06/2 ... is-part-2/
http://cranklin.wordpress.com/2012/06/2 ... is-part-2/
Re: Управление Умным Домом с помощью голоса
Можете выслать сертификат с переименнованным .crt? Через Яндекс.Народ браузер сразу предлагает установить сертификат, а скачанный из Интернета при подключении выдаёт:
Кто подскажет, как решить?
P.S. Решение найдено:
Для пользователей ОС Windows: укажите полный путь к сертификату D:\...т.д......\curl-ca-bundle.crt
Код: Выделить всё
error setting certificate verify locations: CAfile: curl-ca-bundle.crt CApath: none
P.S. Решение найдено:
Для пользователей ОС Windows: укажите полный путь к сертификату D:\...т.д......\curl-ca-bundle.crt
Последний раз редактировалось Ajerec 15 июл 2013, 14:32, всего редактировалось 1 раз.
Re: Управление Умным Домом с помощью голоса
Также нашёл библиотеку, в которой из .wav можно сжать в .flac прямо на PHP.
Скачать библиотеку можно тут.
Запуск с помощью команды
Скачать библиотеку можно тут.
Запуск с помощью команды
Код: Выделить всё
system('"D:\путь к распакованной папке библиотеки\FLAC\flac.exe" -f'.'H:\полный путь к файлу');
Re: Управление Умным Домом с помощью голоса
Ajerec, вызов system() - это не библиотека "прямо из PHP", это такой же внешний вызов, как если бы flac.exe вызывался в cmd/shell-скрипте до выполнения PHP-скрипта.
Re: Управление Умным Домом с помощью голоса
Андрей,
в фестивале только мужской голос?
Если есть женский, то подскажите, пожалуйста, как его поставить?
скачал msu_ru_nsh_cg (вроде пишут в Нете, женский), а перенаправить фестиваль не могу.
в фестивале только мужской голос?
Если есть женский, то подскажите, пожалуйста, как его поставить?
скачал msu_ru_nsh_cg (вроде пишут в Нете, женский), а перенаправить фестиваль не могу.
Re: Управление Умным Домом с помощью голоса
Можно ли управлять громкостью в Линуксе программно из PHP?
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
RHVoice - основан на фестивале, есть мужской и женский. Говорит даже получше...Андрей писал(а):Андрей,
в фестивале только мужской голос?
Если есть женский, то подскажите, пожалуйста, как его поставить?
скачал msu_ru_nsh_cg (вроде пишут в Нете, женский), а перенаправить фестиваль не могу.
Само управление зависит от драйвера, например для альсы. amixer setmaster 20. Кажется так, точно не помню. Если карт несколько то ключ -c укажет на какую именно. А вызов с помощью exec или. shell_exec.
Лень — двигатель прогресса...
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Решил переписать все (ну как всегда...), что было и пойти другим путём. В первых вариантах я пытался сравнить "новый" голос с имеющейся базой своеобразного хэша... Результаты так себе, хоть и работало. Сейчас же решил углубиться в фонетику русского языка и в сторону нейронных сетей.
У спектрограммы синтезатора речи (использовал RHvoice, мужской голос) и моей спектрограммы очень похожи группы звуков по частоте за небольшой разницой в несколько кГц. Например буква "с" у робота - это полоска с 500кГц и выше, у меня она тоньше и ярче, но начинается с 480кГц в 95% сказанных мной слов с этой буквой.
Так вот, взял первую попавшуюся книгу (в виде текста) на 1,4 Мб. (процессор на ноутбуке i3)
split --line-bytes=100 book.txt порезал книгу на фрагменты не превышающие 100 байт, что избавило от длинных строк. Получилось округленно 15300 фрагментов.
Затем озвучивал их
cat ./books/name | RHVoice -r=75 -p=60 > ./ogg/name.ogg - на выходе 15000 (грубо говоря), выкинуло пустые строки.
Времени на озвучку ушло 3,5 часа ))))))) папочка разрослась до 1,7 Гб
Следующим шагом спектрограммы - 2,5 Гб, и около 1 часа времени
sox ./ogg/name -n spectrogram && cp spectrogram.png ./sp/name
размер 591х...
Так как sox делает изображение с рамкой, пришлось динамический искать ширину для каждого файла (серая рамка) и вырезать, одновременно убирая цвет.
convert -crop ".$x."x510+58+31 -colorspace GRAY ./sp/name ./png/name
размер 510х...
В итоге папочка в 2Гб - 40 минут.
Это еще не всё )
Далее скалируем по времени наше изображение. Есть короткие фразы, а есть длинные. При скалировании, мы растягиваем или сжимаем относительно времени файла sox --info file. То есть "Я тут" и "Я хотел бы зайти сегодня к Вам" на выходе будут иметь одинаковую длину звуков. ведь sox делает не бесконечно широкие изображения
Отскалировав и изменив размеры
$h = 200;
$w = ($width - 310);
$cmd = "convert -resize ".$w."x".$h." -rotate 90 0.png 0.png";
начинается самое неблагодарное, поиск и выделение групп...
С помощью similar_text, уровень похожести в 190 (не в процентах, подобрано опытно) делится на группы и пишется в массив. levenshtein ругается на длинну и выдает странные цифры, расстояние хэмминга тут не к месту, так как сравниваются "5 35 95 12....." строки такого вида.
Затем, для каждой группы (а это звук), мы ищем среднее значение, в итоге мы сжимаем все изображение до 1+1+1+1... Сколько групп найденно, столько и будет ширина. Скрипт уже обрабатывает по времени около 40 секунд... Но этого мало, нужно посчитать новые, тоже похожие строки (бывшие группы), записать результаты в файл, в другой записать эти самые группы ))
Итого 1,20 на обработку изображения 200х(300) - (длинный потому что мы его скалировали)
Так как руки растут у меня не из того места в скрипте была допущена ошибка, и незамеченная отправлена на выполнение у меня получилось очень много не нужных цифр и файлов спустя 3 часа...
Сейчас оптимизирую скрипт и пытаюсь его ускорить, на ночь поставлю считаться ))
Так вот, к чему я всё. На пробнике, небольшой текстовый файл, озвученный, разделенный на группы и записанный в "таблицы" процент одинакоых групп, и процент частоты букв в тексте с небольшой разницей совпали ))) А это означает, что и мой голос, да и другой тоже с небольшой поправкой с течением времени (разность частот букв) должен раскладывать на текст...
В конечном итоге, после "обучения" почти в 10 часов и сортировки полученных групп по таблицам получается алфавит, который наговорил робот )
Программисты ленивый народ - однажды сказал мне коллега на работе, и я с ним полностью согласен.
Не отвлекаюсь... После получения живого голоса и динамического уничтожения шума на спектрограмме видны группы звуков, даже если произнести очень тихо или шепотом(!!!). Шум режется предельно просто, среднее значение цвета пикселей по всей длине вычитается из каждого в этой строке. В итоге остаются маленькие шумовые точки, а те "массы", которые даже не всегда видно на спектрограмме очень сильно выделяются.
Делим на группы и отправляем искать совпадения. Тут идеально использовать map reduse...
В общем, в понедельник ставлю ноут "учить" группы звуков и пишу шустренький скрипт для поиска.
О результатах как всегда - отпишусь...
У спектрограммы синтезатора речи (использовал RHvoice, мужской голос) и моей спектрограммы очень похожи группы звуков по частоте за небольшой разницой в несколько кГц. Например буква "с" у робота - это полоска с 500кГц и выше, у меня она тоньше и ярче, но начинается с 480кГц в 95% сказанных мной слов с этой буквой.
Так вот, взял первую попавшуюся книгу (в виде текста) на 1,4 Мб. (процессор на ноутбуке i3)
split --line-bytes=100 book.txt порезал книгу на фрагменты не превышающие 100 байт, что избавило от длинных строк. Получилось округленно 15300 фрагментов.
Затем озвучивал их
cat ./books/name | RHVoice -r=75 -p=60 > ./ogg/name.ogg - на выходе 15000 (грубо говоря), выкинуло пустые строки.
Времени на озвучку ушло 3,5 часа ))))))) папочка разрослась до 1,7 Гб
Следующим шагом спектрограммы - 2,5 Гб, и около 1 часа времени
sox ./ogg/name -n spectrogram && cp spectrogram.png ./sp/name
размер 591х...
Так как sox делает изображение с рамкой, пришлось динамический искать ширину для каждого файла (серая рамка) и вырезать, одновременно убирая цвет.
convert -crop ".$x."x510+58+31 -colorspace GRAY ./sp/name ./png/name
размер 510х...
В итоге папочка в 2Гб - 40 минут.
Это еще не всё )
Далее скалируем по времени наше изображение. Есть короткие фразы, а есть длинные. При скалировании, мы растягиваем или сжимаем относительно времени файла sox --info file. То есть "Я тут" и "Я хотел бы зайти сегодня к Вам" на выходе будут иметь одинаковую длину звуков. ведь sox делает не бесконечно широкие изображения
Отскалировав и изменив размеры
$h = 200;
$w = ($width - 310);
$cmd = "convert -resize ".$w."x".$h." -rotate 90 0.png 0.png";
начинается самое неблагодарное, поиск и выделение групп...
С помощью similar_text, уровень похожести в 190 (не в процентах, подобрано опытно) делится на группы и пишется в массив. levenshtein ругается на длинну и выдает странные цифры, расстояние хэмминга тут не к месту, так как сравниваются "5 35 95 12....." строки такого вида.
Затем, для каждой группы (а это звук), мы ищем среднее значение, в итоге мы сжимаем все изображение до 1+1+1+1... Сколько групп найденно, столько и будет ширина. Скрипт уже обрабатывает по времени около 40 секунд... Но этого мало, нужно посчитать новые, тоже похожие строки (бывшие группы), записать результаты в файл, в другой записать эти самые группы ))
Итого 1,20 на обработку изображения 200х(300) - (длинный потому что мы его скалировали)
Так как руки растут у меня не из того места в скрипте была допущена ошибка, и незамеченная отправлена на выполнение у меня получилось очень много не нужных цифр и файлов спустя 3 часа...
Сейчас оптимизирую скрипт и пытаюсь его ускорить, на ночь поставлю считаться ))
Так вот, к чему я всё. На пробнике, небольшой текстовый файл, озвученный, разделенный на группы и записанный в "таблицы" процент одинакоых групп, и процент частоты букв в тексте с небольшой разницей совпали ))) А это означает, что и мой голос, да и другой тоже с небольшой поправкой с течением времени (разность частот букв) должен раскладывать на текст...
В конечном итоге, после "обучения" почти в 10 часов и сортировки полученных групп по таблицам получается алфавит, который наговорил робот )
Программисты ленивый народ - однажды сказал мне коллега на работе, и я с ним полностью согласен.
Не отвлекаюсь... После получения живого голоса и динамического уничтожения шума на спектрограмме видны группы звуков, даже если произнести очень тихо или шепотом(!!!). Шум режется предельно просто, среднее значение цвета пикселей по всей длине вычитается из каждого в этой строке. В итоге остаются маленькие шумовые точки, а те "массы", которые даже не всегда видно на спектрограмме очень сильно выделяются.
Делим на группы и отправляем искать совпадения. Тут идеально использовать map reduse...
В общем, в понедельник ставлю ноут "учить" группы звуков и пишу шустренький скрипт для поиска.
О результатах как всегда - отпишусь...
Лень — двигатель прогресса...
Re: Управление Умным Домом с помощью голоса
ArtSamovar, интересные результаты. Будем и дальше внимательно следить. Если все у вас получится, думаю, было бы неплохо получить пошаговую инструкцию, а также, может быть, выложить куда-нибудь готовую базу.
Re: Управление Умным Домом с помощью голоса
ArtSamovar, Молодец!!! Продолжайте Ваши поиски! Результаты несомненно интересные.
Re: Управление Умным Домом с помощью голоса
Пытаюсь его поставить уже пару часов...ArtSamovar писал(а): RHVoice - основан на фестивале, есть мужской и женский. Говорит даже получше...
RHVoice -l
ERROR: ld.so: object '//build/linux2/lib/libRHVoice.so' from LD_PRELOAD cannot be preloaded: ignored.
Если можно, киньте ссылку, на правильную пошаговую установку RHVoice...
P/S Olga-Yakovleva-RHVoice-302e762 пакет скачал.
все вроде сделал. Но не может найти библиотеку...
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
Добрый день! Подскажите пожалуйста почему у меня не работает часть скрипта та что после
// Ищем в ответе Google наши команды.
// Если находим, выполняем заранее запрограммированное действие. В данном случае, вывод на экран
Хотя в $result содержится результат написанного выше скрипта а в $voice_cmd само слово. В чем может быть проблема ? Ошибок не выводит.Windows 7 php 5.3.27 apache 2.2.25
// Ищем в ответе Google наши команды.
// Если находим, выполняем заранее запрограммированное действие. В данном случае, вывод на экран
Хотя в $result содержится результат написанного выше скрипта а в $voice_cmd само слово. В чем может быть проблема ? Ошибок не выводит.Windows 7 php 5.3.27 apache 2.2.25
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
https://github.com/Olga-Yakovleva/RHVoi ... master.zipАндрей писал(а): Если можно, киньте ссылку, на правильную пошаговую установку RHVoice...
Вот пакетик с гитхаба... В файле INSTALL написано:
* A C/C++ compiler
* SCons build system (http://www.scons.org/)
* Python (http://www.python.org/)
* Flite 1.4 or later
* GNU libunistring 0.9.3 or later
* expat
* pcre
* libsox
..................
ld.so - ищет и загружает динамические библиотеки...
Судя по всему, проблема с компиляцией
gсс
scons
flite, flite-dev
libunistring-dev
Нужны пакеты разработчиков, обратите на это внимание
В любом случае, зайдя в папку RHVoice, после распоковки, запустите scons
И читайте его вывод, там он всё напишет, что вам не хватает.
затем scons install... Всё )
Проверить просто... echo "Я заговорил" | RHVoice - |play -
Лень — двигатель прогресса...
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
А что вы произносите? "Включить свет", или "включить"?arbuzmaster писал(а):Добрый день! Подскажите пожалуйста почему у меня не работает часть скрипта та что после
// Ищем в ответе Google наши команды.
// Если находим, выполняем заранее запрограммированное действие. В данном случае, вывод на экран
Хотя в $result содержится результат написанного выше скрипта а в $voice_cmd само слово. В чем может быть проблема ? Ошибок не выводит.Windows 7 php 5.3.27 apache 2.2.25
Тот массив, где написано array("включ", "свет") - это содержание фразы в целом, он не будет ничего выводить если не найдены оба кусочка.
Замените array("включ", "свет"), на array("свет"), попробуйте сказать "свет", должен вывести...
Лень — двигатель прогресса...
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Не может быть, а выложу ))Andrey_B писал(а):...было бы неплохо получить пошаговую инструкцию, а также, может быть, выложить куда-нибудь готовую базу.
Не стал ждать понедельника, запустил вчера утром, посчиталась за 6 часов примерно. К трём после полудня закончил )
Отсортирую и выложу тогда полностью отсортированные группы звуков и выложу не обрезанные (но их я думаю он будет считать еще больше), в любом случае, несколько вариантов базы выложу.
С пошаговой инструкцией немного повременю, так как нужно еще "поиск" сделать, да и работа с человеческим голосом будет отличаться, от обучения по книжкам.
Поиграться бы с ядрами, "распараллелить" бы всё это обучение... Но пока руки не доходят
Лень — двигатель прогресса...
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
ArtSamovar писал(а):А что вы произносите? "Включить свет", или "включить"?arbuzmaster писал(а):Добрый день! Подскажите пожалуйста почему у меня не работает часть скрипта та что после
// Ищем в ответе Google наши команды.
// Если находим, выполняем заранее запрограммированное действие. В данном случае, вывод на экран
Хотя в $result содержится результат написанного выше скрипта а в $voice_cmd само слово. В чем может быть проблема ? Ошибок не выводит.Windows 7 php 5.3.27 apache 2.2.25
Тот массив, где написано array("включ", "свет") - это содержание фразы в целом, он не будет ничего выводить если не найдены оба кусочка.
Замените array("включ", "свет"), на array("свет"), попробуйте сказать "свет", должен вывести...
Попробовал и так и по другому и другую фразу эффекта ноль. не пойму в чём беда? Может в этом при запуске php.exe выдает derective register_long_arrays is deprecated in php 5.3 and greater in unknown on line 0
Re: Управление Умным Домом с помощью голоса
ArtSamovar, RHVoice по Вашей ссылке поставил. Спасибо. Вроде поставился, по крайней мере help выводит
При попытке:
echo "Я заговорил" | RHVoice - |play -
play FAIL formats: can't open input `-': WAVE: RIFF header not found
Т.е. как бы он поставился... Но говорить отказывается...
Скачал базу Елена... но как и куда ее засунуть не знаю...
Подскажете?
В Нете о RHVoice только восторженные отзывы, не больше. И скромные (оч. скромные) рекомендации, в коих я так и не нашел ответа...
С фестивалем то же не хай фай. Минуту думает после запуска из PHP и ... накладывает две голосовые команды друг на друга...
При попытке:
из командной строки терминала выдает-Проверить просто... echo "Я заговорил" | RHVoice - |play -
echo "Я заговорил" | RHVoice - |play -
play FAIL formats: can't open input `-': WAVE: RIFF header not found
Т.е. как бы он поставился... Но говорить отказывается...
Скачал базу Елена... но как и куда ее засунуть не знаю...
Подскажете?
В Нете о RHVoice только восторженные отзывы, не больше. И скромные (оч. скромные) рекомендации, в коих я так и не нашел ответа...
С фестивалем то же не хай фай. Минуту думает после запуска из PHP и ... накладывает две голосовые команды друг на друга...
-
- Сообщения: 184
- Зарегистрирован: 07 ноя 2011, 08:45
- Откуда: Ступино МО
Re: Управление Умным Домом с помощью голоса
Вам же сам sox пишет, что заголовок, описывающий формат не найден, используйте ключ -t чтобы явно указать его.Андрей писал(а): play FAIL formats: can't open input `-': WAVE: RIFF header not found
Советую посмотреть список библиотек
apt-cache search libsox
А затем махнув рукой, и произнеся заветную фразу "К чёрту!" установить всё...
apt-get install libsox-*
или урезаное "всё"
apt-get install libsox-fmt-all
Удачи )))
Кстати, что за система у Вас?
UPD:
echo "Вавки есть" | RHVoice > file.wav
echo "Огэгэшки тоже" | RHVoice > file.ogg
echo "И даже флац" | RHVoice > file.flac
echo "А это нам не надо..." | RHVoice > file.mp3
Лень — двигатель прогресса...
Re: Управление Умным Домом с помощью голоса
DEBIANArtSamovar писал(а):Кстати, что за система у Вас?
-
- Сообщения: 254
- Зарегистрирован: 15 июл 2013, 23:43
- Откуда: Астрахань
Re: Управление Умным Домом с помощью голоса
echo $cmd_matrix[0][0] $cmd_matrix[1][0]выдает array а $cmd_matrix[1][1] $cmd_matrix[0][1]switch off switch on соответственноarbuzmaster писал(а):ArtSamovar писал(а):А что вы произносите? "Включить свет", или "включить"?arbuzmaster писал(а):Добрый день! Подскажите пожалуйста почему у меня не работает часть скрипта та что после
// Ищем в ответе Google наши команды.
// Если находим, выполняем заранее запрограммированное действие. В данном случае, вывод на экран
Хотя в $result содержится результат написанного выше скрипта а в $voice_cmd само слово. В чем может быть проблема ? Ошибок не выводит.Windows 7 php 5.3.27 apache 2.2.25
Тот массив, где написано array("включ", "свет") - это содержание фразы в целом, он не будет ничего выводить если не найдены оба кусочка.
Замените array("включ", "свет"), на array("свет"), попробуйте сказать "свет", должен вывести...
Попробовал и так и по другому и другую фразу эффекта ноль. не пойму в чём беда? Может в этом при запуске php.exe выдает derective register_long_arrays is deprecated in php 5.3 and greater in unknown on line 0