Как получить данные аудио частоты из волнового файла? - PullRequest
3 голосов
/ 24 апреля 2010

Я хочу построить механизм распознавания речи в ruby. Я знаю, что никогда туда не доберусь, занимаясь этим просто ради удовольствия. Мне нужно получить данные о частотах звука, хранящиеся в файле WAV, чтобы сравнить их с данными, которые у меня уже есть, о различных звуках, которые я хочу распознать. Я напишу код на ruby, но я не думаю, что для этого есть какие-либо библиотеки, написанные на ruby, они будут слишком медленными, если они вообще будут. Хорошо, что в ruby ​​я могу использовать библиотеки для .net через IronRuby или Java через Jruby. Как я могу получить данные о частоте?

Ответы [ 2 ]

3 голосов
/ 24 апреля 2010

Волновой файл не слишком сложен, по сути, это всего лишь серия аудиосэмплов: http://www -mmsp.ece.mcgill.ca / Documents / AudioFormats / WAVE / WAVE.html .

Как только вы сможете прочитать сэмплы, следующим шагом будет запустить их через преобразование БПФ, чтобы получить частотный контент.Должна быть какая-то реализация с открытым исходным кодом, которую вы можете использовать, или вы могли бы реализовать ее самостоятельно.

То, что вы пытаетесь сделать, требует некоторого понимания аудио и математики, лежащей в основе обработки сигналов, поэтому, возможно, вы захотите начать с книги по этому вопросу.

0 голосов
/ 23 июля 2013

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

  • Хорошие аудиофункции (вы хотите найти что-то, что однозначно опишет голос каждого громкоговорителя, который у вас есть в наборе данных), большинство аудиофункций извлекаются на основе спектра сортировки ( что означает на БПФ сигнала, взятого на маленьких кадрах вашего аудиосигнала, где сигнал должен быть стационарным). Но мы никогда не принимаем сам спектр (журнал БПФ) в качестве дескриптора (слишком много ненужной информации в спектре). Что наиболее важно для описания голоса кого-либо, так это огибающая спектра. Вам определенно стоит взглянуть на звуковой дескриптор, называемый MFCC (для кепстральных коэффициентов частоты Mel), который является наиболее широко используемым аудиофункцией для задач реко-динамиков.

  • тогда вам также нужен хороший классификатор (что-то вроде GMM, SVM ...), потому что эта проблема решается с помощью контролируемых алгоритмов машинного обучения. По сути, вам нужно обучить модель для каждого оратора, которого вы хотите распознать, и затем вы протестируете свою модель, используя данные, которые не использовались для обучения. Модель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...