Сравните два аудио файла для ритма / темпа и рейтинга в iphone - PullRequest
3 голосов
/ 22 декабря 2010

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

Это приложение также должно иметь возможность расшифровывать, включены или нет фразы пользователя с заданным ритмом. Когда пользователь поет на микрофоне, играет только инструментальная музыка.

Так что мне нужно объединить записанный голос пользователя с инструментальной музыкой - это один аудиофайл. Уже у меня есть на оригинальном файле песни. Я должен сравнить оба и дать оценку пользователям.

Примечание ... Инструментальная музыка без вокала исходного файла композиции.

Может кто-нибудь помочь мне? Спасибо, Вадивелу

Ответы [ 2 ]

1 голос
/ 08 февраля 2011

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

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

0 голосов
/ 13 февраля 2011

Позвольте мне попытаться понять приложение, которое вы создаете.

  1. У меня есть iPhone, и я играю в Lady Gaga: P.
  2. Воспроизводит оригинальную песню (инструментал + вокал).
  3. Когда я начинаю петь, приложение должно обнаружить, что я пытаюсь исполнить песню.
  4. Если он определяет это, он переключается только на игру на инструментале (стиль караоке).
  5. Одновременно он записывает мой голос. В конце песни анализируется, насколько хорошо я пел.

Если это правильно, позвольте мне попытаться сделать удар на Шаге 4. Основная идея заключается в том, что только если я пою что-то близко к воспроизводимой песне, она должна переключиться в режим караоке.

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

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

Затем я слушал в микрофон и в режиме реального времени вычислял огибающую энергии входного аудио.

Зная, что я нахожусь в «телефоне» на 2 часа, я бы сравнил энергетический конверт истины от 1:55 до 2:00 с энергетическим конвертом последних 5 секунд, которые я записал. Я бы как-то нормализовал каждый конверт. В зависимости от балла перекрытия я бы решал, пытался ли человек спеть «Телефон» или нет.

Удачи!

Chuan

...