ALSA Mimarisi ve Ses İşlevleri

Bu bölümde ALSA (Advanced Linux Sound Architecture / Gelişmiş Linux Ses Mimarisi) alt yapısını kullanarak Raspberry Pi bilgisayarı ile temel ses kayıt ve yürütme işlevlerini nasıl kullanabileceğimize bakacağız. ALSA, ses kartı aygıt sürücüleri için bir uygulama programlama arabirimi (API) sunarak Raspberry Pi bilgisayarı üzerindeki ses işlevlerinin kullanılabilmesini sağlayan bir çekirdek modülüdür. ALSA, ses aygıtları (USB kulaklıklar, USB mikrofonlar ve web kameraları için) için çekirdek sürücüsü sağlayarak işletim sistemi üzerinde çalışan diğer programlar tarafından aygıtların kullanılabilmesini sağlar. Aşağıda ALSA mimarisinin şeması gözüküyor.


ALSA mimarisinin blok şeması

ALSA, çekirdek modülü ile konuşabilen komut satırı araçlarını ve programcılar için birçok kod örneğini barındırmaktadır. Bu başlıkta yeri geldikçe ALSA kapsamındaki araçlardan faydalanarak kayıt ve yürütme işlevlerinin Linux üzerinde nasıl kullanılacağını göreceğiz. Bu ana başlıktaki çalışmamızın alt amaçları kısaca şöyle:

  1. Ses cihazlarını listelemek.
  2. Ses cihazlarını ayarlamak.
  3. Wav biçimli ses kaydı yapmak.
  4. Mp3/Ogg biçimli ses kaydı yapmak.
  5. Ses biçimlerini birbirine dönüştürmek.
  6. Uzun süreli ses kaydı yapmak.
  7. Uzak bir ağ konumuna canlı ses aktarımı yapmak

ALSA sisteme bağlı olan USB kulaklık, mikrofon ve web kamera gibi her bir aygıtı bir kart olarak tanır ve çekirdek ile olan erişimlerini sırasıyla atadığı bu kart numaraları üzerinden tanımlar. Örneğin; card1, card2, card3 vb.

Aşağıdaki komut ile ALSA altyapısı ile birlikte kullanılabilecek ses aygıtlarını listesini görüntüleyelim:

Komut çıktısında 0 numaralı kart olarak gösterilen Headphones, Raspberry Pi üzerindeki 3.5mm’lik ses çıkışını temsil eder. 1 ve 2 ise HDMI üzerinden sağlanan ses çıkış aygıtlarını temsil eder. 3 numaralı kart ise aşağıda fotoğrafını görebileceğiniz C-Media marka bir USB mikrofona aittir.


Resim: PnP (plug & play) USB mikrofon

İşletim sisteminin ALSA alt yapısı hakkında detaylı bilgi sahibi olmak için /proc/asound dizini kullanılabilir. Bu dizin ALSA’nın çekirdek sürücüsü ile işletim sistemi ve kullanıcı programlarının erişim kurmasını sağlayan bir bağlantı noktası gibidir. Dizinin içeriğini görüntülemek için aşağıdaki gibi ls -la komutunu kullanabilirsiniz.

Dizinde yer alan dosyalar sayesinde ses cihazları hakkındaki bilgileri detaylı olarak görüntülemek için cat aracından faydalanabilirsiniz.

Raspberry Pi’a eklenti olarak kullanılabilecek birçok özel amaçlı kart üretilmiştir. Kartlar hakkında detaylı bilgiyi elinux.org[1] adresinden edinebilirsiniz.

PulseAudio Hakkında

Raspbery Pi OS Aralık 2020 sürümünden itibaren ALSA’nın bazı sınırlamalarından kurtulmak için daha kullanışlı işlevler sunan PulseAudio’yu kullanmaya başlamıştır. PulseAudio tüm ses donanımı ile ses gönderen ve alan tüm uygulamalar arasında bir katman olarak yer alan ve her şeyi otomatik olarak doğru yerlere yönlendiren bir yazılım parçası olarak çalışır.  Birden fazla uygulamadan gelen sesi karıştırabilir, böylece VLC’yi YouTube ile aynı anda duyabilirsiniz ve içerik oynatılırken çıkışın farklı cihazlar arasında hareket etmesine izin verir. Bluetooth cihazlarıyla nasıl konuşulacağını bilir ve varsayılan giriş ve çıkış cihazlarını yönetme işini büyük ölçüde basitleştirir, böylece sesin olması gereken yerde bitmesini çok daha kolay hale getirir. Özetle, PulseAudio modern işletim sistemlerinden beklenen özellikleri yerine getirerek ALSA’nın tek başına iken yetersiz kaldığı noktaları ortadan kaldırmıştır.


[1] Raspberry Pi ses kartları: https://elinux.org/index.php?title=RPi_Expansion_Boards#Sound

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.