Kako napraviti prepoznavanje govora. Najbolji program za prepoznavanje ruskog govora

Usluga SendPulse marketinški je alat za stvaranje baze pretplata i pretvaranje slučajnih posjetitelja vaše stranice u redovne. SendPulse kombinira najvažnije značajke za privlačenje i zadržavanje kupaca na jednoj platformi:
● e-mail biltene,
● web-push,
● SMS poruke,
● SMTP,
● slanje pošte u Viberu,
● šaljite poruke na facebook messenger.

E-mail bilteni

Možete koristiti različite tarife za slanje e-mail biltena, uključujući i one besplatne. Besplatni plan ima ograničenja: baza pretplate nije veća od 2500.
Prva stvar s kojom treba započeti kada radite s uslugom za slanje e-pošte jest stvoriti vlastitu Adresar. Postavite naslov i prenesite popis adresa e-pošte.


SendPulse olakšava stvaranje obrasci za pretplatu u obliku pop-up prozora, ugrađenih obrazaca, plutajućih i fiksiranih na određenom dijelu ekrana. Uz pomoć obrazaca za pretplatu prikupit ćete bazu pretplatnika od nule ili svoju bazu dopuniti novim adresama.
U alatu za izradu obrazaca možete kreirati točno onaj obrazac za pretplatu koji najbolje odgovara vašim potrebama, a savjeti usluge pomoći će vam da se nosite s tim zadatkom. Također je moguće koristiti neki od dostupnih gotovih obrazaca.


Prilikom izrade obrazaca za pretplatu obavezno je korištenje e-maila s korporativnom domenom. Pročitajte kako.
Predlošci poruka pomoći će lijepo dizajnirati vaša pisma pretplatnicima. Možete izraditi vlastiti predložak slova u posebnom konstruktoru.


Automatske pošte. Upravitelji sadržaja aktivno koriste automatsku distribuciju. Pomaže automatizirati proces rada s klijentima. Postoji nekoliko načina za izradu automatske pošte:
Sekvencijalni niz slova. Ovo je najjednostavnija opcija, kada se, bez obzira na uvjete, napiše nekoliko pisama koja će biti poslana primateljima određenim redoslijedom. Ovdje mogu postojati opcije - serija poruka(jednostavni lanac poruka), poseban datum(pisma su tempirana na određene datume), okidačko slovo- pismo se šalje ovisno o radnjama pretplatnika (otvaranje poruke, itd.).
Automatizacija360– slanje pošte s određenim filtrima i uvjetima, kao i uzimajući u obzir konverzije.
Gotovi lanci po predlošku. Možete izraditi niz slova na temelju zadanog predloška ili izmijeniti predložak i prilagoditi ga svojim potrebama.
A/B testiranje pomoći će vam eksperimentirati s različitim opcijama za slanje niza e-poruka i odrediti najbolju opciju za otvaranja ili prijelaze.

Slanje push obavijesti

Push-mailovi su pretplata u prozoru preglednika, to je vrsta zamjene za rss pretplate. Web-push tehnologije brzo su ušle u naše živote i već je teško pronaći web mjesto koje ne koristi push mailing za privlačenje i zadržavanje kupaca. Zatražite skriptu za , možete slati e-poštu i ručno i stvarati automatska emitiranja stvaranjem niza e-pošte ili prikupljanjem podataka iz RSS-a. Druga opcija podrazumijeva da će nakon pojavljivanja novog članka na vašoj web stranici, obavijest o tome automatski biti poslana vašim pretplatnicima uz kratku najavu.


Novo iz Pošaljipuls– sada možete unovčiti svoju stranicu s push obavijestima ugrađujući oglase u njih. Nakon dostizanja 10 $, svakog ponedjeljka uplate se vrše na jedan od sustava plaćanja - Visa / mastercard, PayPal ili Webmoney.
Push poruke na usluzi su potpuno besplatne. Plaćanje se vrši samo za White Label - slanje bez spominjanja usluge SendPulse, ali ako vam logo usluge ne smeta, možete besplatno koristiti push obavijesti bez ograničenja.

SMTP

Značajka SMTP štiti vaš popis za slanje e-pošte od stavljanja na crnu listu korištenjem bijelih IP adresa. Tehnologije kriptografskog potpisa DKIM i SPF koje se koriste u slanju SendPulse pošte povećavaju vjerodostojnost e-poruka koje šaljete, smanjujući vjerojatnost da će vaše e-pošte završiti u neželjenoj pošti ili na crnoj listi.

Facebook messenger botovi

Facebook chatbot je u beta testiranju. Možete ga povezati sa svojom stranicom i slati poruke pretplatnicima.

Slanje SMS-a

Putem usluge SendPulse jednostavno je poslati mailing u bazu telefonskih brojeva. Najprije morate izraditi adresar s popisom telefonskih brojeva. Da biste to učinili, odaberite odjeljak "Adresar", izradite novi adresar, prenesite telefonske brojeve. Sada možete kreirati SMS listu za slanje ove baze podataka. Cijena slanja SMS-a varira ovisno o telekom operaterima primatelja i u prosjeku je od 1,26 rubalja do 2,55 rubalja po 1 poslanom SMS-u.

affiliate program

SendPulse implementira affiliate program u kojem će vam registrirani korisnik koji koristi vašu vezu koji je platio tarifu donijeti 4000 rubalja. Pozvani korisnik dobiva popust od 4000 rubalja za prvih 5 mjeseci korištenja usluge.

Telefonski titl za gluhe i nagluhe osobe

Pretvorite svoj zaslon u fantastično telefonsko zaglavlje. Potpuno je automatski, bez ljudskog sluha - tipkači koji tipkaju vaše razgovore. Je li vam baka i djed teško čuti obitelj i prijatelje na telefon? Uključite im Speechlogger i prestanite vrištati na telefon. Jednostavno spojite audio izlaz vašeg telefona na audio ulaz vašeg računala i pokrenite Speechlogger. Također je koristan u interakcijama licem u lice.

Automatska transkripcija

Jeste li snimali intervju? Uštedite malo vremena tako što ćete ga prepisati, iz Googleovog automatskog govora, u tekst koji Speechlogger donosi u vaš preglednik. Pustite snimljeni intervju u mikrofon (ili liniju) vašeg računala i pustite speaklogger da napravi transkripciju. Speechlogger sprema transkripciju teksta zajedno s datumom, vremenom i vašim komentarima. Također vam omogućuje uređivanje teksta. Telefonski razgovori mogu se transkribirati istom metodom. Također možete snimati audio datoteke izravno s vašeg računala, kao što je opisano u nastavku.

Automatski tumač i prevoditelj

