Наигравшись с Шорохом, а так же с С++, я понял, что всё затянется на долго...
Оставив идею написания сишной программулины на потом, решил поиграть с php )))
Результаты превосходят ожидания...
Пока что 205 строк кода с комментариями и отладочными переменными )))
На днях постараюсь допилить скрипт.
Чуть приоткрою завесу...
Как и в прошлый раз использую sox, sndfile-spectrogram и php5-gd.
Только на этот раз все намного быстрее, намного; и без интернета...
Единственное, используется Шорох и sox.....silence при записи звука.
Вкратце:
В sh скрипте while (true), он же запускает php скрипт.
php скрипт запускает запись, снятие спектрограммы, сжатие через imagemagic, и только в конце обрабатывает изображение 10х10 пикселей (!). (На Хабре была статья на похожую тему, там брали hash), После снятия "показаний" с изображения, они округляются до одного числа. И это число (100 знаков) и есть имя этого файла, которое сохраняется в папочку.
После идет (или запуская соседний процесс, чего я не делаю) сравнение имён, тех что в папке уже и нового файла, только что полученного.
Если набирается массив с N совпадений оболее 85%, то создается новая папка с тем же именем, что и файл (с префиксом), переносятся (копируются) из общей папки найденные "идеалы", копируется wav файл (конвертируется во flac и дополнительно отдаётся гуглу на распознавание.) Можно и без гугла, но придется прослушивать потом этот файл и в ручную писать что за голос в папке )). Помимо этого, сравниваются и созданные папки с именем нового файла, и если есть ещё совпадения, то и новые "идеалы" копируются в папку с максимальным совпадением (папок на одно слово или фразу может быть несколько).
Загвоздку в очередности и приоритета решил простым временным файлом, куда в течении времени копируются имена файлов (или папок), а так же их приоритеты.
Немного о ресурсах... 135 объектов, всего 124,0 кБ - это 114 изображений + 2 папки с изображениями, current.flac, command.txt
Задержка на получение "похожести" очень маленькая и практически не заметна.
Обучение происходит немного утомительно
Зато слушая все звуки система создаст словарик, который модерируется или скриптом(!), или нами самими. (Скриптом с помощью гугла).
Большим плюсом является "исправление" ошибок. если есть допустим 5 папок, в 3 их них слово "Полина", а в других двух "Малина", то приоритет отдачи будет не только на том, где больше, но и на "весе" похожести... 80+85+80 меньше, чем 85+90... Поэтому на выходе будет "Малина"
В общем много говорю )))
В ближайшее время выложу скрипт
Лень — двигатель прогресса...