Speech Synthesizers în linux

Sintetizatoare de sinteză în Linux

intrare

Atenția dvs. este oferită o imagine de ansamblu asupra sistemelor de transmisie text pentru vorbire pentru Linux. După cum se pare, acest subiect nu a fost discutat încă pe Internetul rusesc. Chiar și impresia este creată că această regiune nu există deloc sau, cel puțin, este foarte slab dezvoltată. De fapt, nu este așa.

Primele calculatoare personale arătau ca o jucărie. Și de ceva timp acest lucru a fost exact modul în care au fost folosite - pentru jocuri și pentru tastare. Placa de sunet a fost exotică, iar atunci când sunetul și CD-ROM-ul au devenit normele, ele erau încă potrivite doar pentru a juca și pentru a asculta muzică. Tehnologiile de vorbire, care necesitau o putere de calcul gravă, ar putea fi tratate numai pe computerele mari. Astfel de proiecte nu au promis un succes comercial rapid, așa că s-au dezvoltat în principal în universități și centre de cercetare care lucrează pentru viitorul îndepărtat. Acolo totul a mers.

Acum, puterea sistemelor desktop a crescut atât de mult încât tehnologiile de vorbire sunt disponibile pe aproape orice computer personal. Numărul de aplicații care utilizează vorbirea crește rapid, iar calitatea crește. Iată un exemplu de folosire a unui sintetizator de vorbire de calitate - o coloană sonoră în limba rusă pentru filmul animat "Ice Age" pe DVD. Cei mai mulți spectatori nici măcar nu bănuiesc că personajele vorbește într-un "computer". Dezvoltarea tehnologiilor de vorbire promite schimbări în toate domeniile vieții. De exemplu, traducătorii au apărut deja dintr-o limbă în alta, care funcționează conform schemei "sistem de recunoaștere a vorbirii - dicționar - sistem de sinteză a vorbirii".

Câteva cuvinte despre modul în care funcționează sintetizatoarele de vorbire

Se crede că limba umană constă în principal din sunete monosilubice și bisilubice (aloporoși și difuși). Un astfel de set de sunete poate fi făcut pentru orice limbă. Este mult mai mult decât alfabetul, în limba franceză, de exemplu, există aproximativ 1200 dintre ei. Sunetele sunt extrase din înregistrarea unei voci umane reale și sub formă de fișiere audio sunt organizate într-o bază de date.

În fiecare limbă există cuvinte cu reguli non-standard de pronunție. Pentru astfel de cuvinte este compus un vocabular special - un lexicon. Când analizăm textul, calculatorul caută cuvântul în primul rând în lexicon și, dacă nu există, face sunete în conformitate cu regulile pentru limba dată.

Ce am reușit să găsim pe web

Să vedem acum ce este în acest domeniu pentru Linux. Iată ce a oferit Google:

Festivalul Synthesis Speech Festival - Festivalul este un sistem general de sinteză a vorbirii multi-lingvistice dezvoltat la CSTR. Oferă un sistem de text complet în vorbire cu diverse API-uri, precum și un mediu pentru dezvoltarea și cercetarea tehnicilor de sinteză a vorbirii.

Proiectul Festvox - Instrumente și documentație gratuită pentru construirea de noi voci de sinteză a vorbirii în limbile rusă și în alte limbi. De la Carnegie Mellon.

Recunoașterea vorbelor Unix - Synapse Synapse TAP Workstation traduce discursul în evenimentele mouse-ului și apăsările de la tastatură pentru a controla toate mediile - Unix, mainfame și Mac cu recunoaștere vocală.

Vorbitor - Text pentru vorbire pentru Konqueror - Un plug-in text-to-speech pentru managerul de fișiere desktop KDE sub Linux.

Flite - Flite (festival-lite) este un motor de sinteză rapid și rapid dezvoltat la CMU și conceput în primul rând pentru mașini mici integrate și / sau servere mari.

FreeTTS 1.1.1 - Un sintetizator de discurs scris în întregime în limba de programare JavaTM

KVoiceControl - spune-o! - Kvoicecontrol este un sistem de recunoaștere a vorbirii care permite utilizatorilor să convertească comenzi în comenzi Linux / Unix. Pentru ferestrele KDE și X.

Proiectul MBROLA - Sinteza mai multor limbi în sinteză. Descărcați software gratuit pentru mai multe platforme în scopuri de cercetare.

FreeSpeech - Recunoașterea liberă a limbajului pentru Linux - Openmind (Freespeech) este un proiect de recunoaștere a vorbirii libere pentru Linux. Acesta va fi proiectat astfel încât să poată fi ușor integrat în orice aplicație sau manager de ferestre, precum și în mediile desktop KDE și Ggnome.

IBM ViaVoice SDK pentru Linux - ViaVoice Kit oferă instrumentele necesare pentru a dezvolta aplicații care includ recunoașterea vocală folosind Linux

DDLinux Recunoașterea vorbelor liste de mail - Anunturi de software de recunoaștere a vorbirii pentru Linux.

