Delphi7怎么样调用系统语音库

Delphi7怎么样调用系统语音库,第1张

(一)要使用系统的语音库,你需要先安装 Microsoft Speech SDK 5.1 及其语言包,下载地址:Speech SDK 5.1: http://www.newhua.com/soft/38264.htm

Speech SDK 5.1 语言包(中英文): http://www.onlinedown.net/soft/38265.htm (二)安装完成后,需要在D7里导入类库以便生成SAPI组件于IDE组件面板.启动D7, Project ->Import Type Library->找到Microsoft Speech Object Library (Version 5.0)点Install..成功后会在D7的组件面板里出现 SAPI 5.1 控件页.(三)OK,开始来个简单的工程.启动D7新建个工程,往窗口里扔进一个TMemo,两个TButton,再扔进一个TSpVoice(SAPI 5.1控件页),写下下边的代码:unit Unit1interfaceuses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, OleServer, SpeechLib_TLB, StdCtrlstype

TForm1 = class(TForm)

Button1: TButton

Memo1: TMemo

SpVoice1: TSpVoice

Button2: TButton

Button3: TButton

procedure Button1Click(Sender: TObject)

procedure Button3Click(Sender: TObject)

private

{ Private declarations }

public

procedure PlayVoxEx

endvar

Form1: TForm1implementation{$R *.dfm}{ TForm1 }procedure TForm1.PlayVoxEx

var

 i: Integer

 s,t: String

begin

 s:=Memo1.Text

 for i:=1 to Length(s) do

 begin

if not (s[i] in [#10,#13]) then

begin

 if ByteType(s, i)=mbSingleByte then

begin

 SpVoice1.Voice:=SpVoice1.GetVoices('','').Item(0)//设置报读的语种,0为英文,3为中文

 t:=s[i]

end

 else if ByteType(s, i)=mbLeadByte then

begin

 SpVoice1.Voice:=SpVoice1.GetVoices('','').Item(3)

 t:=s[i]

 t:=s[i]+s[i+1]

end

 else

continue

 SpVoice1.Speak(t, SVSFlagsAsync)//读出Text

end

 end

endprocedure TForm1.Button1Click(Sender: TObject)

begin

 SpVoice1.Voice:=SpVoice1.GetVoices('','').Item(3)

 SpVoice1.Speak(Memo1.Text, SVSFlagsAsync)

endprocedure TForm1.Button3Click(Sender: TObject)

begin

 SpVoice1.Voice:=SpVoice1.GetVoices('','').Item(0)

 SpVoice1.Speak(Memo1.Text, SVSFlagsAsync)

endend.

Button1是直接读中文语音的,Button2可以读中英文混合(效果相当差),Button3直接读英文用的我知道的就这么多了, 希望对你有点用...

在Form界面上添加ADOquery控件,然后将其与你需要写入数据的数据库中的某张表table1建立链接;假设你的table里有三个字段分别是ID(varchar类型),time(datetime类型),daxiao(real类型);则给数据库表中添加记录如下:

qrystringstring

with ADOQuery1 do

begin

qrystring:='insert into table1 (ID,time,daxiao)VALUES

('+''''+'id1'+''''+','+''''+'2013-9-30 00:00:00'+''''+','+''''+floattostr(daxiao)+''''+')'

ADOQuery1.Close

ADOQuery1.SQL.clear

ADOQuery1.SQL.Add(qrystring)

try

ADOQuery1.execsql

except

ADOQuery1.cancel

end

end

这是只是其中的一种方法,adoquery的以及根据你用的控件不同还可以有多种,看你的侧重点在哪儿了。

数据库和.NET有什么关系啊,Delphi的版本在7.0和8.0是一个很大的变化,8.0是Delphi初探.NET的一个版本,为什么网上没的下载呢,因为它不是一个很好的版本。数据库开发直接7.0好了。去找7.0的教程。

还有,别用BDE连数据库,那是自找麻烦,用微软的ADO(Delphi7.0中也有相应的组件,在ADO组件卡中),上网自己找教程去。

再说一下,.NET和数据库两回事。

.net和delphi7不是同一个软件吗?--------这句话真是,哎。。。

上网查查再弄这个问题吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11602469.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存