একটি সংক্ষিপ্ত অডিও নমুনা বিশ্লেষণ করতে SoXsox
থেকে ব্যবহার করুন :
sox -t .wav "|arecord -d 2" -n stat
সঙ্গে -t .wav
আমরা WAV টাইপ প্রক্রিয়া নির্দিষ্ট "|arecord -d 2"
executes arecord
, দুই সেকেন্ডের জন্য প্রোগ্রাম -n
নাল ফাইলে আউটপুট এবং সঙ্গে stat
আমাদের নির্দিষ্ট করা আমরা পরিসংখ্যান চাই।
কিছু ব্যাকগ্রাউন্ড স্পিচ সহ আমার সিস্টেমে এই কমান্ডের আউটপুট হল:
Recording WAVE 'stdin' : Unsigned 8 bit, Rate 8000 Hz, Mono
Samples read: 16000
Length (seconds): 2.000000
Scaled by: 2147483647.0
Maximum amplitude: 0.312500
Minimum amplitude: -0.421875
Midline amplitude: -0.054688
Mean norm: 0.046831
Mean amplitude: -0.000044
RMS amplitude: 0.068383
Maximum delta: 0.414063
Minimum delta: 0.000000
Mean delta: 0.021912
RMS delta: 0.036752
Rough frequency: 684
Volume adjustment: 2.370
সর্বাধিক প্রশস্ততা এর মাধ্যমে বের করা যাবে:
grep -e "RMS.*amplitude" | tr -d ' ' | cut -d ':' -f 2
আমরা grep
যে লাইনের চাই তার জন্য আমরা tr
স্পেস অক্ষরগুলি ছাঁটাই করতে ব্যবহার cut
করি এবং তারপরে এটি :
অক্ষর দ্বারা এবং দ্বিতীয় অংশটি গ্রহণ করে যা আমাদের 0.068383
এই উদাহরণে দেয় । মতামত দ্বারা প্রস্তাবিত হিসাবে, আরএমএস সর্বাধিক প্রশস্ততার চেয়ে শক্তির একটি ভাল পরিমাপ।
bc
কমান্ড-লাইন থেকে ভাসমান-পয়েন্টের মানগুলি তুলনা করতে আপনি শেষ পর্যন্ত ফলাফলটি ব্যবহার করতে পারেন :
if (( $(echo "$value > $threshold" | bc -l) )) ; # ...
যদি আপনি এমন লুপ তৈরি করেন ( বাশ উদাহরণগুলি দেখুন ) যা 1 মিনিটের জন্য ঘুমকে কল করে , ভলিউম পরীক্ষা করে, এবং পুনরাবৃত্তি করে, আপনি এটি ব্যাকগ্রাউন্ডে চলমান রেখে যেতে পারেন। শেষ পদক্ষেপটি এটি init স্ক্রিপ্ট বা পরিষেবা ফাইলগুলিতে যুক্ত করা (আপনার ওএস / ডিস্ট্রোর উপর নির্ভর করে) যেমন আপনাকে নিজে নিজে এটি চালু করতে হবে না।