În timp ce așteptăm ca iTunes (Apple) să învețe noul iPod Shuffle să vorbească în limba rusă, de ce să nu încercați singur?
Înainte de a începe
Partea tehnică a întrebării
caracteristica VoiceOver, introdusă în noul iPod (spune vocea piesei / numele listei de redare) se realizează, desigur, nu de iPod-lea, și prin iTunes (care este motivul pentru a lucra cu noul iPod nevoie de iTunes nu mai puțin de 8,1), care este în sincronizare sintetizeaza sunet fișiere și le încarcă pe iPod. IPod-ul, la rândul său, le citește (cu cazul "convenabil").
Fișierele audio utilizate pentru pronunțare sunt în directorul Speakable. În plus față de orice altceva (mesaje vocale de sistem despre încărcarea bateriei etc.), acesta are două subdirectoare - Melodii și Playlisturi. În care sunt sunete numele de playlist-uri și melodii, în format wav (PCM brut, 22050 Hz), cu nume destul de ciudat. După cum sa dovedit, aceste nume sunt identificatori de melodii și liste de redare în baza de date, care sunt stocate pe iPod.
Merită să acordați atenție, deoarece numărul care a fost corectat (părtinitor) este setat rigid, indiferent de versiunea bazei de date, libgpod-ul astfel patchat nu va funcționa cu versiunile mai vechi ale iPod-ului. Pentru a face acest lucru normal, ar trebui să schimbe destul de mult biblioteca, ceea ce nu era scopul.
Deci, după ce au reușit să citească baza de date iPod, au văzut că numele fișierelor cu scorul sunt identificatorii playlist-urilor și melodiilor. În același DB, din fericire, există toate informațiile despre numele playlist-urilor, pieselor, numele albumelor și artiștilor. Următoarea întrebare este cum să sunăm, adică. cum să sintetizezi fișiere audio din textul rusesc.
Vorbim în limba rusă, festival
Pentru a putea utiliza limba rusă, chiar în festival, trebuie să adăugați o comandă (set! Voice_msu_ru_nsh_clunits Voice_default“) în fișierul /etc/festival/siteinit.scm.
Festivalul vă permite să obțineți o calitate destul de bună a textului rusesc, dar are o problemă - textul în limba engleză nu este foarte bun. mai degrabă, nu deloc bine (aceasta este dacă vocea rusă este aleasă).
Avem acest tip de program (C, GTK +):
Vrem să citim iPod-ul, să alegem iPod-ul, să obținem o listă de liste de redare și melodii. Coloana din dreapta - fișier, - numele fișierului cu "acțiune vocală", pentru poziția corespunzătoare
Faceți dublu clic pe linie, - redați fișierul care corespunde în mod curent piesei / listei de redare.
Alegem ceea ce este necesar să sunăm, apăsăm pentru a vocea și a aștepta, de foarte mult timp, mai jos este progresul.
Programul are încă o interfață consola (non-interactivă) (a se vedea --help și README).
Deci, avem nevoie de:- Programul real (aici)
- Patrate libgpod (aici)
- versiuni de pachete GTK +, GStreamer și libgpod pentru dezvoltatori (în Gentu acestea sunt aceleași pachete, în Debian se pare că sunt postfix -dev). Puneți-vă mijloacele preferate.
./ configure
face
(numai dacă nu intenționați să utilizați gtkpod cu modele mai vechi de pe iPod) faceți instalarea
Am despacheta programul, o facem inauntru
./ configure
face
(face instalare nu este necesar, pentru că nu există încă nici un fișier desktop, că nimic nu va fi adăugat la meniu)
Dacă în paragraful anterior (despre libgpod) nu ați făcut instalarea, trebuie să faceți următoarele (altfel puteți trece la ultimul paragraf al acestei părți):
copiați fișierul libgpod / src / .libs / libgpod.a directorul shuffle-Vo / src, libgpod - este directorul în care libgpod neambalat biblioteca, shuffle-VO - director cu programul neambalate.
Mergeți în directorul shuffle-vo / src, faceți curat acolo, apoi faceți, copiați o linie de acest fel (va fi ultima):
gcc -Wall -g -g -O2 -Wl, - export dinamic o- shuffle_vo main.o -pthread -L / usr / lib /usr/lib64/libgtk-x11-2.0.so / usr / lib64 / libgdk- x11-2.0.so /usr/lib64/libatk-1.0.so /usr/lib64/libpangocairo-1.0.so /usr/lib64/libpangoft2-1.0.so /usr/lib64/libcairo.so / usr / lib64 / libpixman- 1.so /usr/lib64/libpng12.so /usr/lib64/libXrender.so /usr/lib64/libX11.so /usr/lib64/libXau.so /usr/lib64/libXdmcp.so / usr / lib64 / libpango- 1.0.so /usr/lib64/libfontconfig.so /usr/lib64/libfreetype.so /usr/lib64/libexpat.so /usr/lib/libgpod.so /usr/lib64/libgdk_pixbuf-2.0.so / usr / lib64 / libgio-2.0.so /usr/lib64/libgstreamer-0.10.so /usr/lib64/libgobject-2.0.so /usr/lib64/libgmodule-2.0.so /usr/lib64/libgthread-2.0.so -lpthread -lrt / usr / lib64 / libxml2.so -ldl -lz -lm /usr/lib64/libglib-2.0.so -pthread
și înlocuiți /usr/lib/libgpod.so în această linie cu libgpod.a și apoi executați șirul rezultat
Astfel, programul nostru va fi legat static de libgpod-ul bibliotecii, în timp ce sistemul va avea librăria libgpod, care poate funcționa cu versiunile anterioare ale iPod-ului.
Pentru a verifica dacă legarea este statică, puteți face următoarele - ldd shuffle_vo, lista nu trebuie să conțină un șir de formular
libgpod.so.4 => /usr/lib/libgpod.so.4 (0x00007fe6537f1000)
Am citit README, care este cu programul, stabilit festivalul în consecință.
Calitatea înregistrării cuvintelor în limba engleză în textele rusești lasă mult de dorit, așa că va fi minunat dacă cineva, de exemplu, va organiza un serviciu de înregistrare a sunetului, de exemplu, uBot. Apropo, calitatea sunetului textelor rusești este mai mare decât cea a festivalului. Ei bine, asteptam ca marul sa lanseze o actualizare pentru iTunes, ceea ce ne va permite sa vorbim cu numele rusesc, asteptam foarte mult, tk. iTunes anunță textele în limba engleză foarte bine, dacă sună, de asemenea, rusă va fi foarte cool.
Aceasta este prima lansare publică a programului, deci, cu siguranță, este plină de bug-uri și bug-uri.
Cu ocazia dezvoltării ulterioare a programului - descărcați, modificați și aruncați în siguranță. Probabil că nu voi avea timp pentru dezvoltarea sa. Dacă nu va exista o integrare cu uBot.