2011-01-24 4 views
0

Я хочу знать, можем ли мы преобразовать аудиофайл в двоичный формат, это я хочу, потому что у меня есть два аудиофайла один из 59 секунд и другие из той же песни из 10 сек, и я должен видеть, что если они преобразуются в двоичные файлы, то 10-секундный аудиофайл является подмножеством в 59 секунд аудиофайла или нет, исходя из того, что я должен хранить 59-секундный аудиофайл в базе данных и соответствовать 10-секундный аудиофайл с его двоичным форматом с другим 59-секундным аудио-файлом.Можем ли мы преобразовать аудиофайл в двоичный файл в PHP

Может ли кто-нибудь предоставить мне лучшее решение.

Большое спасибо заблаговременно

+4

Какой аудиофайл вы используете, а не бинарный? – Gumbo

+0

У меня есть mp3-файл, который я хочу преобразовать в двоичный файл и сохранить результат в базе данных. – Geek

+1

. Есть, вероятно, какой-то диалект XML для хранения аудиофайлов. :) Анекдоты разные, вопрос не ясен, но у меня такое впечатление, что он действительно спрашивает, можете ли вы использовать PHP для сравнения аудиопотоков. Это сложная задача, даже если вы оставите PHP отдельно. –

ответ

1

Вы находитесь на очень неправильном пути.

Прежде всего, звук всегда бинарное, независимо формат (WAV, MP3, OGG и т.д.) это кодируются в.

Во-вторых, вы вряд ли получите два 100% идентичные представления одного и того же аудиосигнал в любом необработанном формате (например, PCM), если только они не были получены из одних и тех же исходных данных и не подвергались точно таким же преобразованиям. Вы почти наверняка не сможете сделать простой substr, чтобы найти, что один звуковой сигнал «содержится внутри» другого, особенно если оба образца были взяты из разных источников.

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

Вы должны а) узнать больше об аудио и цифровой обработке звука, прежде чем продолжить, и b) посмотреть на acoustic fingerprinting.

+0

Спасибо за то, что сделал меня на правильном пути, сделал звуковую отпечатку пальца, реализованную в PHP. – Geek

1

MP3 является lossy аудиокодирование.

Это означает, что в общем случае два аудиоклипа (например, PCM) будут воспроизводить одинаковый выход MP3, если и только если они одинаковы во всех отношениях. Этот процесс также является не reversible - нет способа получить исходный необработанный аудиофайл, по крайней мере, до уровня байта.

Кроме того, давайте рассмотрим этот процесс:

  • У вас есть сырой аудио клип

  • Вы конвертировать его в MP3, а затем обратно к сырому аудио клип A2

  • Вы отсекаете часть B of A, конвертируете ее в MP3, а затем обратно в необработанный аудиоклип B2

Если клип не является чем-то необычным, например. абсолютная тишина - то, что может быть создано только путем искусственного создания исходного аудиофайла - вероятность того, что B2 будет подмножеством A2, чрезвычайно мала.

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

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

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