Susret sa stranim gostima? Ponesite prijenosno računalo (ili dva) s govornim zapisivačem i mikrofonom. Svaka će strana vidjeti izgovorene riječi druge strane prevedene na svoj jezik u stvarnom vremenu. Također je korisno telefonirati na stranom jeziku kako biste bili sigurni da u potpunosti razumijete drugu stranu. Spojite audio izlaz vašeg telefona na linijski ulaz vašeg računala i pokrenite Speechlogger.

Naučite strane jezike i poboljšajte svoje vještine izgovora

Speechlogger je izvrstan alat za učenje jezika i može se koristiti na više načina. Možete ga koristiti za učenje vokabulara govoreći svoj materinji jezik i dopuštajući softveru da ga prevede. Možete naučiti i vježbati pravilan izgovor govoreći strani jezik i gledajući razumije li Speechlogger ili ne. Ako je tekst prepisan crnim fontom znači da ste ga dobro izgovorili.

Generiranje filmskih titlova

Speechlogger može automatski snimati filmove ili druge zvučne datoteke. Zatim uzmite datoteku i automatski je prevedite na bilo koji jezik kako biste proizveli međunarodne titlove.

Diktirajte umjesto tipkanja

Pisanje pisma? Dokumenti? Popisi? Sažetak? Što god trebate upisati, pokušajte to izdiktirati Speechloggeru. Speechlogger će ga automatski spremiti za vas i omogućiti vam da ga izvezete u dokument.

Smiješna igra :)

Možete li imitirati kineskog govornika? Francuski? Što je s ruskim? Pokušajte oponašati strani jezik i pogledajte što ste upravo rekli uz Speechlogger. Koristite Speechloggerov simultani prijevod da biste razumjeli što ste upravo rekli. Postignite nevjerojatne rezultate - jako je zabavno!

Na Facebooku su nas pitali:
“Da bih radio s tekstom, trebam transkribirati 3 sata glasovnog zapisa. Pokušao sam uploadati audio datoteku sa slikom na YouTube i koristiti njihov transkriber teksta, ali ispada neka abrakadabra. Možete li mi, molim vas, reći kako to tehnički riješiti? Hvala vam!
Aleksandar Konovalov»

Alexander, postoji jednostavno tehničko rješenje - ali rezultat će ovisiti isključivo o kvaliteti vaše snimke. Dopustite mi da objasnim o kakvoj kvaliteti govorim.

Posljednjih su godina ruske tehnologije prepoznavanja govora jako napredovale. Postotak pogrešaka u prepoznavanju smanjio se do te razine da je postalo lakše “izgovarati” drugi tekst u posebnoj mobilnoj aplikaciji ili internetskom servisu, ručno ispravljajući pojedine “greške” - nego utipkati cijeli tekst na tipkovnici.

No, da bi umjetna inteligencija sustava za prepoznavanje mogla odraditi svoj posao, korisnik mora odraditi svoj. Naime: govorite u mikrofon jasno i odmjereno, izbjegavajte jake pozadinske zvukove, ako je moguće koristite stereo slušalice ili vanjski mikrofon pričvršćen na rupicu (za kvalitetu prepoznavanja važno je da je mikrofon uvijek na istoj udaljenosti od usana) , i sami govorite istom glasnoćom ). Naravno, što je veća klasa audio uređaja, to bolje.

Lako se pridržavati ovih uvjeta ako umjesto izravnog pristupa internetskoj usluzi prepoznavanja govora koristite diktafon kao posredni uređaj. Usput, takva "osobna tajnica" posebno je neophodna kada nemate pristup internetu. Naravno, bolje je koristiti barem jeftini profesionalni diktafon nego uređaj za snimanje ugrađen u jeftini mp3 player ili pametni telefon. To će dati mnogo veće šanse da se primljeni zapisi "ubace" u servis za prepoznavanje govora.

Teško je, ali moguće je nagovoriti sugovornika s kojim razgovarate da se pridržava ovih pravila (još jedan savjet: ako u kompletu nemate vanjski mikrofon na štipaljku, neka diktafon bude barem kraj sugovornika. , a ne s vama).

Ali "ocrtati" konferenciju ili seminar na potrebnoj razini u automatskom načinu rada je, po mom mišljenju, praktički nerealno (na kraju krajeva, nećete moći kontrolirati govor govornika i reakciju publike). Iako prilično zanimljiva opcija: pretvaranje profesionalno snimljenih audio predavanja i audio knjiga u tekst (ako im se ne dodaju pozadinska glazba i zvukovi).

Nadajmo se da je kvaliteta vaše diktafonske snimke dovoljno visoka da je možete dešifrirati automatski način rada.

Ako ne, uz gotovo bilo koju kvalitetu snimanja, možete dešifrirati poluautomatski način rada.

Osim toga, u brojnim situacijama najveću uštedu vremena i truda donijet će vam, paradoksalno, dekodiranje u ručni mod. Točnije, verziju koju i sam koristim već desetak godina. 🙂

Dakle, redom.

1. Automatsko prepoznavanje govora

Mnogi savjetuju prepisivanje glasovnih zapisa na YouTubeu. Ali ova metoda prisiljava korisnika da troši vrijeme na preuzimanje audio datoteke i pozadinske slike, a zatim na čišćenje dobivenog teksta od vremenskih oznaka. U međuvremenu, ovo vrijeme je lako uštedjeti. 🙂

Audio zapise možete prepoznati izravno sa svog računala pomoću mogućnosti jednog od internetskih servisa koje pokreće Google mehanizam za prepoznavanje (preporučam Speechpad.ru ili Speechlogger.com). Sve što trebate učiniti je napraviti mali trik: umjesto da vaš glas svira iz mikrofona, preusmjerite audio stream koji reproducira vaš računalni player na uslugu.

Ovaj trik se zove softverski stereo mikser (obično se koristi za snimanje glazbe na računalu ili njezino emitiranje s računala na Internet).

Stereo mikser je bio dio Windowsa XP - ali su ga programeri uklonili iz kasnijih verzija ovog operativnog sustava (kažu, radi zaštite autorskih prava: kako igrači ne bi krali glazbu iz igara itd.). Međutim, nije neuobičajeno da stereo mikser ima upravljačke programe za audio kartice (na primjer, Realtec kartice ugrađene u matičnu ploču). Ako ne možete pronaći stereo mikser na računalu pomoću snimaka zaslona u nastavku, pokušajte ponovno instalirati audio upravljačke programe s CD-a koji ste dobili s matičnom pločom ili s web stranice proizvođača matične ploče.

