ufakzeka ailesinden konuşma tanıma modeli

ufakzeka-kulak

Türkçe konuşmayı metne döker. Metni büyük harfle ve noktalama işaretleriyle yazar, sayıları yazıyla verir. Lisansı ticari kullanıma izin veren 4.977 saatlik konuşma kaydıyla sıfırdan eğitilmiştir ve internet bağlantısı olmadan işlemcide çalışır.

  • 31.564.935parametre
  • 0,0921kelime hata oranı, FLEURS Türkçe testi
  • 0,0916kelime hata oranı, Common Voice 27.0 Türkçe testi
  • Apache-2.0lisans
Ne yapar2çıkış, ortak kodlayıcıda

Ses girer, metin çıkar

Model, 16.000 Hz örnekleme hızındaki tek kanallı sesten çıkarılan 80 boyutlu log-mel özniteliklerini okur ve tek seferde tek bir konuşma parçasını yazıya döker. Kodlayıcısı 16 katmanlı, 256 gizli boyutlu bir FastConformer’dır; kodlayıcı, varsayılan çıkış olan token ve süre dönüştürücüsü (TDT) kod çözücüsünü ve bir CTC katmanını beslemektedir. Kelime dağarcığı 1.024 tokenlık bir SentencePiece BPE’dir.

Büyük harf ve noktalama

Model büyük ve küçük harfleri ayırarak yazar. Noktalama işareti olarak yalnızca nokta, virgül, soru işareti, kesme işareti ve kelime içindeki kısa çizgiyi kullanır.

Sayılar yazıyla

Model “2022’de” değil “iki bin yirmi ikide” yazar. Rakam gereken bir uygulamanın sayıları kendisinin dönüştürmesi gerekir. Şapkalı harfler şapkasız yazılır.

Tek konuşma parçası

Model akış hâlinde çalışmaz. Uzun kayıtların, demoda olduğu gibi, önce konuşmanın başladığı ve bittiği yerleri bulan bir ses etkinliği algılayıcısıyla konuşma parçalarına bölünmesi ve her parçanın başında ve sonunda birkaç yüz milisaniyelik pay bırakılması gerekir; konuşmanın tam sınırından kesilen bir parça büyük harfsiz ve noktalamasız çıkabilir.

Dosyalar5çalışma ortamı, Hugging Face’teki tek repoda

Çalışma ortamları

Çalışma ortamıSürümRepodaki yolDuyarlık
NeMo3.0.0ufakzeka-kulak.nemofloat32
transformers5.20.1transformers-tdt/, transformers-ctc/float32
sherpa-onnx1.13.8sherpa-onnx-tdt/, sherpa-onnx-ctc/float32, int8
parakeet.cpp (GGUF)v0.6.1gguf/f32, q8_0
parakeet-mlx (MLX)0.5.3mlx/float32 ağırlıklar, bfloat16 ile çalıştırılır

NeMo dosyası referanstır. Diğer dosyaların her biri Common Voice ve FLEURS geliştirme kümelerinde NeMo ile karşılaştırılmıştır; yalnızca normalize edilmiş WER’i iki kümede de NeMo’nunkinden en fazla 0,0050 uzaklaşan ve hiçbir konuşma parçasında çalışma hatası vermeyen dosyalar yayımlanmıştır. sherpa-onnx dosyalarında sesin örnek değerleri 8 ile çarpılarak kullanılmalıdır; CTC dosyasında ayrıca sesin sonuna sıfır değerli örnekler eklenmelidir. parakeet-mlx öznitelikleri NeMo’dan farklı hesapladığı için MLX klasöründe ayrı bir öznitelik çıkarma fonksiyonu bulunmaktadır. Ayrıntılar ve diğer çalışma ortamlarının örnekleri model kartında yer almaktadır.

python
from nemo.collections.asr.models import ASRModel

model = ASRModel.from_pretrained("ufakai/ufakzeka-kulak")
print(model.transcribe(["speech.wav"])[0].text)

model.change_decoding_strategy(decoder_type="ctc")  # the CTC head
print(model.transcribe(["speech.wav"])[0].text)
Kabul testigeçtitest kümeleri bir kez puanlandı

Test sonuçları

Eğitim yöntemi, kontrol noktası ve yayımlanan dosyalar geliştirme kümelerinde seçilmiş, test kümeleri tek bir model için bir kez puanlanmıştır. Model, FLEURS Türkçe ve Common Voice 27.0 Türkçe test kümelerinin ikisinde de Whisper base’ten daha az hata yaparsa ve farkın eşleştirilmiş güven aralığı tamamen sıfırın altında kalırsa yayımlanacaktı. Model iki kümede de bu testi geçmiştir.

KümeKonuşma parçasıSaatufakzeka-kulak WERWhisper base WERWhisper base ile farkWhisper small ile fark
FLEURS Türkçe test7432,60,0921 [0,0792; 0,1055]0,2461 [0,2303; 0,2628]-0,1541 [-0,1653; -0,1430]-0,0421 [-0,0506; -0,0340]
Common Voice 27.0 Türkçe test11.87414,50,0916 [0,0873; 0,0958]0,3287 [0,3190; 0,3380]-0,2372 [-0,2440; -0,2302]-0,0885 [-0,0930; -0,0843]
Real-TurnTurk, sohbet konuşması, kabul testine katılmaz1.5321,70,3807 [0,3270; 0,4640]0,7242 -0,3435 [-0,4258; -0,3080]-0,1367

