Derin Sinir Ağları Kullanılarak Konuşma Sentezi

Bilgisayarla konuşma sentezleme yeni bir konu değil, bu alanda uzun süredir çalışmalar var. Bununla birlikte, üretilen konuşmaların çoğunun kalitesi, hala insani değil ve işitmesi de pek zevkli değil. Her ne kadar bu tür sistemler doğal konuşmayla aralarındaki mesafeyi kapatıyorsa da, Google Assistant, Siri veya Amazon Alexa gibi büyük sistemlerin kalitesi bile insan kaynaklı bir konuşmanın tadından uzak.

Bu yazı, konuşma sentezleme çalışmalarındaki son gelişmeleri ve daha doğal konuşmalar oluşturmak için derin öğrenme tekniklerinin nasıl kullanıldığını açıklamaya çalışmaktadır.

Geleneksel Metinden Konuşmaya Dönüştürücü Sistemlere Kısa Bir Giriş

Günümüzde konuşma üretmek için neden derin öğrenme tekniklerinin kullanıldığını anlamak için konuşma üretiminin geleneksel olarak nasıl yapıldığını anlamak önemlidir. Metinden konuşmaya dönüşüm için iki özel yöntem vardır. Parametrik Metinden Konuşmaya ve Birleştirilmiş Metinden Konuşmaya. Oluşturulan konuşmanın kalitesini değerlendirmek için iki terimi tanımlamak da önemlidir: anlaşılırlık ve doğallık. Anlaşılırlık, üretilen sesin kalitesidir. Temiz mi, dinlenebilir mi? Ve doğallık, üretilen konuşmanın kalitesidir. Konuşma hissiz geliyor mu? Konuşma düzgün zamanlama yapısına ve telaffuza sahip mi?

Birleştirilmiş Metinden Konuşmaya: Adından da anlaşılacağı gibi bu teknik, konuşmayı oluşturmak için bir araya getirilen yüksek kaliteli ses kliplerine veya ses birimlerine dayanır. Her ne kadar üretilen konuşma sesi çok temiz ve net olsa da, hissiz gelir. Yani anlaşılırdır ancak doğal değildir. Bunun nedeni, tüm olası kelimelerin, tüm olası duygularla, prozodilerle ve vurgularla seslendirildiği ses kayıtlarını elde etmenin zor olmasıdır. Doğal olarak bu sistemler, büyük veritabanları gerektirir. Böyle sağlam bir sistem geliştirmek yedi ila sekiz ay sürer.

Parametrik Metinden Konuşmaya: Büyük veri gereksinimleri ve geliştirme süresi nedeniyle birleştirilmiş metinden konuşmaya çok kısıtlayıcıdır. Böylece kaba kuvvet sayılabilecek bu metot yerine daha istatistiksel bir metot geliştirilmiştir. Bu yöntem, temel frekans, büyüklük spektrumu gibi parametreleri birleştirip işleyerek konuşma üretir. Bir parametrik metinden konuşmaya sisteminin iki aşaması olacaktır.
  • İlk olarak, metin işlemeden sonra dilsel özellikler çıkarılmalıdır. Bu özellikler fonemler, devam süresi vb. olabilir.
  • Daha sonra, karşılık gelen konuşma sinyalini temsil eden ses kodlayıcı özelliklerini çıkarmak gerekir. Bu özellikler ses işlemede kullanılan kepstrum, spektrogram, temel frekans vb. olabilir ve insan konuşmasının kendine özgü özelliklerini temsil eder. Mesela kepstrum, insan konuşmalarında transfer fonksiyonunun yaklaşık değeridir.
Yukarıda sayılan bu parametreler, dil özellikleriyle birlikte ses kodlayıcı denilen matematiksel bir modeli besler. Ses kodlayıcı bu özellikleri alır ve ses dalga biçimi oluşturmak için bu özellikler üzerinde çok sayıda karmaşık dönüşüm yapar. Ses kodlayıcı, dalga biçimini oluştururken faz, prozodi (ritim ve vurgu), tonlama gibi konuşma parametrelerini tahmin eder.

Parametrik olarak sentezlenmiş konuşma epey modüler ve uygulanabilirdir. Konuşmayı oluşturan parametrelere yaklaştırabilirsek o zaman her türlü konuşmayı üretmek için bir model geliştirebiliriz. Böyle bir sistemi yapmak, birleştirilmiş metinden konuşmaya sistemi yapmaktan önemli ölçüde daha az veri ve çalışma gerektirir.

