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:
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.
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.
| Ostatnia modyfikacja | 29-12-2009 08:58 | Ostatni autor | Artur Protasewicz |
| Ilość wyświetleń | 1190 | Wersja | 1 |
Coldpeer dnia 30-12-2009 20:44
http://4programmers.net/Delphi[...]korzystując_Microsoft_Sam’a


