Фундаментальная частота + распознавание голоса в c # - PullRequest
3 голосов
/ 23 октября 2009

Я пытаюсь определить голосовой ввод с микрофона в режиме реального времени.

Я уже получил вход, выполнил алгоритм FFT и получил результат в дБ. У меня есть частотная область, временная область и спектрограмма.

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

ТКС заранее

Ответы [ 2 ]

3 голосов
/ 05 декабря 2009

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

Обнаружение основной частоты не поможет вам определить, говорит ли конкретный человек, если это то, что вы пытаетесь сделать. Частота вашего голоса постоянно меняется. Вы должны будете сделать «отпечаток» форманты человека и т. Д.

Простое нахождение пика БПФ не даст вам хороших результатов для голоса. Посмотрите на кепстральный анализ .

1 голос
/ 23 октября 2009

Возьмите самый высокий пик на спектрограмме, который находится в диапазоне для голоса (скажем, от 400 до 10 кГц). Это должно дать вам основную частоту.

В качестве альтернативы вам может потребоваться интегрировать гистограмму частот. Это потому, что иногда у вас есть слова, которые начинаются с или содержат сибиланты (звуки "s") и фрикативные звуки (звуки "f" и "th"), которые имеют довольно высокие частоты и широкий спектр. Вы не хотите пропустить начало речи, потому что оно началось с чего-то другого, кроме гласной.

Еще один фактор - это то, что вы могли бы услышать, кроме голоса. Много ли фонового шума? Какие? Если их нет, достаточно только наличия звука. Если, например, есть музыка, то у вас совершенно другая задача. Если вы пытаетесь провести различие между голосом и некоторыми другими звуками, то у меня возникнет соблазн попробовать подход с использованием нейронной сети - вероятно, он потребует такого уровня сложности.

...