Ako to ne pomogne, instalirajte alternativni program na svoje računalo. Na primjer - besplatni VB-CABLE virtualni audio uređaj : vlasnik gore spomenute usluge Speechpad.ru preporučuje njegovu upotrebu.

Prvi korak morate onemogućiti mikrofon za korištenje u načinu snimanja i omogućiti stereo mikser (ili virtualni VB-CABLE) umjesto toga.

Da biste to učinili, kliknite na ikonu zvučnika u donjem desnom kutu (blizu sata) - ili odaberite odjeljak "Zvuk" na "Upravljačkoj ploči". Na kartici "Snimanje" prozora koji se otvori kliknite desnom tipkom miša i potvrdite okvire pored stavki "Prikaži odspojene uređaje" i "Prikaži odspojene uređaje". Kliknite desnom tipkom miša na ikonu mikrofona i odaberite "Isključi zvuk" (općenito, isključite sve uređaje označene zelenom ikonom).

Desnom tipkom miša kliknite ikonu stereo miksera i odaberite "Omogući". Na ikoni će se pojaviti zelena ikona, što znači da je stereo mikser postao zadani uređaj.

Ako se odlučite za VB-CABLE, omogućite ga na isti način u kartici "Snimanje".

I također - na kartici "Reprodukcija".

Drugi korak. Uključite snimanje zvuka u bilo kojem playeru (ako trebate dešifrirati audio zapis videa, također možete pokrenuti video player). Istodobno učitajte uslugu Speechpad.ru u pregledniku Chrome i kliknite gumb "Omogući snimanje" u njemu. Ako je snimka dovoljno kvalitetna, vidjet ćete kako usluga pred vašim očima pretvara govor u smislen i blizak izvornom tekstu. Istina, bez interpunkcijskih znakova, koje ćete morati sami posložiti.

Kao audio player savjetujem vam da koristite AIMP, o čemu će biti više riječi u trećem potpoglavlju. Sada ću samo napomenuti da ovaj player omogućuje usporavanje snimanja bez izobličenja govora, kao i ispravljanje nekih drugih grešaka. To može donekle poboljšati prepoznavanje ne baš kvalitetnih snimaka. (Ponekad se čak savjetuje da se loše snimke prethodno obrade u profesionalnim programima za obradu zvuka. No, po mom mišljenju, to je previše naporan zadatak za većinu korisnika, koji će puno brže upisivati ​​tekst rukom. :))

2. Poluautomatsko prepoznavanje govora

Ovdje je sve jednostavno. Ako je snimka loše kvalitete i prepoznavanje se “guši” ili servis proizvodi previše grešaka, sami pospješite uzrok “ugradnjom” u lanac: “audio player - spiker - sustav za prepoznavanje”.

Vaš zadatak je poslušati snimljeni govor u slušalicama i istovremeno ga diktirati preko mikrofona Internet servisu za prepoznavanje. (Naravno, ne morate se prebacivati ​​s mikrofona na stereo mikser ili virtualni kabel na popisu uređaja za snimanje, kao u prethodnom odjeljku). A kao alternativu gore spomenutim internetskim uslugama, možete koristiti aplikacije za pametne telefone poput besplatnog Yandex.Dictation ili funkciju diktiranja na iPhoneu s iOS 8 i novijim.

Napominjem da u poluautomatskom načinu rada imate priliku odmah diktirati interpunkcijske znakove, koje usluge još ne mogu postaviti u automatskom načinu rada.

Ako uspijete diktirati sinkronizirano s reprodukcijom snimke na playeru, preliminarna transkripcija će trajati gotovo isto koliko i sama snimka (ne računajući naknadno vrijeme potrošeno na ispravljanje pravopisnih i gramatičkih pogrešaka). Ali čak i rad prema shemi: "slušaj frazu - diktiraj - slušaj frazu - diktiraj" može vam dobro uštedjeti vrijeme u usporedbi s tradicionalnim tipkanjem.

Kao audio player, preporučujem korištenje istog AIMP-a. Prvo, možete ga koristiti za usporavanje reprodukcije na brzinu koja vam odgovara u sinkronom diktiranju. Drugo, ovaj player može vratiti snimku na određeni broj sekundi: to je ponekad potrebno kako bi se bolje čula nerazumljiva fraza.

3. Ručna transkripcija diktafona

U praksi se možete uvjeriti da vam poluautomatski diktat prebrzo dosadi. Ili radite previše grešaka s uslugom. Ili, zahvaljujući vašoj vještini brzog tipkanja, puno je lakše stvoriti gotov ispravljeni tekst na tipkovnici nego koristiti diktat. Ili vaš diktafon, stereo mikrofon sa slušalicama, audio kartica ne pružaju prihvatljivu kvalitetu zvuka za uslugu. Ili možda jednostavno nemate priliku diktirati naglas na poslu ili u kućnom uredu.

U svim tim slučajevima pomoći će vam moja vlastita metoda ručnog dekodiranja (poslušajte snimku u AIMP-u - upišite Word). S njim možete bilješku pretvoriti u tekst brže nego što to mogu mnogi profesionalni novinari čija je brzina tipkanja slična vašoj! Pritom ćete potrošiti puno manje energije i živaca nego oni. 🙂

Koji je glavni razlog gubitka energije i vremena tijekom transkripcije audio zapisa na tradicionalan način? Zbog činjenice da korisnik čini puno nepotrebnih pokreta.

Korisnik neprestano pruža ruku prema diktafonu, zatim prema tipkovnici računala. Zaustavio sam reprodukciju - utipkao sam odlomak koji sam slušao u uređivaču teksta - ponovno sam uključio reprodukciju - premotao sam nečitku snimku unatrag - itd., itd.

Korištenje običnog softverskog playera na računalu čini proces malo lakšim: korisnik mora stalno minimizirati/proširiti Word, zaustavljati/pokretati player, pa čak i puzati naprijed-natrag s klizačem playera kako bi pronašao nečitljiv fragment, a zatim se vratio do posljednjeg slušanog mjesta u snimci.

Kako bi smanjili te i druge gubitke vremena, specijalizirane IT tvrtke razvijaju softverske i hardverske transkriptore. To su prilično skupa rješenja za profesionalce - te iste novinare, sudske stenografe, istražitelje itd. No, zapravo, za naše potrebe potrebne su samo dvije funkcije:

  • mogućnost usporavanja reprodukcije glasovne snimke bez izobličenja i snižavanja tona (mnogi svirači vam omogućuju usporavanje brzine reprodukcije - ali, nažalost, ljudski glas se u isto vrijeme pretvara u čudovišni robotski glas koji je teško čuti dulje vrijeme);
  • mogućnost zaustavljanja snimanja ili vraćanja na određeni broj sekundi i vraćanja bez prestanka tipkanja i bez smanjivanja prozora uređivača teksta.

