Децибел значения в определенных точках в файле WAV

Я пытаюсь измерить ввод и вывод из файла WAV. Желательно первые и последние 5 секунд или около того. Я в основном пытаюсь присвоить числовое значение, которое означаетЭта песня медленно играет в или же 'Эта песня имеет неожиданный конец ».

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

В основном яЯ ищу способ собрать точки данных, чтобы дублировать этот график, чтобы я мог получить наклон.

РЕДАКТИРОВАТЬ - работает в Java

 Bjorn Roche06 нояб. 2012 г., 20:53
обратите внимание, что единицы в дБ, но они нет равномерно.
 jgreen07 нояб. 2012 г., 00:33
@BjornRoche но это не такт только потому, что дБ логарифмический?
 Bjorn Roche07 нояб. 2012 г., 15:46
График линейный, только ось слева логарифмическая.
 jgreen07 нояб. 2012 г., 00:53
Переходя с @BjornRoche 'Предположение о том, что дБ неt только соответствующие значения, я начал смотреть на получение амплитуды. Я'Я все еще в начале процесса, но ямы нашли этосокс» может сообщить максимальную амплитуду в егостат» позвоните, чтобы я мог использовать это, чтобы получить то, что я хочу, посмотрев на небольшие 0,25-секундные срезы начала и конца дорожки.
 jgreen06 нояб. 2012 г., 19:39
@BjornRoche, если график нет дБ, то почему они называют его волновой формы (дБ)? (Это в дополнение к их другим представлениям: Форма волны, Спектограмма, Журнал спектограммы (f) и Высота (EAC)). Если получить значения регулярного сигнала проще, я 'Я посмотрю на это.
 Bjorn Roche06 нояб. 2012 г., 05:29
Я согласен с Исаакомответ, что вы, вероятно, выигралДля этого нет инструментов командной строки, но проблема довольно плохо определена. Позвольте мне подчеркнуть, что вы неt обязательно нужны значения в дБ, чтобы определить, имеет ли песня резкое или медленное начало или конец. На самом деле, график в Audacity не использует дБ. Есть много ответов на SO о рисовании сигналов в Java, а также, я полагаю, C и Javascript.

Ответы на вопрос(2)

Я неЯ не знаю каких-либо инструментов командной строки, чтобы сделать это, но написать скрипт на Python с этой функциональностью довольно просто, используяscipy библиотеки.

Мы можем использоватьscipy.io.wavfile сделать файл IO, а затем рассчитать значения дБ самостоятельно (обратите внимание, что они выигралиt обязательно должны быть стандартными значениями дБ, так как они будут зависеть от ваших динамиков и настроек громкости).

Сначала мы получаем файл:

from scipy.io.wavfile import read
samprate, wavdata = read('file.wav')

Затем мы разбиваем файл на куски, где количество кусков зависит от того, насколько точно вы хотите измерить громкость:

import numpy as np
chunks = np.array_split(wavdata, numchunks)

Наконец, мы вычисляем объем каждого куска:

dbs = [20*log10( sqrt(mean(chunk**2)) ) for chunk in chunks]

гдеdbs теперь список значений дБ (опять же, не обязательно истинных уровней звука SPL) для каждого фрагмента вашего файла.

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

Рекомендации: -scipy.io.wavfile -дБ (SPL)

 jgreen07 нояб. 2012 г., 00:54
@ Исаак спасибо за эту ссылку
 Isaac06 нояб. 2012 г., 19:54
Для Java, проверитьlabbookpages.co.uk/audio/javaWavFiles.html
 Bjorn Roche06 нояб. 2012 г., 05:31
Я знаю, что ОП спросил о дБ, но неt преобразовать в дБ, чтобы создать форму сигнала или обзор формы сигнала. см. например:stackoverflow.com/questions/11091924/...
 jgreen06 нояб. 2012 г., 19:35
@ К сожалению, я не знаюне знаю питона. Я'отредактировал что яЯ работаю в Java. Если ваш пример кода завершен, я думаю, мне просто нужно знать, как получить модуль scipy.io.wavfile.

Вот только некоторые из вопросов о SO по чтению аудиофайлов и рисованию форм сигналов и обзоров форм сигналов в Java.

Как я могу создать звуковой файл в Java

Как я могу извлечь звуковые данные из моего файла WAV?

Java-программа для создания формы сигнала PNG для аудиофайла

 jgreen07 нояб. 2012 г., 00:55
спасибо за эти ссылки.

Ваш ответ на вопрос