Rakam Okuyan Ses Dosyaları

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Arkadaşlar elinde
Tercihen 1 den 100 kadar sayıları (tanetane) (işitme engellilere haberlerde olduğu gibi yada çocuklara rakamları öğretmek için hazırlanmış gibi) okunduğu, daha sonra bin, milyon,milyar,trilyon ses dosyası olan varmı
yani
1.wav
2.wav
3.wav
4.wav
........
100.wav
1000.wav
1000000.wav
1000000000.wav
1000000000000.wav

Ses Değişmesse Daha güzel olur.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba
mikrofonunuz varsa siz hazırlayabilirsiniz, sesinizin güzel olmadığını mı düşünüyorsunuz? :)
işitme engelliler sesi duyamaz, sanırım görme engelliler diyecektiniz ;)

ekte siteden bulduğum örnek dosya var. ingilizce, sizin istediğiniz değil ama belki işinize yarar.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
sesinizin güzel olmadığını mı düşünüyorsunuz

evet pek mikrofonik değildir.

Kod:
Dim konus As New SpeechLib.SpVoice

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[B]    a = ActiveCell.Address(0, 0)[/B]

konus.Speak a
End Sub

satırını a = ActiveCell.Value değiştirnce hücre değerini okuyor.
Ama benim istediğim türkçe varmı bunun türkçesi
 
Son düzenleme:
Katılım
12 Nisan 2005
Mesajlar
80
Excel Vers. ve Dili
7 TR 2013 excel TR
Altın Üyelik Bitiş Tarihi
07-03-2024
excelde yada worl de metini okutmanın imkanı varmı merak ettimde ?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
sn uzmanamalenin verdiği dosyada

a = ActiveCell.Address(0, 0) satırını

a = ActiveCell.Value satırı ile değiştirince okuma işlemini İngilizce olarak yapıyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teşekkür ederim sn uzmanamale
yalnız bu microsftun alacağı olsun kendi dileri için ufacık bir eklenti ile işi çözüyorlar biz Kendi idilimiz için envai çeşit uğraş harcayacağız.. ve oradaki program vb için vbe ye nasıl uayrlnır emin değilim.

Kodları burada direk vereyim o forum bazen mahkeme karar ile erişilemeynlerden ;)
Ses Dosyaları :
--------------------------------------------------------------------------------
Bu program, girdiğimiz bir sayıyı bize sesli olarak okuyacak. Tabiki bunun için daha önceden gerekli ses dosyalarını hazırlamanız gerekir. Sayı okutma işlemi için 7 basamak sınırımız olsun. Bu durumda aşağıdaki ses dosyalarına ihtiyacımız olacak :

bir.wav on.wav yüz.wav
iki.wav yirmi.wav bin.wav
üç.wav otuz.wav milyon.wav
dört.wav kırk.wav
beş.wav elli.wav
altı.wav altmış.wav
yedi.wav yetmiş.wav
sekiz.wav seksen.wav
dokuz.wav doksan.wav