Tehnologii BaBel - Specificitatea lui MBROLA se găsește în procesul inițial folosit pentru a genera difonele sintetice. Această abordare, bazată pe analiza Multi-Band Excited (MBE), permite netezirea spectrală a punctelor de concatenare, producând o voce mult mai naturală decât cu orice alte sisteme concatenative.

Bayonne - Server de telefonie al proiectului GNU - Bayonne este serverul gratuit de telefonie multi-linie al proiectului GNU. Codul sursă este disponibil pentru LINUX / UNIX. Bayonne suportă o arhitectură modulară, scripting nativ și TGI.

Nu foarte mult, dar există atât sisteme de recunoaștere, cât și sinteză de vorbire. În această revizuire vom analiza sistemele de sinteză.

Prezentare generală a sistemelor de sinteză a vorbirii în text

Sistemul Synthesis Festival Speech este pe primul loc în listă. Acesta este un program de cercetare al cărui scop este de a studia procesul de sintetizare a vocii umane pe un calculator. Festivalul a fost dezvoltat și dezvoltat sub Unix.

Limbi disponibile în prezent: engleză și engleză britanică, galeză, spaniolă. Se remarcă faptul că limba engleză este mai bună decât celelalte. Sprijină citirea de texte de altă natură, care se referă la intonație, citirea cuvintelor cu pronunțarea non-standard. Puteți conecta bazele de date MBROLA (vedeți mai jos).

Distribuția include:
  • codul sursă complet C ++,
  • lexicon CMULEX și OALD (pentru utilizare necomercială),
  • Bibliotecă C ++ de nivel scăzut Edinburgh Speech Tools,
  • Baze Diphon pentru engleza americană și britanică, precum și spaniolă,
  • set complet de documentație.

Festivalul face parte din multe distribuții Linux. Pentru a încerca modul în care funcționează, puteți, de exemplu, să porniți de pe un disc Knoppix cunoscut. Există în RedHat 9 pachete rpm pe al doilea disc de instalare. Dacă aveți nevoie doar de funcția de citire a textului, atunci faceți
rpm -iv /. /festival-1.4.2-16.i386.rpm
rpm -iv /. /festival-devel-1.4.2-16.i386.rpm

Dacă există dorința de a studia Festivalul mai adânc, este mai bine să instalați sistemul de la sursă. Pentru a instala, trebuie să descărcați pachetele:
festival-1.4.3-release.tar.gz este de fapt un sintetizator de voce.
speech_tools-1.2.3-release.tar.gz - Biblioteca low-level de voce înseamnă The Edinburgh Speech Tools.
festvox_NAME.tar.gz - baze de date vocale și vocabular. Diferite (cu politici de distribuție diferite) sunt disponibile. Fiecare voce poate necesita adăugări separate, cum ar fi un lexicon privat. În plus, bazele diferă în ceea ce privește calitatea vocii sintetizate și în organizarea acesteia. Iată câteva:
- festlex_en_1.tar.gz - engleză engleză, voce de sex masculin
- festvox_us_1.tar.gz - engleză engleză, voce feminină
- festvox_kedlpc16k.tar.gz - engleză engleză, voce de sex masculin
- festvox_rablpc16k.tar.gz - engleză britanică, voce de sex masculin
- festlex_CMU.tar.gz - lexicon
- festlex_OALD.tar.gz - lexicon
- festlex_POSLEX.tar.gz - lexicon
festdoc_1.4.0.tar.gz - documentația pentru Instrumentele de Festival și Speech.
Pentru a crea noi voci, aveți nevoie de festvox-2.0-release.tar.gz împreună cu pachetul de documentație.

Toate sursele trebuie să fie despachetate într-un director separat, de exemplu / opt / festival. Ar trebui să existe două subdirectoare:
speech_tools /
festival /
Dacă instalați și festvox, atunci va exista un al treilea subdirector.

În primul rând, trebuie să compilați biblioteca de voce din Edinburgh Tools Tools.
cd / opt / festival / speech_tools /
./ configure
face
Fișierele executabile nu se mișcă nicăieri, ci rămân aici.
Apoi, Festivalul este compilat:
cd / opt / festival / festival /
./ configure
face
În mod similar, avem de-a face cu Festvox, care este necesar, așa cum am menționat deja doar pentru a crea o voce nouă și nu este necesară pentru sinteza discursului folosind bazele de date existente.
Calea către fișierele executabile trebuie să fie fixată în fișierul / etc / profile. Adăugați următoarele linii în locurile corespunzătoare:
calemunge / opt / festival / speech_tools / bin
pathmunge / opt / festival / festival / bin