Testirao sam na desetke audio programa u svoje vrijeme - i pronašao samo dvije pristupačne plaćene aplikacije koje ispunjavaju ove zahtjeve. Imam jednog od njih. Još sam malo tražio svoje drage čitatelje 🙂 - i našao divno besplatno rješenje - AIMP player, koji i sam još uvijek koristim.

“Nakon što unesete postavke AIMP-a, pronađite odjeljak Global Keys i ponovno konfigurirajte Stop/Start na tipku Escape (Esc). Vjerujte mi, ovo je najprikladnije, jer ne morate razmišljati o tome i prst vam neće slučajno pasti na druge tipke. Postavite stavke “Pomakni se malo unatrag” i “Pomakni se malo naprijed” na tipke Ctrl + natrag/naprijed, odnosno (na tipkovnici imate četiri tipke sa strelicama - odaberite dvije od njih). Ova je funkcija potrebna za ponovno slušanje zadnjeg fragmenta ili malo preskakanje naprijed.

Zatim, pozivanjem EQ-a, možete smanjiti vrijednosti Velocity i Tempo - i povećati vrijednost Pitch-a. U tom slučaju primijetit ćete da će se brzina reprodukcije usporiti, ali se visina glasa (ako dobro odaberete vrijednost "Pitch") neće promijeniti. Odaberite ova dva parametra tako da imate vremena tipkati gotovo istovremeno, samo povremeno ga zaustavljajući.

Kada je sve postavljeno, tipkanje će vam oduzeti manje vremena i ruke će vam se manje umarati. Moći ćete mirno i udobno transkribirati audio zapis, praktički bez micanja prstiju od tipkanja po tipkovnici.”

Mogu samo dodati onome što je rečeno da ako snimka nije vrlo visoke kvalitete, možete pokušati poboljšati njezinu reprodukciju eksperimentiranjem s drugim postavkama u AIMP-ovom Sound Effects Manageru.

I broj sekundi za koje će vam biti najprikladnije pomicati se unatrag ili naprijed kroz snimku pomoću vrućih tipki - postavite u odjeljku "Player" u prozoru "Postavke" (koji se može pozvati pritiskom na vruće tipke “Ctrl + P”).

Želim vam da uštedite više vremena na rutinskim zadacima - i plodonosno ga iskoristite za glavne stvari! 🙂 I ne zaboravite uključiti mikrofon na popisu uređaja za snimanje kada ćete razgovarati na Skypeu! 😉

3 načina transkripcije glasovne snimke: prepoznavanje govora, diktat, ručni način rada

Ažurirano: ponedjeljak, 31. srpnja 2017

Kakve veze ima polufantastična ideja razgovora s računalom s profesionalnom fotografijom? Gotovo ništa, ako niste obožavatelj ideje o beskrajnom razvoju cjelokupnog tehničkog okruženja čovjeka. Zamislite na trenutak da svom fotoaparatu glasovno naređujete da promijeni žarišnu duljinu i kompenzaciju ekspozicije učini pola koraka plus. Daljinsko upravljanje kamerom već je implementirano, ali tamo morate tiho pritisnuti gumbe, a ovdje je slušni fotik!

Postala je tradicija navoditi neki fantastičan film kao primjer komunikacije ljudskog glasa s računalom, dobro, barem "Space Odyssey 2001" redatelja Stanleyja Kubricka. Tamo, ugrađeno računalo ne samo da vodi smisleni dijalog s astronautima, već može čitati s usana poput gluhe osobe. Drugim riječima, stroj je naučio prepoznavati ljudski govor bez grešaka. Možda će nekome daljinsko glasovno upravljanje kamerom biti suvišno, ali mnogi bi željeli ovu frazu "Skini nas dušo" i slika cijele obitelji na pozadini palme je spremna.

Pa, ovdje sam odao počast tradiciji, malo maštao. No, od srca govoreći, ovaj članak je bilo teško napisati, a sve je počelo s poklonom u obliku pametnog telefona s Android 4 OS-om. Ovaj model HUAWEI U8815 ima mali ekran osjetljiv na dodir od četiri inča i tipkovnicu na ekranu. Pomalo je neobično tipkati po njemu, ali pokazalo se da nije osobito potrebno. (slika01)

1. Prepoznavanje glasa u pametnom telefonu na Android OS-u

Dok sam isprobavao novu igračku, primijetio sam grafiku mikrofona u traci za pretraživanje. Google i na tipkovnici u bilješkama. Ranije me nije zanimalo što taj simbol predstavlja. Vodio sam razgovore u Skype i tipkala slova na tipkovnici. To čini većina korisnika interneta. Ali kako su mi kasnije objasnili, u tražilici Google dodano je glasovno pretraživanje na ruskom i pojavili su se programi koji vam omogućuju diktiranje kratkih poruka kada koristite preglednik Krom.

Izgovorio sam frazu od tri riječi, program ih je identificirao i prikazao u ćeliji s plavom pozadinom. Imalo se što iznenaditi, jer su sve riječi bile ispravno napisane. Ako kliknete na ovu ćeliju, izraz se pojavljuje u tekstualnom polju android notepada. Pa je rekao nekoliko fraza i poslao poruku asistentu putem SMS-a.


2. Kratka povijest programa za prepoznavanje glasa.

Nije mi bilo otkriće da moderna dostignuća u području glasovne kontrole omogućuju davanje naredbi kućanskim aparatima, automobilu, robotu. Naredbeni način rada uveden je u prošlim verzijama sustava Windows, OS/2 i Mac OS. Vidio sam talker programe, ali kakva je korist od njih? Možda je moja posebnost što mi je lakše govoriti nego tipkati po tipkovnici, a na mobitelu ne mogu ama baš ništa tipkati. Morate snimiti kontakte na prijenosnom računalu s normalnom tipkovnicom i prenijeti putem USB kabela. Ali samo govoriti u mikrofon, a kompjuter sam otkucao tekst bez grešaka - to je za mene bio san. Atmosferu beznađa podupirale su rasprave na forumima. Posvuda su imali tako tužnu misao:

“Međutim, u praksi, do sada, programi za pravo prepoznavanje govora (pa čak ni na ruskom) praktički ne postoje, i očito se neće uskoro stvoriti. Štoviše, čak ni obrnuta zadaća prepoznavanja - sinteza govora, koja je, čini se, puno jednostavnija od prepoznavanja, nije do kraja riješena. (ComputerPress №12, 2004.)

