哈哈,我还没有用过,可否发给我的油箱,试用一下.
[email protected]
[email protected]
解决方案 »
- UDP聊天程序,怎样获取对方发送过的字符的字体类型,大小,颜色和属性?
- 这个用Delphi编写的DLL,VB可调用,怎么用Delphi调用不行呀
- 求教Delphi的MediaPlayer控件为啥不能在WIN98以后播放VCD .DAT文件
- delphi 调用问题。。。报错
- 如何判断一个子窗口获得焦点??急用?
- 关于随机问题
- 发送信息时如何隐藏自已的IP
- delphi7在vista下操作system32文件夹的问题
- 发现一个新病毒,大家小心了。
- update到底如何用(如以下例子update起何作用),最好有典型的例子
- 请教ADO组件中Adotable,Adoconnection.Adoquery,,,,的各个用法,在什么时侯用才能更多好!?在线等待~
- 谁有NMFTP方面的资料,越详细的越好!
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, OleServer, SpeechLib_TLB, ComCtrls;type
TfrmVoices = class(TForm)
SpVoice1: TSpVoice;
Button1: TButton;
cmbVoices: TComboBox;
memText: TMemo;
Button2: TButton;
tbRate: TTrackBar;
tbVolume: TTrackBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button3: TButton;
Button4: TButton;
Label4: TLabel;
cmbAudioOutput: TComboBox;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure cmbVoicesChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure tbRateChange(Sender: TObject);
procedure tbVolumeChange(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure cmbAudioOutputChange(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
procedure InitVoices; //获取系统安装的语音库
procedure InitAudioOutputs; //获取系统声音输出设备
public
{ Public declarations }
end;var
frmVoices: TfrmVoices;implementation{$R *.DFM}procedure TfrmVoices.Button1Click(Sender: TObject);
begin
SpVoice1.Speak(memText.text,1);
end;procedure TfrmVoices.cmbVoicesChange(Sender: TObject);
var
a,b:WideString;
begin
SpVoice1.Voice:=SpVoice1.GetVoices(a,b).item(cmbVoices.ItemIndex)
end;procedure TfrmVoices.InitVoices;
var
a,b:WideString;
Voices:ISpeechObjectTokens;
i:integer;
begin
Voices:=SpVoice1.GetVoices(a,b);
for i:=0 to Voices.Count-1 do begin
cmbVoices.Items.Add(Voices.item(i).GetDescription(i))
end;
cmbVoices.ItemIndex:=0;
end;procedure TfrmVoices.FormCreate(Sender: TObject);
begin
InitVoices;
InitAudioOutputs;
tbRate.Position:=SpVoice1.Rate;
tbVolume.Position:=SpVoice1.Volume;
end;procedure TfrmVoices.tbRateChange(Sender: TObject);
begin
SpVoice1.Rate :=tbRate.Position;
end;procedure TfrmVoices.tbVolumeChange(Sender: TObject);
begin
SpVoice1.Volume := tbVolume.Position;
end;procedure TfrmVoices.Button3Click(Sender: TObject);
begin
SpVoice1.Pause
end;procedure TfrmVoices.Button4Click(Sender: TObject);
begin
SpVoice1.Resume
end;procedure TfrmVoices.InitAudioOutputs;
var
a,b:WideString;
AudioOutputs:ISpeechObjectTokens;
i:integer;
begin
AudioOutputs:=SpVoice1.GetAudioOutputs(a,b);
for i:=0 to AudioOutputs.Count-1 do begin
cmbAudioOutput.Items.Add(AudioOutputs.item(i).GetDescription(i))
end;
cmbAudioOutput.ItemIndex:=0;
end;procedure TfrmVoices.cmbAudioOutputChange(Sender: TObject);
var
a,b:WideString;
begin
SpVoice1.AudioOutput:=SpVoice1.GetAudioOutputs(a,b).item(cmbAudioOutput.ItemIndex)
end;procedure TfrmVoices.Button5Click(Sender: TObject);
var
WaveFileStream:SpFileStream;
SpFileMode:SpeechStreamFileMode;
begin
SpFileMode := SpeechStreamFileMode.SSFMCreateForWrite;
WaveFileStream.Open('c:\1.wav',SpFileMode,false);
SpVoice1.AudioOutputStream:= WaveFileStream;
SpVoice1.Speak(memtext.text,1);
SpVoice1.WaitUntilDone(1000);
WaveFileStream.Close;
end;end.