Найти возникновение образца WAV в другом WAV?

Честно говоря, я не совсем понимаю вопрос, но способ задания переменных среды (то есть для node.js без nestjs в IBM Cloud) заключается в следующем:

  • На локальном У меня есть файл vcap-local.json. Если этот файл существует, я либо объявляю его локальным, либо читаю значения оттуда.
  • На сервере я либо устанавливаю переменную NODE_ENV непосредственно в приложении (в пользовательском интерфейсе есть меню), либо определяю следующие команды в конвейере развертывания
cf set-env ${CF_APP} NODE_ENV test
cf restage

. вопрос как-то?

6
задан 15 May 2009 в 19:46
поделиться

4 ответа

I assume by exact you don't mean sample value exact. If it were sample-value exact, then it would be a simple matter of searching for the sample values, which is fast and efficient.

If you are looking for bits of sound that contribute, the best approach is to use a mathematical process called "convolution". Basically, take the sample that you are trying to find within the big sample, effectively place it next to the big sample, and correlate. Do this for every sample position. You will from this get a curve that will have distinct spikes in it where the sample is. Its quite computationally intensive, but computers have gotten quite fast, so its feasible.

But - this is assuming that the sample came from the same recording for both cases. Miking a drum sound, even the same drum sound, from two different locations, will not produce very good correlation.

Hope that helps.

3
ответ дан 17 December 2019 в 00:14
поделиться

Если вы знаете точный характер выборки (длина в битах и ​​т. Д.), То это очень возможно. Если он каким-либо образом изменится, вам придется сначала поработать.

Из-за способа кодирования файлов WAV (последовательно по дорожке - так что вы получаете первую партию битов для первой дорожки, затем первую партию битов для второй дорожки, затем вторую партию битов из первой дорожки. )

Очевидно, это может повторяться для любого количества треков.

0
ответ дан 17 December 2019 в 00:14
поделиться

Не совсем так, как вы это определили, если он смешан с другими звуками, и вот в чем причина; рассмотрите влияние волны, смешанной именно с ее обратной; результат - ровный отклик. Смешивание волн может иметь монотонную функцию, то есть эффективно маскировать одну волну другой таким образом, чтобы первая не была восстановлена.

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

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

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

0
ответ дан 17 December 2019 в 00:14
поделиться

Это зависит от того, что именно вы пытаетесь найти и в чем вы пытаетесь это найти.

  • Если вы ищете образец, который точно такой же, как и кусок большего размера WAV-файла, побитовый, то вы можете искать значения напрямую.
  • Если это точно такой же звук, но не с точностью до семпла (сопоставление клипа MP3 с WAV той же песни , например), вы можете легко найти его, используя кросс-корреляцию . Взаимную корреляцию можно значительно ускорить, используя метод БПФ вместо «наивного» метода, который явно умножает и суммирует образцы.
  • Если вы ищете короткий образец, смешанный с другими звуками, он все равно может можно использовать взаимную корреляцию, но это зависит от того, влияют ли другие звуки на совпадение. Для цифрового пианино с простыми семплами и без эффектов, прямо в цифровом записывающем устройстве, это может сработать.
  • Однако, если звук прошел через какой-либо тип фильтрации, изменения полярности или сдвига фазы, это не будет работать очень хорошо, так как формы волны будут изменены. Так что, если на пианино играли через динамики, а затем записывали с помощью микрофонов, это не жизнеспособное решение.

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

4
ответ дан 17 December 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: