Rozpoznávání hlasu v Delphi

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: ?source/*-
Datum: 13.4.2005
Hodnocení/Hlasovalo: 2.38/13

Rozpoznávání hlasů se zajímamá technologie a s MS Speech API to velmi usdadní ...

Nejdříve trocha teorie...

(Více info o MS Speech API najdete někde jinde na netu. Tento článek není určen k rozsáhlému popisu MS Speech API) Lidé si asi od vzniku počítačů vždy přáli, aby byla co nejjednodušší jejich obsluha. Klávesnice se moc na ovládání celého počítače moc nelíbila a tak si lidé vymysleli různá polohovací zařízení. (myši, trackbally atd.) Ty sice práci s počítačem usnadnily, ale neurychlily. Spousta lidí si ovládá "své" windowsky raději myší než klávesnicí, ale již od prvních sci-fi knížek, kde se začaly objevovat počítače ovládané hlasem. Dnešní lidé chtějí na počítač prostě jenom mluvit. To lze docílit techniky zvané rozpoznávání hlasu. Rozpoznávání hlasu je a vždy bude velmi složitou technikou, ať na programování nebo na hardware. Pokud by jste chtěli vytvořit vlastní aplikaci (např. textový editor), který by nepotřeboval klávesnici pro zadávání textu, ale poslouchal by uživatele co mu diktuje tak by jsme měli s každou aplikací programovat hlasovou syntézu, tak by se vývoj pěkně protáhl. Proto Microsoft (zase ten Gates :-) ) přidal do svých operačních systémů přidal MS Speech API. O co jde?

MS Speech API

Pro začátek by jste měli vědět, že MS Speech API umí správně zatím přečíst pouze angličtinu (snad do budoucna třeba i Čeština) a podle jistých zdrojů na internetu prý i čínštinu (to jsem neměl příležitost vyzkoušet, poněvaž neumím čínsky :-) ) Požadavky na systém jsou ve skutečnosti docela velké, ale podle Microsoftu jsou zase přehnaně nízké:

Samozřejmě, že vám tato sestava nebude stačit pro řízení počítače přes mikrofon . Vždy platí zásada: čím víc, tím líp a to platí i u MHz. Záleží na tom co od toho očekáváte, třeba na čtení textu stačí poměrně slabý počítač, ale s rozpoznáváním hlasu je to již horší. Ale co to vlastně je MS Speech API je? Je to vlastně rozhraní mezi aplikacemi hlasovými enginy. Obecně lze MS Speech API rozdělit na dvě části:

Nastavit použitý hlas a jeho parametry si můžete v Ovládacích panelech pod položkou Program Speech. Zde se dá nastavit několik parametrů, jako například rychlost čtení, použitý hlas na předčítání atd.

Ukázka

Nyní nás nečeká nic jiného než vytoužená ukázka. Na to co náš program bude umět je zdrojový kód doslova směšný.

Dnešní program

Dost už bylo řečí, tak tedy začneme. Na formulář si dáme pouze jedno tlačítka a edit, do kterého napíšeme text, který později přečteme. Kód bude až nezvykle jednoduchý, protože používám MS Speech API. Akorát je potřeba přidat do uses knihovnu Comobj. Nyní již slibovaný zdrojový kód:

 

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls, Comobj;

type TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation {$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

var

hlas: OLEVariant;

begin

  hlas:= CreateOLEObject('SAPI.SpVoice');

  hlas.Speak(Edit1.Text, 0);  // přečtení textu z editu...

end;

end.

 

Jak vidíte vývoj hlasem ovládaných aplikací není ještě tak daleko jak by jsme si přáli. Na dobu kdy se budeme s počítačem hlasem hádat o tom, že ten "životně důležitý" proces chceme opravdu ukončit je zřejmě ještě daleko. Dnešní program si lze stáhnout zde. Doporučuji s prográmkem vyhrát, třeba na konec věty dávat otazník atd.

 

?source/*-