语音播放(300分)

  • 主题发起人 主题发起人 爱念
  • 开始时间 开始时间

爱念

Unregistered / Unconfirmed
GUEST, unregistred user!
谁有普通话语音库?粤语版的语音库?
能不能提供一段语音播放的代码??
 
可以自己录制语音库,通过windows上的录音机,或者可以在网上找
下面是例程

use mmsystem;
SndPlaySound('hello.wav',SND_FILENAME or SND_SYNC)

///////////////////////////////////
unit PlaySnd1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
PlaySndFromFile: TButton;
PlaySndFromMemory: TButton;
PlaySndbyLoadRes: TButton;
PlaySndFromRes: TButton;
procedure PlaySndFromFileClick(Sender: TObject);
procedure PlaySndFromMemoryClick(Sender: TObject);
procedure PlaySndFromResClick(Sender: TObject);
procedure PlaySndbyLoadResClick(Sender: TObject);
private

{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;

implementation

{$R *.DFM}

{$R snddata.res}

uses MMSystem;

procedure TForm1.PlaySndFromFileClick(Sender: TObject);
begin

sndPlaySound('hello.wav',
SND_FILENAME or SND_SYNC);
end;


procedure TForm1.PlaySndFromMemoryClick(Sender: TObject);
var
f: file;
p: pointer;
fs: integer;
begin

AssignFile(f, 'hello.wav');
Reset(f,1);

fs := FileSize(f);
GetMem(p, fs);
BlockRead(f, p^, fs);
CloseFile(f);
sndPlaySound(p,
SND_MEMORY or SND_SYNC);
FreeMem(p, fs);
end;


procedure TForm1.PlaySndFromResClick(Sender: TObject);
begin

PlaySound('HELLO',
hInstance,
SND_RESOURCE or SND_SYNC);
end;


procedure TForm1.PlaySndbyLoadResClick(Sender: TObject);
var
h: THandle;
p: pointer;
begin

h := FindResource(hInstance,
'HELLO',

'WAVE');
h := LoadResource(hInstance, h);
p := LockResource(h);
sndPlaySound(p,
SND_MEMORY or SND_SYNC);
UnLockResource(h);
FreeResource(h);
end;



end.


 
帮你提前先!
 
我没作过这方面的东东,现你顶一下了!
 
后退
顶部