Sadece Ortamda Ses Olduğunda Kayıt Yapmak

Sürekli olarak ses kaydetmek gerektiğinde en iyi yöntem sadece ortamda ses olduğunda kayıtı başlatmaktır. SoX sahip olduğu filtre özellikleri ile ortamdaki ses belli bir düzeyin (threshold) üzerine çıktığında kayıt yapmak üzere ayarlanabilir. Bunun için öncelikle sesin hangi eşiğin üzerine çıktığında kayıt yapılacağını tespit etmektir. SoX stat filtresi kaydın ses seviyesi hakkında istatistiksel bilgiler sunar. Aşağıdaki komutu çalıştırın ve istatistik çıktısındaki Minumum amplitude değerini izleyin. Bu değer, 1 saniyelik süre dilimleri içerisinde ortamda rastlanan ses şiddeti seviyesinin en küçük değerini verir. Bu değeri kullanarak ayarlayabileceğiniz bir amplitude değeri, kaydı başlatmak için eşik değeri olarak kullanılabilir.

Yukarıdaki komut ile SoX 1 sn.’lik kayıt örnekleri alarak, bu süre zarfında rastlanan en yüksek, en düşük ve ortalama ses şiddeti gibi değerleri ekrana basmıştır. Ayrıca bu örneklemeler restart direktifi sayesinde,  her saniye tekrarlanır. Kaydı sonlandırmak için Ctrl+C tuş bileşimini kullanabilirsiniz.

Aşağıdaki bash betiği temel olarak birer saniye ses örneği alarak, örnekteki sesin tanımlanan eşikten büyük olup olmadığına bakar ve eğer büyükse 5dk’lık bir kayıt başlatır. 5dk’lık kayıt bittiğinde ortamdaki ses düzeyini izlemeye devam ederek gerektiğinde kaydı yeniden başlatır. Eşik değeri tespit edildiğinde hem ekrana hem de /var/log/messages günlük dosyasına eşiğin geçildiğine ve kaydın başladığına dair bir mesaj yazar (logger). Betiği kaydetmek için nano editörünü kullanabilirsiniz. Kaydettikten sonra betiğe çalıştırma izni vermeyi unutmayın (chmod +x).

Yukarıdaki betik temel olarak ortamdaki ses şiddetinin ayarlanan düzeyin üzerine çıktığı durumlarda herhangi bir işlevi yerine getirmek için de kullanılabilir. Bir alarmı tetiklemek, kameradan fotoğraf çekmek veya bir mail ya da sms göndermek için de kullanılabilir. Örneğin evde olmadığınız zamanlarda; kapınızın gözetleme deliğine yerleştirdiğiniz bir kamera, kapıya vurulduğunda ya da zile basıldığında kişinin fotoğrafını çekerek size mail atabilir. Ses şiddeti seviyesine bağlı tetiklemeyi kullanarak gerçekleştirebilecekleriniz hayal gücünüzle sınırlı.

Eşik değerini sağlıklı olarak belirleyebilmek için ortamdaki ses seviyesini bir süre izlemeniz ve eşik kabul edilebilecek değere karar vermeniz gerekir. Bunun için aşağıdaki betiği kullanabilirsiniz. Betik ortamdaki sesi 2 saniyelik sürelerle örnekleyerek, sesin en yüksek, en düşük ve ortalama değerlerini sürekli olarak ekrana basar.

Daha önceki örnekte (otokayit.sh) ses eşik seviyesi olarak Maximum amplitude değeri kontrol edilmekteydi. Genellikle negatif değerlerde olan Minimum amplitude değeri de kayıt tetiklemek için kullanılabilir. Ses ortamına göre Maximum, Minimum ve Midle line değerlerinden hangisini kullanacağınıza karar verebilirsiniz. Yukarıdaki betiğin ekran çıktısı aşağıdaki gibidir. Son üç kayıtta ortamdaki ses hacmi artırılmıştır:

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.