» »

Speech recognition

Speech recognition

Loaded ::

Pozdravljeni!

V program bi vključo speech recognition...uporabo bi Microsoft Speech SDK, vendar ne vem kako deluje za slovenski jezik. Našel sem neke programčke ( primer ) vendar ne vem kako bi ga skonfiguriral da bi iskal samo med tistimi besedami, katere bi jaz hotel imet vključene.

Lp
Loadeed

techfreak :) ::

Sem testiral nekaj takšnega in je delovalo kar dobro, dokler sem uporabljal slovar besed, seveda za angleščino, dvomim da deluje za slovenščino. V vsakem primeru pa je zaznavanje veliko boljše, če opraviš tista dva MSjeva "tečaja", ko računalniku bereš besedilo in se uči tvojo izgovorjavo.

Potrebuješ nekaj takšnega:
using SpeechLib;

	public class Form1 : System.Windows.Forms.Form
	{
		private IContainer components;

		private SpeechLib.SpSharedRecoContext objRecoContext = null;
		private SpeechLib.ISpeechRecoGrammar grammar = null;
		private SpeechLib.ISpeechGrammarRule menuRule=null;
		Dictionary<string, string> keywords = new Dictionary<string, string>();
		
		keywords.Add("Open", "open");
		keywords.Add("Close", "close");
		
		// Get an insance of RecoContext. I am using the shared RecoContext.
		objRecoContext = new SpeechLib.SpSharedRecoContext();
		// Assign a eventhandler for the Hypothesis Event.
		objRecoContext.Hypothesis += new _ISpeechRecoContextEvents_HypothesisEventHandler(Hypo_Event);
		// Assign a eventhandler for the Recognition Event.
		objRecoContext.Recognition += new 
		_ISpeechRecoContextEvents_RecognitionEventHandler(Reco_Event);
		//Creating an instance of the grammer object.
		grammar = objRecoContext.CreateGrammar(0);
		//Activate the Menu Commands.			
		menuRule = grammar.Rules.Add("MenuCommands",SpeechRuleAttributes.SRATopLevel|SpeechRuleAttributes.SRADynamic,1);
		object      PropValue = "";

		foreach (KeyValuePair<string, string> pair in keywords)
		{
		menuRule.InitialState.AddWordTransition(null, pair.Key, " ", SpeechGrammarWordType.SGLexical, pair.Key, 11, ref PropValue, 1.0F);
		}

		grammar.Rules.Commit();
		grammar.CmdSetRuleState("MenuCommands", SpeechRuleState.SGDSActive);
	}

	private void Reco_Event(int StreamNumber, object StreamPosition,SpeechRecognitionType RecognitionType,ISpeechRecoResult Result)
	{
		string r = Result.PhraseInfo.GetText(0, -1, true);

		if (keywords.ContainsKey(r))
		{
			TextBox1.Text = keywords[r].ToString();
		}
	}

	private void Hypo_Event(int StreamNumber, object StreamPosition, ISpeechRecoResult Result)
	{
		txtHyp.Text = Result.PhraseInfo.GetText(0, -1, true);
	}
}

Loaded ::

To sem že našel na netu ja...sprobal na windows 7 in deluje odlično za angleščino, ampak na žalost ne za slovenščino.
Kolikor sem prebral rabiš met za tole na windows XP inštaliran Office..

Zasledil sem tudi nek Microsoftov Speech SDK...vendar ne vem ali je to popolnoma nekaj drugega in seveda spet za angleščino.

Lp
Loadeed

Aston_11 ::

Sam se se pred leti zafrkaval z Recognito al kaj je zdaj. V slovar sem dodal slovenske besede, besede s šumniki pa sem priredil tako, da sem npr. š pisal kot sh. Je pa bilo jeba vse besede tako prirediti. Slovar je enostavno narediti - vzameš text z neta in dodajaš v slovar. Odvisno od uporabe ta niti ne bi bil zelo obsežen. Dlje kot od experimentalne faze nisem prišel, je pa že v tej fazi delalo presenetljivo dobro. Agleščkim komandam sem dodal slovenske (npr. paragrapf oz. odstavek) in je vse lepo delalo. Recognita (oz. Dragon naturally speaking) je, kar se tega tiče zelo prilagodljiva. Ni pa bilo za tisto, kar sem rabil, da bi narekoval in da bi pisal text. To bi delalo v parih mesecih, vendar tega časa ni bilo.

