Parimad kõnesüntesaatorid Internetis.

Kas ihkad infot, aga su aju on selle visuaalsest tajumisest väsinud? Tööpäeva lõpuks pole teil enam keskendumisvõimet? Või äkki olete lihtsalt lugemiseks liiga laisk?

Enne laiskuse endas välja juurimist, ei teeks paha sellega ka sõbruneda. Tegelikult on see ustav ja tark sõber, kes suudab paari ajuimpulsiga koostöös õpetada paljusid peensusi elus, kus saate mööda minna mitte ainult suured mäed, aga isegi väikesed künkad. Kuidas elada ilma stressita? Laiskus teab sellele küsimusele vastust iga konkreetse olukorra jaoks.

Näiteks selleks, et inimene ei pingutaks ega kaitseks oma nägemist, on leiutatud häälsünteesimootorid – tehisintellekt, mis suudab teksti muuta häälkõneks ja vastupidi – kõne tekstiks.

Retsept mis tahes trükitud teabe kõrvaga tajumiseks on lihtne: installige oma arvutisse mis tahes häälega teksti lugemiseks mõeldud programm, nagu Govorilka või Balabolka, täiendage seda venekeelse häälemootoriga, millel on kõlarid nagu Alena, Nikolai, Olga või Katerina. , kopeeri tekst programmi ja hakka mängima kunstlikku kõnet. Kuid isegi seda retsepti saab lihtsustada. Saate mõne hiireklõpsuga kuulata Interneti-saitidel olevaid väljaandeid, installides oma brauserisse spetsiaalse laienduse, mis on loodud teksti kõneks teisendamiseks.

Chrome'i laiendus SpeakIt!: brauseris olev kõnesüntesaator neile, kes on lugemiseks liiga laisad

Laiendus Chromiumipõhistele brauseritele SpeakIt! oskab lugeda teksti enam kui 50 keeles, sealhulgas vene keeles. Venekeelsed kõnemootorid on sellesse juba installitud, seega pole üksikute tarkvarakomponentide installimiseks vaja täiendavaid samme. Kõik, mida pead tegema, paariminutilise laiskuse ületamiseks, on poest installida Google Chrome laiendus SpeakIt!. See tuleb täiesti tasuta.

Pärast SpeakIt! on brauseri tööriistaribale sisse ehitatud kõlariikooni kujul oleva nupuga. Hiire vasakut nuppu klõpsates avaneb laienduse miniliides, millel on nupp kõne taasesituse alustamiseks ja stopp-nupp.

Paremklõpsake SpeakIt! avab kontekstimenüü, kus peame valima käsu "Valikud".

Siin saame laienduse seadetes ripploenditest määrata venekeelse diktoriga eelinstallitud häälemootori, saame valida naise või mehe hääl. Kõne taasesituse taset ja kiirust saame reguleerida ka vastavate valikute liugureid lohistades.

Venekeelse diktori valik mees- või naishäälel saadaval ainult iSpeechi häälmootori jaoks. Speakit mootor! oskab lugeda ainult naishäälega. Ning algset mootorit saavad ohutult kasutada need, kes on Nikolay Digalo sametise häälega harjunud. Sisestage väljale "Test" mis tahes fraas ja testige mitut häälemootorit ja kõlarit. See aitab igaühel valida enda jaoks optimaalse kõne taasesituse. Kui veebiväljaanne on ingliskeelne, siis testime ingliskeelseid häälmootoreid.

Noh, oleme otsustanud laienduse seaded, nüüd jätkame otse Interneti-väljaannete kunstliku häälega reprodutseerimise protsessi. Valige teid huvitava väljaande veebilehel tekst, mida soovite reprodutseerida, seejärel helistage kontekstimenüüsse ja klõpsake nuppu SpeakIt! või klõpsake brauseri paneelil selle laienduse nuppu.

Täna tahame rääkida huvitavast stsenaariumist, mis võib e-kaubanduse valdkonnas kindlasti kasulikuks osutuda. See on umbes klienditeeninduse automatiseerimise kohta, nimelt:

  1. Klient helistab veebipoodi ja palub sisestada tellimuse number;
  2. Abonendi poolt DTMF-i kaudu sisestatud väärtused kantakse üle AGI-skripti;
  3. Tellimuse numbri abil genereerime andmebaasi SQL päringu, kuhu salvestame tellimuste kohta info. Vastavast tabelist saame tellimuse staatuse ja kliendi nime;
  4. Loome stringi, mis tuleb kliendiga rääkida, ja saadame selle heli genereerimiseks Yandex.SpeechKit API (TTS-tehnoloogia – tekst kõneks) suunas;
  5. Saame Yandexilt helifaili, dekodeerime selle meile vajalikus vormingus (.wav, 8k) ja esitame kliendile tagasi;
  6. Kustutame reprodutseeritud faili ja lõpetame kliendi kõne;

Meie arvates on see huvitav automatiseerimine. Alustame seadistamist? :)

API hankimine – Yandex.SpeechKiti tunnus

Tehnoloogiaga tutvumiseks pakub Yandex 1-kuulist tasuta prooviperioodi alates esimese päringu saatmisest. Pärast seda jätkake Yandexi kasutamist. SpeechKit Cloud peab allkirjastama lepingu. Kasutustingimuste üksikasju saab lugeda.

Kõigepealt minge arendaja kontole, kasutades linki https://developer.tech.yandex.ru ja klõpsake nuppu Võtke võti:

  • Võtme nimi- sisestage võtme nimi. Näiteks, Tärn + TTS;
  • Ühendus- valige loendist SpeechKiti pilv;

Me mäletame väärtust, mis on ülaloleval ekraanipildil punasega esile tõstetud – see on teie tunnus. Liigume edasi AGI skripti seadistamise juurde.

Looge tellimustega tabel

Koostame SQL tabeli, kuhu salvestame tellimuse andmed. IN labori eesmärkidel, juurutame selle samasse hosti, kus on IP-PBX tärn (+ see vähendab viivitust ja töötlemisaega). Niisiis, sisestage serverikonsooli järgmised käsud (ühendage kõigepealt SSH kaudu):

Kasutage tärni cdrdb; CREATE TABLE zakazy(nimi varchar(20),phone varchar(20),nomerzakaza varchar(20),olek varchar(20)); INSERT INTO zakazy (nimi, telefon, nomerzakaza, olek) VÄÄRTUSED ("Aleksander", "79257777777", 300388, "Saadetud"); INSERT INTO zakazy (nimi, telefon, nomerzakaza, olek) VÄÄRTUSED ("Ivan", "79251111111", 476656, "Tasuline"); INSERT INTO zakazy (nimi, telefon, nomerzakaza, olek) VÄÄRTUSED ("Sergey", "79252222222", 0089822, "Tarnitud");

Koostasime ja täitsime tabeli. Nüüd peate looma kasutaja, kellel on SELECT juurdepääs tabelile:

LOO KASUTAJA "mysql_login"@"localhost", TUNNISTAB "mysql_password"; ANNA VALIK Asteriskcdrdb.zakazy KOHE "mysql_login";

Pidage meeles oma kasutajanimi ja parool ning jätkake järgmise sammuga - AGI skripti kohandamine. Traditsiooniliselt on koodi kommentaarid pärast topeltkaldkriipsu // :

AGI - skript

Allpool on skripti struktuur:

#!/usr/bin/php -q get_data("kohandatud/genereeri", 6000, 10); //accept DTMF kliendilt; $arv= $tulemus["tulemus"]; //kliendi poolt sisestatud tellimuse numbri registreerimine muutujasse; $hostname = "localhost"; // meil on localhost. Teil võib olla selle serveri IP-aadress, kuhu tellimustega andmebaas on salvestatud (eelkonfigureerige kaughostis pg_hba.conf); $kasutajanimi = "mysql_login"; // varem loodud sisselogimine; $password = "mysql_password"; // varem loodud parool; $dbName = "tärncdrdb"; mysql_connect($hostinimi,$kasutajanimi,$parool) OR DIE("Ei saa ühendust luua "); mysql_select_db($dbName) või die(mysql_error()); $query = "SELECT * FROM zakazy WHERE `nomerzakaza`="$number";"; // andmete ühendamine ja sõelumine tellimuse numbri järgi; $res=mysql_query($query) või die(mysql_error()); while ($rida = mysql_fetch_assoc($res)) ( $status = $rida["staatus"]; $nimi = $rida["nimi"]; // kirjutada muutujatesse SQL-ist saadud nimi ja olek; ); $str = "Kallis ".$name."! Teie tellimuse olek on ".$status." Täname ühendust võtmast, kõike head!"; // moodustavad sünteesimist vajava stringi; $qs = http_build_query(array("format" => "wav","lang" => "ru-RU","speaker" => "jane","key" => "teie_märk","emotsioon" => "hea", "tekst" => $str)); //kirjeldage muutujaid, mis saadetakse Yandexi API-le. Saate kohandada failivormingut, lokaadi, kõlarit (mees- või naishääled) ja emotsionaalset värvi. Asendage "your_token" Yandexi API-lt saadud võtmega. SpeechKiti pilv; $ctx = stream_context_create(array("http"=>massiiv("method"=>"GET","header"=>"Viite: \r\n"))); $helifail = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx); $fail = fopen("fail1.wav", "w"); fwrite($fail, $helifail); fclose($fail); // hankige helifail (salvestage see nimega file1.wav); shell_exec("sox -t raw -r 48k -e märgiga täisarv -b 16 -c 1 fail1.wav -t wav -r 8k -c 1 /var/lib/asterisk/sounds/ru/custom/output1.wav" ); // teisendada heli Asteriski jaoks vajalikku helivormingusse ja kopeerida see kataloogi /var/lib/asterisk/sounds/ru/custom/; shell_exec("chown asterisk: asterisk /var/lib/asterisk/sounds/ru/custom/output1.wav"); shell_exec("chmod 775 /var/lib/asterisk/sounds/ru/custom/output1.wav"); // anna failile vajalikud õigused; $agi->exec("Taasesitus","kohandatud/väljund1"); // saadab AGI-le käsu vastuvõetud helifaili esitamiseks; shell_exec("rm -f /var/lib/asterisk/sounds/ru/custom/output1.wav"); shell_exec("rm -f fail1.wav"); // kustuta mõlemad failid; ? > Laadige alla AGI skript

Pärast faili allalaadimist salvestage see laiendiga .php

Salvestage skript nimega tts.php kataloogi /var/lib/asterisk/agi-bin ja andke serverikonsoolile järgmised käsud:

Dos2unix /var/lib/asterisk/agi-bin/tts.php

Kohandame funktsionaalsuse vastavalt tootmisele

Niisiis, kõigepealt avage redigeerimiseks fail /etc/asterisk/extensions_custom.conf ja lisage sellele järgmine kirje:

Laiend => s,1,Vastus() laiend => s,2,AGI(tts.php)

Väga hea. Helistame FreePBX-ist kohandatud konteksti. Selleks kasutame moodulit. Liigume mööda rada AdminKohandatud sihtkohad ja vajutage Lisa sihtkoht:


Klõpsake Esita Ja Rakenda konfiguratsioon. Soovime, et klient saaks oma tellimuse oleku IVR peamenüüst teada saada, vajutades 4. Minge peamise IVR-i ja jaotiste juurde IVR-i kanded lisage järgmine:

Valmis. Kui midagi ei õnnestu, kirjuta meile kommentaaridesse, proovime aidata :)

Kas see artikkel oli teile kasulik?

Palun ütle mulle miks?

