, piper-whistle ve adlandırılmış yöneltmeler kullanılarak geçici, yerel (çevrimdışı) bir metin-konuşma sentezleyicisinin nasıl kurulabileceğine bir göz atalım. Piper GNU/Linux tabanlı bir sistemde piper kurmak için, piper'ın yardımıyla biraz manuel kurulumla sistem çapında metinden konuşmaya izin verecek kadar basit olan adlandırılmış yöneltmeler kullanan genel bir mimari tanımlayacağım. -whistle ve bazı küçük ödünler (basittir, ancak paralel konuşma işlemeyi desteklemez). Başlamak için, oluşturulmuş en son piper bağımsızını getirelim (bu yazının yazıldığı sırada ). Sıkıştırılmış arşivi indirdikten sonra piper kurulumumuz için bir dizin yapısı oluşturacağız. Kök dizin, aşağıdaki alt dizinlerle birlikte konumunda olacaktır: github'da barındırılan deposundan 2023.11.14-2 /opt/wind (inşa edilen kavalcıyı barındıracak) /opt/wind/piper (adlandırılmış kanalları içerecektir) /opt/wind/channels Sıkıştırmayı açtıktan sonra, piper yürütülebilir dosyasının adresinde, ayrıca beraberindeki kütüphanelerde ve adresinde mevcut olması gerekir. /opt/wind/piper/piper espeak-ng-data Piper tarafından kullanılan ses modellerini yönetmek için, sesleri indirmeyi ve yönetmeyi daha kolay hale getiren, python ile yazılmış bir komut satırı yardımcı programı olan piper-whistle'ı kullanmanızı öneririm. En son tekerlek dosyasını veya yayın sayfasından alabilirsiniz. Wheel dosyasını yükledikten sonra, biraz konuşma oluşturmak için bir ses getirelim. Öncelikle çağırarak veritabanını güncelleyelim. İngilizce konuşmada alba denilen kadın sesini oldukça beğeniyorum. Düdük kullanarak, kullanarak mevcut tüm İngilizce (GB) sesleri listeleyebiliriz. Ses indeks 2'dedir. Kurulum için çağırmanız yeterlidir. gitlab github piper_whistle -vR piper_whistle list -l en_GB -i 2 piper_whistle install en_GB 2 Sonra gerekli adlandırılmış kanalları oluşturalım. Ortaya çıkan yapı şöyle görünecek: (JSON yükünü kabul eder) /opt/wind/channels/speak (piper tarafından okunur) /opt/wind/channels/input (piper tarafından yazılmıştır) /opt/wind/channels/ouput Adlandırılmış bir kanal oluşturmak için aşağıdaki komutu kullanabilirsiniz: mkfifo -m 755 /opt/wind/channels/input Son olarak ayrı kabuklarda üç süreç oluşturuyoruz: tty0: tail -F /opt/wind/channels/speak | tee /opt/wind/channels/input tty1: /opt/wind/piper/piper -m $(piper_whistle path alba@medium) --debug --json-input --output_raw < /opt/wind/channels/input > /opt/wind/channels/output tty2: aplay --buffer-size=777 -r 22050 -f S16_LE -t raw < /opt/wind/channels/output Tty0'daki süreç, piper veya tarafından işlem bittikten sonra bile borunun açık tutulmasını sağlar. Bu şekilde TTS isteklerini sıraya koyabilir ve ardından bunları oynatabilir veya kaydedebiliriz. aplay Yukarıdaki yapıyı kullanırsanız piper-whistle ek özellikler sunduğundan, artık aracılığıyla konuşma üretebiliriz. X11'li sistemlerde yoluyla panonuzdaki metnin sözlü versiyonunu oluşturabilirsiniz. piper_whistle speak "This is quite neat" piper_whistle speak "$(xsel --clipboard --output)"