Подбор звука / поиск - PullRequest
5 голосов
/ 25 мая 2009

Каково современное состояние сопоставления / поиска звука в практических терминах? В настоящее время я удаленно занимаюсь планированием веб-приложения, которое, среди прочего, будет содержать и предоставлять базу данных записанных коротких аудиоклипов (не более 3-5 секунд, имена людей). Был задан вопрос, возможно ли реализовать поиск на основе голосового ввода пользователя. Моя интуиция говорит мне, что это невыполнимая задача как с вычислительной, так и с алгоритмической точки зрения, особенно в веб-приложении (и, кроме того, это не будет основной особенностью приложения). Я понимаю, что, возможно, существует ряд академических проектов и что это будет хорошей темой для исследования, но это не что-то, что может быть реализовано в веб-приложении среднего размера в качестве дополнительной функции. В подтверждение своих заявлений я потратил полчаса на поиски, чтобы не пропустить ничего очевидного, но действительно не смог найти хороших источников.

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

Ответы [ 2 ]

7 голосов
/ 25 мая 2009

Существуют некоторые технологии снятия отпечатков пальцев (в основном, проприетарные), которые по сути "хэшируют" аудиофайл. Тогда поиск - это простая хеш-таблица или поиск в базе данных.

Musicbrainz хорошо разбирается в различных технологиях Здесь

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

5 голосов
/ 25 мая 2009

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

1) Вам необходимо определить существенные особенности звука. Это часть хэширования, описанная Ником в его ответе. Даже спектрограмма может содержать слишком много информации, чтобы быть полезной. Подход, который я нашел потенциально интересным (без каких-либо теоретических знаний о речевом исследовании), был MFCC (то есть кепстральные коэффициенты частоты). На etsi.org есть бесплатный код (ищите речевые правила и стандарты).

2) Скорость речи может варьироваться, что усложняет ситуацию. Динамическое искажение времени может быть использовано для решения этой проблемы. Посмотрите этот Matlab-код для примера.

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

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