LINUX.ORG.RU

Что значит оценить уровень шума? Что вы подразумеваете под шумом, как его решили выявлять?

Есть sox, если кто и может, то только он.

man soxexam

Reducing noise in a recording
First find a period of silence in your recording, such as the beginning or end of a piece. If the first 1.5 seconds of the recording are silent, do
sox file.wav -n trim 0 1.5 noiseprof /tmp/profile
Next, use the noisered effect to actually reduce the noise:
play file.wav noisered /tmp/profile

Это пример вырезания шума. Работает великолепно, шум убивает великолепно. В profile - затухание в дБ по частотам (видимо, профиль для конкретной часты годиться, не перепутайте), этакая "модель" шума.

Мой скрипт записи:

#!/bin/sh

if test "$1" = "-h" || test "$1" = "--help"
then
echo "record Sound"
echo "run $0 [param oggenc]"
exit
fi

param_pa="--channels=1 --format=s16le --rate=8000"
param_sox="-r 8000 -c 1"

d_input=` pactl list | grep input | grep -i Name: | awk '{print $2}'`

date=`date +%Y%m%d-%H:%m:%S`

pacat -r -d $d_input $param_pa | \
sox -t sw -r 8000 -c 1 - \
-t sw - noisered /opt/bin/record_noice_profile silence 1 5 2% | \
oggenc --raw -C 1 -R 8000 -B 16 \
$@ \
- -o mic-$date.ogg


record_noice_profile создать заранее, пропустив через sox тишину.

Собственно, смотрите man soxeffect, может быть чего там и имеется.

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

Под шумом, любые звуки записаные в wav файле. Единицы оценки - не принципиальна. Я буду занть что "тишина" шумит на уровне 10 попугаев а например звук голоса - на уровне 20 попугаев

anonymous
()
Ответ на: комментарий от anonymous

registratus_num_0 тебе лучший расклад предложил. По амплитуде ты шум не дискриминируешь.

Если же ты не от шума избавляешься, а просто делаешь обычный взрыватель срабатывающий при появлении звукового сигнала, то, судя по всему, тот же sox тебе в помощь: sox file.wav -e stat

anonymous
()
Ответ на: комментарий от anonymous

> Под шумом, любые звуки записаные в wav файле. Единицы оценки - не принципиальна. Я буду занть что "тишина" шумит на уровне 10 попугаев а например звук голоса - на уровне 20 попугаев

Лучше скажите сразу для чего все это затевается. Какая то муть, однако.

Если хотите качественную запись - пропустите через sox, вырежьте шум. Он будет уже -50 dB (именно в этих попугаях и измеряют), потом нормализуйте (мой скрипт пока этого не делает).

Или вы хотите получить отношение Сигнал/Шум? В любом случае sox, в любом случае фильтры (как нибудь натравить профиль шума).

Если вы знаете где пауза в файле, то все проще. Возьмите stat из этой паузы - будет значение шума, затем возьмите stat всего файла - будет значение сигнала. Разделите.

Читайте man soxeffect, man soxexam. Про trim, stat.

anonymous_num_0
()
Ответ на: комментарий от anonymous_num_0

> Лучше скажите сразу для чего все это затевается. Какая то муть, однако.

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

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Тады

meterbridge - A collection of Audio meters for the JACK audio server

Description: A collection of Audio meters for the JACK audio server
 Meterbridge implements various meters for the JACK Audio Connection Kit.
 Examples of the available types are:
   * PPM Peak Program level Meter
   * VU Volume Unit Meter
   * DPM Digital Peak Meter
   * JF Jellyfish Meter
   * SCO Scope

sdio ★★★★★
()
Ответ на: комментарий от andreyu

> Видимо человеку нужно писать с микрофона данные только тогда, когда кто то рядом разговаривает. А пуки-охи-вздохи хочет пропускать.

Если начинать запись при появлении звука, то в моем скрите это есть:

silence 1 5 2%

Либо - можно записать, а затем вырезать. Это делает тот же silence:

man soxeffect

silence

Removes silence from the beginning, middle, or end of the audio. Silence is anything below a specified threshold...

Хм, возможно можно вырезать и на лету. Пробуйте!!

anonymous_num_0
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.