Loaded ::

@techfreak kaj se da mogoče zgornji program prirediti tako, da išče samo besede ki so v nekem svojem slovarju?...torej da bi naredil nek svoj slovar, dodal besede in bi program samo med tistimi besedami iskal.

Lp
Loadeed

techfreak :) ::

Saj imaš svoj slovar:
Dictionary<string, string> keywords = new Dictionary<string, string>();


Dodajaš jih pa preko:
keywords.Add("Open", "open");
keywords.Add("Close", "close");

Zgodovina sprememb…

Loaded ::

Za slovenščino tole ne deluje lih dobro....sem probal z ena ali dva pa mi skoz meče ven I'm not ali pa at all...Enostavno ne prepozna.
Loadeed

Loaded ::

A veš še kdo na kak način bi lahko to naredil?

Lp
Loadeed

Loaded ::

Neka ideja je da bi uporabil HTK, ali Julius ali pa Sphinx. Se pravi v enem od teh razvil recognizera in potem vse skupaj uporabil v C#.
Zanima me , če je kdo kaj že delal s temi orodji...ali so težka za naštudirat? Nekaj sem že bral ampak ne vem kako bi se zadeve lotil.
Gledal sem tudi VoiceXML ampak nebi vedel za kaj natačno se uporablja...za branje texta?

Lp
Loadeed

Looooooka ::

Za slovenscino...skoraj nemogoce.Par let nazaj je bil en projekt na arnesu, ki je celo kazal znake napredka pa je kasneje lepo zamrl.
Ce kaj najdes pa kar objavi :)

globoko grlo ::

oj, ali obstaja kakšen program, ki bi avdio posnetek (eng) zapisal v txt?

FuI2cY ::

Pozdravljeni,

da ne ustvarjam nove teme, bom kar staro si sposodil :)

zanima me, če ve kdo glede prepoznavanja govora v slovenskem jeziku ? Če je kakšna knjižica ali kakršnakoli druga opcija, da bi prepoznavalo govor v slovenščini? Tukaj ne gre za tekoči govor ampak samo za prepoznavanje nekaj osnovnih besed. Maksimalno bosta dve besedi skupaj za izgovorit.

Hvala za kakršenkoli nasvet.

LP

pegasus ::

Vprašaj na Amebisu.

jan_g ::

Vem, da HP ponuja v okviru svoje rešitve za voice (OpenCall) tudi modul za ASR, ki razmeroma zadovoljivo prepozna tudi slovenščino. Ampak to je komercialni softver za TK podjetja (uporabljen recimo na Mobitelu za m-vstopnico). Po mojem ni taka znanost (no, to naj pove kdo, ki se je s podobnimi problemi ukvarjal), ampak se noben ne spravi tega delati pro bono, da bi imeli prosto dostopne knjižnice in (ugibam) slovarje s fonetično izgovorjavo za slovenščino.

simba89 ::

Google ima sedaj na voljo speech to text tudi za slovenski jezik in kolikor jaz uporabljam,
deluje zelo solidno, lahko bi rekel kar nadpovprečno dobro.
Ali se stvar tudi sproti uči, oziroma ali se dela kakšna baza besed, ki jih izgovarjaš, da potem lažje
prepozna, če jo kdaj izgovoriš ne tako razločno.

V google drive dokumentu pod orodji daš speech to tekst in začneš govoriti v mikrofon,
nato pa se ti začne izpisovati tekst.

Če bi ocenil uspešnost bi rekel, da je 90 %.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Rtl-sdr - Tetra/DMR/ZARE - težave/problemi (strani: 1 2 3 )

Oddelek: Zvok in slika
13928790 (623) hipertija
»

UserControl v Wrappanelu WPF

Oddelek: Programiranje
51152 (974) hurlimannxt
»

[Android] Bluetooth aplikacija

Oddelek: Programiranje
51098 (961) marjan_h
»

[Java] Urejanje baze z JTable

Oddelek: Programiranje
81020 (804) vonNeumann
»

C# okna in podokna

Oddelek: Programiranje
111663 (1257) FlashM

Več podobnih tem