Köşeli parantez içindeki değerler, bloklara göre yapılan bootstrap yöntemiyle hesaplanan yüzde 95 güven aralıklarıdır; iki model arasındaki farkın aralığı eşleştirilmiştir. Fark, ufakzeka-kulak’ın WER’inden Whisper modelinin WER’i çıkarılarak hesaplanmıştır; negatif değer daha az hata anlamına gelir. Kod çözme açgözlü yöntemle ve TDT kod çözücüsüyle yapılmıştır. Whisper base ve Whisper small (MIT; bu modelleri geliştiren şirket eğitim verilerini tam olarak açıklamamaktadır) aynı Türkçe normalizasyonla tarafımızdan puanlanmıştır; her kümede açgözlü kod çözme ile Whisper paketinin kod çözme ayarlarından (ışın boyutu 5 olan ışın araması ve gerektiğinde sıcaklığı yükselterek yeniden deneme) daha düşük hata vereni kullanılmıştır. Whisper large-v3’ün açgözlü kod çözmeyle kelime hata oranı ise FLEURS testinde 0,0604, Common Voice testinde 0,0767’dir ve ufakzeka-kulak’ınkinden düşüktür; bu fark için güven aralığı hesaplanmamıştır. Real-TurnTurk yalnızca 6 konuşmacı içerdiği için aralığı geniştir.

Yayımlanan int8 sherpa-onnx TDT dosyasının WER’i FLEURS testinde 0,0921 (NeMo ile fark 0,0000), Common Voice testinde 0,0932 (+0,0016), int8 CTC dosyasınınki ise 0,1128 (+0,0207) ve 0,1200 (+0,0284) olarak ölçülmüştür.

Veri4.977saat konuşma kaydı

Eğitim verisi

Eğitim verisindeki her kaynağın lisansı ticari kullanıma izin vermektedir. Kaynaklar Mozilla Common Voice, antalia-voice-corpus ve ISSAI’nin Turkish Speech Corpus’udur; 4.977 saatin 4.696 saati ise ESPnet’in YODAS ve YODAS v3 veri kümeleri için topladığı YouTube sesleridir. Bu veri kümelerinin yazarları yalnızca Creative Commons lisansıyla yayımlanmış videoları aldıklarını belirtmekte ve sesleri CC BY 3.0 lisansıyla yayımlamaktadır. YouTube’da yükleyenin bir video için seçebileceği tek Creative Commons lisansı Creative Commons Atıf (CC BY) lisansıdır. YODAS v3 sesleri, Alania Turkish Speech Style Captions veri kümesindeki (CC BY 4.0) aralıklara göre kesilmiştir. Otomatik altyazılar eğitim metni olarak kullanılmamıştır. Her YODAS konuşma parçasının eğitim metni, Whisper large-v3-turbo’nun transkriptiyle uyuşan, videoyu yükleyenin eklediği altyazıdır; altyazı yoksa ya da uyuşmuyorsa Omnilingual ASR CTC 7B v2’nin denetlediği Whisper large-v3-turbo transkriptidir. Whisper large-v3-turbo MIT, Omnilingual ASR CTC 7B v2 Apache-2.0 lisanslıdır; bu modelleri geliştirenler eğitim verilerini tam olarak açıklamamaktadır. Değerlendirme kümeleriyle metin ya da ses bakımından eşleşen 432 eğitim konuşma parçası çıkarılmış, eğitim sesleriyle eşleşen 2 MediaSpeech kaydı da değerlendirmeden çıkarılmıştır. Kaynakların tam listesi ve atıfları model reposundaki ATTRIBUTION.md dosyasında yer almaktadır.

Sınırlar7model kartında da yazılı

Zayıf yanları

  • Yalnızca Türkçe için eğitilmiştir; başka dillerdeki ve Türkçeyle karışık konuşmalardaki başarısı ölçülmemiştir.
  • Kelime hata oranı konuşmacının cinsiyetine, yaşına ya da yöresel ağzına göre ölçülmemiştir.
  • Sohbet konuşmasında zayıftır. 6 konuşmacının sohbetlerinden oluşan Real-TurnTurk kümesinde WER 0,3807 olarak ölçülmüştür.
  • Konuşmacıları birbirinden ayırmaz ve doğruluğu denetlenmiş kelime zaman damgaları vermez.
  • YODAS kayıtlarının 4.696 saatinin 4.327 saatinde transkriptle uyuşan, videoyu yükleyenin eklediği bir altyazı bulunmadığı için eğitim metnini bir konuşma tanıma modeli yazmış, ikinci bir model denetlemiştir; iki modelin üzerinde uyuştuğu hatalar eğitim metninde kalmaktadır.
  • sherpa-onnx dosyalarında kullanılan giriş kazancı normal kayıt düzeylerinde geçerli bir geçici çözümdür; 30 dB daha sessiz FLEURS kopyasında hata oranı NeMo dosyasındakinden fazla artmaktadır.
  • MLX dosyaları yalnızca Linux’ta mlx’in işlemci arka ucunda denetlenmiş, Apple silicon’da ölçülmemiştir.