Raspberry Pi’ı Konuşturmak

Raspberry Pi’ın konuşmasını sağlayarak robot projelerinize veya uygulama programlarınıza etkileşim katabilirsiniz. Raspberry Pi’ı kullanarak metinleri seslendirebileceğiniz birçok açık kaynak kod araç vardır.

Gerekli araçları yüklemeden önce Raspberry Pi’ın ses kaynağının 3mm jack üzerinden mi yoksa HDMI üzerinden mi alınacağını ayarlamak gerekir. Bunun için raspi-config aracının Advanced options menüsü altındaki Audio seçeneğinden uygun ses çıkışını seçin.

Raspberry Pi’ın ses yürütebilmesi için alsa araç ve kütüphanesine ihtiyacı vardır. Hâlihazırda sistemde yüklü değilse aşağıdaki komut ile yükleyebilirsiniz:

Daha sonra, seçtiğiniz ses çıkışına bir hoparlör ya da kulaklık bağlayarak aşağıdaki gibi; aplay aracı ile /usr/share/sounds/alsa/dizinindeki örnek wav dosyalarını çaldırarak bir ses sınaması gerçekleştirebilirsiniz:

Eğer hoparlörden ses duyabiliyorsanız metin seslendirme araçlarını yüklemeye geçebilirsiniz.

espeak ile Raspberry Pi’ı konuşturmak

Espeak[1] açık kaynak kodlu ücretsiz bir konuşma sentezleyicisidir ve metinleri robotik bir ses ile seslendirebilir. espeak, Türkçe de dâhil 30’dan fazla dilde metni çevrim dışı (offline) olarak seslendirebilir. espeak’i kullanarak, programlarınız (Python, PHP, C++) içerisinden çalıştırabilir, sesli kullanıcı etkileşimleri yaratabilirsiniz. espeak programını kurmak için aşağıdaki komutu verebilirsiniz:

Kurulum tamamlandıktan sonra espeak programını aşağıdaki gibi deneyebilirsiniz:

espeak çalışması sırasında ekrana hata ayıklama çıktıları basabilir. Bu çıktıların konsola basılmamasını sağlamak için aşağıdaki gibi dipsiz kuyuya (/dev/null) yönlendirebilirsiniz:

espeak, konuşma hızından sesin cinsiyetine kadar birçok seçeneği değiştirebilme imkânı sunar. Bazı önemli seçenekler ve görevleri şunlardır:

  • -f : Okunacak metnin kayıtlı olduğu dosya tanımlanır.
  • -a: Ses şiddeti 0 ile 200 arasında ayarlanabilir.
  • -s: Okuma hızı dakikadaki kelime sayısı olarak belirtilebilir.
  • -s: Seslendirmeyi yapan ses seçilebilir.
  • -x: Seslendirmesi yapılan hecelerin ekrana basılmasını sağlar.
  • -v: Seslendirilecek metnin yazıldığı dili ve seslendirmeyi yapacak olan sesin cinsiyeti ayarlanabilir. Seçeneğin hemen ardından tr, en gibi dil kodu belirtildikten sonra kadın (female) sesi için f1 ile f4, erkek (male) sesi için m1 ile m7 arasında bir değer tanımlanabilir. Fısıltı sesi ile okutmak için whisper yazılabilir.
  • -w: Okunan metnin bir wav biçimli bir ses dosyası olarak kaydedilmesini sağlar.

Yukarıdaki seçenekler ışığında aşağıdaki örnekleri çalıştırarak inceleyebilirsiniz:

Yukarıdaki örnekte ilgili metin Türkçe dili (tr) kullanılarak 2 numaralı erkek sesi (m2) ile dakikada 80 kelime hızında okunmuştur. Aynı örneği bir ses dosyası oluşturmak için kullanmak gerekirse –w seçeneği aşağıdaki gibi kullanılabilir:

canim.wav dosyasını yürütmek için aplay programı aşağıdaki gibi kullanılabilir:

Google ile Raspbery Pi’ı konuşturmak

Google’un metin seslendirme yeteneği birçok seslendirme aracına göre (text to speetch) daha başarılıdır. Raspberry Pi’ınızın internet bağlantısı varsa metinlerinizi Google’ın sunucusunu kullanarak seslendirebilirsiniz. Bu durumun tek dezavantajı metnin okunmaya başlanmasının internet hızına göre biraz zaman almasıdır (yaklaşık 2sn).

Google’ın metin okuma motorunu kullanmak için translate_tts sayfasına bir web isteği gönderilir. Buradan dönecek olan ise ses verisidir. Aşağıda gibi mplayer uygulaması ile yapılan istek Raspberry Pi’ın ses kartından yürütülür.

Öncelikle mplayer paketini yükleyelim:

Yukarıdaki web isteğini daha kullanışlı bir biçime çevirmek için bir kabuk betiği olarak kaydedebilirsiniz. Bunun için nano editörünü açarak aşağıdaki satırları ekleyin ve konus.sh dosya adıyla kaydedin. Ardından da bu dosyaya çalıştırma izni verin:

Eğer Raspberry Pi bilgisayarınızda internet bağlantısı varsa konus.sh betiğini aşağıdaki şekilde çalıştırarak metni seslendirebilirsiniz:


[1] espeak resmi sayfası: http://espeak.sourceforge.net

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.