Πρόβλημα :
- Έχουμε δοκιμάσει διάφορες εφαρμογές που χρησιμοποιούν δυνατότητες TextToSpeech μέσω του Festival
ήχος δεν παράγεται παρα μόνο όταν κλείσουμε κάποιο άλλο πρόγραμμα μουσικής αναπαραγωγής
(exaile , Amarok,audacius,banshee κλπ κλπ)
Τις περισσότερες φορές το πρόβλημα είναι με την ρύθμιση του Festival και όχι του προγράμματος
Το πρόβλημα έγκειται στο ότι το festival δεν χρησιμοποιεί εξ ορισμού το ALSA (Advanced Linux Sound Architecture)ή το ESD ή το Pulseaudio για sound server
αλλά το OSS ( Open Sound System)
Βήματα :
- Πρέπει να διαπιστώσουμε ότι έχουμε το ALSA
- Κώδικας: Επιλογή όλων
man festival
- Κώδικας: Επιλογή όλων
festival --tts
μπορούμε πχ να πάμε στο Volume Applet και να δούμε αν έχουμε στην λίστα με τα devices (συσκευές)
το Alsa mixer. Αν έχουμε το AlSA sound server προχωράμε.
Πρέπει επίσης να βεβαιωθούμε ότι το πρόγραμμα χρησιμοποιεί σωστά την σύνταξη του festival
και επικοινωνεί με αυτό
την οποία μπορούμε κοιτάξουμε εκτελώντας:
στο τερματικό.
Όπως και να έχει πρέπει να κοιτάξουμε το βοηθήματα του εκάστοτε προγράμματος είτε
με μία από τις εντολές
ονομαπρογράμματος -h
ονομαπρογράμματος --h
ονομαπρογράμματος --help
man ονομαπρογράμματος
είτε στο site του προγράμματος
είτε στο μενού help ( εάν έχει γραφικό περιβάλλον το πρόγραμμα)
όπως και να έχει καλό είναι να ανοίξουμε μια κονσόλα
και να γράψουμε
ενώ ταυτόχρονα παίζουμε μουσική με κάποιον player
και να διαπιστώσουμε ότι δεν παίζει ταυτόχρονα το festival
Παράδειγμα προβλήματος:
- Δοκίμασα το QstarDict που χρησιμοποιεί το Festival για να εκφωνεί λέξεις από λεξικά αλλά όταν
- Κώδικας: Επιλογή όλων
festival --tts
παίζει ταυτόχρονα μουσική απλά δεν λειτουργεί .
Στο help και στο forum (http://forum.qstardict.ylsoftware.com/ που ήταν στα ρώσικα )δεν είχε και τίποτα ...
στις ρυθμίσεις του πρόσεξα ότι χρησιμοποιεί το festival
και μάλιστα την εντολή
εκτελώντας λοιπόν festival --tts στην κονσόλα μου έδινε το σφάλμα
can't open /dev/dsp
όταν όμως δεν έπαιζα μουσική αυτό έπαιζε κανονικά
Λύση
- Ανοίγουμε με έναν text editor (επεξεργαστή κειμένου)
- Κώδικας: Επιλογή όλων
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)- Κώδικας: Επιλογή όλων
festival --tts
- Κώδικας: Επιλογή όλων
(Parameter.set 'Audio_Command "aplay -D plug:dmix -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)
το ~/.festivalrc , προσθέτουμε στο τις παρακάτω γραμμές
και το σώζουμε
έπειτα δοκιμάζουμε ενώ παίζει μουσική κάποιος player
και εκτελούμε
γράφουμε μερικές λέξεις και άμα τις εκφωνήσει όλα καλά
Αν όχι
δοκιμάζουμε και βάζουμε τις παρακάτω γραμμές
λογικά θα παίξει αυτήν την φορά.
Σημείωση :
- Αν δεν υπάρχει το .festivalrc απλά το δημιουργούμε στο
- Κώδικας: Επιλογή όλων
gksudo gedit /usr/share/festival/festival.scm
- Κώδικας: Επιλογή όλων
man festival
- Κώδικας: Επιλογή όλων
man aplay
/home/ΟνομαΧρήστη/ όπου Όνομα χρήστη το όνομα που χρησιμοποιείτε για την είσοδο (log-in name) στο σύστημα
Αν θέλουμε να ισχύει για όλους τους χρήστες
μπορούμε να προσθέσουμε το κείμενο στο τέλος του αρχείου
festival.scm
που βρίσκεται στο
/usr/share/festival/festival.scm
πχ με την εντολή
Για περισσότερες πληροφορίες ανατρέξτε
στα manual pages
και
links
- http://en.wikipedia.org/wiki/Open_Sound_System
http://en.wikipedia.org/wiki/PulseAudio
http://en.wikipedia.org/wiki/Enlightened_Sound_Daemon
http://en.wikipedia.org/wiki/Advanced_L ... chitecture
Πηγή:
https://help.ubuntu.com/community/TextToSpeech