#c_sharp #нейронные_сети
Как wav формат правильно разобрать, чтобы ввести в нейронную сеть, и, какую сеть выбрать для лучшего распознавания?
Ответы
Ответ 1
Например, есть такой вариант для распознавания голоса (голосовых команд): Вы разбиваете свой файл на N-кусочков, по секунде, например, каждый. Разбивка заключается в наложении оконной функции. После этого, каждый из кусочков файла подвергается сглаживанию, т.е. накладывается окно, например Хэмминга, которое даст более выраженную гармоническую часть. Далее преобразование Фурье (естественно можно использовать быстрое преобразование Фурье). Получается спектр, который после нормировки (деления каждого компонента полученного вектора на его длину), который логарифмически сжимается, удаляя тем самым часть не очень выраженных гармоник, особенно верхних частот. Собственно полученный сжатый спектр и является входом нейронной сети. Для использования распознавания мною лично была использована сеть Кохонена. Обычно перед тем, как что-то распознать, необходимо определить, какой тип данных будет в файле. Т.е. музыка или голос. Затем нужно подобрать те параметры, по которым вы хотите распознавать, например, для голоса, чтобы определять по голосу человека это одно, а определение того, что он говорит - совершенно другое, причем первое - проще. В зависимости от параметров, подбираются окна, которые будут выделять кусочки слов или целые слова и так далее. Достаточно скромное описание по которому можно сделать простейший распознаватель представлена здесь. Не менялось там уже ничего давно, да и ошибки есть.Ответ 2
Для работы со звуком подойдут сверточные сети(CNN) и рекуррентные сети(rnn,lstm). В качестве векторов признаков можно использовать спектр, FBANK, MFCC, LPC. Все зависит от конкретной задачи.
Комментариев нет:
Отправить комментарий