С возвращением! Очень рады.
Приступим сразу к вопросам и хотелкам
1. Автозапуск SDM (по возможности - установка в качестве службы Windows XP/7/8/10): очень не хватает это функции "из коробки"
2. Возможность задавать путь хранения stream-файлов: к примеру, у меня многие временные файлы складываются на RAM-диск
3. GET запрос не распознан: редко, но произносится - напрягает
4. Можно привинтить распознавание голоса без участия интернет-сервисов?
1. С автозапуском постараюсь вскоре решить. Я просто никогда не делал этого. Просто добавлял ярлык в папку автозагрузки. Возможно будут подводные камни на разных осях, если делать это из кода. Надо будет почитать и посмотреть примеры, чтобы сделать правильно. Решим, в будущем конечно.
2. Легко. Мне еще пару вечеров надо поработать с программой, чтобы выложить пробную версию. Добавлю путь туда. Будет задаваться в ini файле.
3. Это было даже больше отладочное сообщение. Уберу конечно.
4. Очень огромная и большая тема. Но после перехода на новую библиотеку появился небольшой но светлый лучик надежды. Дело в том ,что сейчас весь процесс записи контролируется программой. Ранее это делали костыли. Так что когда закончу с основными задачами, то попробую покопать эту тему. Возможно сначала начну с определения например двух хлопков в ладоши. Это весьма уникальный звук, который трудно повторить прочими шумами. Ну а в будущем уж куда кривая выведет, и какие примеры мне в руки попадутся. Библиотека сложная, но в то же время очень удобная. Будем изучать. Если получится сделать определение ключевого слова, это уже будет победа.
А полное распознавание речи наверное нет. Не осилю. Тема совсем не по моему направлению. Но имея полный контроль над процессом получения и записи звука, можно будет применить например эквалайзеры, чтобы выделить именно частоту голоса, и возможно именно голоса хозяина. Я думаю это сильно повысит качество распознавания при наличии прочих шумов.
Но если появится сторонняя программа, которой можно будет подпихнуть wav файлик и получить с неё ответ, то это будет отличный костыль для моей проги, и я обязательно сделаю такую возможность.
Как итог:
- Основная цель программы это построение очереди сообщений. Это уже есть и отлично работает. Звуки и текст не накладываются друг на друга.
- Мультирум на основе каналов звуковой карты. Тоже есть, и у меня уже три комнаты разведены на разные динамики.
- А вот для распознавания текста используется только один микрофон. По идее нет проблем установить вторую звуковую карту в сервер и научить программу работать с двумя картами одновременно. Или попробовать развести стерео микрофон на два моно и случать разные каналы. Беда в том, что длинна провода микрофона не может быть большой. И чтобы голосовые команды работали в другой комнате, сейчас потребуется поставить там еще один комп. Можно какой нибудь по проще конечно.
Разберёмся с основными задачами, а потом посмотрим как с этим быть. У меня есть один микрофон он звукового ресивера. Он был для его настройки. Отлично работает! И длина его шнура 10 метров. Еще есть такая вещь как IP микрофоны. И уже расстояние не имеет значение. Допилим со временем!
Еще не смотрел, но чисто теоретически можно будет использовать любой сервис. От сторонней программы до удаленного сервиса типа гугла. Или даже отдельная железяка в локальной сети, если такая когда то появится. Сейчас основные силы брошены на организацию процесса записи звука. Минимальное и максимальное время, + контроль тишины. С эквалайзерами пока не баловался, но рабочий пример нашёл. В будущем обязательно буду экспериментировать. Это будет очень полезно для определения тишины и подавления шума. Завтра если успею постараюсь выложить пробную версию. Путь для stream файлов добавил в настройки ini.
Варианты распознавания планирую потом делать на выбор. Если будут найдены ещё способы, то можно будет выбирать в настройках что использовать. Примерно так же как сейчас можно выбирать звуковой движок.
На данный момент для работы со звуком используется библиотека BASS, которая полностью устраивает и предоставляет огромные возможности. Работает очень стабильно!
Ребята, я нашел пример для записи звука сразу в формате flac. Если всё получится, то это позволит убрать ещё один костыль с переконвертированием из wav во flac. О плюсах говорить не буду. Их вы сами видите.
Но к сожалению пример не полный. Только описание функции и константы. Сегодня буду пробовать написать сам. О результате доложу
Друзья, к сожалению у меня не получилось правильно описать структуру flac файла, чтобы писать сразу в этом формате. Гугл очень требовательно относится к формату, и если его что то не устраивает, то он просто не отвечает на запрос. Но никто не сдается. Просто пока я использовал костыль для переконвертирования wav во flac. Код распознавания (отправка в Гугл) так же пока остался на стороне php сервера. Тема тоже большая, но через некоторое время, думаю, что я найду решение.
Тем не менее сейчас всё работает! Костыли почти не беспокоят. Ближе к ночи выложу что получилось. Ну а дальше продолжим бороться с трудностями.
Выкладываю бетку 1.4 Интересно как она заработает на разных компьютерах. Описание добавлю завтра.
Из главного:
Все звуковые функции переписаны с использованием библиотеки bass.dll
в ini файле добавлена возможность задать путь для временных файлов.
Убрал звуковое сообщение про GET запрос
Много еще не доделал. Настройки на форме не все сохраняются при закрытии. Вскоре сделаю.
Как это всё связать с МД тоже вскоре напишу.
Все параметры и варианты обмена данными остались как раньше.
Завтра постараюсь выложить на первой странице. Надо ещё коне что поправить.