“Do danas ne postoje normalni programi za prepoznavanje govora (ne samo ruskog), budući da je zadatak prilično težak za računalo. A najgora stvar je što mehanizam prepoznavanja riječi od strane osobe nije realiziran, pa se nema na čemu graditi pri izradi programa za prepoznavanje. (Još jedna rasprava na forumu).

U isto vrijeme, pregledi programa za unos teksta na engleskom jeziku ukazivali su na jasne uspjehe. Na primjer, IBM ViaVoice 98 Executive Edition imali osnovni rječnik od 64.000 riječi i mogućnost dodavanja isto toliko vlastitih riječi. Postotak prepoznavanja riječi bez obuke programa bio je oko 80%, a naknadnim radom s određenim korisnikom dosegao je 95%.

Od programa za prepoznavanje ruskog jezika vrijedi istaknuti "Gorynych" - dodatak Dragon Dictate 2.5 na engleskom jeziku. O potrazi, a potom i "borbi s pet Gorynycha" reći ću u drugom dijelu recenzije. Prvo sam pronašao "Engleskog zmaja".

3. Program za prepoznavanje kontinuiranog govora "Dragon Naturally Speaking"

Moderna verzija programa tvrtke Utančanost ispostavilo se da sam s mojim starim prijateljem s Instituta za strane jezike u Minsku. Donijela ju je s putovanja u inozemstvo i kupila misleći da bi mogla biti "kompjuterska tajnica". Ali nešto nije uspjelo, a program je ostao gotovo zaboravljen na prijenosnom računalu. Zbog nedostatka ikakvog razumljivog iskustva, morao sam sam otići do svog prijatelja. Sav ovaj dugi uvod neophodan je za ispravno razumijevanje zaključaka koje sam izveo.

Puno ime mog prvog zmaja bilo je: . Program je na engleskom i u njemu je sve jasno i bez priručnika. Prvi korak je izrada profila određenog korisnika kako bi se utvrdile značajke zvuka riječi u njegovoj izvedbi. Što sam i učinio - važna je dob govornika, zemlja, osobitosti izgovora. Moj izbor je: dob 22-54, engleski UK, standardni izgovor. Slijedi nekoliko prozora u kojima postavljate svoj mikrofon. (slika04)

Sljedeća faza u ozbiljnim programima prepoznavanja govora je obuka za određeni izgovor određene osobe. Pozivamo vas da odaberete prirodu teksta: moj izbor je kratka uputa za diktat, ali možete “naručiti” i duhovitu priču.

Bit ove faze rada s programom je izuzetno jednostavna - tekst se prikazuje u prozoru, iznad njega je žuta strelica. Uz ispravan izgovor, strelica se pomiče kroz fraze, a na dnu se nalazi traka napretka treninga. Engleski konverzacijski sam bio prilično zaboravio, pa sam se teško kretao. Vrijeme je također bilo ograničeno – ipak kompjuter nije bio moj i morao sam prekinuti trening. Ali prijateljica je rekla da je napravila test za manje od pola sata. (slika05)

Odbijajući prilagoditi program svom izgovoru, otišao sam u glavni prozor i pokrenuo ugrađeni uređivač teksta. Izgovarao je zasebne riječi iz nekih tekstova koje je pronašao na računalu. One riječi koje je rekao točno, program je ispisao, one koje je rekao loše, zamijenjene nečim “engleskim”. Nakon što je jasno izgovorio naredbu "brisanje linije" na engleskom, program ju je ispunio. To znači da ja točno čitam naredbe, a program ih prepoznaje bez prethodne obuke.

Ali bilo mi je važno kako taj "zmaj" piše na ruskom. Kao što ste shvatili iz prethodnog opisa, kada trenirate program, možete odabrati samo engleski tekst, tamo jednostavno nema ruskog teksta. Jasno je da neće uspjeti trenirati prepoznavanje ruskog govora. Na sljedećoj fotografiji možete vidjeti koju frazu je program upisao prilikom izgovaranja ruske riječi "Bok". (slika06)

Rezultat komunikacije s prvim zmajem pokazao se pomalo komičnim. Ako pažljivo pročitate tekst na službenoj web stranici, možete vidjeti englesku "specijalizaciju" ovog softverskog proizvoda. Osim toga, prilikom učitavanja čitamo u prozoru programa "engleski". Pa zašto je sve ovo bilo potrebno? Jasno je da su forumi i glasine krivi ...

Ali postoji i korisno iskustvo. Moja je prijateljica tražila da vidi u kakvom je stanju njezin laptop. Nekako polako je počeo djelovati. To ne čudi - sistemska particija imala je samo 5% slobodnog prostora. Prilikom brisanja nepotrebnih programa vidio sam da službena verzija zauzima više od 2,3 GB. Ovaj broj će nam trebati kasnije. (slika.07)



Prepoznavanje ruskog govora, kako se pokazalo, nije bio trivijalan zadatak. U Minsku sam uspio pronaći "Gorynycha" od prijatelja. Dugo je tražio disk po svojim starim ruševinama i, prema njegovim riječima, ovo je službena objava. Program se odmah instalirao i saznao sam da njegov rječnik sadrži 5000 ruskih riječi plus 100 naredbi i 600 engleskih riječi plus 31 naredbu.

Prvo trebate namjestiti mikrofon, što sam ja i napravio. Zatim sam otvorio rječnik i dodao riječ "ispitivanje" jer ga nije bilo u rječniku programa. Pokušao sam govoriti jasno, monotono. Konačno sam otvorio program Gorynych Pro 3.0, uključio način diktiranja i dobio ovaj popis "riječi koje zvuče slično". (slika.09)

Rezultat me zbunio jer se očito razlikovao na gore od rada android pametnog telefona i odlučio sam isprobati druge programe iz " Google Chrome web trgovina". I odgodio je suočavanje sa "gorynych zmijama" za kasnije. Mislio sam ovo odgoda radnja u izvornom ruskom duhu

5. Googleove glasovne mogućnosti

Za rad s glasom na običnom računalu s OS Windows morat ćete instalirati preglednik Google Chrome. Ako u njemu radite na Internetu, tada dolje desno možete kliknuti na poveznicu za trgovinu softverom. Tamo sam besplatno našao dva programa i dva proširenja za glasovni unos teksta. Programi se zovu "Glasovna bilježnica" i "Voysnot - glas u tekst". Nakon instalacije mogu se pronaći na kartici "Prijave" vaš preglednik "Krom". (slika.10)

Ekstenzije se zovu "Google Voice Search Hotword (Beta) 0.1.0.5" i "Glasovni unos teksta - Speechpad.ru 5.4". Nakon instalacije mogu se isključiti ili izbrisati na kartici "Proširenja".(slika.11)

