İçeriğe geç
Dolphy
Test ve Ölçüm

Sesli Asistan Sayıları Nasıl Okumalı? Türkçe Saat, Fiyat ve Telefon Okuma

Mustafa Gürbüz6 dk okuma
Tuş takımı, akıllı hoparlör ve analog masa saati; üstte “Sesli asistan sayıları nasıl okumalı?” başlığı

Bir randevu asistanının en sık söylediği şeyler sayılardır: saat, tarih, fiyat, telefon numarası, kat, oda numarası. Bir sayıyı yanlış okuyan asistan, cevabı doğru bilse bile yanlış bilgi vermiş olur. "Randevunuz on dörtte" yerine "Randevunuz bir dört sıfır sıfır" demek misafiri tereddüde düşürür.

Dolphy'nin sesli hattını Cartesia'ya taşıdığımızda Türkçe sayı okumasını ayrı bir test konusu yaptık. Bu yazıda nerede bozulduğunu, çözümü neden modele bırakmadığımızı ve çeviriciyi nasıl doğruladığımızı anlatıyoruz.

Nerede bozuluyordu?

Test görüşmelerinde ve yan yana dinlemelerde gördüğümüz örnekler:

  • Saat rakam rakam: "14:00" → "bir dört sıfır sıfır". Ek de ayrı okunuyordu: "on dört 'te".
  • Telefon rakam rakam: On bir haneli numara tek tek rakamlarla, nefessiz okunuyordu.
  • Sıra sayısı cümle sonu: "3. kat" noktadan bölünüp "üç. kat" gibi okunuyordu.
  • Tarih: "28/09/2026" eğik çizgilerden bozuluyordu.
  • "hatta" kelimesi: "Hatta kalın" cümlesinde "hatta" bağlaç gibi okundu. Metni "hattan ayrılmayın" olarak değiştirdik.

Cartesia'nın belgesi tarih, saat ve telefonun doğru okunduğunu söylüyor. Türkçe testlerimizde bu her zaman tutmadı. Sağlayıcının kendi normalleştirmesini kapatma seçeneği belgede var ama kullandığımız LiveKit eklentisinde yok.

İlk çözüm neden işe yaramadı?

İlk akla gelen, cevap modeline "sayıları konuşma dilinde yaz" demekti. Model "on dörtte" diye yazarsa seslendirme doğru okur. Bunu bir süre kullandık ve üç sorun çıktı:

  • Döküm okunmuyordu. Panelde görüşme kaydı "saat on dörtte, iki bin beş yüz liraya" gibi uzun yazılarla doluyordu.
  • Uydurma sayı denetimi kör kaldı. Cevaptaki bir sayının bilgi tabanında geçip geçmediğini kontrol eden ölçümümüz rakam arıyordu. Yazıyla yazılmış sayıları göremiyordu.
  • Model rakamları karıştırabiliyordu. Sayıyı kelimeye çevirmek modele gereksiz bir iş yüklüyordu.

İş bölümünü değiştirdik: cevap modeli sayıyı rakamla ve kesmeli ekle yazıyor ("14:00'te", "15 Ekim'de", "5'e"). Okunuşu ses işçisinde çalışan kurallı bir Türkçe çevirici üretiyor. Aynı metin dökümde rakamla kalıyor.

Bir ayrıntı: saat iki nokta üst üsteyle, tarih ay adıyla yazdırılıyor. "15.10" saat mi tarih mi, "24.10 TL" fiyat mı tarih mi belirsizdi.

Çevirici ne yapıyor?

Aşağıdaki satırlar yazının hazırlanırken çeviricinin gerçek çıktısından alındı:

Cevap modelinin yazdığı Seslendirilen
Randevunuz 14:00'te. Randevunuz on dörtte.
Ofisimiz 3. katta. Ofisimiz üçüncü katta.
Kapasite 250000 kişi. Kapasite iki yüz elli bin kişi.
Fiyatı 24.10 TL. Fiyatı yirmi dört lira on kuruş.
Toplam 1.250,000 TL. Toplam bin iki yüz elli lira.
Dışarısı -5°C. Dışarısı eksi beş derece.
2.500 TL'ye kadar. iki bin beş yüz liraya kadar.
Randevunuz 5'e ertelendi. Randevunuz beşe ertelendi.
%20 indirim. yüzde yirmi indirim.
Numaramız 0512 345 67 89. Numaramız sıfır beş yüz on iki, üç yüz kırk beş, altmış yedi, seksen dokuz.
Sipariş kodunuz 482915. Sipariş kodunuz dört sekiz iki, dokuz bir beş.
KVKK'ye uygun, WhatsApp'dan yazabilirsiniz. Ka Ve Ka Ka'ya uygun, Vatsap'tan yazabilirsiniz.

Kesmeli ek okunuşa uyuyor. "KVKK'ye" yazımı harflere göre, okunuşu "Ka Ve Ka Ka" olduğu için ek "ya"ya dönüyor. Ünlü uyumu, d/t benzeşmesi ve kaynaştırma harfi ("5'e" → "beşe") kurallarla çözülüyor. Kurallar yalnız Türkçe görüşmede çalışıyor; İngilizce görüşmede "+" işareti "artı" okunmuyor.

Cevap modelinin yazdığı sayıların Türkçe seslendirmeye dönüşümü
Cevap modelinin yazdığı sayıların Türkçe seslendirmeye dönüşümü

Neden hazır kütüphane kullanmadık?

Önce aradık. Türkçe için TypeScript'te hazır ve eksiksiz bir çözüm bulamadık:

  • n2words: Sayıları doğru okuyor ama sıra sayısında hatalı ("binikiyüzelliinci" gibi bitişik ve yanlış ekli çıktılar).
  • NVIDIA NeMo metin normalleştirme: Türkçe yok.
  • VNLP: Türkçe odaklı ama AGPL lisanslı.

Kendi çeviricimizi yazdık ve doğrulamayı dışarıdaki bağımsız kaynaklara bağladık.

Doğrulama: üç bağımsız kol

Sayı sözcükleri: Unicode'un CLDR sayı kurallarıyla (unicode-rbnf) 103.803 değerde karşılaştırıldı; hepsi birebir tuttu. n2words ile kardinal sayılarda da %100 uyum çıktı.

Ekler: Zemberek'in Python sürümüyle (zeyrek) 4.136 ek biçimi çözümlendi; 3.970'i doğrulandı. Kalanlar yanlış yazılmış girdilerin "düzeltmesiydi" ve ayrıca incelendi. Bunlara 1.440 saat × 5 ek, TDK'nin kesme işareti, kısaltma ve sayı yazımı kuralları ile yaklaşık 250 gerçekçi cümle eklendi.

Dayanıklılık: 600 bin rastgele dizi üretildi. Amaç doğruluk değil, çeviricinin hiçbir girdide takılmaması, hata vermemesi ve yavaşlamamasıydı.

Doğrulama 18 kusur yakaladı. En öğreticileri:

  • Fiyat 1000 kat: "1.250,000 TL" İngilizce binlik gibi okunup "bir milyon iki yüz elli bin" oluyordu. Türkçe binlik nokta varsa virgülden sonrası ondalık sayılıyor.
  • Fiyat tarih oldu: "24.10 TL" → "yirmi dört Ekim lira"; "$12.30" ve "%2.49" saat gibi okunuyordu. Para, yüzde ve birim yanındaki sayı artık saat ya da tarih sayılmıyor.
  • Eksi işareti düşüyordu: "-5°C" → "beş derece".
  • Sonsuz döngü: 400 sıfırlı bir sayı ve ardından "+1" gelen bir girdi çeviriciyi kilitliyordu. Sayı grupları sınırlandı.
  • Ek hataları: "buçuka" (doğrusu "buçuğa"), "ayın 2'inde" → "ikininde", "#1234'ü" → "dört'ü".
  • Yavaşlık: e-posta okuma kuralı 50 KB'lik metinde 3,4 saniye sürüyordu; 0,8 ms'ye indi.
  • Kısaltmalar: "Dr. Ayşe", "Ltd. Şti.", "2. Blok" noktada bölünüyordu.