Acum să încercăm să citim ceva. Toate lucrările se fac pe linia de comandă. Pentru a intra în program, tastăm:
festival
Interpretul propriu de comandă pornește, după cum se poate vedea din modificarea promptului de linie de comandă:
Festivalul>
Limba implicită este engleza. Puteți spune textul astfel:
festival> (SayText "Hello World")
La început nu se întâmplă nimic. Documentația spune că programul trebuie să proceseze întregul text înainte de a începe să vorbească. Pentru a evita acest lucru, există un mod de utilizare a așa-numitului spooler vocal. Este activată de opțiunea (async audio_mode). Apoi discursul se ridică imediat, fără a aștepta parsarea textului până la sfârșit. Sa dovedit? Acum să încercăm în limba rusă:
festival> (SayText "festival govorit po russki")
Poți dezasambla, dar. Așa cum v-ați putea aștepta, aveți nevoie de o bază de difhon rusă și reguli de sinteză rusești. Despre asta - puțin mai târziu.
Puteți vorbi, bineînțeles, dacă este în limba engleză (semnele "***", desigur, trebuie să o înlocuiți cu altceva):
festival> (tts "*** .txt" nil) (async audio_mode)
Ieșiți din program:
C-d sau (ieșiți) sau Exit Festiva l
Este posibil să utilizați Festivalul direct din shell:
festival --tts ./***.txt
Utilitarul text2wave traduce un fișier text într-un fișier audio.
/ opt / festival / festival / bin / text2wave

Festivalul poate fi folosit separat (ca în acest exemplu de sesiune scurtă) și îl puteți încorpora în alte aplicații, inclusiv în utilizarea tehnologiei Java, care este suportată de la versiunea 1.4.0. Există multe oportunități, dar pentru a obține altele noi, există toate mijloacele. Lipsa limbii ruse este, cu siguranță, un minus, dar nu pentru dezvoltatori, ci pentru noi. După cum se spune, mântuirea unui om care se îneacă. și așa mai departe. Așa cum am menționat deja, tot ce este necesar pentru a crea o voce nouă este disponibil.

Festivalul nu este singurul din domeniul tehnologiilor de vorbire pentru sistemele de tip Unix. Să vedem ce mai este în listă.

FreeTTS este un dezvoltator al grupului de integrare a vorbelor din laboratoarele Sun Microsystems. Un proiect cu mai multe platforme, open-source bazat pe Java și Flight-ul menționat, care, după cum deja știm, este derivat din proiectul Festivalului. Prin urmare, bazele acestor proiecte și MBROLA sunt din nou disponibile.

Tehnologii BaBel

BaBel Technologies este un sintetizator de voce multiplatform bazat pe tehnologie și baze de date vocale MBROLA. Vor fi construite noi voci (în plus față de cele din proiectul belgian). Să sperăm că va apărea rușinea. Dar se pare că acesta este un proiect comercial.

IBM ViaVoice

IBM ViaVoice. Despre acest proiect se știe doar că nu există limba rusă.

Proiecte interne

Poate, pe aceasta se poate termina enumerarea sintetizatorilor de voce compatibili cu Linux. Se poate vedea că există ceva de ales. Problema este că nu există încă voce rusească. Chiar nu avem o sinteză a discursului rusesc?
Nu exact. Iată două linkuri:
Voice Technology Club din cadrul Universității de Stat din Moscova. Moscova Lomonosov Universitatea de Stat din Moscova.
Firma "Sacrament", Minsk.
Din păcate, așa cum înțeleg, acestea sunt proiecte comerciale concentrate pe Windows. Mă bucur să fac o greșeală. (Compania Sakrament oferă deja Sakrament Text-to-Speech SDK versiunea Linux versiunea 1.0 (versiunea rusă)).

Dar nu totul este atât de trist. Există entuziaști printre programatorii interni. Despre sistemul de sinteză a discursului rusesc pentru Linux, dezvoltat de Igor Porețki și Dmitri Paduchikh, puteți citi aici.

Puteți să vă creați o voce nouă?

Așa cum am menționat deja, în special pentru crearea unei voci noi, există un întreg complex de instrumente software - FestVox. Desigur, trebuie să o înțelegi. Desigur, toată documentația este în limba engleză. Desigur, va exista multă muncă manuală, deoarece nu toate etapele sunt automatizate. Firește, va trebui să ne dăm seama cum să conectăm această voce la sintetizator și cum să oferim suport pentru alfabetul chirilic. Dar în toate acestea nu există nimic imposibil.

Are sens să faci asta? Fără îndoială. O astfel de lucrare are toate șansele de a intra în distribuțiile Linux, cel puțin în cele naționale. Prezența tehnologiilor vocale într-o anumită distribuție îi va oferi avantaje tangibile în fața altora. La urma urmei, integrarea cu Open Office, Mozila și alte aplicații deschid posibilități complet noi pentru utilizator. Cel care înainte de ceilalți va arăta calea către toate aceste minuni nu va fi uitat.

Un pic despre crearea unei voci noi. Asta este ceea ce dezvoltatorii de la festival și de la MBROLA dau sfaturi.

Munca pentru a crea o voce nouă necesită timp, perseverență și exactitate (ceea ce nu este necesar?). Există câteva caracteristici pe care trebuie să le cunoașteți.

Mai mult - în conformitate cu instrucțiunile din documentația pentru proiectele Festivalului și FestVox. Ca rezultat, trebuie să se obțină o bază de difomoni și se formează reguli pentru sinteza cuvintelor și a propozițiilor. Apoi, o voce nouă este conectată la sintetizatorul de vorbire.

concluzie

Articole similare