Glasovna bilješka. Na kartici aplikacije u pregledniku Chrome dvaput kliknite ikonu programa. Otvorit će se dijaloški okvir kao što je prikazano na slici ispod. Klikom na ikonu mikrofona izgovarate kratke fraze u mikrofon. Program šalje vaše riječi poslužitelju za prepoznavanje govora i upisuje tekst u prozor. Sve riječi i izrazi prikazani na ilustraciji upisani su u prvom pokušaju. Očito, ova metoda radi samo s aktivnom internetskom vezom. (slika.12)

Glasovna bilježnica. Ako program pokrenete na kartici aplikacija, otvorit će se nova kartica internetske stranice Speechpad.ru. Postoji detaljna uputa o korištenju ove usluge i kompaktni obrazac. Potonji je prikazan na slici ispod. (slika.13)

Glasovni unos text omogućuje vam da svojim glasom ispunite tekstualna polja internetskih stranica. Na primjer, otišao sam na svoju stranicu Google+. U polju za unos nove poruke kliknite desnom tipkom miša i odaberite "SpeechPad". Ružičasti okvir za unos govori da možete diktirati svoj tekst. (slika.14)

Google glasovno pretraživanje omogućuje pretraživanje glasom. Kada instalirate i aktivirate ovo proširenje, simbol mikrofona pojavljuje se u traci za pretraživanje. Kada ga pritisnete, pojavit će se simbol u velikom crvenom krugu. Samo izgovorite izraz za pretraživanje i on će se pojaviti u rezultatima pretraživanja. (slika.15)

Važna napomena: da bi mikrofon radio s proširenjima za Chrome, morate dopustiti pristup mikrofonu u postavkama preglednika. Onemogućeno je prema zadanim postavkama iz sigurnosnih razloga. Uđi Postavke→Osobni podaci→Postavke sadržaja. (Za pristup svim postavkama na kraju popisa kliknite Prikaži napredne postavke). Otvorit će se dijaloški okvir Postavke sadržaja stranice. Odaberite stavku na popisu Multimedija→mikrofon.

6. Rezultati rada s programima za prepoznavanje ruskog govora

Malo iskustvo u korištenju programa za unos teksta glasom pokazalo je izvrsnu implementaciju ove značajke na poslužiteljima internetske tvrtke Google. Bez ikakve prethodne obuke, riječi se ispravno prepoznaju. To znači da je problem prepoznavanja ruskog govora riješen.

Sada možemo reći da je rezultat razvoja Google bit će novi kriterij za ocjenjivanje proizvoda drugih proizvođača. Želio bih da sustav prepoznavanja radi izvan mreže bez kontaktiranja poslužitelja tvrtke - praktičniji je i brži. Ali nije poznato kada će biti objavljen neovisni program za rad s kontinuiranim protokom ruskog govora. Vrijedno je, međutim, pretpostaviti da će s mogućnošću treniranja ova "kreacija" biti pravi proboj.

Programi ruskih programera "Gorynych", "Diktograf" i "Borba" Ući ću u detalje u drugom dijelu ove recenzije. Ovaj je članak pisan vrlo sporo iz razloga što je potraga za originalnim diskovima sada otežana. Trenutačno već imam sve verzije ruskog softvera za prepoznavanje glasa u tekst, osim Combat 2.52. Nitko od mojih prijatelja ili kolega nema ovaj program, a ja sam imam samo nekoliko pohvalnih recenzija na forumima. Istina, postojala je tako čudna opcija - preuzimanje "Combat" putem SMS-a, ali ne sviđa mi se. (slika16)


Kratki video isječak pokazat će vam kako funkcionira prepoznavanje govora na pametnom telefonu s Android OS-om. Značajka glasovnog biranja je potreba za povezivanjem s Googleovim poslužiteljima. Dakle, Internet bi trebao raditi za vas

) na stvarnom Hello World primjeru upravljanja kućanskim aparatima.
Zašto kućanski aparati? Da, jer se zahvaljujući takvom primjeru to može cijeniti brzina i točnost, što se može postići korištenjem potpuno lokalno prepoznavanje govora bez tipskih poslužitelja Google ASR ili Yandex SpeechKit.
Također prilažem članku sve izvorne kodove programa i sam sklop za Android.

Zašto odjednom?

Nakon što sam nedavno slučajno naišao, pitao sam autora zašto želi koristiti prepoznavanje govora na strani poslužitelja za svoj program (po mom mišljenju, to je bilo suvišno i dovelo je do nekih problema). Na što sam dobio kontra pitanje mogu li detaljnije opisati korištenje alternativnih metoda za projekte u kojima ne treba ništa prepoznavati, a rječnik se sastoji od konačnog skupa riječi. Štoviše, s primjerom praktične primjene ...

Zašto nam treba još nešto osim Yandexa i Googlea?

Kao tu vrlo “praktičnu primjenu” odabrao sam temu pametno kućno glasovno upravljanje.
Zašto takav primjer? Jer na njemu možete vidjeti onih nekoliko prednosti potpuno lokalnog prepoznavanja govora u odnosu na prepoznavanje korištenjem cloud rješenja. Naime:
  • Ubrzati- ne ovisimo o poslužiteljima i stoga ne ovisimo o njihovoj dostupnosti, propusnosti itd. čimbenici
  • Točnost- naš motor radi samo s rječnikom za koji je naša aplikacija zainteresirana, čime se povećava kvaliteta prepoznavanja
  • Cijena- ne moramo plaćati svaki zahtjev poslužitelju
  • Glasovna aktivacija- kao dodatni bonus na prve bodove - možemo stalno "slušati zrak" bez gubitka prometa i bez opterećenja servera

Bilješka

Odmah ću rezervirati da se ove prednosti mogu smatrati prednostima samo za određenu klasu projekata, Gdje se nalazimo znamo sigurno, kojim će rječnikom i kojom gramatikom korisnik operirati. Odnosno, kada ne trebamo prepoznati proizvoljan tekst (na primjer, SMS poruku ili upit za pretraživanje). Inače, prepoznavanje u oblaku je neizostavno.

Dakle, Android može prepoznati govor bez interneta!
Da, da ... Samo na JellyBeanu. I to samo od pola metra, ne više. I ovo prepoznavanje je isti diktat, samo uz korištenje puno manjeg modela. Stoga ne možemo njime upravljati niti ga konfigurirati. A što će nam sljedeći put vratiti, ne zna se. Iako za SMS-ok taman!

Što nam je činiti?

