Θέµα 5 ο Σύνθεση Οµιλίας Εισαγωγή Γενικά µε τον όρο σύνθεση οµιλίας εννοούµε την αυτόµατη παραγωγή κυµατοµορφών οµιλίας. Ουσιαστικά αναφερόµαστε στην µετατροπή ενός κειµένου εισόδου (που αποτελείται από λέξεις ή προτάσεις) σε κυµατοµορφές οµιλίας χρησιµοποιώντας αλγορίθµους και κάποιο τύπο δεδοµένων τα οποία έχουν κωδικοποιηθεί και αποθηκευτεί. Το κείµενο εισόδου µπορεί να προέρχεται είτε από κάποια υπάρχουσα βάση δεδοµένων, είτε από κάποιο σύστηµα οπτικής αναγνώρισης χαρακτήρων. Στο παραπάνω σχήµα βλέπουµε τα κοµµάτια από τα οποία αποτελείται ένα ολοκληρωµένο σύστηµα σύνθεσης οµιλίας.
Άσκηση 1 Μηχανισµός παραγωγής οµιλίας του ανθρώπινου οργανισµού µοντελοποιηµένος από εναν Linear Predicive Vocoder. Ακολουθήστε τον σύνδεσµο: http://www.kt.tu-cottbus.de/speech-analysis/ Άσκηση 2 Στους formant συνθέτες αντί να προσπαθήσουµε να ενώσουµε προηχογραφηµένα κοµµάτια οµιλίας, αποθηκεύουµε στον υπολογιστή κάποιες παραµέτρους ενός σήµατος (π.χ φωνηµάτων ή διφώνων). Η formant σύνθεση κυρίως σχετίζεται µε συχνότητες συντονισµών και αντίσυντονισµών και πλάτη (bandwidth), καθώς επίσης και µε γλωττιδικές κυµατοµορφές. Προφανώς ο µεγάλος αριθµός των (συσχετιζόµενων) παραµέτρων κάνουν πιο πολύπλοκο το στάδιο της ανάλυσης και τείνουν να προκαλούν λάθη ανάλυσης. Οι συχνότητες συντονισµού και τα εύροι αυτών εκ φύσεως δύσκολο να υπολογιστούν από δεδοµένα οµιλίας µε αποτέλεσµα να απαιτείται πολύς χρόνος για την ανάπτυξη τέτοιων συστηµάτων. Στο παραπάνω σχήµα βλέπουµε το control pattern της φράσης we wish you a merry christmass.. ενός formant συνθέτη που είχε αναπτυχθεί από την IBM το 1965. Η δηµιουργία αυτού του καµβά είχε γίνει χειρονακτικά. Όπως φαίνεται και στο σχήµα οι παράµετροι ελέγχου του συνθέτη ήταν οι πρώτες τρεις αρµονικές (F1, F2, F3), η δεσπόζουσα αρµονική (F0), το πλάτος του σήµατος (A0), το πλάτος του θορύβου (Ah), και ένα κοινό κανάλι για το πλάτος των ρηνικών (An) ή προστριβώµενων ήχων (Fh), το κανάλι αυτό ελεγχόταν από τον δυαδικό έλγχο (B2). Ο παραπάνω ήχος υπάρχει στο αρχείο ss_ibm5_1965_mcr.wav.
Άσκηση 3 Σύνθεση άρθρωσης ονοµάζουµε ουσιαστικά την απευθείας µοντελοποίηση της φυσικής διαδικασίας της άρθρωσης, όπου άρθρωση (articulation) είναι η διαδικασία µε την οποία τροποποιείται η µορφολογία του φωνητικού καναλιού για να παραχθεί η οµιλία. Για να µιλήσει ένας άνθρωπος, στέλνει εντολές στους µύες των φωνητικών χορδών, οι οποίοι προκαλούν την κίνηση και µεταβάλλουν την µορφή της. Οι συνθέτες άρθρωσης µετατρέπουν σειρά φωνηµάτων στην είσοδο σε ένα σύνολο από νευροµυϊκές εντολές, ακολουθώντας ένα µοντέλο που βασίζεται σε δεδοµένα από ηλεκτροµυογραφικές µελέτες. Εποµένως για έναν συνθέτη άρθρωσης απαραίτητα είναι: Ένα µοντέλο που συσχετίζει τις µυϊκές εντολές µε τις ανάλογες κινήσεις άρθρωσης Ένας αλγόριθµος που µετατρέπει τις τελευταίες σε σχήµατα της φωνητικής οδού (area functions) που είναι σύνολα από εγκάρσιες τοµές Αm (m=1,2,...,ν) για πλήθος Ν τοµών που συγκροτούν την φωνητική οδό. Μια ακολουθία από τέτοιες τοµές συναρτήσει του χρόνου Αm(t) καθορίζει ένα χρονικά µεταβαλλόµενο δικτυωτό φίλτρο του οποίου οι συντελεστές ανάκλασης καθορίζονται από τους λόγους των γειτονικών τοµών. Στο τµήµα αυτό του εργαστηρίου θα ερευνήσουµε το πεδίο του articulatory συνθέτη µε χρήση του προγράµµατος praat [http://www.fon.hum.uva.nl/praat/]. Θα προσπαθήσουµε να κάνουµε το συνθέτη του praat να δηµιουργήσει τη λέξη [apa]. Τα βήµατα που θα ακολουθήσουµε φαίνονται παρακάτω. 1. ηµιουργούµε τα αντικείµενα Speaker και Artword (βλέπε το παραπάνω σχήµα). 2. Με το Create Artword, δηµιουργούµε µια λέξη συνάρθρωσης διάρκειας 0.5 sec. 3. Επεξεργαζόµαστε το Artword επιλέγοντας το και πατώντας το κουµπί Edit. 4. Για να έχουµε την γλωττίδα σε θέση κατάλληλη για την παραγωγή οµιλίας, χρησιµοποιούµε το ArtwordEditor για να θέσουµε την ενεργοποίηση του Interarytenoid σε 0.5 καθ όλη την διάρκεια της λέξης. Αυτό γίνεται θέτοντας δύο σηµεία (targets) 0.5 την χρονική στιγµή 0, και 0.5 στα 0.5 δευτερόλεπτα.
5. Επειδή θέλουµε να εµποδίσουµε την εξαγωγή αέρα από την µύτη, κλείνουµε την ρινοφαρυγγική οδό µε το να θέσουµε την παράµετρο LevatorPalatini σε 1.0 καθ όλη την διάρκεια της συνθετικής λέξης. 6. Προκειµένου να δηµιουργήσουµε την απαραίτητη πίεση από τα πνευµόνια για την δηµιουργία φωνής, θέτουµε την παράµετρο Lungs στην τιµή 0 στα 0.2 sec και στην τιµή 0.1 στα 0 sec. 7. Εφαρµόζουµε µετακίνηση του σιαγώνα για να κλείσουν τα χείλια, έτσι θέτουµε την παράτρο Masseter στα 0.7 την χρονική στιγµή 0.25 sec, και την OrbicularisOris στα 0.2 για την χρονική στιγµή 0.25 sec. 8. Στη συνέχεια επιλέξτε τα αντικείµενα Speaker και Artword και πατήστε το κουµπί Movie. Θα δείτε το κλείσιµο και άνοιγµα του στόµατος σύµφωνα µε τις ρυθµίσεις που κάνατε παραπάνω. 9. Επιλέξτε τα αντικείµενα Speaker και Artword και πατήστε την επιλογή To Sound 10. Πατήστε ΟΚ, και η σύνθεση ξεκινάει. 11. Σε έναν σχετικά αργό Η/Υ αυτή η διαδικασία πέρνει περίπου 5 λεπτά. 12. Μπορείτε να επεξεργαστήτε τον παραγώµενο ήχο όπως και κάθε άλλο. Μπορείτε να ακούσετε και να δείτε αυτό τον ήχο αν επιλέξετε τα αντικείµενα Speaker, Artword, και Sound. Άσκηση 4 Αντίθετα µε τις προηγούµενες µεθόδους σύνθεσης, στους συνθέτες συνένωσης απαιτείται πολύ µικρή γνώση των δεδοµένων που χειρίζονται και τα περισσότερα από αυτά βρίσκονται στις µονάδες (segments) που θα χρησιµοποιηθούν. Μια σειρά από προκαταρκτικά στάδια πρέπει να εκπληρωθούν προκειµένου να λειτουργήσει ο συνθέτης Κατ αρχήν, οι µονάδες πρέπει να επιλεχθούν έτσι ώστε να ελαχιστοποιηθούν µελλοντικά προβλήµατα συνένωσης. Ένας συνδυασµός από δίφωνα (µονάδες που ξεκινούν από το µέσω της σταθερής κατάστασης ενός φωνήµατος και τελειώνουν στο µέσω του εποµένου) ηµισυλλαβές, και τρίφωνα (τα οποία διαφέρουν από τα τρίφωνα στο ότι συµπεριλαµβάνουν στο µέσω τους ένα ολόκληρο φώνηµα) επιλέγονται συχνά ως µονάδες οµιλίας εφόσον εµπεριέχουν τις περισσότερες µεταβάσεις και τα περισσότερα φαινόµενα συνάρθρωσης ενώ ταυτόχρονα απαιτείται ένα λογικό µέγεθος µνήµης.. Σε αυτό το µέρος το εργαστηρίου θα προσπαθήσουµε να εξάγουµε ηµιδίφωνα (halfdiphones) µέσα από λέξεις φορείς και στη συνέχεια θα δηµιουργήσουµε µια συνθετική λέξη η οποία θα προέρχεται από συνέννωση αυτών. Η εργασία που πρέπει να κάνετε συνοψίζετε στο παρακάτω σχήµα.
Παράδειγµα Έστω ότι θέλουµε να εξάγουµε το δίφωνο b_e. 1. Πάµε στο αρχείο no_sense_(351).wav 2. Χρησιµοποιόντας κάποιο πρόγραµµα σαν το CoolEdit, βρίσκουµε την περιοχή της κυµατοµορφής που αντιστοιχεί στο δίφωνο. 3. Έπειτα βρίσκουµε την µέση του b και την µέση του e καθώς και το σηµείο µετάβασης των φωνηµάτων. 4. Χρησιµοποιούµε το πρόγραµµα text2diphone.m για να κάνουµε την συννένωση και να ακούσουµε και να δούµε την συνθετική λέξη.