Teorik olarak bunun işe yaraması gerekir ancak pratikte boğuk konuşmalarla ve uğultulu seslerle sonuçlanan birçok çalışma vardır. Oluşturulan konuşmalar ne anlaşılır ne de doğaldır.

Bunun nedeni, işlem hattının her aşamasında belli özellikleri sabit şekilde kodlamamız ve bunların sonucunda konuşma üretilmesini ummamızdır. Bu özellikler biz insanlar tarafından konuşma anlayışımız elverdiğince tasarlanmıştır ancak bu işi yapmak için en iyi özellikler olmayabilirler. Ve burası, derin öğrenmenin devreye girdiği yerdir.

(Ayrıca bu noktada henüz okumadıysanız yazının ilk bölümü sayılabilecek Metin Seslendirme Sistemleri İçin Yöntemler'e de bakmak isteyebilirsiniz.)

Derin Öğrenme ile Konuşma Sentezi

Derin öğrenme modelleri, verilerin temel özelliklerini öğrenme konusunda olağanüstü etkili olduklarını kanıtlamıştır. Bu özellikler insanlar tarafından okunamaz durumdadır ancak bilgisayarlar tarafından okunabilir ve bir model için verileri daha iyi temsil eder. Bu, derin öğrenme modelinin X girişini Y çıkışına eşleme işlevini öğrendiğini söylemenin başka bir yoludur.

Şimdi bu varsayımdan yola çıkarsak "doğal sesli" bir metinden konuşmaya sistemi, bir metin dizisinden oluşan X girişine ve ses dalga biçiminden oluşan Y çıkışına sahip olmalıdır. Elle ayarlanmış herhangi bir özellik kullanmamalı ve konuşmayı insani yapan yeni yüksek boyutlu özellikleri öğrenmelidir.

Bu alandaki araştırmalar çok yenidir. Bu yazıda sadece araştırmalar incelenip kısa bir genel bakış sunulacaktır.

Ses Dalgalarının Örnek Seviyesinde Üretimi

Amaç konuşma üretmektir. Ses dosyaları, bilgisayarda ses dalga biçimi sayısallaştırılarak temsil edilir.


Bu aslında ses örneklerinin zaman serisidir. Bu nedenle, çeşitli gizli parametreler üretmek ve sonra ses için bunları işlemek yerine, doğrudan ses örneklerini oluşturmak daha mantıklı olur. Derin sinir ağlarıyla örnek seviyesinde ses üretiminde öncü çalışma, DeepMind'ın WaveNet'idir.

WaveNet: Ham Ses İçin Üretken Bir Model

WaveNet, ses için ayrı örnekler oluşturur ve her bir örnek, ses içinde üretilen önceki tüm örneklere göre koşullandırılır (uygun duruma getirilir). Bu örnek, daha sonra bir sonraki örneği üretmek için önceki örneklerle birlikte kullanılır. Buna özbağlanımlı üretim denir.


WaveNet, artıklı evrişimli katman yığınları kullanılarak oluşturulmuştur ve aralardaki bağlantıları atlar. Girdi olarak sayısallaştırılmış ham ses dalga biçimini alır, daha sonra bu, evrişim katmanlarından akar ve bir dalga biçimi örneği verir.


Bir seferde üretilen dalga biçimi örneği

Model bütünlemeli değildir. Bu, konuşmanın yapısı hakkında herhangi bir bilgi sağlanmadığı anlamına gelir. Bu nedenle anlamlı bir ses üretilmez. Bu sistemi konuşan insanların sesleriyle eğitirsek insanlar konuşuyormuş gibi görünecek sesler üretilecek, ancak bu konuşmalar gevelenecek, duraklayacak ve mırıldanacaktır.

WaveNet ekibi bu modeli, önceden var olan bir metinden konuşmaya sisteminin ses kodlayıcı parametrelerini ham ses girişiyle birlikte sağlayarak koşullandırdı ve sonuçta ortaya çıkan metinden konuşmaya sisteminde yüksek kalitede, temiz, uğultusuz sesler üretildi.

Tüm bunlara rağmen, bu hesaplama çok maliyetliydi. Yüksek kaliteli bir konuşma için tipik bir WaveNet, aralardaki diğer bağlantıların yanı sıra 40 evrişim katmanı kullanır ve bir seferde bir örnek üretildiğinden, 1 saniyelik 16 kHz ses üretilmesi, 16000 örneğin işlenmesini gerektirir.

WaveNet ekibi 1 saniyelik ses üretiminin yaklaşık 4 dakika sürdüğünü bildirmiştir. Bu, en azından günümüz teknolojisi ve çoğu kişinin karşılayabileceği kaynaklarla uygulanabilir olmayan bir konuşma sentez sistemidir.

Baidu DeepVoice, kendi çekirdeklerini uygulayarak WaveNet'i 400 kat daha hızlı hale getirdiklerini söylemiştir ve WaveNet ekibi de kısa bir süre önce sistemlerini 1000 kat daha hızlı hale getirdiğini iddia etmiştir.

WaveNet, doğrudan üretilen ses örneklerinin kalitesinin, elle tasarlanmış özelliklere sahip bir ses kodlayıcıdan önemli ölçüde yüksek olduğunu kanıtladı.

WaveNet ile konuşmanın faz, tonlama, vurgu ve diğer yönlerinin tahmin edilmesine gerek yoktur, sadece uygun örnekleri üretecek en iyi mimarinin bulunması gerekmektedir.

SampleRNN

SampleRNN, ses örnekleri üretmek için başka bir yaklaşımdır ve sesleri işlemek için farklı saat oranlarına sahip tekrarlayan katmanlar hiyerarşisini kullanır. Tekrarlı katmanlarda ana fikir birden çok TSA'nın (Tekrarlayan Sinir Ağları) bir hiyerarşi içinde bağlı olmasıdır. En üst seviye, büyük miktarda girdi alacak, işleyecek ve daha düşük seviyeye geçirecektir; düşük seviye daha küçük giriş parçalarını alacak ve daha ileriye götürecektir. Bu, tek bir örneğin üretildiği hiyerarşideki en alt seviyeye kadar devam eder.


Üç Kademe SampleRNN

WaveNet gibi, SampleRNN de özbağlanımlı üreticili bir modeldir ve ayrıca WaveNet gibi, SampleRNN de koşulsuz bir ses üreticisidir. Fakat SampleRNN, WaveNet'e kıyasla çok daha hızlıdır. Bazı araştırmacılara göre SampleRNN, WaveNet'ten yaklaşık 500 kat daha hızlıdır.

Char2Wav, konuşma sentezi için SampleRNN'yi ses kodlayıcı parametreleriyle koşullandırarak genişletir. Bu ses kodlayıcı parametreleri metinden üretilir. Elde edilen sonuçlar WaveNet tabanlı metinden konuşmaya kadar iyi değildir ancak bunun nedenlerinden biri ekibin modeli yeterince veriyle eğitmemesinden kaynaklanmaktadır.

SampleRNN tarafından üretilen ses örnekleri WaveNet'inkiler kadar iyi ve SampleRNN'in çalışması WaveNet'ten daha hızlı olduğu için SampleRNN'i ham ses üreticisi olarak denemeye karar verebilirsiniz. Peki ama SampleRNN'yi koşullandırmak için sağlamanız gereken özellikler ne olacak? Google Brain'in geliştirdiği Tacotron, bu soruyu yanıtlıyor.

Tacotron: Uçtan Uca Metinden Konuşma Sentezi

Tacotron'un parlamasını, hangi özelliklerin ses kodlayıcıya geçirilmesi gerektiği konusunda varsayımda bulunmaması sağlar. Tacotron, metnin nasıl işlenmesi gerektiği konusunda bir varsayımda bulunmaz. Tacotron ekibi, insanların her şeyi bilmediği fikrinden yola çıkarak modelin uygun özellikleri ve işlemeyi öğrenmesini sağlar. Böylece Tacotron karakter seviyesine gider.

Tacotron'un yaptığı şey, metnin karakterlerini girdi olarak alması, farklı sinir ağı alt modülleri içinden geçirmesi ve sesin spektrogramını oluşturmasıdır. Bu, konuşma sentezi için tam bir derin öğrenme modeline benzer ve WaveNet'ten farklı olarak varolan metinden konuşmaya sistemlerinden herhangi bir özellik gerektirmez.


Bir spektrogram, konuşmanın iyi bir temsilidir, ancak faz hakkında bilgi içermez ve bu nedenle, spektrogramdan fazı tahmin ederek sesi yeniden yapılandırmak için Griffin-Lim algoritması kullanılır.

Bununla birlikte, bu algoritma, faz öğrenme konusunda epey kötü bir iş yapıyor ve Tacotron'un resmi örnekleri dışında, açık kaynaklı uygulamalar tarafından üretilen faz bozulmasız ses örnekleri pek yok. Faz bozulmalı konuşmanın sesi kulağa bilim kurgu ortamında her şeye gücü yeten bir varlığın konuşması gibi gelir, bu yüzden o kadar da kötü değildir aslında.

WaveNet ve SampleRNN ile doğrudan örnek üretiminin geleneksel algoritmalarla yeniden oluşturmaya göre çok daha iyi çalıştığı söylenebilir. Yapay sinir ağları tabanlı ses kodlayıcıları faz ve diğer özellikleri tahmin etme yeteneğine sahiptir.

Mozilla TTS

Mozilla TTS, Mozilla Common Voice'in bir parçasıdır. Mozilla TTS, düşük maliyetli ve yüksek kaliteli bir derin öğrenme tabanlı metinden konuşmaya dönüştürme motoru olmayı hedeflemektedir.

Model mimarisi Tacotron: Tamamen Uçtan Uca Metinden Konuşma Sentezi Modeli'nden ilham almıştır. Ancak eğitimin daha hızlı yapılmasını sağlayan ve hesaplama açısından büyük verimlilikler getiren birçok önemli güncelleme vardır.

Sonuç

Mozilla TTS modelleri karmaşık görünebilir. Gerçekten de dikkate alınması gereken birçok şey var. Öte yandan, Mozilla TTS farklı dil ve konuşmacılara genişleyebilen daha genel bir çözüm gibi duruyor. Burada gereksinimlerinize karar vermeniz ve seçiminizi akıllıca yapmanız gerekiyor.

Tacotron modelleri çok daha basittir. Bu tarafı biraz aldatıcı olabilir. Ayrıca karşılaştırmalı sonuçlar için yalnızca Tacotron'un dahili veri kümesi kullanıldığı için diğer sistemlerle sağlıklı bir karşılaştırmasını yapmak zordur. Yine de Tacotron sadeliği nedeniyle metinden konuşmaya sistemlerine başlamak için ilk tercih olabilir.

Özünde, bir metinden konuşmaya sisteminin uygulanması kolaydır. Ana bileşenler şöyle sıralanabilir:
  • Ses, özlü bir temsil alanına, örneğin spektrograma taşınır.
  • Çalışma zamanı verimliliği için tekrarlayan sinir ağlarının olabildiğince az kullanıldığı bir kodlayıcı mimarisi tanımlanır.
  • Metinden konuşmaya probleminin artımlı doğasına göre ayarlanmış akıllı bir dikkat modülü, örneğin monotonik dikkat modülü tanımlanır.
  • Olabildiğince az tekrarlayan sinir ağlarının kullanıldığı bir çözücü tanımlanır.
  • Doğru ses kodlayıcı algoritması bulunur. Bunun nihai sonuçlarda büyük bir etkisi olduğu unutulmamalıdır.
  • VoiceLoop gibi basit mimariler de akıllı hilelerle tatmin edici sonuçlar verebilir.
Ayrıca, tek bir yıl içindeki gelişmeler bile nefes kesici. Bunun nedeni, Amazon Alexa gibi ses asistanlarının ortaya çıkmasıyla birlikte metinden konuşmaya sistemlerinin artan ticari önemi olabilir.

Sözlük

Prozodi (Prosody): Hecelerin ve daha büyük konuşma birimlerinin özellikleridir. Bu özellikler titremleme, tonlama, vurgu ve ritim gibi dilsel işlevlerdir. Prozodi, konuşmacının veya konuşmanın çeşitli özelliklerini, örneğin konuşmacının duygusal durumunu, ifadenin formunu (ifade, soru veya komut), ironi veya iğneleme varlığını veya dilbilgisi veya kelime seçimiyle kodlanmış diğer dil unsurlarını yansıtabilir.

Fonem (Phoneme): ses birimidir. Dil biliminde birbirleri yerine anlamda değişme olmadan geçebilen bir dizi ses, ses birimi veya sesliktir. Dil olgusunun en küçük yapı taşıdır. Fonetik alfabesindeki her simge bir fonemi işaret eder.

Ses Kodlayıcı (Vokoder, Vocoder): Ses verilerini sıkıştırmak, çoklamak, şifrelemek ve dönüştürmek için insan sesi sinyalini analiz eden ve sentezleyen bir ses kodlayıcı bileşeni.

Ana Frekans (Temel Frekans, Fundamental Frequency) - F0: Sesin perdesini tanımlayan periyodik bir dalga biçiminin en düşük frekansı.

Özbağlanımlı Model (Autoregressive Model): Doğrusal olarak kendi çıkışlarına ve tahmini bir parametre setine bağlı bir model belirler.

Sorgu, Anahtar, Değer (Query, Key, Value): Anahtar, dikkat ağırlıklarını hesaplamak için dikkat modülü tarafından kullanılır. Değer, modül çıktısını hesaplamak için dikkat ağırlıklarının belirlediği vektördür. Sorgu vektörü, kod çözücünün gizli durumudur.

Grafem (Yazıbirim, Grapheme): Herhangi bir dilin yazı sisteminin en küçük birimidir. Bir grafem tek başına anlam taşıyabilir veya taşımayabilir ve konulan dilin tek fonemi için uygun olabilir veya olmayabilir. Grafemler alfabetik harfleri, ligatürleri, Çince karakterleri, numaraları, noktalama işaretlerini ve diğer tekil sembolleri içermektedir. Karakter demenin havalı yoludur.

Monotonik Dikkat (Monotonic Attention): Çıktı adımına yakın zamanda yalnızca sınırlı sayıda düğüm kullanır. t zamanınındaki çıktı ve t zamanındaki girdi arasında belli bir ilişki olduğundan metinden konuşmaya sistemi için performansı arttırır. Bununla birlikte, kelimelerin sırası aynı olmayabileceğinden dönüştürme problemi için makul değildir.

Ortalama Yargı Değeri (Mean Opinion Score, MOS): Genel olarak bir uyaranın veya sistemin kalitesini temsil eden, deneyim kalitesi ve telekomünikasyon mühendisliği alanında kullanılan bir ölçü. Katılımcıların sistem kalitesinin performansı hakkındaki görüşünü yansıtan ve önceden tanımlanmış bir ölçekten seçilen değerlerin aritmetik ortalamasıdır. Dili, anadili olarak konuşulanlarla yapılan değerlendirme sürecidir. Özellikle meslekten olmayan biri için ölçülmesi kolay değildir.

Bağlam Vektörü (Context Vector): Kodlayıcının çok zaman adımlı çıkışını özetleyen bir dikkat modülü çıktısı.

Hann Pencere Fonksiyonu (Hann Window Function): Pencere fonksiyonları, sonlu impuls cevaplı sayısal filtre tasarımında istenmeyen salınımları ortadan kaldırmak için kullanılan yapılardır. Pencere fonksiyonu analob genişliği, dalgalanma oranı ve yan lob azalma oranı gibi fonksiyonun performansını etkileyen parametrelere sahiptir. Bir pencere fonksiyonu tasarımında temel amaç, istenilen özellikleri sağlayacak genlik spektrumuna düşük derece ve en uygun spektral parametre değerleriyle ulaşmaktır. Hann Pencere Fonksiyonu ismini Julius von Hann'dan alır ve bazen muhtemelen Hamming penceresine olan dilsel ve formülsel benzerlikleri nedeniyle Hanning olarak da anılmıştır. Ayrıca sıfır-faz sürümü nedeniyle yükseltilmiş kosinüs olarak da bilinir.

Öğretmen Zorlaması (Teacher Forcing): Modelin t zamanında beklenen çıktısını, t+1 zamanında bir girdi olarak sağlama. Bir öğretmenin öğrenciye yaptığı gibi temel gerçek geribildirimi kontrol edilir.

Kaynaklar

Yorumlar

Bu blogdaki popüler yayınlar

Diğer Dillerde Hoşçakal

Mızıka Tabları Nasıl Okunur

conio.h