türkçe konuşan bilgisayar...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
türkçe konuşan bilgisayar...
herkese kolay gelsın arkadaslar...
bi ara gordum gibi hatırlıyorum ama forumda bulmadım . bilgisayarı türkçe konuşturmak mümkünmü?Nasıl bir yol izleyecez?Konu hakkında bilgi verirseniz cok sevinirim....
İyi Çalışmalar.....
bi ara gordum gibi hatırlıyorum ama forumda bulmadım . bilgisayarı türkçe konuşturmak mümkünmü?Nasıl bir yol izleyecez?Konu hakkında bilgi verirseniz cok sevinirim....
İyi Çalışmalar.....
bilgisayarı turkce konusturmak
bu konu genelde yapayzeka konuları altında yer almaktadır yapay sinir aglarını arastırırsan konu hakkında baya bir bilgi bulabiliceni umuyorum birde belli b,r kac kelimeyi soletmek istiyorsan sayet bu konu yuda ses sentezleme işlemleri adı altında arastırabilirsin
saol kardes verdiğin bilgiler için.lakin ses sentezleme diyince bu olay ses tanıma kapsamına gırmıyomu?en azından ben ole gordum.ole değilse yada bıraz daha geniş bilgi verirsen sevinirm.hece yapılarını mı gozetmek gerekıyor yoksa seslerimi?girişirsem içinden çıkabilrmiyim acaba?çünkü bunun projenın bi parçası olamasını düşünüyorum.hayırlısı bakalım....
Engin tecrübelerinize dayanan tecrübe ve bilgilerinizi beklıyorum...
iyi çalışmalar...
Engin tecrübelerinize dayanan tecrübe ve bilgilerinizi beklıyorum...
iyi çalışmalar...
merhaba,
yapmak istediğiniz sadece yazıları bilgisayarın seslendirmesi ise yapay zekaya gerek yok diye düşünüyorum. ama programınız seslere karşı tepki verecekse bunun için ses tanıma yöntemlerinden birini kullanmalısınız (ysa da bunlarda biri). ama misal, iş sadece bir edit'teki yazıyı okutmaksa yapay sinir ağları kullanmadan şöyle bir yol size bir fikir verebilir;
ilkokul öğretmenleri bize okumayı nasıl öğrettiyse o şekilde yapmalıyız bu işi, çünkü türkçe kelimeler kelime içindeki sesler birleştirilerek okunur, bu da bi avantaj. öncelikle biz o zaman her harfin seslendirmesini yapıp kaydetmeliyiz bunları ayrı ayrı dosyalar olarak. ama dikkat edilecek husus ise telaffuz ederken a, be, ce, çe,... vs gibi değil de a,b,c,ç,.. gibi yani tek harfi seslendirmek suretiyle kaydedilmeli, sonuna koyduğumuz 'e' sesleri olmayacak. sonra bunları a.wav, b.wav,... gibi kaydettikten sonra şöyle bir programlama mantığı izlenebilir;
bu kodları denemeden buraya yazdım hata olabilir, mantık olarak da mutlaka daha uygun yollar vardır. Sadece ilk aklıma gelen bu oldu.
yapmak istediğiniz sadece yazıları bilgisayarın seslendirmesi ise yapay zekaya gerek yok diye düşünüyorum. ama programınız seslere karşı tepki verecekse bunun için ses tanıma yöntemlerinden birini kullanmalısınız (ysa da bunlarda biri). ama misal, iş sadece bir edit'teki yazıyı okutmaksa yapay sinir ağları kullanmadan şöyle bir yol size bir fikir verebilir;
ilkokul öğretmenleri bize okumayı nasıl öğrettiyse o şekilde yapmalıyız bu işi, çünkü türkçe kelimeler kelime içindeki sesler birleştirilerek okunur, bu da bi avantaj. öncelikle biz o zaman her harfin seslendirmesini yapıp kaydetmeliyiz bunları ayrı ayrı dosyalar olarak. ama dikkat edilecek husus ise telaffuz ederken a, be, ce, çe,... vs gibi değil de a,b,c,ç,.. gibi yani tek harfi seslendirmek suretiyle kaydedilmeli, sonuna koyduğumuz 'e' sesleri olmayacak. sonra bunları a.wav, b.wav,... gibi kaydettikten sonra şöyle bir programlama mantığı izlenebilir;
Kod: Tümünü seç
uses MMSystem;
...
function seslendir(harf:string):boolean;
...
function tform1.seslendir(harf:string):boolean;
begin
if harf='a' then
PlaySound('C:\a.wav', 0, Snd_FileName or Snd_Async)
else if harf='b' then
PlaySound('C:\b.wav', 0, Snd_FileName or Snd_Async)
else if harf='c' then
PlaySound('C:\c.wav', 0, Snd_FileName or Snd_Async)
else if harf='ç' then
PlaySound('C:\ç.wav', 0, Snd_FileName or Snd_Async)
else if harf='d' then
PlaySound('C:\d.wav', 0, Snd_FileName or Snd_Async)
.
.
.
else if (harf=' ') or (harf=',') or (harf='.') or ... then
sleep(1000); // noktalama işaretlerinde biraz duraklamalı
sleep(500);
//her seslendirmeden sonra biraz duraklamalı
//bunu koymazsak döngü çok hızlı işleyeceğinden dolayı sadece son harfe ait ses duyulur
end;
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i := 1 to length(edit1.Text) do
begin
seslendir(copy(edit1.Text,i,1));
end;
end;
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
tabii ki sevindim buna, zira kimin eleştirileri kaldıracağını bilemiyoruz. bu yüzden yapmamak en iyisi. ben de açığım her zaman için. sizin verdiğiniz fikir de gayet pratik, "text to speech" diyerek aradım hemen çıktı. hatta projede kullanmak için 1 dakika harcamak yeterli
şöyle ki;
İlk önce Project -> Import Type Library'ye tıklıyoruz.
Microsoft Speech Object Library'yi seçip Install ediyoruz.
ActiveX tabına yeni bileşenler ekleniyor.
Buradan projeye bir tane SPVoice nesnesi ekliyoruz (ActiveX tabından).
Bir edit koyuyoruz, bir de buton.
Butona tıklandığında da şu kodlar çalışacak;
Bu şekilde çalışıyor. Bir de bunun Türkçesi mevcutsa gayet güzel birşey olmuş olur. Onu da araştırmak lazım.
İlgili makale;
http://www.blong.com/Conferences/DCon20 ... SAPI51.htm
şöyle ki;
İlk önce Project -> Import Type Library'ye tıklıyoruz.
Microsoft Speech Object Library'yi seçip Install ediyoruz.
ActiveX tabına yeni bileşenler ekleniyor.
Buradan projeye bir tane SPVoice nesnesi ekliyoruz (ActiveX tabından).
Bir edit koyuyoruz, bir de buton.
Butona tıklandığında da şu kodlar çalışacak;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
SpVoice1.Speak(edit1.Text, SVSFDefault);
end;
İlgili makale;
http://www.blong.com/Conferences/DCon20 ... SAPI51.htm
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
http://www.gvz.com.tr -> Türk mühendislerinin bunlarla ilgili yaptığı çok başarılı çalışma.
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Selamlar.
Bunun için çok gelişmiş sistemler/teknikler olmasına karşın temelinde kısaca bahsedeceğim yöntem kullanılıyor bildiğim kadarıyla.
- Bu tür sistemler "geri besleme" denilen yöntemle sesi karşılaştırıyor..Yani kaynak daha önceden oluşturulmuş olmalı ki karşılaştırma yapılabilsin..
- Mikrofondan söylenen (ya da sistemden herhangi bi şekilde deklare edilen..) ses ek olarak bir kayıt işlemine tabii tutuluyor ve temp şeklinde kayıt ediliyor..
- Ses çalınarak spectrum (Winamp ya da benzer player uygulamalarda gördüğünüz sesin şiddeti-şiddet kelimesi yanlış kullanılmış olabilir..- gösteren barlar..) alınıyor..
- Son olarak elde edilen bu spectrum değerleri ve mevcut değerler karşılaştırılıyor, çok yakın bir eşleştirmeyle kontrol ediliyor..
Elbette ki % 100 sonuç döndürmüyor ve çok fazla kaydı bu şekilde eşleştirmeniz şimdilik mümkün değil (kimbilir, ileride o da mümkün olabilir..)
Kolay gele..
Bunun için çok gelişmiş sistemler/teknikler olmasına karşın temelinde kısaca bahsedeceğim yöntem kullanılıyor bildiğim kadarıyla.
- Bu tür sistemler "geri besleme" denilen yöntemle sesi karşılaştırıyor..Yani kaynak daha önceden oluşturulmuş olmalı ki karşılaştırma yapılabilsin..
- Mikrofondan söylenen (ya da sistemden herhangi bi şekilde deklare edilen..) ses ek olarak bir kayıt işlemine tabii tutuluyor ve temp şeklinde kayıt ediliyor..
- Ses çalınarak spectrum (Winamp ya da benzer player uygulamalarda gördüğünüz sesin şiddeti-şiddet kelimesi yanlış kullanılmış olabilir..- gösteren barlar..) alınıyor..
- Son olarak elde edilen bu spectrum değerleri ve mevcut değerler karşılaştırılıyor, çok yakın bir eşleştirmeyle kontrol ediliyor..
Elbette ki % 100 sonuç döndürmüyor ve çok fazla kaydı bu şekilde eşleştirmeniz şimdilik mümkün değil (kimbilir, ileride o da mümkün olabilir..)
Kolay gele..