Canlıya alındıktan sonra da iki kusur çıktı. Ayraçsız 6 haneden uzun her dizi numara sayılıyordu: "250000 kişi" → "iki beş sıfır, sıfır sıfır sıfır". "000" ile biten dizi artık miktar sayılıyor, çünkü numara ve kodlar genellikle öyle bitmiyor. İkincisi dökümde "sistemidir. . Mesajdan" gibi çift nokta çıkarıyordu; akış cümleyi noktadan bölüyor, sonraki parça bir satır sonuyla başlıyor ve satır sonu ikinci nokta oluyordu.

Son adım kulak testiydi: 20 sayılı cümle Cartesia'nın Türkçe sesiyle seslendirildi. Metin tarafında 20'de 20 doğruydu; dinleme ayrıca yapılıyor.

Kararı bekleyen küçük durumlar

Bazı okunuşlar kural değil tercih meselesi, kulak testiyle karar verilecek:

  • Kesir TDK'ye göre "bir bölü iki" okunuyor; "yarım" daha doğal olabilir.
  • "iOS 17.2" gibi sürüm numaraları ondalık okunuyor.
  • THY, SGK gibi kısaltmalar sözlükte yok.
  • Beş haneli posta kodu sayı gibi okunuyor.

Kendi hattınızda nasıl uygularsınız?

  • Sayıyı modele değil kurala çevirtin. Model rakamla yazsın, okunuşu deterministik bir çevirici üretsin. Döküm okunur kalır, sayı denetimi çalışır.
  • Belirsiz biçimleri kaynağında kapatın. Saati iki nokta, tarihi ay adıyla yazdırın; "15.10" gibi biçimler hem insanı hem çeviriciyi şaşırtır.
  • Para, yüzde ve birimi önce yakalayın. Aksi hâlde fiyat tarih, yüzde saat olur.
  • Doğrulamayı bağımsız kaynağa bağlayın. CLDR ve Zemberek gibi kaynaklar kendi testinizin göremediği hataları yakalar.
  • Rastgele girdiyle kilitlenmeyi test edin. Ses işçisinde takılan bir fonksiyon bütün görüşmeyi susturur.

Ölçümün sınırları

Doğrulama çeviricinin metin çıktısını kapsıyor. Seslendirme motorunun bu metni nasıl okuduğu ayrı bir soru ve kulak testiyle bakılıyor. Kurallar Türkçe için yazıldı; diğer dillerde çalışmıyor. Gerçek konuşmalardaki sayı çeşitliliği test setindekinden geniş olabilir.

Sık sorulan sorular

Bu bölümdeki sorular, aynı konuda en sık arananlardan derlendi.

01

Sesli asistan neden saati rakam rakam okur?

Seslendirme motoru "14:00" gibi bir metni saat olarak tanımazsa her karakteri ayrı okur. Bu davranış motorun dil desteğine ve metin normalleştirmesine bağlı. Bizim testlerimizde Türkçe saat ve telefon her zaman doğru okunmadı; okunuşu kendi çeviricimizle üretmeye karar verdik.

02

Sayıları yazıyla yazdırmak daha kolay değil mi?

Kolay ama yan etkisi var. Görüşme dökümü okunaksız hâle geliyor ve cevaptaki sayıların bilgi tabanında geçip geçmediğini kontrol etmek zorlaşıyor. Rakamla yazıp seslendirmeden hemen önce çevirmek iki sorunu da önlüyor.

03

Telefon numarası nasıl okunmalı?

Türkçede alışılan biçim gruplar hâlinde okumaktır: "sıfır beş yüz on iki, üç yüz kırk beş, altmış yedi, seksen dokuz". Tek tek rakam okumak uzun ve takip etmesi zor. Akışta bölünen numaranın bütün okunması için son rakam grupları kısa süre bekletiliyor.

04

Türkçe sayı okuma için hazır kütüphane var mı?

