25 lines
751 B
Bash
25 lines
751 B
Bash
|
|
#!/bin/bash
|
||
|
|
set -eu
|
||
|
|
cd "/home/lou/桌面/工作区/实验/空间音频"
|
||
|
|
SOFA=/usr/share/libmysofa/MIT_KEMAR_normal_pinna.sofa
|
||
|
|
mkdir -p hrir && cd hrir
|
||
|
|
|
||
|
|
i=0
|
||
|
|
for name in FL FR FC LFE BL BR; do
|
||
|
|
exp=""
|
||
|
|
for j in 0 1 2 3 4 5; do
|
||
|
|
[ $j -gt 0 ] && exp="$exp|"
|
||
|
|
if [ $j -eq $i ]; then exp="${exp}between(t,0,1/48000)"; else exp="${exp}0"; fi
|
||
|
|
done
|
||
|
|
ffmpeg -y -hide_banner -loglevel error -f lavfi \
|
||
|
|
-i "aevalsrc='${exp}':d=0.05:s=48000:c=5.1" \
|
||
|
|
-af "sofalizer=sofa=${SOFA}:type=time" -c:a pcm_s16le "${name}.wav"
|
||
|
|
i=$((i+1))
|
||
|
|
done
|
||
|
|
|
||
|
|
echo "=== 提取结果(每对双耳脉冲响应) ==="
|
||
|
|
for f in FL FR FC LFE BL BR; do
|
||
|
|
printf " %-5s " "$f"
|
||
|
|
ffprobe -v error -show_entries stream=channels,sample_rate,duration -of csv=p=0 "${f}.wav"
|
||
|
|
done
|