Meil on kahju, et artikkel ei olnud teile kasulik: (Palun, kui see pole keeruline, märkige, miks? Oleme üksikasjaliku vastuse eest väga tänulikud. Täname, et aitasite meil paremaks saada!

Veel ühel 2013. aasta konverentsil tutvustasime oma uus raamatukogu Yandex SpeechKit. See on kõnetuvastuse avalik API, mida saavad kasutada Androidi ja iOS-i arendajad. Saate alla laadida SpeechKiti ja lugeda ka dokumentatsiooni.

Yandex SpeechKit võimaldab teil otse juurde pääseda Yandexi mobiilirakendustes edukalt kasutatavale taustaprogrammile. Oleme seda süsteemi arendanud üsna pikka aega ja nüüd tunneme õigesti ära 94% sõnadest Navigatoris ja Mobile Mapsis ning 84% sõnadest mobiilibrauseris. Sel juhul võtab äratundmine aega veidi rohkem kui sekundi. See on juba väga korralik kvaliteet ja me töötame selle nimel aktiivselt.

Võib väita, et lähitulevikus ei erine häälliidesed töökindluselt praktiliselt klassikalistest sisestusmeetoditest. Üksikasjalik lugu selle kohta, kuidas meil õnnestus selliseid tulemusi saavutada ja kuidas meie süsteem töötab.

Kõnetuvastus on üks huvitavamaid ja keerulised ülesanded tehisintellekt. Siin on saavutused väga suured erinevaid valdkondi: alates arvutuslingvistika enne digitaalne töötlemine signaale. Et mõista, kuidas kõnet mõistv masin peaks olema üles ehitatud, mõistkem esmalt, millega meil tegemist on.

I. Põhitõed
Meie jaoks on suuline kõne ennekõike digitaalne signaal. Ja kui me vaatame selle signaali salvestust, ei näe me ei sõnu ega selgelt hääldatud foneemid- erinevad “kõnesündmused” voolavad sujuvalt üksteise sisse ilma selgeid piire moodustamata. Räägitakse sama fraasi erinevad inimesed või erinevates keskkondades, näeb signaali tase erinev. Samas tunnevad inimesed üksteise kõne kuidagi ära: seetõttu on olemas invariandid, mille järgi saab signaali põhjal rekonstrueerida, mida tegelikult räägiti. Selliste invariantide leidmine on akustilise modelleerimise ülesanne.

Oletame, et inimkõne koosneb foneemidest (see on jäme lihtsustus, kuid esmalt on see õige). Defineerigem foneemi keele minimaalse tähendusliku ühikuna ehk häälikuna, mille asendamine võib kaasa tuua sõna või fraasi tähenduse muutumise. Võtame väikese osa signaalist, näiteks 25 millisekundit. Nimetagem seda jaotist "raamiks". Millist foneemi selles kaadris räägiti? Sellele küsimusele on raske üheselt vastata - paljud foneemid on üksteisega äärmiselt sarnased. Kui aga ühemõttelist vastust anda pole võimalik, siis võib arutleda “tõenäosuste” järgi: antud signaali puhul on mõned foneemid tõenäolisemad, teised vähem tõenäolised ja teised võib üldse vaatlusest välja jätta. Tegelikult on akustiline mudel funktsioon, mis võtab sisendiks väikese osa akustilisest signaalist (kaadrist) ja loob sellel kaadris erinevate foneemide tõenäosusjaotuse. Seega võimaldab akustiline mudel öeldu heli abil rekonstrueerida – erineva kindlustundega.

Teine oluline aspekt akustika – erinevate foneemide vahelise ülemineku tõenäosus. Kogemusest teame, et mõnda foneemi kombinatsiooni on lihtne hääldada ja need esinevad sageli, samas kui teisi on raskem hääldada ja neid kasutatakse praktikas harvemini. Saame selle teabe kokku võtta ja seda konkreetse foneemide jada "usutatavuse" hindamisel arvesse võtta.

Nüüd on meil kõik tööriistad ühe peamise "tööhobuse" kujundamiseks automaatne äratundmine kõne - varjatud Markovi mudel (HMM, Varjatud Markovi mudel). Selleks kujutame hetkeks ette, et me ei lahenda mitte kõnetuvastuse probleemi, vaid täpselt vastupidist - teksti kõneks teisendamist. Oletame, et tahame saada sõna "Yandex" hääldust. Koosneb sõna "Yandex" foneemide komplektist, öelge, [th][a][n][d][e][k][s]. Ehitame sõna "Yandex" jaoks lõpliku olekumasina, milles iga foneem on esindatud eraldi olekuga. Igal ajahetkel oleme ühes neist seisunditest ja "hääldame" sellele foneemile iseloomulikku heli (teame tänu akustilisele mudelile, kuidas iga foneem hääldatakse). Kuid mõned foneemid kestavad kaua (nagu [a] sõnas "Yandex"), teised on praktiliselt alla neelatud. Siin tuleb kasuks teave foneemidevahelise ülemineku tõenäosuse kohta. Olles tekitanud vastava heli praegune olek, me nõustume tõenäosuslik lahendus: kas me peaksime jääma samasse olekusse või liikuma edasi järgmise (ja vastavalt ka järgmise foneemi) juurde.

Formaalsemalt võib esindada HMM-i järgmisel viisil. Esiteks tutvustame heitkoguste mõistet. Nagu eelmisest näitest mäletame, "genereerib" iga HMM-i olek sellele konkreetsele olekule iseloomuliku heli (st foneemi). Iga kaadri juures "mängitakse" heli välja antud foneemile vastavast tõenäosusjaotusest. Teiseks on olekutevahelised üleminekud võimalikud, sõltudes ka etteantud tõenäosusmustritest. Näiteks foneemi [a] “venimise” tõenäosus on suur, mida ei saa öelda foneemi [d] kohta. Emissioonimaatriks ja üleminekumaatriks määratlevad unikaalselt varjatud Markovi mudeli.

Olgu, oleme uurinud, kuidas varjatud Markovi mudelit saab kõne genereerimiseks kasutada, kuid kuidas saab seda rakendada kõnetuvastuse pöördprobleemi puhul? Appi tuleb Viterbi algoritm. Meil on vaadeldavate suuruste kogum (tegelikult heli) ja tõenäosusmudel, mis korreleerib peidetud olekuid (foneemid) ja vaadeldavaid suurusi. Viterbi algoritm võimaldab taastada kõige tõenäolisema peidetud olekute jada.

Olgu meie äratundmissõnaraamatus ainult kaks sõna: "Jah" ([d][a]) ja "Ei" ([n"][e][t]). Seega on meil kaks peidetud Markovi mudelit. Järgmiseks, Laske meil salvestada kasutaja hääl, mis ütleb "jah" või "ei". Viterbi algoritm võimaldab meil vastata küsimusele, milline äratundmise hüpotees on tõenäolisem.

Nüüd taandub meie ülesandeks varjatud Markovi mudeli kõige tõenäolisema olekute jada taastamine, mis “genereeris” (täpsemalt oleks võinud genereerida) meile esitatud helisalvestise. Kui kasutaja ütleb "jah", siis võib vastav olekute jada üle 10 kaadri olla näiteks [d][d][d][d][a][a][a][a][a] [a] või [d][a][a][a][a][a][a][a][a][a]. Samamoodi on see võimalik erinevaid valikuid"ei" hääldus – näiteks [n"][n"][n"][e][e][e][e][t][t][t] ja [n"][n" ] [e][e][e][e][e][e][t][t]. Nüüd leiame “parima”, st kõige tõenäolisema viisi iga sõna hääldamiseks. kaadris küsime oma akustiliselt mudelilt, kui tõenäoline on, et siin kõlab konkreetne foneem (näiteks [d] ja [a]), lisaks võtame arvesse üleminekute tõenäosusi ([d]->[ d], [d]->[a], [a ]->[a]). Nii saame kõige tõenäolisema viisi iga hüpoteesisõna hääldamiseks, pealegi saame igaühe jaoks mõõdu. kui tõenäoline on, et see konkreetne sõna hääldati (seda mõõdet võib pidada lühima tee pikkuseks läbi vastava graafiku). Tunnustulemusena tagastatakse „võidu“ (st tõenäolisem) hüpotees.

Viterbi algoritmi on üsna lihtne rakendada (kasutatakse dünaamilist programmeerimist) ja see töötab ajas, mis on võrdeline HMM olekute arvu ja kaadrite arvu korrutisega. Siiski ei piisa alati kõige tõenäolisema tee teadmisest; Näiteks akustilise mudeli treenimisel peate hindama iga oleku tõenäosust igas kaadris. Sel eesmärgil kasutatakse edasi-tagasi algoritmi.

Akustiline mudel on aga vaid üks süsteemi komponent. Mida teha, kui äratundmissõnastik ei koosne kahest sõnast, nagu eespool käsitletud näites, vaid sadadest tuhandetest või isegi miljonitest? Paljud neist on häälduse poolest väga sarnased või isegi samad. Samal ajal väheneb konteksti olemasolul akustika roll: segased, lärmakad või mitmetähenduslikud sõnad saab "tähenduslikult" taastada. Konteksti arvesse võtmiseks kasutatakse neid jällegi tõenäosuslikud mudelid. Näiteks saab vene keelt emakeelena kõnelev inimene aru, et lause "ema pesi raami" loomulikkus (meie puhul tõenäosus) on suurem kui "ema pesi tsüklotroni" või "ema pesi raami". See tähendab, et fikseeritud konteksti "seebi ema..." olemasolu määrab tõenäosusjaotuse järgmine sõna, mis kajastab nii semantikat kui ka morfoloogiat. Seda tüüpi keelemudeleid nimetatakse n-grammi keelemudeliteks (eespool käsitletud näites trigrammid); Muidugi on keele modelleerimiseks palju keerulisemaid ja võimsamaid viise.

II. Mis on Yandex ASR-i kapoti all?
Nüüd, kui me kujutame ette üldine seade kõnetuvastussüsteemid, kirjeldame üksikasjalikumalt Yandexi tehnoloogia üksikasju - meie andmetel parim vene kõnetuvastussüsteem.
Ülaltoodud mänguasjanäiteid vaagides oleme teadlikult teinud mitmeid lihtsustusi ja jätnud välja mitmed olulised üksikasjad. Eelkõige väitsime, et kõne põhiline "ehitusüksus" on foneem. Tegelikult on foneem liiga suur ühik; Ühe foneemi häälduse adekvaatseks modelleerimiseks kasutatakse kolme erinevat olekut – foneemi algust, keskpaika ja lõppu. Üheskoos moodustavad nad sama HMM-i, nagu eespool näidatud. Lisaks on foneemid positsioonist ja kontekstist sõltuvad: formaalselt kõlab “sama” foneem oluliselt erinevalt sõltuvalt sellest, millises sõna osas see asub ja milliste foneemidega see külgneb. Samal ajal lihtne loetelu kõigist võimalikud variandid kontekstitundlikud foneemid tulevad väga tagasi suur number kombinatsioonid, millest paljud ei esine kunagi päriselus; et muuta akustiliste sündmuste arv mõistlikuks, ühendatakse lähedased kontekstitundlikud foneemid varajased staadiumid koolitust ja käsitletakse koos.
Seega muutsime esiteks foneemid kontekstitundlikuks ja teiseks jagasime need kõik kolmeks osaks. Need objektid - "foneemi osad" - moodustavad nüüd meie foneetiline tähestik. Neid nimetatakse ka Senone'ideks. Iga meie HMM-i olek on senon. Meie mudel kasutab 48 foneemi ja umbes 4000 senooni.

Niisiis, meie akustiline mudel võtab endiselt sisendiks heli ja väljundis annab see tõenäosusjaotuse senoonide vahel. Nüüd vaatame, mis täpselt sisendisse tarnitakse. Nagu me ütlesime, lõigatakse heli 25 ms osadeks ("kaadriteks"). Tavaliselt on lõikamisetapp 10 ms, nii et külgnevad kaadrid osaliselt kattuvad. On selge, et "toores" heli - võnkumiste amplituud ajas - ei ole akustilise signaali esitamise kõige informatiivsem vorm. Selle signaali spekter on palju parem. Praktikas kasutatakse tavaliselt logaritmilist ja skaleeritud spektrit, mis vastab inimese seadustele kuuldav taju(Mel-transformatsioon). Saadud väärtused allutatakse diskreetsele koosinusteisendusele (DCT) ja tulemuseks on MFCC - Mel Frequency Cepstral Coefficients. (Sõna Cepstral saadakse spektris Spectral tähtede ümberpaigutamisel, mis peegeldab täiendava DCT olemasolu). MFCC on 13 (tavaliselt) reaalarvu vektor. Neid saab kasutada akustilise mudeli sisendina selle töötlemata kujul, kuid sageli tehakse neid palju täiendavaid teisendusi.

Akustilise mudeli väljaõpe on keeruline ja mitmeastmeline protsess. Treenimiseks kasutatakse ootuste maksimeerimise perekonna algoritme, näiteks Baum-Welshi algoritmi. Seda tüüpi algoritmide olemus seisneb kahe etapi vaheldumises: Ootusetapil kasutatakse tõenäosusfunktsiooni ootuse arvutamiseks olemasolevat mudelit, maksimeerimise etapis muudetakse mudeli parameetreid selliselt, et maksimeerida. see hinnang. Koolituse varases staadiumis kasutatakse lihtsaid akustilisi mudeleid: sisendiks antakse lihtsad MFCC tunnused, foneemid arvestatakse ilma kontekstist sõltumata ning Gaussi diagonaalmaatriksite segu (Diagonal GMMs – Gaussian Mixture Models) modelleerimiseks. heite tõenäosus HMM-is. Iga eelmise akustilise mudeli tulemused on lähtepunktiks, et rohkem treenida keeruline mudel, keerukama sisendi, väljundi või emissiooni tõenäosusjaotuse funktsiooniga. Akustilise mudeli täiustamiseks on palju võimalusi, kuid kõige olulisem mõju on üleminek GMM-mudelilt DNN-ile (Deep Neural Network), mis peaaegu kahekordistab tuvastuskvaliteedi. Närvivõrgud on vabad paljudest Gaussi segude piirangutest ja neil on parem üldistusvõime. Lisaks on närvivõrkudel põhinevad akustilised mudelid mürakindlamad ja parema jõudlusega.

Akustilise modelleerimise närvivõrku treenitakse mitmes etapis. Närvivõrgu lähtestamiseks kasutatakse RBM-i (Restricted Boltzmann Machines) virna. RBM on stohhastiline närvivõrk, mis treenib ilma õpetajata. Kuigi õpitud kaalusid ei saa otseselt kasutada akustiliste sündmuste klasside eristamiseks, kajastavad need kõne struktuuri üksikasjalikult. Võite mõelda RBM-ile kui funktsioonide eraldajale – saadud generatiivne mudel osutub suurepäraseks lähtepunktiks diskrimineeriva mudeli loomiseks. Diskrimineerivat mudelit treenitakse klassikalise tagasilevimise algoritmi abil, mis rakendab mitmeid tehnikaid, parandades konvergentsi ja vältides ülepaigutamist. Selle tulemusena on närvivõrgu sisendiks mitu MFCC-funktsioonidega kaadrit (keskne kaader kuulub klassifikatsioonile, ülejäänud moodustavad konteksti), väljundiks on umbes 4000 erinevatele senonitele vastavat neuronit. Seda närvivõrku kasutatakse tootmissüsteemis akustilise mudelina.

Vaatame dekodeerimisprotsessi lähemalt. Tunnustamisülesande jaoks spontaanne kõne Koos suur sõnastik Esimeses osas kirjeldatud lähenemisviis ei ole kohaldatav. Teil on vaja andmestruktuuri, mis ühendab kõik omavahel võimalikud ettepanekud mida süsteem suudab ära tunda. Sobiv struktuur on kaalutud lõpliku oleku muundur (WFST) – sisuliselt lihtsalt lõplik olekuga masin, mille servadel on väljundlint ja raskused. Selle masina sisendis on senonid, väljundis on sõnad. Dekodeerimisprotsess taandub valiku tegemisele parim viis selles masinas ja esitage sellele teele vastav sõnade väljundjada. Sellisel juhul koosneb iga kaare läbimise hind kahest komponendist. Esimene komponent on ette teada ja arvutatakse masina kokkupanemise etapis. See sisaldab häälduse, antud olekusse ülemineku ja keelemudeli tõenäosuse hindamist. Teine komponent arvutatakse konkreetse kaadri jaoks eraldi: see on kõnealuse kaare sisendsümbolile vastava senoni akustiline kaal. Dekodeerimine toimub reaalajas, nii et kõike ei uurita võimalikud viisid: eriheuristika piirab hüpoteeside komplekti kõige tõenäolisematega.

Loomulikult on tehnilisest aspektist kõige huvitavam sellise automaadi ehitus. See probleem lahendatakse võrguühenduseta. Et liikuda iga kontekstitundliku foneemi lihtsate HMM-ide juurest iga sõna lineaarsete automaatide juurde, peame kasutama hääldussõnastikku. Sellise sõnastiku käsitsi loomine on võimatu ja siin kasutatakse meetodeid masinõpe(ja ülesanne ise on teadusringkond nimega Grapheme-To-Phoneme või G2P). Sõnad omakorda “liidetakse” omavahel keelemudeliks, mis esitatakse ka vormis lõpliku oleku masin. Keskne toiming on siin WFST koosseis, kuid see on ka oluline erinevaid meetodeid WFST optimeerimine suuruse ja ladustamise tõhususe jaoks.

Dekodeerimisprotsessi tulemuseks on hüpoteeside loend, mida saab edasi töödelda. Näiteks saate kõige tõenäolisemate hüpoteeside ümberpaigutamiseks kasutada võimsamat keelemudelit. Saadud loend tagastatakse kasutajale, sorteerituna usaldusväärtuse järgi – selle astme järgi, mil määral oleme kindlad, et tuvastamine viidi läbi õigesti. Tihti jääb alles vaid üks hüpotees, mille puhul hakkab klientrakendus koheselt häälkäsklust täitma.

Kokkuvõtteks puudutagem kõnetuvastussüsteemide kvaliteedimõõdikute küsimust. Kõige populaarsem mõõdik on sõna veamäär (ja selle pöördväärtus, sõna täpsus). Põhimõtteliselt peegeldab see valesti tuvastatud sõnade osakaalu. Kõnetuvastussüsteemi sõna veamäära arvutamiseks kasutatakse kõnetuvastust kasutades käsitsi märgistatud häälpäringute korpuseid, mis vastavad rakenduse teemale.

SpeechKit Cloud on programm, mis annab arendajatele juurdepääsu Yandexi kõnetuvastus- ja sünteesitehnoloogiatele. Integreerimine toimub Yandexi TTS-mooduli abil, mis on saadaval MajorDoMo süsteemi lisandmoodulite turu kaudu.

Paigaldus- ja konfigureerimisprotseduur on väga lihtne ja viiakse läbi mitme sammuna.

1. Minge juhtpaneelile

2. Minge lisandmoodulite turule

3. Minge jaotisesse "Interaktsioon".

4. Lisage MajorDomo süsteemi moodul - Juhtpaneel - Lisandmoodulite turg - Interaktsioon - Yandex TTS - Lisa:

5. Süsteem teavitab meid edukast installimisest ja suunab lehele „Lisandmooduliturg”:

6. Mooduli edasiseks konfigureerimiseks vajate Yandexi api võtit, mille saate arendaja kontolt tasuta hankida, kasutades olemasolevat konto Yandex:

7. Määrake loodavale võtmele nimi ja klõpsake SpeechKit Cloud:

8. Täitke nõutud väljad andmetega ja klõpsake nuppu "Esita":

9. Kui kõik oli õigesti tehtud, ilmub parempoolsesse loendisse genereeritud API võti, mis tuleb lõikelauale kopeerida:

10. Avage Yantex TTS mooduli sätted (MajorDoMo - Juhtpaneel - Rakendused - Yandex TTS), kleepige API-võtme väljale eelmises etapis kopeeritud võti, valige hääl, meeleolu ja veenduge ka, et moodul on aktiveeritud:

11. Seadistamine on lõpetatud!

Tähelepanu! Test Yandex Api Key genereeritakse 1 kuuks, pärast mida süsteem lõpetab uute (vahemällu salvestamata) fraaside hääldamise. Püsivõtme saamiseks peate saatma Yandexile kirja palvega võti püsivõtmesse üle kanda.

kõnetuvastustehnoloogia

Yandex Speechkit Autopoet.

Teksti ettevalmistamine

Hääldus ja intonatsioon

lehel või spetsiaalsel veebisaidil

Tõenäoliselt on paljudel teist olnud võimalus oma hääle abil arvutit või nutitelefoni juhtida. Kui ütlete Navigaatorile "Lähme Gogoli, 25" või ütlete Yandexi rakenduses otsingupäring, kõnetuvastustehnoloogia teisendab teie hääle tekstikäskluseks. Kuid on ka pöördprobleem: muutke arvuti käsutuses olev tekst hääleks.

Yandex kasutab kõnesünteesi tehnoloogiat Yandex Speechkiti kompleksist kuni häältekstideni. Näiteks võimaldab see teada saada, kuidas hääldada võõrsõnad ja fraasid tõlkijas. Tänu kõnesünteesile sai Autopoet ka oma hääle.

Teksti ettevalmistamine

Hääldus ja intonatsioon

Teisisõnu kasutatakse iga 25 millisekundi kõne sünteesimiseks palju andmeid. Teave vahetu keskkonna kohta tagab sujuva ülemineku kaadrist kaadrisse ja silbilt silpi ning loomiseks on vaja teavet fraasi ja lause kohta tervikuna. õige intonatsioon sünteesitud kõne.

Ettevalmistatud teksti lugemiseks kasutatakse akustilist mudelit. See erineb akustilisest mudelist, mida kasutatakse kõnetuvastuses. Mudelituvastuse puhul on vaja luua vastavus teatud tunnustega helide ja foneemide vahel. Sünteesi puhul peab akustiline mudel, vastupidi, kaadrite kirjeldustele tuginedes looma helide kirjeldusi.

Kuidas akustiline mudel teab, kuidas foneemi õigesti hääldada või õiget intonatsiooni anda? küsiv lause? Ta õpib tekstidest ja helifailidest. Näiteks saab sinna laadida audioraamatu ja vastava teksti. Mida rohkem andmeid mudel õpib, seda parem on selle hääldus ja intonatsioon.

Lisateavet Yandex SpeechKiti kompleksi tehnoloogiate kohta leiate sellelt lehelt või spetsiaalsest ressursist. Kui olete arendaja ja soovite testida pilve- või mobiiliversioon SpeechKit, Yandexi tehnoloogiatele pühendatud sait, aitab teid.

","contentType":"text/html","amp":"

Tõenäoliselt on paljudel teist olnud võimalus oma hääle abil arvutit või nutitelefoni juhtida. Kui ütlete Navigatorile "Lähme Gogoli, 25" või ütlete Yandexi rakenduses otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäsuks. Kuid on ka vastupidine ülesanne: muuta arvuti käsutuses olev tekst hääleks.

Kui hääldamist vajavate tekstide hulk on suhteliselt väike ja neis leidub samu väljendeid - nagu näiteks teadetes rongide väljumise ja jaama saabumise kohta -, piisab kõneleja kutsumisest ja lindistamisest. stuudio õiged sõnad ja fraasid ning seejärel koostage neist sõnum. Suvaliste tekstide puhul selline lähenemine aga ei tööta. Siin tuleb appi kõnesünteesi tehnoloogia.

Yandex kasutab kõnesünteesi tehnoloogiat Yandex Speechkiti kompleksist kuni häältekstideni. Näiteks võimaldab see teada saada, kuidas võõrkeelseid sõnu ja väljendeid tõlkijas hääldatakse. Tänu kõnesünteesile sai Autopoet ka oma hääle.

Teksti ettevalmistamine

Kõnesünteesi probleem lahendatakse mitmes etapis. Esiteks valmistab spetsiaalne algoritm teksti ette nii, et robotil oleks seda mugav lugeda: kirjutab kõik numbrid sõnadega ja laiendab lühendeid. Seejärel jagatakse tekst fraasideks, see tähendab pideva intonatsiooniga fraasideks - selleks keskendub arvuti kirjavahemärkidele ja stabiilsetele struktuuridele. See on koostatud kõigi sõnade jaoks foneetiline transkriptsioon.

Et mõista, kuidas sõna lugeda ja kuhu selles rõhk asetada, pöördub robot esmalt klassikaliste käsitsi koostatud sõnaraamatute poole, mis on süsteemi sisse ehitatud. Kui vajalikku sõna sõnastikus pole, koostab arvuti ise transkriptsiooni – reeglite alusel, mis on laenatud akadeemilised teatmeteosed. Lõpuks, kui normaalsed reeglid osutub ebapiisavaks - ja see juhtub, sest iga elav keel muutub pidevalt - ta kasutab statistilised reeglid. Kui sõna esines korpuses koolitustekstid, jätab süsteem meelde, millist silpi kõnelejad tavaliselt rõhutasid.

Hääldus ja intonatsioon

Kui transkriptsioon on valmis, arvutab arvuti välja, kui kaua iga foneem kõlab ehk mitu kaadrit see sisaldab – nii nimetatakse 25 millisekundi pikkusi fragmente. Seejärel kirjeldatakse iga kaadrit paljude parameetrite järgi: millise foneemi osa see on ja millise koha see selles hõivab; millisesse silpi see foneem kuulub? kui see on täishäälik, kas see on rõhutatud; millise koha see silbis hõivab; silp - sõnas; sõna - fraasis; millised kirjavahemärgid on selle fraasi ees ja järel; millise koha fraas lauses hõivab; lõpuks, milline märk on lause lõpus ja mis on selle põhiintonatsioon.

Teisisõnu kasutatakse iga 25 millisekundi kõne sünteesimiseks palju andmeid. Teave lähikeskkonna kohta tagab sujuva ülemineku kaadrist kaadrisse ja silbilt silpi ning sünteeskõne õige intonatsiooni loomiseks on vaja teavet fraasi ja lause kohta tervikuna.

Ettevalmistatud teksti lugemiseks kasutatakse akustilist mudelit. See erineb akustilisest mudelist, mida kasutatakse kõnetuvastuses. Mudelituvastuse puhul on vaja luua vastavus teatud tunnustega helide ja foneemide vahel. Sünteesi puhul peab akustiline mudel, vastupidi, kaadrite kirjeldustele tuginedes looma helide kirjeldusi.

Kuidas oskab akustiline mudel foneemi õigesti hääldada või küsilausele õiget intonatsiooni anda? Ta õpib tekstidest ja helifailidest. Näiteks saab sinna laadida audioraamatu ja vastava teksti. Mida rohkem andmeid mudel õpib, seda parem on selle hääldus ja intonatsioon.

Lõpetuseks häälest endast. Meie hääle teeb äratuntavaks ennekõike tämber, mis sõltub organite ehituslikest iseärasustest. kõneaparaat Iga inimene. Oma hääle tämbrit saab modelleerida ehk kirjeldada selle omadusi – selleks piisab stuudios väikese tekstikorpuse lugemisest. Pärast seda saab teie tämbri andmeid kasutada kõne sünteesimiseks mis tahes keeles, isegi keeles, mida te ei oska. Kui robot peab sulle midagi ütlema, kasutab ta generaatorit helilained- vokooder. See sisaldab teavet selle kohta sagedusomadused akustiliselt mudelilt saadud fraasid, samuti andmed tämbri kohta, mis annab häälele äratuntava värvi.

Lisateavet Yandex SpeechKiti kompleksi tehnoloogiate kohta leiate sellelt lehelt või spetsiaalsest ressursist. Kui olete arendaja ja soovite testida SpeechKiti pilve- või mobiiliversiooni, aitab teid Yandexi tehnoloogiatele pühendatud sait.

","instantArticle":"

Tõenäoliselt on paljudel teist olnud võimalus oma hääle abil arvutit või nutitelefoni juhtida. Kui ütlete Navigatorile "Lähme Gogoli, 25" või ütlete Yandexi rakenduses otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäsuks. Kuid on ka vastupidine ülesanne: muuta arvuti käsutuses olev tekst hääleks.

Kui hääldamist vajavate tekstide hulk on suhteliselt väike ja need sisaldavad samu väljendeid - nagu näiteks teadetes rongide väljumise ja jaama saabumise kohta -, piisab kõneleja kutsumisest, vajalike sõnade salvestamisest. ja fraase stuudios ning seejärel koguda neist sõnum. Suvaliste tekstide puhul selline lähenemine aga ei tööta. Siin tuleb appi kõnesünteesi tehnoloogia.

Yandex kasutab kõnesünteesi tehnoloogiat Yandex Speechkiti kompleksist kuni häältekstideni. Näiteks võimaldab see teada saada, kuidas võõrkeelseid sõnu ja väljendeid tõlkijas hääldatakse. Tänu kõnesünteesile sai Autopoet ka oma hääle.

Teksti ettevalmistamine

Kõnesünteesi probleem lahendatakse mitmes etapis. Esiteks valmistab spetsiaalne algoritm teksti ette nii, et robotil oleks seda mugav lugeda: kirjutab kõik numbrid sõnadega ja laiendab lühendeid. Seejärel jagatakse tekst fraasideks, see tähendab pideva intonatsiooniga fraasideks - selleks keskendub arvuti kirjavahemärkidele ja stabiilsetele struktuuridele. Kõigi sõnade jaoks koostatakse foneetiline transkriptsioon.

Et mõista, kuidas sõna lugeda ja kuhu selles rõhk asetada, pöördub robot esmalt klassikaliste käsitsi koostatud sõnaraamatute poole, mis on süsteemi sisse ehitatud. Kui vajalikku sõna sõnastikus pole, koostab arvuti akadeemilistest teatmeteostest laenatud reeglite alusel ise transkriptsiooni. Lõpuks, kui tavapärastest reeglitest ei piisa – ja see juhtub, sest iga elav keel muutub pidevalt –, kasutab ta statistilisi reegleid. Kui õppetekstide korpusest leiti sõna, jätab süsteem meelde, millist silpi kõnelejad selles tavaliselt rõhutasid.

Hääldus ja intonatsioon

Kui transkriptsioon on valmis, arvutab arvuti välja, kui kaua iga foneem kõlab ehk mitu kaadrit see sisaldab – nii nimetatakse 25 millisekundi pikkusi fragmente. Seejärel kirjeldatakse iga kaadrit paljude parameetrite järgi: millise foneemi osa see on ja millise koha see selles hõivab; millisesse silpi see foneem kuulub? kui see on täishäälik, kas see on rõhutatud; millise koha see silbis hõivab; silp - sõnas; sõna - fraasis; millised kirjavahemärgid on selle fraasi ees ja järel; millise koha fraas lauses hõivab; lõpuks, milline märk on lause lõpus ja mis on selle põhiintonatsioon.

Teisisõnu kasutatakse iga 25 millisekundi kõne sünteesimiseks palju andmeid. Teave lähikeskkonna kohta tagab sujuva ülemineku kaadrist kaadrisse ja silbilt silpi ning sünteeskõne õige intonatsiooni loomiseks on vaja teavet fraasi ja lause kohta tervikuna.

Ettevalmistatud teksti lugemiseks kasutatakse akustilist mudelit. See erineb akustilisest mudelist, mida kasutatakse kõnetuvastuses. Mudelituvastuse puhul on vaja luua vastavus teatud tunnustega helide ja foneemide vahel. Sünteesi puhul peab akustiline mudel, vastupidi, kaadrite kirjeldustele tuginedes looma helide kirjeldusi.

Kuidas oskab akustiline mudel foneemi õigesti hääldada või küsilausele õiget intonatsiooni anda? Ta õpib tekstidest ja helifailidest. Näiteks saab sinna laadida audioraamatu ja vastava teksti. Mida rohkem andmeid mudel õpib, seda parem on selle hääldus ja intonatsioon.

Lõpetuseks häälest endast. Meie hääle teeb äratuntavaks ennekõike tämber, mis sõltub iga inimese kõneaparaadi organite ehituslikest iseärasustest. Oma hääle tämbrit saab modelleerida ehk kirjeldada selle omadusi – selleks piisab stuudios väikese tekstikorpuse lugemisest. Pärast seda saab teie tämbri andmeid kasutada kõne sünteesimiseks mis tahes keeles, isegi keeles, mida te ei oska. Kui robot peab sulle midagi ütlema, kasutab ta helilainegeneraatorit – vokooderit. Sellesse laetakse akustiliselt mudelilt saadud informatsioon fraasi sageduskarakteristikute kohta, samuti andmed tämbri kohta, mis annab häälele äratuntava värvi.

Lisateavet Yandex SpeechKiti kompleksi tehnoloogiate kohta leiate sellelt lehelt või spetsiaalsest ressursist. Kui olete arendaja ja soovite testida SpeechKiti pilve- või mobiiliversiooni, aitab teid Yandexi tehnoloogiatele pühendatud sait.

"),,"proposedBody":("allikas":"

Tõenäoliselt on paljudel teist olnud võimalus oma hääle abil arvutit või nutitelefoni juhtida. Kui ütlete Navigatorile "Lähme Gogoli, 25" või ütlete Yandexi rakenduses otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäsuks. Kuid on ka vastupidine ülesanne: muuta arvuti käsutuses olev tekst hääleks.

Kui hääldamist vajavate tekstide hulk on suhteliselt väike ja need sisaldavad samu väljendeid - nagu näiteks teadetes rongide väljumise ja jaama saabumise kohta -, piisab kõneleja kutsumisest, vajalike sõnade salvestamisest. ja fraase stuudios ning seejärel koguda neist sõnum. Suvaliste tekstide puhul selline lähenemine aga ei tööta. Siin tuleb appi kõnesünteesi tehnoloogia.

Yandex kasutab kõnesünteesi tehnoloogiat Yandex Speechkiti kompleksist kuni häältekstideni. Näiteks võimaldab see teada saada, kuidas võõrkeelseid sõnu ja väljendeid tõlkijas hääldatakse. Tänu kõnesünteesile sai Autopoet ka oma hääle.

Teksti ettevalmistamine

Kõnesünteesi probleem lahendatakse mitmes etapis. Esiteks valmistab spetsiaalne algoritm teksti ette nii, et robotil oleks seda mugav lugeda: kirjutab kõik numbrid sõnadega ja laiendab lühendeid. Seejärel jagatakse tekst fraasideks, see tähendab pideva intonatsiooniga fraasideks - selleks keskendub arvuti kirjavahemärkidele ja stabiilsetele konstruktsioonidele. Kõigi sõnade jaoks koostatakse foneetiline transkriptsioon.

Et mõista, kuidas sõna lugeda ja kuhu selles rõhk asetada, pöördub robot esmalt klassikaliste käsitsi koostatud sõnaraamatute poole, mis on süsteemi sisse ehitatud. Kui vajalikku sõna sõnastikus pole, koostab arvuti akadeemilistest teatmeteostest laenatud reeglite alusel ise transkriptsiooni. Lõpuks, kui tavapärastest reeglitest ei piisa – ja see juhtub, sest iga elav keel muutub pidevalt –, kasutab ta statistilisi reegleid. Kui õppetekstide korpusest leiti sõna, jätab süsteem meelde, millist silpi kõnelejad selles tavaliselt rõhutasid.

Hääldus ja intonatsioon

Kui transkriptsioon on valmis, arvutab arvuti välja, kui kaua iga foneem kõlab ehk mitu kaadrit see sisaldab – nii nimetatakse 25 millisekundi pikkusi fragmente. Seejärel kirjeldatakse iga kaadrit paljude parameetrite järgi: millise foneemi osa see on ja millise koha see selles hõivab; millisesse silpi see foneem kuulub? kui see on täishäälik, kas see on rõhutatud; millise koha see silbis hõivab; silp - sõnas; sõna - fraasis; millised kirjavahemärgid on selle fraasi ees ja järel; millise koha fraas lauses hõivab; lõpuks, milline märk on lause lõpus ja mis on selle põhiintonatsioon.

Teisisõnu kasutatakse iga 25 millisekundi kõne sünteesimiseks palju andmeid. Teave lähikeskkonna kohta tagab sujuva ülemineku kaadrist kaadrisse ja silbilt silpi ning sünteeskõne õige intonatsiooni loomiseks on vaja teavet fraasi ja lause kohta tervikuna.

Ettevalmistatud teksti lugemiseks kasutatakse akustilist mudelit. See erineb akustilisest mudelist, mida kasutatakse kõnetuvastuses. Mudelituvastuse puhul on vaja luua vastavus teatud tunnustega helide ja foneemide vahel. Sünteesi puhul peab akustiline mudel, vastupidi, kaadrite kirjeldustele tuginedes looma helide kirjeldusi.

Kuidas oskab akustiline mudel foneemi õigesti hääldada või küsilausele õiget intonatsiooni anda? Ta õpib tekstidest ja helifailidest. Näiteks saab sinna laadida audioraamatu ja vastava teksti. Mida rohkem andmeid mudel õpib, seda parem on selle hääldus ja intonatsioon.

Lõpetuseks häälest endast. Meie hääle teeb äratuntavaks ennekõike tämber, mis sõltub iga inimese kõneaparaadi organite ehituslikest iseärasustest. Oma hääle tämbrit saab modelleerida ehk kirjeldada selle omadusi – selleks lugege stuudios läbi väike tekstikorpus. Pärast seda saab teie tämbri andmeid kasutada kõne sünteesimiseks mis tahes keeles, isegi keeles, mida te ei oska. Kui robot peab teile midagi ütlema, kasutab ta helilainegeneraatorit, mida nimetatakse vokooderiks. Sellesse laetakse akustiliselt mudelilt saadud informatsioon fraasi sageduskarakteristikute kohta, samuti andmed tämbri kohta, mis annab häälele äratuntava värvi.

Lisateavet Yandex SpeechKiti kompleksi tehnoloogiate kohta leiate sellelt lehelt või spetsiaalsest ressursist. Kui olete arendaja ja soovite testida SpeechKiti pilve- või mobiiliversiooni, aitab teid Yandexi tehnoloogiatele pühendatud sait.

Tõenäoliselt on paljudel teist olnud võimalus oma hääle abil arvutit või nutitelefoni juhtida. Kui ütlete Navigatorile "Lähme Gogoli, 25" või ütlete Yandexi rakenduses otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäsuks. Kuid on ka vastupidine ülesanne: muuta arvuti käsutuses olev tekst hääleks.

Kui hääldamist vajavate tekstide hulk on suhteliselt väike ja need sisaldavad samu väljendeid - nagu näiteks teadetes rongide väljumise ja jaama saabumise kohta -, piisab kõneleja kutsumisest, vajalike sõnade salvestamisest. ja fraase stuudios ning seejärel koguda neist sõnum. Suvaliste tekstide puhul selline lähenemine aga ei tööta. Siin tuleb appi kõnesünteesi tehnoloogia.

Yandex kasutab kõnesünteesi tehnoloogiat Yandex Speechkiti kompleksist kuni häältekstideni. Näiteks võimaldab see teada saada, kuidas võõrkeelseid sõnu ja väljendeid tõlkijas hääldatakse. Tänu kõnesünteesile sai Autopoet ka oma hääle.

Teksti ettevalmistamine

Kõnesünteesi probleem lahendatakse mitmes etapis. Esiteks valmistab spetsiaalne algoritm teksti ette nii, et robotil oleks seda mugav lugeda: kirjutab kõik numbrid sõnadega ja laiendab lühendeid. Seejärel jagatakse tekst fraasideks, see tähendab pideva intonatsiooniga fraasideks - selleks keskendub arvuti kirjavahemärkidele ja stabiilsetele struktuuridele. Kõigi sõnade jaoks koostatakse foneetiline transkriptsioon.

Et mõista, kuidas sõna lugeda ja kuhu selles rõhk asetada, pöördub robot esmalt klassikaliste käsitsi koostatud sõnaraamatute poole, mis on süsteemi sisse ehitatud. Kui vajalikku sõna sõnastikus pole, koostab arvuti akadeemilistest teatmeteostest laenatud reeglite alusel ise transkriptsiooni. Lõpuks, kui tavapärastest reeglitest ei piisa – ja see juhtub, sest iga elav keel muutub pidevalt –, kasutab ta statistilisi reegleid. Kui õppetekstide korpusest leiti sõna, jätab süsteem meelde, millist silpi kõnelejad selles tavaliselt rõhutasid.

Hääldus ja intonatsioon

Kui transkriptsioon on valmis, arvutab arvuti välja, kui kaua iga foneem kõlab ehk mitu kaadrit see sisaldab – nii nimetatakse 25 millisekundi pikkusi fragmente. Seejärel kirjeldatakse iga kaadrit paljude parameetrite järgi: millise foneemi osa see on ja millise koha see selles hõivab; millisesse silpi see foneem kuulub? kui see on täishäälik, kas see on rõhutatud; millise koha see silbis hõivab; silp - sõnas; sõna - fraasis; millised kirjavahemärgid on selle fraasi ees ja järel; millise koha fraas lauses hõivab; lõpuks, milline märk on lause lõpus ja mis on selle põhiintonatsioon.

Teisisõnu kasutatakse iga 25 millisekundi kõne sünteesimiseks palju andmeid. Teave lähikeskkonna kohta tagab sujuva ülemineku kaadrist kaadrisse ja silbilt silpi ning sünteeskõne õige intonatsiooni loomiseks on vaja teavet fraasi ja lause kohta tervikuna.

Ettevalmistatud teksti lugemiseks kasutatakse akustilist mudelit. See erineb akustilisest mudelist, mida kasutatakse kõnetuvastuses. Mudelituvastuse puhul on vaja luua vastavus teatud tunnustega helide ja foneemide vahel. Sünteesi puhul peab akustiline mudel, vastupidi, kaadrite kirjeldustele tuginedes looma helide kirjeldusi.

Kuidas oskab akustiline mudel foneemi õigesti hääldada või küsilausele õiget intonatsiooni anda? Ta õpib tekstidest ja helifailidest. Näiteks saab sinna laadida audioraamatu ja vastava teksti. Mida rohkem andmeid mudel õpib, seda parem on selle hääldus ja intonatsioon.

Lõpetuseks häälest endast. Meie hääle teeb äratuntavaks ennekõike tämber, mis sõltub iga inimese kõneaparaadi organite ehituslikest iseärasustest. Oma hääle tämbrit saab modelleerida ehk kirjeldada selle omadusi – selleks piisab stuudios väikese tekstikorpuse lugemisest. Pärast seda saab teie tämbri andmeid kasutada kõne sünteesimiseks mis tahes keeles, isegi keeles, mida te ei oska. Kui robot peab sulle midagi ütlema, kasutab ta helilainegeneraatorit – vokooderit. Sellesse laetakse akustiliselt mudelilt saadud informatsioon fraasi sageduskarakteristikute kohta, samuti andmed tämbri kohta, mis annab häälele äratuntava värvi.

Lisateavet Yandex SpeechKiti kompleksi tehnoloogiate kohta leiate sellelt lehelt või spetsiaalsest ressursist. Kui olete arendaja ja soovite testida SpeechKiti pilve- või mobiiliversiooni, aitab teid Yandexi tehnoloogiatele pühendatud sait.

","contentType":"text/html"),"authorId":"24151397","slug":"kak-eto-rabotaet-sintez-rechi","canEdit":false,"canComment":false," isBanned":false,"canPublish":false,"viewType":"minor","isDraft":false,"isOnModeration":false,"isOutdated":false,"isSubscriber":false,"commentsCount":55," modificationDate":"Teisipäev, 03. aprill 2018 18:56:00 GMT+0000 (UTC)","isAutoPreview":false,"showPreview":true,"approvedPreview":("allikas":"

Kui ütlete Navigaatorile "Lähme Gogoli, 25" või ütlete valjusti otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäskluseks. On ka vastupidine ülesanne: teksti muutmine hääleks. Mõnikord piisab kõneleja kutsumisest ja lihtsalt vajalike sõnade ja fraaside üleskirjutamisest, kuid suvaliste tekstide puhul see ei toimi. Siin tuleb appi kõnesünteesi tehnoloogia.

","contentType":"text/html"),"proposedPreview":("allikas":"

Kui ütlete Navigaatorile "Lähme Gogoli, 25" või ütlete valjusti otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäskluseks. On ka vastupidine ülesanne: teksti muutmine hääleks. Mõnikord piisab kõneleja kutsumisest ja lihtsalt vajalike sõnade ja fraaside üleskirjutamisest, kuid suvaliste tekstide puhul see ei toimi. Siin tuleb appi kõnesünteesi tehnoloogia.

Kui ütlete Navigaatorile "Lähme Gogoli, 25" või ütlete valjusti otsingupäringu, muudab kõnetuvastustehnoloogia teie hääle tekstikäskluseks. On ka vastupidine ülesanne: teksti muutmine hääleks. Mõnikord piisab kõneleja kutsumisest ja lihtsalt vajalike sõnade ja fraaside üleskirjutamisest, kuid suvaliste tekstide puhul see ei toimi. Siin tuleb appi kõnesünteesi tehnoloogia.

","contentType":"text/html"),"titleImage":("h32":("height":32,"path":"/get-yablogs/47421/file_1475751201967/h32","width": 58"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/h32"),"major1000":("height":246,"path":"/get- yablogs/47421/file_1475751201967/major1000","width":444,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/0maj"1967/8"maj"1967 height":156"path":"/get-yablogs/47421/file_1475751201967/major288","width":287,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421 /file_1475751201967/major288"),"major300":("tee":"/get-yablogs/47421/file_1475751201967/major300","fullPath":"https://avatars.blog/y-anyablogs. 47421/file_1475751201967/major300","width":300,"height":150),,"major444":("tee":"/get-yablogs/47421/file_1475751201967/"full:44th4","full:" / /avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/major444","width":444,"height":246","major900":("tee":"/get-yablogs/ 47421/ file_1475751201967/major900","fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/major900","laius",he"8","min2"8" ": ("tee":"/get-yablogs/47421/file_1475751201967/minor288","fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_14757512001967",minord2967/"wild. ": 288,"height":160),"orig":("height":246"path":"/get-yablogs/47421/file_1475751201967/orig","width":444,"fullPath": "https: //avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/orig"),"touch288":("tee":"/get-yablogs/47421/file_1475751201967"fuluch28th8", :"https ://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/touch288","width":444,"height":246),,"touch444":("tee":"/ get-yablogs/ 47421/file_1475751201967/touch444","fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/touch444:"44dth"ight ),"touch900 ":("height":246,"path":"/get-yablogs/47421/file_1475751201967/touch900","width":444,"fullPath":"https://avatars.mds.yandex .net/get -yablogs/47421/file_1475751201967/touch900"),"w1000":("height":246,"path":"/get-yablogs/47421/file_1475751201967/w10th"0:4"wi10th"0 fullPath":" https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w1000"),"w260h260":("height":246,"path":"/get-yablogs/47421 /file_1475751201967/w260h260 ","width":260,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w260h26:0"),3"w26"6:0" 246,"path ":"/get-yablogs/47421/file_1475751201967/w260h360","width":260,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file61/2471/57_7/246 w260h360"), "w288":("height":156,"path":"/get-yablogs/47421/file_1475751201967/w288","width":282,"fullPath":"https://avatars.mds .yandex.net /get-yablogs/47421/file_1475751201967/w288"),"w288h160":("height":160,"path":"/get-yablogs/47421/file_1475751201967/w28"h8d "fullPath" :"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w288h160"),"w300":("height":162,"path":"/get-yablogs /47421/file_1475751201967 /w300","width":292,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w304":"w304" ":246, "path":"/get-yablogs/47421/file_1475751201967/w444","width":444,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/ file_1475751201967/w444" ),"w900":("height":246"path":"/get-yablogs/47421/file_1475751201967/w900","width":444,"fullPath":"https://avatar":" .mds.yandex .net/get-yablogs/47421/file_1475751201967/w900"),"major620":("tee":"/get-yablogs/47421/file_1475751201967","full"https://Path" avatars.mds. yandex.net/get-yablogs/47421/file_1475751201967/major620","width":444,"height":150)),,"sildid":[("displayName":"Yandexi tehnoloogiad"," slug":"tekhnologii -yandeksa","url":"/blogi/ettevõte? ?tag=tekhnologii-yandeksa"),("displayName":"kuidas see töötab?","slug":"kak-eto-rabotaet","url":"/blog/firma??tag=kak-eto - rabotaet")],"isModerator":false,"isTypography":false,"metaDescription":"","metaKeywords":"","relatedTitle":"","isAutoRelated":false,"commentsEnabled":true , "url":"/blog/company/kak-eto-rabotaet-sintez-rechi","urlTemplate":"/blog/company/%slug%","fullBlogUrl":"https://yandex.ru/ ajaveeb /ettevõte","addCommentUrl":"/blog/createComment/company/kak-eto-rabotaet-sintez-rechi","updateCommentUrl":"/blog/updateComment/company/kak-eto-rabotaet-sintez-rechi" , "addCommentWithCaptcha":"/blog/createWithCaptcha/company/kak-eto-rabotaet-sintez-rechi","changeCaptchaUrl":"/blog/api/captcha/new","putImageUrl":"/blog/image/put " ,"urlBlog":"/blog/company","urlEditPost":"/blog/57f4dd21ccb9760017cf4ccf/edit","urlSlug":"/blog/post/generateSlug","urlPublishPost":"/publish/57f4c74cc017f4cd6 " ,"urlUnpublishPost":"/blog/57f4dd21ccb9760017cf4ccf/unpublish","urlRemovePost":"/blog/57f4dd21ccb9760017cf4ccf/removePost","urlDraft":"/rekakk/blogetraftet-company" , "urlDraftTemplate":"/blog/company/%slug%/draft","urlRemoveDraft":"/blog/57f4dd21ccb9760017cf4ccf/removeDraft","urlTagSuggest":"/blog/api/suggest/after","url: " /blog/company","isAuthor":false,"subscribeUrl":"/blog/api/subscribe/57f4dd21ccb9760017cf4ccf","unsubscribeUrl":"/blog/api/unsubscribe/57f4dd21ccb9760017cf4ccb9760017cf4ccb9760017cf4Eccf:"Pourldi"t" / company/57f4dd21ccb9760017cf4ccf/edit","urlForTranslate":"/blog/post/translate","urlRelateIssue":"/blog/post/updateIssue","urlUpdateTranslate":"/blog/post/update"updateurran"Loran/post/update" : "/blog/post/loadTranslate","urlTranslationStatus":"/blog/company/kak-eto-rabotaet-sintez-rechi/translationInfo","urlRelatedArticles":"/blog/api/relatedArticles/company/kak-eto - rabotaet-sintez-rechi","autor":("id":"24151397","uid":("väärtus":"24151397","lite":false,"hosted":false),"aliased" ": ("13":"chistyakova"),"login":"amarantta","kuva_nimi":("nimi":"Sveta Chistyakova","avatar":("vaikimisi":"24700/24151397-15660497" "tühi":false)),"aadress":" [e-postiga kaitstud] ","defaultAvatar":"24700/24151397-15660497","imageSrc":"https://avatars.mds.yandex.net/get-yapic/24700/24151397-15660497/islands-middexS","ffis"Yanddle true),"originalModificationDate":"2018-04-03T15:56:07.719Z","socialImage":("h32":("height":32,"path":"/get-yablogs/47421/file_1475751201967/ h32","width":58,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/h32"),"major1000":("height":246," path":"/get-yablogs/47421/file_1475751201967/major1000","width":444"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475767/2075767/2075760/maj) "major288":("height":156,"path":"/get-yablogs/47421/file_1475751201967/major288","width":287,"fullPath":"https://avatars.mds.yandex. net/get-yablogs/47421/file_1475751201967/major288"),"major300":("tee":"/get-yablogs/47421/file_1475751201967/major300","fullPath."tyan:"https://savatar. .net/get-yablogs/47421/file_1475751201967/major300","width":300,"height":150),,"major444":("tee":"/get-yablogs/47421/file_1475767/4major " fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/major444","width":444,"height":246),,"major900":("tee" :" /get-yablogs/47421/file_1475751201967/major900","fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/major49"ighth" ": 246),"minor288":("tee":"/get-yablogs/47421/file_1475751201967/minor288","fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/ file_1475751201967/ minor288","width":288,"height":160),"orig":("height":246,"path":"/get-yablogs/47421/file_1475751201967/orig","laius" :444, "fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/orig"),"touch288":("tee":"/get-yablogs/47421/file_1207675 /touch288" ,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/touch288","width":444,"height":246),,"touch444": ("tee" :"/get-yablogs/47421/file_1475751201967/touch444","fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/towiuchdth" 444,"height ":246),,"touch900":("height":246"path":"/get-yablogs/47421/file_1475751201967/touch900","width":444,"fullPath":"https ://avatars. mds.yandex.net/get-yablogs/47421/file_1475751201967/touch900"),"w1000":("height":246,"path":"/get-yablogs/47421/file_147575"7/w101900" "width": 444,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w1000"),"w260h260":("height":246"path" :"/get- yablogs/47421/file_1475751201967/w260h260","width":260,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_14219671/202196756" w260h360":("kõrgus":246"tee":"/get-yablogs/47421/file_1475751201967/w260h360","width":260,"fullPath":"https://avatars.mds.yandex.net/ get-yablogs/47421 /file_1475751201967/w260h360"),"w288":("height":156,"path":"/get-yablogs/47421/file_1475751201967/w288:2"wi:",th"l" "https:// avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w288"),"w288h160":("height":160,"path":"/get-yablogs/47421/file_1207675 w288h160","width ":288,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w288h160"),"w300":("height":162," path":"/ get-yablogs/47421/file_1475751201967/w300","width":292,"fullPath":"https://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201009651201 "w444": ("height":246,"path":"/get-yablogs/47421/file_1475751201967/w444","width":444,"fullPath":"https://avatars.mds.yandex. net/get-yablogs /47421/file_1475751201967/w444"),"w900":("height":246,"path":"/get-yablogs/47421/file_1475751201967/w900:4",th"4"l" ":"https: //avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/w900"),"major620":("tee":"/get-yablogs/47421/file_147575120"69651200" fullPath":"https ://avatars.mds.yandex.net/get-yablogs/47421/file_1475751201967/major620","width":444,"height":150))))">