Implementirat ćemo glasovni daljinski upravljač za kućanske aparate koji će raditi precizno i ​​brzo, s udaljenosti od nekoliko metara, pa čak i na jeftinom kočionom smeću na vrlo jeftinim Android pametnim telefonima, tabletima i satovima.
Logika će biti jednostavna, ali vrlo praktična. Aktiviramo mikrofon i izgovorimo jedan ili više naziva uređaja. Aplikacija ih prepoznaje i uključuje ili isključuje ovisno o trenutnom stanju. Ili od njih prima stanje i izgovara ga ugodnim ženskim glasom. Na primjer, trenutna temperatura u sobi.

Mnoštvo praktičnih primjena

Ujutro su, ne otvarajući oči, udarili ekranom pametnog telefona o noćni ormarić i zapovjedili "Dobro jutro!" - počinje scenarij, aparat za kavu se uključuje i zuji, čuje se ugodna glazba, zavjese se razmiču.
Objesite jeftini (2 tisuće, ne više) pametni telefon u svakoj sobi na zid. Idemo kući nakon posla i zapovijedamo u prazno “Pametna kuća! Svjetlo, TV! - Što će biti dalje, mislim da nije potrebno govoriti.

Transkripcije



Gramatika opisuje što što korisnik može reći. Da Pocketsphinx zna kako on će je izgovoriti, potrebno je za svaku riječ iz gramatike napisati kako zvuči u pripadajućem jezičnom modelu. To je transkripcija svaka riječ. To se zove rječnik.

Transkripcije se opisuju posebnom sintaksom. Na primjer:
pametna uu m n ay j kuća d oo m

U principu, ništa komplicirano. Dvostruki samoglasnik u transkripciji označava naglasak. Dvostruki suglasnik je mek suglasnik iza kojeg slijedi samoglasnik. Sve moguće kombinacije za sve glasove ruskog jezika.

Jasno je da ne možemo unaprijed opisati sve transkripcije u našoj aplikaciji, jer ne znamo unaprijed nazive koje će korisnik dati svojim uređajima. Stoga ćemo takve transkripcije generirati u hodu prema nekim pravilima ruske fonetike. Da biste to učinili, možete implementirati takvu PhonMapper klasu koja može primiti niz kao ulaz i generirati ispravnu transkripciju za njega.

Glasovna aktivacija

Ovo je sposobnost mehanizma za prepoznavanje govora da cijelo vrijeme "osluškuje zrak" kako bi odgovorio na unaprijed definiranu frazu (ili fraze). Svi ostali zvukovi i govor bit će odbačeni. Nije isto kao opisivati ​​gramatiku i samo uključiti mikrofon. Ovdje neću iznositi teoriju ovog zadatka i mehaniku kako on funkcionira. Dopustite mi samo da kažem da su nedavno programeri koji rade na Pocketsphinxu implementirali takvu funkciju, a sada je dostupna izvan kutije u API-ju.

Jedno je svakako vrijedno spomena. Za aktivacijsku frazu morate ne samo odrediti transkripciju, već i odabrati odgovarajuću vrijednost praga osjetljivosti. Premala vrijednost dovest će do mnogo lažno pozitivnih rezultata (ovo je kada niste izgovorili aktivacijsku frazu, ali je sustav prepoznaje). I previsoka - do imuniteta. Stoga je ova postavka od posebne važnosti. Približan raspon vrijednosti - od 1e-1 do 1e-40 ovisno o aktivacijskoj frazi.

Aktivacija blizine

Ovaj zadatak je specifičan za naš projekt i nije izravno vezan uz prepoznavanje. Kod se može vidjeti odmah u glavnoj aktivnosti.
Ona shvaća SensorEventListener te u trenutku približavanja (vrijednost senzora je manja od maksimalne vrijednosti), pokreće mjerač vremena, provjeravajući nakon određene odgode je li senzor još uvijek blokiran. To se radi kako bi se izbjegli lažni pozitivni rezultati.
Kada se senzor ponovno ne blokira, zaustavljamo prepoznavanje, dobivamo rezultat (vidi opis u nastavku).

Počinjemo s prepoznavanjem

Pocketsphinx pruža praktičan API za konfiguriranje i pokretanje procesa prepoznavanja. Ovo su klase SpechRecognizer i SpeechRecognizerSetup.
Evo kako izgleda konfiguracija i pokretanje prepoznavanja:

PhonMapper phonMapper = novi PhonMapper(getAssets().open("dict/ru/hotwords")); Gramatika gramatika = nova Gramatika(imena, phonMapper); grammar.addWords(hotword); DataFiles dataFiles = new DataFiles(getPackageName(), "ru"); Datoteka hmmDir = nova datoteka(dataFiles.getHmm()); File dict = nova datoteka(dataFiles.getDict()); Datoteka jsgf = nova datoteka(dataFiles.getJsgf()); copyAssets(hmmDir); saveFile(jsgf, grammar.getJsgf()); saveFile(dict, grammar.getDict()); mRecognizer = SpeechRecognizerSetup.defaultSetup() .setAcousticModel(hmmDir) .setDictionary(dict) .setBoolean("-remove_noise", false) .setKeywordThreshold(1e-7f) .getRecognizer(); mRecognizer.addKeyphraseSearch(KWS_SEARCH, ključna riječ); mRecognizer.addGrammarSearch(COMMAND_SEARCH, jsgf);

Ovdje prvo kopiramo sve potrebne datoteke na disk (Pocketpshinx zahtijeva akustični model, gramatiku i transkripcijski rječnik na disku). Zatim se konfigurira sam mehanizam za prepoznavanje. Navedene su staze do datoteka modela i rječnika, kao i neki parametri (prag osjetljivosti za aktivacijsku frazu). Zatim se konfigurira put do gramatičke datoteke, kao i fraza za aktiviranje.

Kao što možete vidjeti iz ovog koda, jedan mehanizam je konfiguriran za prepoznavanje gramatike i aktivacijske fraze odjednom. Zašto se to radi? Tako da se možemo brzo prebacivati ​​između onoga što trenutno trebamo prepoznati. Ovako izgleda pokretanje procesa prepoznavanja aktivacijske fraze:

MRecognizer.startListening(KWS_SEARCH);
I ovako - prepoznavanje govora prema zadanoj gramatici:

MRecognizer.startListening(COMMAND_SEARCH, 3000);
Drugi argument (neobavezno) je broj milisekundi nakon kojih će prepoznavanje automatski završiti ako nitko ništa ne kaže.
Kao što vidite, možete koristiti samo jedan motor za rješavanje oba problema.

Kako doći do rezultata prepoznavanja

