NV Konuşma Oynatıcısı. c++ ile yazılan bulut tabanlı bir konuşma sentezleyici motoru

Genel bakış

NV Konuşma oynatıcısı , NVDA tarafından kullanılabilen ücretsiz ve açık kaynaklı bir prototip konuşma sentezleyicisidir. bulut sentezini kullanarak konuşma üretir, bu da onu Dectalk ve Eloquence gibi konuşma sentezleyicilerine biraz benzer kılar.

Lisans ve telif hakkı

NV Speech Player'ın Telif Hakkı (c) 2014 NV Speech Player'a katkıda bulunanlar NV Speech Player, GNU Genel Kamu Lisansı (Sürüm 2) kapsamındadır. Bu yazılımı, lisansla birlikte verildiği ve tüm kaynak kodunu isteyen herkesin kullanımına açtığınız sürece istediğiniz şekilde paylaşmakta veya değiştirmekte özgürsünüz. Bu, bu yazılımın hem orijinal hem de değiştirilmiş kopyaları ile tüm türev çalışmaları için geçerlidir. Daha fazla ayrıntı için lisansı çevrimiçi olarak şu adresten görüntüleyebilirsiniz: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Arka plan

70'ler ve 80'ler konuşma sentezinde çok araştırma gördü. Ortaya çıkan en belirgin sentez modellerinden biri, Klatt sentezi olarak bilinen bir formant-frekans senteziydi. Bazı iyi bilinen Klatt sentezleyicileri Dectalk ve Eloquence'dir. Son derece duyarlı, telaffuzları düzgün ve öngörülebilir olduğundan ve bellekte küçük yer kapladıklarından, görme engelliler için çok faydalı oldular. Bununla birlikte, araştırmalar kısa süre sonra, daha yavaş olmasına rağmen insan sesine çok daha yakın olduğu için, birleşik konuşma gibi diğer sentez biçimleri üzerine yöneldi. Bu, GPS üniteleri veya telefon sistemleri gibi ana akım uygulamalarda kullanım için bir avantajdı, ancak yanıt verebilirlik ve öngörülebilirliğe estetikten daha fazla önem verme eğiliminde olan körler için çok fazla bir avantaj sağlamadılar.

Dectalk ve Eloquence gibi sentezleyiciler yaklaşık 20 yıldır bakıma ve kullanılabilir olmaya devam etseler de, birden fazla şirket bunların ve varyantlarının ömrünün sona erdiğini ve artık güncellenmeyeceğini söylediği için artık elde edilmesi zorlaşıyor. .

Birleştirici sentez şimdi, yanıt verme ve pürüzsüzlük geliştikçe bir yedek olarak umut vermeye başlıyor. Bununla birlikte, kabul edilebilir kalite sentezleyicilerin tümü değilse de çoğu ticari ve oldukça pahalı.

Hem Dectalk hem de Eloquence kapalı kaynaklı ticari ürünlerdi. Bununla birlikte, Klatt sentezi hakkında topluluğa sunulan önemli miktarda kaynak kodu ve araştırma materyali bulunmaktadır. NV Speech Player, Dectalk veya Eloquence gibi sentezleyicilerin yerine geçmeyi veya en azından bu sentez yöntemi etrafında araştırma ve tartışmayı yeniden başlatmayı umarak, bir Klatt sentezleyicisinin modern bir prototipi olarak bundan yararlanmaya çalışmaktadır.

Kendi başına ücretsiz ve açık kaynaklı bir ürün olan eSpeak sentezleyici, topluluktaki belirli sayıda insana göre bu sentezleyicilerinin yerini aldığını kanıtlasa da, onu duyan birçok kişi sesi metalik buluyor ve bu sesi kullanmaya devam etmeyecekmiş gibi görünüyor. NV Speech Player'ın yazarları hala eSpeak'i sentezleyici olarak tercih etseler de, eSpeak'in spektral frekans sentezi ile Klatt sentezi ile ilgisi olabilecek bu garip eSpeak direncini daha iyi anlamaya çalışmayı umuyorlar. bu direncin nedeni Aynı zamanda, ünsüzlerin de kaydedilmiş konuşmadan toplandığı ve bu nedenle konuşma akışına enjekte edilmiş olarak algılanabilmesi gerçeği de olabilir.

Uygulama

Sentezleme motorunun kendisi modern deyimler kullanılarak C++ ile yazılmıştır, ancak http://linguistics.berkeley.edu/phonlab/resources/ adresinde bulunan klsyn-88 uygulamasını yakından takip eder.

eSpeak, metni IPA'da temsil edilen fonemlere ayrıştırmak için kullanılıyordu ve mevcut eSpeak sözlük işlemesinden yararlanılıyordu. eSpeak şu adreste bulunabilir: http://espeak.sourceforge.net/

Her bir ses birimi için Klatt biçimlendirici verileri çoğunlukla PyKlatt adlı bir projeden toplanmıştır: http://code.google.com/p/pyklatt/ Bununla birlikte, eSpeak'in kendi verileriyle test ve eşleştirmeye dayalı olarak daha fazla ayar yapılmıştır.

Ses uzunlukları, boşluklar, hız ve tonlama kuralları Python'da elle kodlanmış, ancak eSpeak'in kendi tonlama verileri mümkün olduğunca kopyalanmaya çalışılmıştır.

NV Konuşma Oynatıcı Oluşturma

Gereksinimleriniz: - Python 3.7: http://www.python.org - SCons 3: http://www.scons.org/ - Visual Studio 2019 Topluluğu

Oluşturmak için: scons'u çalıştırın

Oluşturduktan sonra, kök dizinde bir nvSpeechPlayer_xxx.nvda-addon dosyası olacaktır; burada xxx, git revizyonu veya sabit kodlanmış sürüm numarasıdır. Bu eklentiyi NVDA'ya yüklemek, NVDA'da Speech Player sentezleyicisini kullanmanıza olanak tanır. İhtiyacınız olan her şeyin eklentide olduğunu, fazladan dll veya dosyanın kopyalanmasına gerek olmadığını unutmayın.