Catatan pertama: Kebanyakan sistem text-to-speech modern, seperti yang ada di AT&T yang Anda tautkan, menggunakan sintesis pidato concatenative . Teknik ini menggunakan basis data besar rekaman suara seseorang yang mengoleksi banyak kalimat - dipilih sehingga jumlah kombinasi fonem terbesar ada. Mensintesis sebuah kalimat dapat dilakukan hanya dengan merangkai bagian-bagian dari korpus ini - bagian yang menantang adalah membuat merangkai bersama menjadi mulus dan ekspresif.
Ada dua rintangan besar jika Anda ingin menggunakan teknik ini untuk membuat presiden Obama mengucapkan kata-kata yang memalukan:
- Anda harus memiliki akses ke koleksi besar kalimat suara target, lebih disukai direkam dengan kondisi perekaman yang seragam dan kualitas yang baik. AT&T memiliki anggaran untuk merekam puluhan jam dari speaker yang sama di studio yang sama, tetapi jika Anda ingin memalsukan suara seseorang hanya dari 5 menit rekaman itu akan sulit.
- Ada sejumlah besar penyelarasan manual dan preprocessing sebelum bahan baku direkam dalam "format" yang tepat untuk dieksploitasi oleh sistem sintesis pidato concatenative.
Intuisi Anda bahwa ini adalah solusi yang mungkin valid - asalkan Anda memiliki anggaran untuk mengatasi dua masalah ini.
Untungnya, ada teknik lain yang dapat bekerja dengan pengawasan yang lebih sedikit dan data yang lebih sedikit. Bidang sintesis ucapan yang tertarik pada "pemalsuan" atau "meniru" satu suara dari rekaman dikenal sebagai konversi suara . Anda memiliki rekaman A1 pembicara target A kalimat ucapan 1, dan rekaman B2 pembicara sumber B kalimat kalimat 2, Anda bertujuan menghasilkan rekaman A2 speaker A kalimat ucapan 2, mungkin dengan akses ke rekaman B1 speaker B yang mereproduksi dengan suaranya ucapan yang sama dengan target speaker.
Garis besar sistem konversi suara adalah sebagai berikut:
- Fitur audio diekstraksi dari rekaman A1, dan mereka dikelompokkan ke dalam kelas akustik. Pada tahap ini, ini seperti memiliki semua "a" speaker A, semua "o" speaker A, dll. Perhatikan bahwa ini adalah operasi yang jauh lebih sederhana dan kasar daripada pengenalan suara yang benar - kami tidak tertarik pada mengenali kata-kata yang dibentuk dengan benar - dan kita bahkan tidak tahu tas mana yang berisi "o" dan tas mana yang berisi "a" - kita hanya tahu bahwa kita memiliki beberapa contoh suara yang sama di setiap tas.
- Proses yang sama diterapkan pada B2.
- Kelas akustik dari A1 dan B2 diselaraskan. Untuk melanjutkan analogi tas, ini setara dengan memasangkan tas dari langkah 1 dan 2, sehingga semua suara yang kita miliki di tas ini dari speaker A harus sesuai dengan suara yang kita miliki di tas itu dari speaker B. Pencocokan ini adalah jauh lebih mudah dilakukan jika B1 digunakan pada langkah 2.
- Fungsi pemetaan diperkirakan untuk setiap pasangan tas. Karena kita tahu bahwa tas ini berisi suara dari speaker A, dan tas itu memiliki suara yang sama tetapi dikatakan oleh speaker B - kita dapat menemukan operasi (misalnya perkalian matriks pada vektor fitur) yang membuatnya sesuai. Dengan kata lain, kita sekarang tahu cara membuat speaker 2's "o" terdengar seperti speaker 1's "o".
- Pada tahap ini kami memiliki semua kartu untuk melakukan konversi suara. Dari setiap irisan rekaman B2, kami menggunakan hasil langkah 2. untuk mencari tahu kelas akustik yang sesuai dengannya. Kami kemudian menggunakan fungsi pemetaan yang diperkirakan pada langkah 4 untuk mengubah irisan.
Saya menekankan fakta bahwa ini beroperasi pada tingkat yang jauh lebih rendah daripada melakukan pengenalan suara pada B2, dan kemudian melakukan TTS menggunakan suara A1 sebagai corpus.
Berbagai teknik statistik digunakan untuk langkah 1 dan 2 - GMM atau VQ menjadi yang paling umum. Berbagai algoritma penyelarasan digunakan untuk bagian 2 - ini adalah bagian tersulit, dan jelas lebih mudah untuk menyelaraskan A1 vs B1, daripada A1 vs B2. Dalam kasus yang lebih sederhana, metode seperti Dynamic Time Warping dapat digunakan untuk membuat perataan. Adapun langkah 4, transformasi yang paling umum adalah transformasi linear (perkalian matriks) pada vektor fitur. Transformasi yang lebih kompleks menghasilkan imitasi yang lebih realistis tetapi masalah regresi untuk menemukan pemetaan yang optimal lebih kompleks untuk dipecahkan. Akhirnya, seperti untuk langkah 5, kualitas resintesis dibatasi oleh fitur yang digunakan. LPC umumnya lebih mudah untuk berurusan dengan metode transformasi sederhana (ambil frame sinyal -> estimasi sisa dan spektrum LPC -> jika perlu pitch-shift residual -> terapkan spektrum LPC yang dimodifikasi untuk residu yang dimodifikasi). Menggunakan representasi ucapan yang dapat dibalikkan kembali ke domain waktu, dan yang memberikan pemisahan yang baik antara prosodi dan fonem adalah kuncinya di sini! Akhirnya, asalkan Anda memiliki akses ke rekaman menyelaraskan speaker A dan B mengatakan kalimat yang sama, ada model statistik yang secara bersamaan menangani langkah 1, 2, 3 dan 4 dalam satu prosedur estimasi model tunggal.
Saya mungkin akan kembali dengan bibliografi nanti, tetapi tempat yang sangat baik untuk mulai merasakan masalah dan kerangka keseluruhan yang digunakan untuk menyelesaikannya adalah Stylianou, Moulines and Cappé "Sebuah sistem untuk konversi suara berdasarkan klasifikasi probabilistik dan harmonik plus model noise ".
Sepengetahuan saya tidak ada banyak perangkat lunak yang melakukan konversi suara - hanya perangkat lunak yang memodifikasi properti dari sumber suara - seperti parameter panjang nada dan saluran vokal (Misalnya transformator IRCAM TRAX) - yang dengannya Anda harus mengacaukan harapan dengan membuat Anda merekam suara lebih dekat ke suara target.