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

4

Я запишу свой собственный голос и сохраню их в виде файлов 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

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

@DavidBrabant да только голос Somnath
Зависит от ваших аудиоданных. Это голос? Это музыка? Это чистые тона? Какой длины типичный образец? David Brabant
Думаю, это будут мои собственные голосовые команды для моего компьютера ... & quot; Do this & quot ;, & quot; Do this & quot; для меня.. Somnath

Ваш Ответ

4   ответа
2

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

3

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

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')

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

0

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

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

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

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

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

EDIT:

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

Я обновил свой вопрос. Пожалуйста, проверьте. Somnath

Похожие вопросы