Tabiki herbir wav dosyası, ismindeki sayıyı saklayacak. Program içerisinde istediğimiz yerde bu dosyaları arka arkaya çağırarak sayımızı seslendireceğiz. Bu şekilde 7 basamaklı bir sayıya kadar tüm sayıları okutabiliriz.
Sayıların Parçalanması :
--------------------------------------------------------------------------------
Önemli olan şey, rakamları düzgün ve kurallı olarak parçalayabilmektir. İlkokul 1. sınıfı hatırlayalım.
1. Basamaktaki Sayı : Sıfır rakamı haricinde sayı olduğu gibi okunur.
2. Basamaktaki Sayı : Sıfır rakamı haricinde sayı "Onluk" isimleriyle çağrılır. (10-20-30..vb)
3. Basamaktaki Sayı : Sıfır rakamı zaten okunmaz. 1 rakamında sadece "Yüz" denir. Diğer rakamlarda ise Rakam + "Yüz" denir.
Örnek :
302 : Üç + Yüz + İki
257 : İki + Yüz + Elli + Yedi
4. Basamaktaki Sayı : Eğer 4. basamak sıfır ise boş bırakılamaz. 5. ve 6. basamaklara da bakılır. Eğer 5. ve 6. basamaklarda sayı varsa o sayılar okunur ve sadece "Bin" denir. Eğer 4. basamakta sayı varsa 5. ve 6. basamaklara bakmaya gerek kalmaz. Onlar zaten okunacaktır. Sadece 4. basamağa bakılır. Sayı + "Bin" denir.
Ayrıca eğer sayı 4 basamaktan büyükse ve 4.basamakta "1" varsa "Bir" + "Bin" denir. Yani "Bir" okunur. Ama sayı 4 basamaklı ise ve 4. basamak "1" ise sadece "bin" denir. Bunun haricinde Sayı + "Bin" olarak okunur.
Örnek :
1302 : Bin + Üç + Yüz + İki
6257 : Altı + Bin + İki + Yüz + Elli + Yedi
5600051 : Beş + Milyon + Altı + Yüz + Bin + Elli + Bir (5. ve 6. basamaklar burada önemli)
5000051 : Beş + Milyon + Elli + Bir (4 boş olduğundan 5 ve 6 ya bakılır. Onlar da boş olduğunda "bin" denmez.)
5. Basamaktaki Sayı : Sıfır rakamı haricinde sayı "Onluk" isimleriyle çağrılır. (10-20-30..vb)
6. Basamaktaki Sayı : Sıfır rakamı zaten okunmaz. 1 rakamında sadece "Yüz" denir. Diğer rakamlarda ise Rakam + "Yüz" denir.
7. Basamaktaki Sayı : Direkt Sayı + "Milyon" denir.
Programın Hazırlanması :
--------------------------------------------------------------------------------
Yukarıda sayıların parçalanma kurallarını gördük. Bu kurallara uygun olarak sayı basamakları tek tek incelenip karar verilecek. Ben algoritmamda sayıyı STRING olarak okuyacağım. Hiçbir şekilde INTEGER veya LONG olarak kullanmayacağım. Bunun avantajı, sayı üzerinde String işlemlerini kullanmanın kolaylığıdır. Programda kullandığım 3 adet String fonksiyonunun açıklamaları :

Kod:
Mid$ : Bir String değişken içerisinden istediğiniz kısmı koparıp almanızı sağlar. Parametreleri : ( MetinDeğişken ), ( BaşlangıçNoktası ), (İlerleme Sayısı) 
Örnek:
Mid$ ( "Gökhan", 3 , 2 ) = "kh"
Mid$ ( "Gökhan" , 2 , 4 ) = "ökha"
Kod:
Left$ - Right$ : Bir String değişkenin Sağdan veya Soldan istediğiniz sayıda karakterini verir. Parametreleri : ( MetinDeğişken ) , (İlerleme Sayısı) 
Örnek:
Left$ ( "Gökhan", 3 ) = "Gök"
Right$ ( "Gökhan" , 3 ) = "han"
Bu fonksiyonlar içiçe kullanılabilir. Mesela metnin 3. harfini elde etmek için:
Right$ ( Left$ ( "Gökhan" , 3 ) , 1 ) = "k" döner.
Kod:
Len : Bir String ifadenin karakter sayısını verir.
Len ( "Gökhan" ) = 6
Şimdi programımızda kullanacağımız iki adet dizi tanımlayalım. Dizilerin içerikleriyle ses dosyalarının isimlerinin aynı olmasına özen gösterin. Çünkü, dizilerdeki bilgileri hem ekrana yazmak için hem de ses dosyalarının ismini oluşturmak için kullanacağız.

