Аудиоанализ для определения человеческого голоса, пола, возраста и эмоций - была ли сделана какая-либо предварительная работа с открытым исходным кодом? - PullRequest
24 голосов
/ 21 февраля 2011

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

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

Ответы [ 3 ]

31 голосов
/ 08 марта 2011

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

Если у вас есть опыт применения алгоритмов обработки сигналов или машинного обучения, вы можете попробовать поискать научные статьи, используя некоторые из следующих поисковых терминов:

  • гендерная идентификация (иногда называемаяраспознавание пола): прогнозирование пола говорящего по речевому высказыванию
  • идентификация возраста: прогнозирование возраста говорящего
  • идентификация говорящего: прогнозирование из набора возможных говорящих наиболее вероятныхговорящий в речевом высказывании
  • проверка говорящего: принятие или отклонение высказывания как принадлежащего говорящему (представьте систему авторизации типа «голосовой отпечаток»)
  • диаризация говорящего: получение аудиофайла с несколькимифайлы и маркировка, какие сегменты речи принадлежат какому говорящему
  • распознавание эмоций: предсказание эмоций говорящего по речевому высказыванию (очень новая область исследования).

Согласно http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#speaker_identification, CMU Sphinx, который, вероятно, является ведущим распознавателем речи с открытым исходным кодом, не поддерживает идентификацию говорящего (http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#speaker_identification); Я сомневаюсь, чтоу него есть любые другие возможности, описанные выше.

Некоторые ученые-исследователи публикуют свой код в Интернете и / или могут захотеть поделиться им с вами. Поиск в Google Scholar обнаруживает множество людей, написавших Master илиКандидатские диссертации с использованием Sphinx, так что это может быть хорошим началом.

Наконец, вы можете попытаться реализовать очень грубый алгоритм распознавания пола, не вдаваясь в сам распознаватель речи, если вы знаете немногообработка сигналов. В основном, мужские и женские голоса различаются по своей основной частоте - согласно Википедии (http://en.wikipedia.org/wiki/Voice_frequency), мужские голоса находятся в диапазоне 85-180 Гц, в то время как женские голоса имеют частоту 165 Гц-255 Гц. Вы можете использовать что-то вроде sox дляопределить частотный спектр (используя то, что называется быстрым преобразованием Фурье)высказывание и классифицировать речь как «мужское» или «женское» в зависимости от некоторой сводной статистики, такой как средняя частота (см. http://classicalconvert.com/tag/sox/)., чтобы сделать это надежно (например, с множеством динамиков, микрофонов или записывающих сред), естьмножество вещей, которые вы можете сделать.Я не уверен, смогу ли я предсказать, сколько времени и усилий потребуется, чтобы получить точность 70%, поскольку это будет зависеть от характера вашей задачи;Я чувствую, что 90% + определенно будет очень трудно.

Удачи!

3 голосов
/ 02 декабря 2011

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

stackoverflow вопрос о диаризации

3 голосов
/ 06 мая 2011

Может быть довольно сложно извлечь информацию низкого уровня, такую ​​как высота и мощность, используя CMU Sphinx 4 (хотя более старая версия может иметь такую ​​возможность).Я бы предложил вам использовать Praat.Вы можете написать сценарии для извлечения уровня высоты тона и каждого из формантов в голосе говорящего.Честно говоря, скриптовый язык Praat ужасен, но он делает много вещей быстро, что в противном случае заняло бы много времени.Многие сценарии Praat также размещены в Интернете.Смотри http://www.fon.hum.uva.nl/praat/.

...