Извлечь значение VU-метра в виде текста из arecord

Перед загрузкой драйвера nvidia необходимо выгрузить драйвер nouveau . Однако драйвер nouveau в настоящее время используется X-сервером, поэтому его еще нельзя выгрузить. Вы должны сначала остановить X-сервер (но не просто перезапускать его, так как тогда он снова будет использовать драйвер nouveau ).

Вкратце:

  • остановить X-сервер: sudo service lightdm stop

  • выгрузить драйвер nouveau: sudo rmmod nouveau

  • загрузить драйвер nvidia: sudo modprobe nvidia

  • запустить X-сервер: sudo service lightdm start

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

2
18.12.2017, 16:01
1 ответ

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

 #!/bin/bash

 # redirect stdout to a text file
 exec &> audio.info       

 # use -q so the contents of the text file are only vumeter data

 arecord -q -f cd -V mono test.wav

 # removes extra symbols except percentages, 
 # I'm sure this can be consolidated if needed

cat audio.info | sed 's/#//g' | sed 's/ //g' | sed 's/|//g' | sed 's/+//g' | sed 's/[^[:print:]]//g' > new.info

 #resets stdout 
 exec &>/dev/tty

percents=$(cat new.info)

max="0";

 #breaks up the values with '%' as the delimiter

 IFS='%' read -ra values <<< $percents


 for i in "${values[@]}"; do

    if [ $i -gt $max ]
    then
        max=$i
    fi
done

echo "maximum amplitude = $max"

The for loop will find the max amplitude during your recording, but you can replace this with 

echo $i >> table.txt 
0
27.01.2020, 22:34

Теги

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