Kod:
Dim Onlar As Variant
Dim Sayilar As Variant
Sayilar = Array ( "", "bir", "iki", üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz" )
Onlar = Array ( "", "on", "yirmi", "otuz", "kırk", "elli", "altmış", "yetmiş", "seksen", "doksan" )
İşte programın tamamı. Programda sayı, kullanıcı tarafından textbox içine yazılacak. Sayının okunuşu da bir Listbox nesnesine yazılacak. Sayının okunuşu için iki buton bulunur. Bunlardan biri sayının okunuşunu listbox listesine yazar. Diğer buton ise listede yazılı sayıyı okutmak içindir

Kod:
Sayi = Trim(Text1.Text)
    
For i = 1 To Len(Sayi) ' Sayıdaki Rakamlar Tek Tek Okunur
        
Select Case Len(Sayi) - i + 1 ' Alınan Rakamın Matematikteki Basamağına Göre Seçim
            
Case 7:
                If Mid$ ( Sayi , i , 1 ) <> "0" Then
                    List1.AddItem Sayilar ( Val( Mid$( Sayi , i , 1 )))
                    List1.AddItem "milyon"
                End If
' ------------------------------------------------------------------------------------
Case 6:
                If Mid$( Sayi, i , 1 ) <> "0" Then
                    If Mid$( Sayi, i , 1 ) <> "1" Then List1.AddItem Sayilar( Val( Mid$( Sayi, i , 1 )))
                    List1.AddItem "y&#252;z"
                End If
' ------------------------------------------------------------------------------------
       Case 5: If Mid$( Sayi, i, 1 ) <> "0" Then List1.AddItem Onlar( Val( Mid$( Sayi, i, 1 )))
' ------------------------------------------------------------------------------------
     Case 4:
                    If Mid$(Sayi, i, 1) <> "0" And Mid$(Sayi, i, 1) <> "1" Then
                        List1. AddItem Sayilar(Val(Mid$(Sayi, i, 1)))
                    End If
                
                    If Mid$(Sayi, i, 1) = "1" Then
                        If Len(Sayi) >= 6 Then
                            If Mid$(Sayi, i - 1, 1) <> "0" Or Mid$(Sayi, i - 2, 1) <> "0" Then
                                List1. AddItem "bir"
                            End If
                          ElseIf Len(Sayi) = 5 Then
                            If Mid$(Sayi, i - 1, 1) <> "0" Then
                                List1. AddItem "bir"
                            End If
                        End If
                    End If
                    
                    List1. AddItem "bin"
' ------------------------------------------------------------------------------------
       Case 3:
                If Mid$(Sayi, i, 1) <> "0" Then
                    If Mid$( Sayi, i, 1 ) <> "1" Then List1.AddItem Sayilar( Val( Mid$( Sayi, i, 1 )))
                    List1.AddItem "y&#252;z"
                End If
' ------------------------------------------------------------------------------------
       Case 2: If Mid$( Sayi, i, 1 ) <> "0" Then List1.AddItem Onlar( Val( Mid$( Sayi, i, 1 )))
' ------------------------------------------------------------------------------------
       Case 1: If Mid$( Sayi, i, 1 ) <> "0" Then List1.AddItem Sayilar( Val( Mid$(Sayi, i, 1 )))
End Select
Next
Yukar&#305;daki kodlarda, say&#305;n&#305;n rakamlar&#305; tek tek okunarak, en ba&#351;ta anlat&#305;lan okuma kurallar&#305; uygulan&#305;r. Olu&#351;an metin par&#231;alar&#305; List1 nesnesine eklenir. A&#351;a&#287;&#305;da ise Okuma komut d&#252;&#287;mesine bas&#305;ld&#305;&#287;&#305;nda ses dosyalar&#305;n&#305;n &#231;a&#287;r&#305;lmas&#305; anlat&#305;lm&#305;&#351;t&#305;r. Ses dosyalar&#305;n&#305; &#231;a&#287;&#305;rmak i&#231;in SndPlaySound Api'sini kulland&#305;m.

Kod:
For i = 0 To List1.ListCount - 1
        sndPlaySound App.Path & "/sesler/" & Trim$(List1.List(i)) & ".wav", 2
Next
SndPlaySound Api'si iki parametre al&#305;r. ( Dosya Adresi ) , ( Mod ). Mod Ayar&#305;n&#305;n 2 olmas&#305;, bir ses dosyas&#305;n&#305;n okunmas&#305; bitmeden bir sonrakine ge&#231;memesini ve beklemesini sa&#287;lar. Yukar&#305;da bir For-Next d&#246;ng&#252;s&#252; ile List1 listesinde yaz&#305;lm&#305;&#351; kelimelere ait wav dosyalar&#305; s&#305;ras&#305;yla &#231;a&#287;r&#305;lmaktad&#305;r.
Bu &#351;ekilde girdi&#287;imiz bir tamsay&#305;y&#305; par&#231;alay&#305;p okutabiliriz.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
sn uzmanamale ilginize te&#351;ekk&#252;r ederim yaln&#305;z bu i&#351; hafta sonuna kalaca&#287;a benzi,yor &#246;nce sesleri bulmam ve vb6 y&#305; kurmam laz&#305;m...
sonra vbe ye uyarlayaca&#287;&#305;z anla&#351;&#305;lan... haz&#305;r&#305; yok.
 
Katılım
15 Haziran 2007
Mesajlar
115
Excel Vers. ve Dili
2003 Türkçe
Arkadaşlar elinde
Tercihen 1 den 100 kadar sayıları (tanetane) (işitme engellilere haberlerde olduğu gibi yada çocuklara rakamları öğretmek için hazırlanmış gibi) okunduğu, daha sonra bin, milyon,milyar,trilyon ses dosyası olan varmı
yani
1.wav
2.wav
3.wav
4.wav
........
100.wav
1000.wav
1000000.wav
1000000000.wav
1000000000000.wav

Ses Değişmesse Daha güzel olur.
Merhaba hsayar,
Igo için hazırlanmış ses dosyalarım var, yükleme yaptım, işini görür mü bilmiyorum. dosyalar ogg uzantılı wav formatına çevrilebilir.
Selamlar,
Tansu
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
te&#351;ekk&#252;r ederim sn T.Erkanl&#305;.
istedi&#287;im sesler var ben ay&#305;klar&#305;m i&#231;inden excel ogg &#231;al&#305;yormu acaba bilginiz varm&#305;?
 
Son düzenleme:
Katılım
15 Haziran 2007
Mesajlar
115
Excel Vers. ve Dili
2003 Türkçe
Say&#305;n, hsayar
Bu konuda bilgim yok, hi&#231; u&#287;ra&#351;mam&#305;&#351;t&#305;m. Bende forumdan sizin konuyu takip ediyorum. E&#287;er &#231;alam&#305;yorsa audacity adl&#305; bir program var wav format&#305;na &#231;evirebiliyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
evde muscmatch jukebox var o &#231;okdaha rahat yap&#305;yor bu i&#351;lemi. ogg nin boyutunun k&#252;&#231;&#252;k oldu&#287;u i&#231;in sordum.
 
Katılım
15 Haziran 2007
Mesajlar
115
Excel Vers. ve Dili
2003 Türkçe
Konu beni fena sard&#305;,

Private Sub CmdPlay_Click()
konus.Speak Textbox1
End Sub

&#350;eklinde userformda buton yapt&#305;m, Texbox1 i ingilizce olarak okuyor.
Bu TextBox i&#231;inde ActiveCell.Value gibi bir form&#252;l var m&#305;? Yani cursoru TextBox lardan hehangi birine getirince i&#231;inde bulundu&#287;um textbox' &#305; okutabileyim.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
ingilizce olarak m&#305; okutacaks&#305;n&#305;z? sn terkanl&#305;.

b&#252;t&#252;n textboxlar&#305;n exit olay&#305;na konus.Speak Textbox(i) &#351;eklinde yaz&#305;labilir yada class mo&#305;ulle yap&#305;lr&#305; maa benim profosyenelli&#287;im de&#287;il.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
merhaba
mikrofonunuz varsa siz hazırlayabilirsiniz, sesinizin güzel olmadığını mı düşünüyorsunuz? :)
işitme engelliler sesi duyamaz, sanırım görme engelliler diyecektiniz ;)

ekte siteden bulduğum örnek dosya var. ingilizce, sizin istediğiniz değil ama belki işinize yarar.
Süleyman Bey dosyayı tekrar eklermisiniz?
 
Üst