Da biste dobili rezultat prepoznavanja, morate također navesti slušatelja događaja koji implementira sučelje RecognitionListener.
Ima nekoliko metoda koje poziva pocketsphinx kada se dogodi jedan od događaja:
  • naPočetkuGovora- motor je čuo neki zvuk, možda je to govor (a možda i nije)
  • onEndOfSpeech- zvuk je završio
  • onPartialResult- postoje srednji rezultati prepoznavanja. Za aktivacijsku frazu to znači da je djelovala. Argument Hipoteza
  • onResult- krajnji rezultat prepoznavanja. Ova metoda će biti pozvana nakon poziva metode Stop na SpeechRecognizer. Argument Hipoteza sadrži podatke o prepoznavanju (string i rezultat)

Implementacijom metoda onPartialResult i onResult na ovaj ili onaj način možete promijeniti logiku prepoznavanja i dobiti konačni rezultat. Evo kako se to radi za našu aplikaciju:

@Override public void onEndOfSpeech() ( Log.d(TAG, "onEndOfSpeech"); if (mRecognizer.getSearchName().equals(COMMAND_SEARCH)) ( mRecognizer.stop(); ) ) @Override public void onPartialResult(Hipoteza hipoteze) ( if (hypothesis == null) return; String text = hypothesis.getHypstr(); if (KWS_SEARCH.equals(mRecognizer.getSearchName())) ( startRecognition(); ) else ( Log.d(TAG, text); ) ) @Override public void onResult(Hipoteza hipoteze) ( mMicView.setBackgroundResource(R.drawable.background_big_mic); mHandler.removeCallbacks(mStopRecognitionCallback); String text = hipoteza != null ? hypothesis.getHypstr() : null; Log.d(TAG , "onResult " + tekst); if (COMMAND_SEARCH.equals(mRecognizer.getSearchName())) ( if (text != null) ( Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); process(text ); ) mRecognizer.startListening(KWS_SEARCH); ) )

Kada primimo onEndOfSpeech događaj, a ako u isto vrijeme prepoznamo naredbu koju treba izvršiti, tada trebamo zaustaviti prepoznavanje, nakon čega će se odmah pozvati onResult.
U onResultu morate provjeriti što je upravo prepoznato. Ako je ovo naredba, trebate je pokrenuti za izvršenje i prebaciti motor da prepozna aktivacijsku frazu.
U onPartialResultu zanima nas samo prepoznavanje aktivacijske fraze. Ako je detektiramo, odmah pokrećemo proces prepoznavanja naredbe. Evo kako to izgleda:

Privatni sinkronizirani void startRecognition() ( if (mRecognizer == null || COMMAND_SEARCH.equals(mRecognizer.getSearchName())) return; mRecognizer.cancel(); new ToneGenerator(AudioManager.STREAM_MUSIC, ToneGenerator.MAX_VOLUME).startTone(ToneGenerator. TONE_CDMA_PIP, 200); post(400, new Runnable() ( @Override public void run() ( mMicView.setBackgroundResource(R.drawable.background_big_mic_green); mRecognizer.startListening(COMMAND_SEARCH, 3000); Log.d(TAG, "Slušaj naredbe"); post(4000, mStopRecognitionCallback); ) )); )
Ovdje prvo pustimo mali signal kako bismo korisniku dali do znanja da smo ga čuli i da smo spremni za njegovu naredbu. Za to vrijeme mikrofon mora biti isključen. Stoga s prepoznavanjem krećemo nakon malog timeouta (nešto dužeg od trajanja signala, da ne čujemo njegov odjek). Također pokreće nit koja će prisiliti prepoznavanje da se zaustavi ako korisnik predugo govori. U ovom slučaju to je 3 sekunde.

Kako pretvoriti prepoznati niz u naredbe

Pa sve je već specifično za pojedinu aplikaciju. U slučaju golog primjera, jednostavno izvlačimo nazive uređaja iz retka, tražimo željeni uređaj i ili mijenjamo njegovo stanje koristeći HTTP zahtjev kontroleru pametne kuće, ili prijavljujemo njegovo trenutno stanje (kao u slučaju termostat). Ova se logika može vidjeti u klasi Controller.

Kako sintetizirati govor

Sinteza govora je inverzna operacija prepoznavanja. Ovdje, naprotiv, trebate pretvoriti redak teksta u govor tako da ga korisnik može čuti.
U slučaju termostata, moramo natjerati naš Android uređaj da kaže trenutnu temperaturu. Korištenje API-ja Tekst u govor ovo je prilično jednostavno učiniti (hvala Googleu na prekrasnom ženskom TTS-u za ruski jezik):

Private void speak(String text) ( sinkronizirano (mSpeechQueue) ( ​​​​mRecognizer.stop(); mSpeechQueue.add(text); HashMap parametri = novi HashMap (2); params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, UUID.randomUUID().toString()); params.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_MUSIC)); params.put(TextToSpeech.Engine.KEY_FEATURE_NETWORK_SYNTHESIS, "true"); mTextToSpeech.speak(tekst, TextToSpeech.QUEUE_ADD, parametri); ) )

Vjerojatno ću reći da je banalno, ali prije procesa sinteze potrebno je onemogućiti prepoznavanje. Na nekim uređajima (na primjer, svi Samsungovi) općenito je nemoguće slušati mikrofon i sintetizirati nešto u isto vrijeme.
Završetak sinteze govora (odnosno završetak procesa izgovaranja teksta od strane sintesajzera) može se pratiti u slušatelju:

Privatni konačni TextToSpeech.OnUtteranceCompletedListener mUtteranceCompletedListener = new TextToSpeech.OnUtteranceCompletedListener() ( @Override public void onUtteranceCompleted(String utteranceId) ( sinkronizirano (mSpeechQueue) ( ​​​​mSpeechQueue.poll(); if (mSpeechQueue.poll(); if (mSpeechQuetyRecovery()) KWS_SEARCH) ; ) ) ) );

U njemu jednostavno provjeravamo postoji li još nešto u redu čekanja za sintezu i uključujemo prepoznavanje aktivacijske fraze ako nema ničega drugog.

I to je sve?

Da! Kao što vidite, nije teško brzo i točno prepoznati govor izravno na uređaju, zahvaljujući prisutnosti tako divnih projekata kao što je Pocketsphinx. Pruža vrlo praktičan API koji se može koristiti za rješavanje problema povezanih s prepoznavanjem glasovnih naredbi.

U ovom primjeru smo zeznuli prepoznavanje na potpuno ispravan zadatak - glasovno upravljanje pametnim kućnim uređajima. Zahvaljujući lokalnom prepoznavanju postigli smo vrlo veliku brzinu i minimalizirali pogreške.
Jasno je da se isti kod može koristiti za druge zadatke vezane uz glas. Ne mora to biti pametna kuća. Dodaj oznake