- Çince telaffuz ve ton pratiğine yardımcı olmak için yaklaşık 300 saatlik konuşma verisiyle eğitilmiş 9M parametreli CTC tabanlı bir konuşma modeli bizzat geliştirildi
- Conformer kodlayıcı yapısı kullanılarak hem yerel konuşma özellikleri hem de küresel bağlam yakalanıyor; Pinyin+ton birimi tokenizasyonu ile telaffuz hataları net biçimde ayrıştırılıyor
- CTC kaybı sayesinde kullanıcının gerçekten telaffuz ettiği içerik kare düzeyinde değerlendiriliyor, Viterbi algoritması ile zaman hizalaması yapılıyor
- Model boyutu 75M→9M’e düşürülse de doğruluk kaybı neredeyse hiç olmadı; INT8 niceleme sonrası yaklaşık 11MB boyutla web tarayıcısında anında çalışabiliyor
- Tarayıcı tabanlı demo, cihaz üstünde telaffuz düzeltme sistemlerinin potansiyelini gösteriyor; veri kalitesini iyileştirmek gelecekte performans artışının anahtarı olarak görülüyor
Telaffuz değerlendirme modeli özeti
- Çince telaffuz öğrenmenin zorluklarını çözmek için telaffuzu puanlayan küçük bir konuşma modeli doğrudan eğitildi
- Yaklaşık 300 saatlik transkribe edilmiş konuşma verisi kullanıldı (AISHELL-1, Primewords)
- Doğrudan tarayıcıda çalışabilecek biçimde sunuldu
- Mevcut perde görselleştirme yöntemi gürültü, konuşma farkları vb. nedenlerle kararsızdı; veri tabanlı yaklaşımın daha etkili olduğu görüldü
- Hedef, ticari API kullanmadan cihaz üstünde Computer-Assisted Pronunciation Training (CAPT) sistemi gerçekleştirmek
Model yapısı ve eğitim yöntemi
- Conformer kodlayıcı + CTC kaybı yapısı benimsendi
- CNN, kısa zaman aralıklarındaki akustik özellikleri yakalıyor (ör. zh vs z)
- Transformer, bağlamsal ton kalıplarını işliyor (ör. tone sandhi)
- CTC yöntemi, kare bazlı olasılık dağılımı üreterek gerçekten telaffuz edilen fonemleri doğrudan değerlendiriyor
- `` tokenı kullanılarak tekrarlar ve boşluklar hizalanıyor
- Otomatik düzeltme olmadan, gerçekten telaffuz edilen içerik olduğu gibi yansıtılıyor
Tokenizasyon ve hizalama
- Pinyin+ton birleşimi tek bir token olarak tanımlandı
- Örnek:
zhong1 ve zhong4 birbirinden farklı tokenlar
- Nötr ton, tone 5 (
ma5) olarak birleştirildi
- Toplam 1.254 token +
, yapısı
- Viterbi algoritması ile konuşma kareleri ve tokenlar arasındaki en iyi yol hesaplanıyor
- Örnek: “Nǐ hǎo” telaffuzunda
ni3 ve hao3 bölümleri ayrıştırılıyor
Modelin hafifletilmesi ve performans
- Başlangıçtaki 75M parametreli model 9M’e kadar küçültüldü
- 75M: TER %4,83, Tone Accuracy %98,47
- 9M: TER %5,27, Tone Accuracy %98,29
- Doğruluk kaybının çok düşük olması, bunun veri bağımlı (data-bound) bir görev olduğuna işaret ediyor
- FP32 model (37MB), INT8 niceleme ile 11MB’a kadar küçültüldü
onnxruntime-web üzerinden tarayıcıda anında yüklenebiliyor
Hizalama hataları ve düzeltme
- Sessizlik bölümlerinin telaffuz değerlendirmesini bozduğu bir sorun ortaya çıktı
- Örnek: “我喜欢…” telaffuzundan önceki 1 saniyelik sessizlik
wo3 ile yanlış hizalanıp 0 puan olarak değerlendiriliyordu
- Çözüm: sessizlik karelerini puan hesabından çıkarmak
- `` olasılığı 0.7’nin üzerinde olan kareler filtrelendi
- Düzeltmeden sonra ilk hecenin güven puanı 0.0 → 0.99’a yükseldi
Sonuçlar ve sınırlamalar
- Beta test sırasında telaffuz düzeltme etkisi hissedildi
- Model oldukça katı puanlama yapıyor
- Anadili konuşanlar ve çocukların konuşmaları için doğruluk düşüyor
- AISHELL verisi çoğunlukla okuma tarzı konuşmadan oluştuğu için hız ve tonlama farkları var
- Gelecekte Common Voice gibi konuşma dili verilerinin eklenmesi gerekiyor
- Web demosu yaklaşık 13MB boyutunda ve çoğu web sitesinden daha hafif bir boyutta tam işlevli telaffuz düzeltme sunuyor
1 yorum
Hacker News yorumları
Gerçekten harika bir proje, bunun için teşekkürler
Yalnız, “我想学中文” cümlesinde “wén”i “guó” olarak tanıması tuhaf geldi
Bu, modelin tondan ziyade kelime yapısını öğrendiğini düşündürüyor. Muhtemelen “Zhōng guó” eğitim verisinde çok geçtiği için böyle bir önyargı oluşmuş
Blog yazısında dendiği gibi, bu yapı benim gerçekte yaptığım telaffuzu söyleyen bir modelden çok, olası 1254 heceden en yakın olana eşleme yapıyor gibi görünüyor
Yine de bu ses odaklı öğrenme yaklaşımı hoşuma gitti. Yazı temelli öğrenme ülkeden ülkeye yazım sistemi değiştiği için kafa karıştırıcı olabiliyor. Yeni başlayanlar için pinyin bile kafa karıştıran çok sayıda işaret içeriyor
Fikir ve UI sezgisel olduğu için etkileyiciydi
Ama Pekinli ve standart Çinceyi kusursuz konuşan biri olarak benim bile kolay soruları geçmem zordu
“你好吃饭了吗” örneğinde ton tanıma yanlıştı ve bağlama göre “了” liǎo değil le olmalıydı
Tonlar konusunda çok endişe eden yorumlar var ama pratikte tonlar kusursuz olmasa da iletişimde büyük bir sorun çıkmayabiliyor
Bölgeden bölgeye vurgu değişiyor, tonlar karışsa bile insanlar yine de birbirini anlıyor. Tonlara fazla takılmak yerine bağlam odaklı öğrenmeyi öneririm
Bölgesel lehçeler farklı olsa da insanların iletişim kurabilmesinin nedeni 1) komşu bölgeler arasında ton farklarının çok büyük olmaması ve 2) anlaşamadıklarında standart dile (Putonghua) geçmeleri
Çincenin bu haliyle var olmasının temelinde zaten ton sistemi var. Tonlar yanlışsa iletişim neredeyse imkânsız hale gelir
Ama Çin’de iletişimin yazı merkezli olmasının nedenlerinden biri de, bölgeler arasında telaffuz ve tonlar o kadar farklı ki yalnızca sesle anlaşmak zor olabiliyor
İnsanları tonları görmezden gelmeye teşvik etmek riskli. Tonlar gerçekten önemsiz olsaydı çoktan ortadan kalkmış olurdu
Bağlam dar olduğunda karışıklık çıkabilir, bu yüzden tonlar hâlâ kritik. Ayrıca “吃”yi “shi2” diye tanıması gibi durumlar veri artırımı gerektiriyor
Orta seviye bir öğrenci olarak geri bildirim bırakmak için yeni hesap açtım
Hızlı konuşunca fonem takibi iyi çalışmıyor ve ton tanıma kayıyor
Mesela “他是我的朋友”yu doğal hızda söylersem “我”yu “de” diye tanıyor ya da “是”yi “si” olarak işliyor
Yavaş ve tane tane konuşunca doğru tanıyor
Ardışık üçüncü ton değişimi (ton dönüşümü) gibi olguların da hesaba katılması lazım. Doğal konuşmadaki telaffuzları ele alabilen bir özellik gerekli
Avrupa dilleri konuşan biri için Çince ya da başka bir tonlu dili öğrenmek çok zor
Kulak tonlara alışık olmadığı için kişi doğru söylediğini sanıyor ama ana dili konuşuru onu anlayamıyor
İngilizcede ünlüler bölgeden bölgeye değişiyor ve “done vs down”, “beat vs bit” gibi farkları ayırt etmek zor
Buna karşılık İspanyolca çok daha basit ünlülere sahip olduğu için öğrenmesi çok daha kolaydı
Japonca pitch accent öğrenirken de başta hiçbir fark duyamıyordum ama tekrar tekrar çalışınca yavaş yavaş duymaya başladım
İngilizcede de “uh-oh” gibi perde örüntüleri olduğunu fark edince kafamda oturdu
Özellikle İngilizce tarzı tonlamayla belirsizlik ifade etme alışkanlığı sorun oluyor
Tonlar ve dilbilgisi başta öğrenilen temel şeyler; sonraki yıllarda çabanın çoğu kelime ezberine gidiyor
Çincenin asıl zorluğu paylaşılan kelime hazinesinin azlığı ve fonemik olmayan yazı sistemi
Sadece kelime düzeyinde söylenince iyi çalışıyor; cümle düzeyinde ya da doğal hızda ise yanlış tanıma çok fazla
Ben standart dil 2A sertifikasına sahip bir ana dili konuşuruyum ama gündelik şekilde konuşunca bile hata veriyor
Model, günlük konuşma ile resmî telaffuz arasındaki farkı ayırt edemiyor
Tayvan’da okurken tonları hatırlamak için elimle ton eğrileri çizerek çalışırdım
Deli bir yabancı gibi görünüyordum ama gerçekten işe yarıyordu
Bölgesel aksan farkları da büyük, bu yüzden referans verisinin ana dili konuşurlarına göre toplanması iyi olabilir
O zaman onu taklit etmediğim için pişmanım
Ana dili konuşuruyum ama demo telaffuzumu tanımadı
Muhtemelen arka plan gürültüsü yüzündendi. Yan tarafta kızım çizgi film izliyordu
Gerçekten harika bir proje ama dış geri bildirime aşırı bel bağlamayın demek isterim
Telaffuz düzeltmenin özü kulak eğitimidir. Yetişkin öğrencilerde de nöroplastisite sürdüğü için, minimal pair dinleme çalışmaları gibi yöntemlerle kulağı eğitmek gerekir
Böylece yalnızca telaffuz değil, dinleme becerisi ve kelime edinim hızı da ciddi biçimde artar
SST’den çok metin-ses senkronizasyonu (karaoke tarzı) daha etkili oldu
Kullanıcının kendi sesini orijinal kayıtla üst üste dinleyip farkı kendisinin duyması öğrenme açısından çok faydalıydı
Kelime kelime ton ezberlemek yerine ana dili konuşurunun telaffuzunu doğrudan taklit etmek çok daha doğal
Her şeyin tarayıcı içinde ONNX Runtime Web ile çalışması etkileyiciydi
Zorunlu hizalama yöntemiyle anlam tahminini dışarıda bırakıp yalnızca ton sorununu izole etmesi akıllıca bir yaklaşım
Gelecek sürümlerde ton dönüşümü (sandhi) bir son işleme adımı olarak eklenirse konuşma hızında pratik yapmak için daha faydalı olabilir
Keşke bir pinyin modu olsaydı. Ben sadece konuşmayı öğreniyorum, karakter okumayı öğrenmiyorum
Kelime dağarcığımı düzenlemek için hazırladığım flashcard web app kullanıyorum