📄 voiceformpu.~pas
字号:
unit VoiceFormpU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, StdCtrls, ExtCtrls, Buttons, ComCtrls, OleServer,
SpeechLib_TLB;
type
TVoiceFormp = class(TForm)
Panel1: TPanel;
ComboEngine: TComboBox;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
SpVoice1: TSpVoice;
Memo1: TMemo;
Button1: TButton;
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TVoiceFormp.FormShow(Sender: TObject);
var
Sots1:ISpeechObjectTokens;
Sot1:ISpeechObjectToken;
i:integer;
begin
SpVoice1.EventInterests := SVEAllEvents;
Sots1:=SpVoice1.GetVoices('','');
ComboEngine.Clear;
for i := 0 to Sots1.Count-1 do
begin
Sot1:=Sots1.Item(i);
ComboEngine.Items.Add(Sot1.GetDescription(0));
end;
begin
if ComboEngine.Items.Count > 0 then
begin
if ComboEngine.Items.IndexOf('Microsoft Simplified Chinese')=-1 then
ComboEngine.ItemIndex := 0
else
ComboEngine.ItemIndex := ComboEngine.Items.IndexOf('Microsoft Simplified Chinese');
end;
end;
end;
procedure TVoiceFormp.BitBtn1Click(Sender: TObject);
begin
SpVoice1.Speak(Memo1.Lines.Text,SPFM_CREATE_ALWAYS);
end;
procedure TVoiceFormp.TrackBar2Change(Sender: TObject);
begin
{
if SpVoice1.Rate>-10 then
SpVoice1.Rate:=SpVoice1.Rate-1;
}
SpVoice1.Rate:=TrackBar2.Position ;
end;
procedure TVoiceFormp.TrackBar1Change(Sender: TObject);
begin
//SpVoice1.Rate:=TrackBar2.Position ;
SpVoice1.Volume:=TrackBar1.Position ;
end;
procedure TVoiceFormp.Button1Click(Sender: TObject);
begin
SpVoice1.Pause;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -