Как сравнить два аудиоданных?

Я запишу свой собственный голос и сохраню их в виде файлов wav на моем компьютере. Позже я буду говорить, и компьютер должен сопоставить мою голосовую команду с уже существующими / предварительно записанными WAV-файлами.

Вопрос: Как проверить, что два аудиоданных равны или существует 80% совпадение между двумя аудио?

if(audio1 == audio2)
   DO Task A
else if( audio1 is a bit similar to audio 2)
   DO TASK B
else if( audio1 (80% match) audio 2)
   DO TASK C
end if

Каков наилучший способ сравнения двух аудиоданных?

 Somnath29 мая 2012 г., 17:20
@DavidBrabant да только голос
 David Brabant25 мая 2012 г., 16:35
Зависит от ваших аудиоданных. Это голос? Это музыка? Это чистые тона? Какой длины типичный образец?
 Somnath29 мая 2012 г., 17:27
Думаю, это будут мои собственные голосовые команды для моего компьютера ... & quot; Do this & quot ;, & quot; Do this & quot; для меня..

Ответы на вопрос(4)

вы очень быстро никуда не добьетесь, просто попытавшись сравнить звуковые сигналы напрямую. Существует огромное количество исследований по распознаванию речи и говорящего, и вы просто заново изобретаете колесо, если не знакомы с основами. Я думаю, у вас есть несколько вариантов здесь в зависимости от того, что вы действительно хотите сделать

Start reading about HMMs, DTW (as mentioned by learnvst), and Mel-frequency Cepstral Coefficients to know where to start. Use an existing speech API such as the Microsoft one which takes care of the low level signal processing, which you can build into your application Use something even higher level such as the Windows Speech Recognition Macros which give you the ability to control aspects of your PC via speech (eg 'Play Purple Haze')

Это зависит от того, хотите ли вы узнать о низком уровне обработки речи (что потребует значительного количества математики), или вы просто хотите что-то, что работает с небольшим количеством кода.

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

Для чего-то более сложного, вы можете использовать аналогичный подход, но сделать STFT.

Однако, по всей вероятности, на ваш вопрос есть конкретный ответ.

 Somnath29 мая 2012 г., 17:52
Я объяснил требование более подробно. Я обновил пост. Пожалуйста, проверьте.
 Somnath29 мая 2012 г., 17:28
Это будут мои собственные голосовые команды для моего компьютера ... & quot; Do this & quot ;, & quot; Do this & quot; для меня..

Самодельное Распознавание речи, Это для.NET компактный каркас, но может быть легко адаптирован к обычномуvanilla .NET, Решение основано наFast Fourier Transform.

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

EDIT:

Я полагаю из вашего обновления, что вы хотите сделать простую форму распознавания речи, правильно? Если это так, то лучшим вариантом для получения оптимального соответствия для сигнала в очень ограниченном корпусе являетсяДинамическая деформация времени (DTW) РаспознавательСкрытая Марковская Модель основанные на распознавании системы являются современными, но основанная на DTW система будет значительно более простой в реализации.

 Somnath29 мая 2012 г., 17:52
Я обновил свой вопрос. Пожалуйста, проверьте.

Ваш ответ на вопрос