Arduino ile Yazıyı Sese Dönüştüren Emic 2 Modülü Kullanımı
Robotunuzu konuşturmak ve neler olup bittiğini söyletmek ister misiniz ? Emic 2 yazıyı sese çeviren modülle kolaylıkla projeleriniz konuşabilir. Emic-2, Parallax tarafından, ses sentezini tamamen zahmetsiz kılmak için Grand Idea Studio ile birlikte tasarlanmıştır.
Modül için belirlenen komut, tamamen ASCII tabanlı yazdırılabilir karakterlerden oluşur. İngilizce ve İspanyolca dilleri destekler. Erkek, kadın ve çocuktan oluşan 9 farklı konuşma (ses) sitili vardır. Konuşma ve ses özelliklerinin dinamik kontrolü, konuşma oranı ve kelime vurgusu gibi özellikleri mevcut. Modül aynı zamanda sisteminize geri bildirim yapar, böylece konuşma bittiğini geri bildirir. Modül, metinleri ayrıştırmak ve doğal sesleri üretmek için gerekli tüm işlevleri üzerinde barındırır. Yapmanız gereken sadece 9600bps’de serial üzerinden metin akışı göndermek.
Emic 2 Özellikleri:
- Güç gereksinimi:
- +5 V DC
- 30 mA boşta
- 46-220 mA aktif (konuşma parametrelerine ve çıkış yüküne bağlı olarak)
- İletişim: Asenkron 9600 bps seri (8N1)
Emic 2 Pin Bağlantıları:
5vdc güç kaynağı ile beslenir. Arduinonun 5v girişine takabilirsiniz. Hoparlörü hoparlör çıkışları olan SP- ve SP+ pinlerine takınız. Veya kart üzerindeki kulaklık jakına takabilirsiniz. 0.25W, 8Ohm hoparlör uygundur. Ses jakı 1/8 “(3,5 mm) boyutlarındadır.
Arduino ile Kullanımı:
Arduino ile kullanımında iletişimi software serial kütüphanesi ile sağlamaktadır. Software serial kütüphanesi ile tx ve rx pinleri yazılır ve bu pinler üzerinden Kelime veya cümle gönderilir ve modül bu metinleri ses çevirerek hoparlörden çıkış verir.
Devre Şeması:
Örnek Kod:
#include <SoftwareSerial.h> #define rxPin 3 // Emic 2 SOUT pini #define txPin 2 // Emic 2 SIN pini #define ledPin 13 SoftwareSerial emicSerial = SoftwareSerial(rxPin, txPin); void setup() { pinMode(ledPin, OUTPUT); pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); emicSerial.begin(9600); digitalWrite(ledPin, LOW); emicSerial.print('\n'); while (emicSerial.read() != ':'); delay(10); emicSerial.flush(); } void loop() { emicSerial.print('S'); emicSerial.print("Hello. My name is the Emic 2 Text-to-Speech module. I would like to sing you a song."); emicSerial.print('\n'); digitalWrite(ledPin, HIGH); while (emicSerial.read() != ':'); digitalWrite(ledPin, LOW); delay(500); emicSerial.print("D1\n"); digitalWrite(ledPin, HIGH); while (emicSerial.read() != ':'); digitalWrite(ledPin, LOW); while(1) { delay(500); digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); } }
Örnek Çalışma Videosu:
Modül serial üzerinden komutlar göndererek ne yapılması istendiği anlar ve ona göre ayarlarını yapar. Aşağıda komutlar ve anlamlarına bakabilirsiniz.
Komutlar:
- Sx : Yazıdan konuşmaya dönüştürme: x = ileti (en fazla 1023 karakter). Yukarıdaki kodda loop kısmında S karakteri serial print yapıldı ardından sese dönüştürülecek metin yazıldı. Kod parçacığı aşağıda gösterilmiştir.
emicSerial.print('S'); emicSerial.print("Hello. My name is the Emic 2 Text-to-Speech module. I would like to sing you a song.");
- Dx: Oynatma modu . x = 0 (Konuşma),1 (Şarkı Söyleme), 2 (İspanyolca) . Aşağıdaki gibi serial e D1 print ettiğimizde modül şarkı söyleme moduna geçer ve metni şarkı olarak söyler. Kod parçacığı aşağıdaki gibidir.
emicSerial.print("D1\n");
- X : Metni söylerken durdurur.
- Z : Metni söylerken duraklatır.
- Nx : Konuşma sitili seçin: x = 0 – 8 arası değer girin. Aşağıda ses sitilleri yazmaktadır.
0: Perfect Paul (Paulo)
1: Huge Harry (Francisco)
2: Beautiful Betty
3: Uppity Ursula
4: Doctor Dennis (Enrique)
5: Kit the Kid
6: Frail Frank
7: Rough Rita
8: Whispering Wendy (Beatriz)
- Vx : Ses seviyesini ayarlama (dB): x = -48 ile 18 arası
- Wx : Konuşma hızını ayarlar (sözcük / dakika): x = 75-600
- Lx : Dili seçin: x = 0 (ABD İngilizcesi), 1 (Castilian İspanyolcası), 2 (Latin İspanyolca)
- Px : Seçici ayrıştırıcı: x = 0 (DECtalk), 1 (Epson)
- R : Varsayılan metin okuma ayarlarına dön.
- C : Geçerli metin okuma ayarlarını yazdır.
- I : Sürüm bilgilerini yazdır.
- H : Kullanılabilir komutların listesini yazdırın.
Modül ile Yapabileceğiniz Uygulama Fikirleri :
- İnternet tabanlı projelerde e posta ve twitlerin veri akışlarını okuma.
- Robotun üzerindeki sensörlerden alınan verileri konuşarak söyletme. Örneğin sıcaklık değerini sesli olarak söylemesi.
- Eğitim alanında dil öğrenme veya konuşmada yardımcı olabilir.
Ana videodaki projeye buradan ulaşabilirsiniz >> Sparkfun The Uncertain 7-Cube
teşekkürler hocam
aynen türkçe desteği yoksa çöp şuan
Türkçe Dil Desteği yok sanırım -_-