Bizim araştırmamızda TypeScript için eksiksiz bir çözüm bulamadık. n2words sayıları doğru okuyor ama sıra sayılarında hata veriyor; NeMo'da Türkçe yok; VNLP AGPL lisanslı. Unicode CLDR kuralları doğrulama için güvenilir bir kaynak.

Paylaş

Mustafa Gürbüz

Dolphy Yöneticisi

Dolphy'nin yöneticisi. Sesli asistan, yazılı sohbet ve bilgi tabanı hattındaki testleri yürütüyor. Yazılardaki sayılar Dolphy'nin kendi test ortamında alınan ölçümlerden geliyor; her yazı ölçümün kapsamını ve sınırını da söylüyor.

İçerik 28 Eylül 2026 tarihinde kontrol edildi

Aynı soruları müşterilere tekrar tekrar yazmayın

Dolphy web sitesi, WhatsApp ve Instagram'da işletmenizin kendi bilgisiyle yanıt verir, talepleri panele düşürür.

Demo paneli gör

İlgili yazılar

Bağlantı paneli, sunucu ve mikrofonu birleştiren tek kablo; üstte “ElevenLabs'ten LiveKit ve Cartesia'ya ses hattı geçişi” başlığı
Test ve Ölçüm7 dk okuma

ElevenLabs'ten LiveKit ve Cartesia'ya: Kendi Ses Hattımızı Kurarken Öğrendiklerimiz

Sesli asistanın ilk sürümü ElevenLabs Agents üzerindeydi: konuşma tanıma, tur kararı, seslendirme ve kayıt platformdaydı, cevabı biz üretiyorduk. Seslendirmeyi ve sıra alma ayarlarını kendimiz yönetmek için kendi sunucumuzda LiveKit ve Cartesia Sonic 3.6 ile ayrı bir hat kurduk; dönüş tenant başına tek ayarla yapılabiliyor. Platformun hazır verdiği bekleme cümlesi, sessizlik merdiveni, arka plan sesi ayırma ve görüşme analizi gibi parçaları kendimiz yazmak zorunda kaldık. İlk gerçek görüşmede yazı akışı, 'kalın nokta' okuması, cümle ortası duraklama ve işçi donmaları çıktı; hepsi ölçülerek düzeltildi.

Yazıyı oku
Kronometre, ortasında boşluk olan ses dalgalı telefon ve hoparlör; üstte “Bir saniye, bakıyorum işe yarıyor mu?” başlığı
Test ve Ölçüm6 dk okuma

“Bir Saniye, Bakıyorum” İşe Yarıyor mu? Sesli Asistanda Bekleme Cümlesi Testleri

Bekleme cümlesi ancak cevaptan önce duyulursa işe yarar. ElevenLabs v3 hattında yaptığımız ölçümlerde 7 kelimenin altındaki cümle seslendirilmeden bekletildi ve cevaba yapıştı; 8 kelimeden itibaren erken çaldı. Belgenin önerdiği üç nokta en yavaş sonucu verdi, virgül en hızlısıydı. Uzun cümle ise kendi süresi kadar cevabı geciktirdi. Sonunda en iyi sonucu sağlayıcının kendi kısa dolgusu, 2,5 saniye eşikle verdi.

Yazıyı oku
Kulaklık, pop filtreli mikrofon ve spektrogram ekranı; üstte “Gürültü temizleyici konuşma tanımayı bozdu” başlığı
Test ve Ölçüm5 dk okuma

Gürültü Temizleyici Konuşma Tanımayı Bozdu: RNNoise, DeepFilterNet ve Düzey Kapısı

Gürültü temizleyicinin konuşma tanımayı iyileştireceğini varsaydık ve ölçtük. Ofis gürültüsü eklenmiş 245 klipte doğruluk temizleyicisiz %76 iken RNNoise ile %58'e, DeepFilterNet ile %62'ye düştü; en çok adlar, firma adları ve e-postalar kayboldu. Modern konuşma tanıma modeli gürültüyü kendisi kaldırıyor, temizleyicinin bıraktığı iz onu şaşırtıyor. Gürültü sorununu bunun yerine ses düzeyine bakan bir kapı ve anlamı yorumlayan bir araçla ele aldık.

Yazıyı oku