Syntezator mowy Sam
To jest program, który tylko pokazuje, jak umieścić syntezator mowy istniejący w komputerze we własnym programie, aby sprawdzać wymowę angielską w wydaniu tego syntezatora. Utwórz projekt, wklej kod Unit1 i uruchom. Nic więcej nie trzeba robić, no chyba, że masz wyłączony dźwięk.
Najważniejsze w kodzie jest:
Napisałem ten gotowiec z myślą o osobach mniej zaawansowanych w Delphi, a bardziej zainteresowanych analizą wymowy syntezatora, po otrzymaniu jednego z pytań do mojego artykułu "Jak zrobić syntezator mowy polskiej wykorzystując Microsoft Sam’a". Właściwie to chodzi o to, żeby nie wchodzić za każdym razem do Panelu strowania / Mowa.
Najważniejsze w kodzie jest:
uses Variants, ComObj; Sam: OLEVariant; Sam := CreateOLEObject('SApi.SpVoice'); Sam.Speak(Edit.Text);
Napisałem ten gotowiec z myślą o osobach mniej zaawansowanych w Delphi, a bardziej zainteresowanych analizą wymowy syntezatora, po otrzymaniu jednego z pytań do mojego artykułu "Jak zrobić syntezator mowy polskiej wykorzystując Microsoft Sam’a". Właściwie to chodzi o to, żeby nie wchodzić za każdym razem do Panelu strowania / Mowa.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure ButtonClick(Sender: TObject); public Prompt: TLabel; Edit: TEdit; Button: TButton; Sam: OLEVariant; end; var Form1: TForm1; implementation {$R *.dfm} uses ComObj; procedure TForm1.FormCreate(Sender: TObject); begin Sam := CreateOLEObject('SApi.SpVoice'); Width := 800; Height := 600; Position := poScreenCenter; Font.Name := 'Tahoma'; Font.Size := 8; Font.Style := [fsBold]; Prompt := TLabel.Create(Self); Prompt.Left := 20; Prompt.Caption := 'Wpisz tekst, którego wymowę chcesz testować.'; Prompt.Top := 10; InsertControl(Prompt); Edit := TEdit.Create(Self); Edit.Left := Prompt.Left; Edit.Width := Width - Edit.Left * 2; Edit.Top := Prompt.Top + Prompt.Height + 10; Edit.Text := 'This is your computer''s default voice.'; InsertControl(Edit); Button := TButton.Create(Self); Button.Left := 20; Button.Width := 80; Button.Caption := 'Czytaj'; Button.Top := Edit.Top + Edit.Height + 10; Button.OnClick := ButtonClick; InsertControl(Button); end; procedure TForm1.ButtonClick(Sender: TObject); begin if Trim(Edit.Text) <> '' then Sam.Speak(Edit.Text); end; end.
2 komentarze
http://4programmers.net/Delphi[...]_wykorzystując_Microsoft_Sam’a
szkoda ze sam nie nawija po polsku xd