关于Speech的语音问题,有空也来UP下.(100分)

  • 主题发起人 主题发起人 gydsj
  • 开始时间 开始时间
G

gydsj

Unregistered / Unconfirmed
GUEST, unregistred user!
我装了speech sdk 5.1,在delphi中也安装了DirectSS控件.
用这个控件可以读英文,但不能读中文(中文的我也安装了).
我通过下面这两个来设置, 一点反应都没有.
DirectSS1.LanguageID();
DirectSS1.EngineID();
请大侠们帮帮忙.谢谢了.
 
没人知道吗???
 
可以读中文的么?
 
难道这里没有高手吗?
 
何必这么辛苦?有一个Dll如下:
unit TTSDLL;
interface
uses VtxtAuto_TLB;
procedure Create;export;
{待导出的过程和函数}
procedure Read(text:PChar);export;
procedure Pause;export;
procedure Resume;export;
procedure Stop;export;
function IsSpeaking:Boolean;export;
procedure Destory;export;
var
TTS:IVTxtauto;
implementation
procedure Create;
begin

tts:=vtxtauto_tlb.CoVTxtAuto_.Create;
//TTS:=CoVTxtAuto.Create;
{创建对象}
TTS.Register('MSTTS','MSTTS');
{注册 }
end;

procedure Read(text:PChar);
begin

TTS.Speak(text,vtxtst_READING);

{朗读函数。第一参数是待朗读的文本。第二参数用于控制朗读的语气和优先级,主要有以下几种,可以根据需要灵活选择,如需多种选择将其进行或运算即可:
vtxtst_STATEMENT = 1;平时说话时语气,默认。
vtxtst_QUESTION = 2;
提问的语气。
vtxtst_COMMAND = 4;
命令的语气。
vtxtst_WARNING = 8;
警告的语气。
vtxtst_READING = 16;
阅读文档时的语气。
vtxtst_NUMBERS = 32;
阅读数字时的语气。
vtxtst_SPREADSHEET = 64;
阅读电子表格中元素时的语气。
vtxtsp_VERYHIGH = 128;
立即读出,可以打断当前正读的内容。
vtxtsp_HIGH = 256;
尽快读出,加入播放队列开始。
vtxtsp_NORMAL = 512;
默认,加入播放队列末尾。}
end;


procedure Pause;
begin

TTS.AudioPause;
{暂停朗读}
end;


procedure Stop;
begin

TTS.StopSpeaking;{终止朗读}
end;


procedure Resume;
begin

TTS.AudioResume;{恢复朗读}
end;


function IsSpeaking:Boolean;
var
Check:Boolean;

begin

if TTS.IsSpeaking then
{判断当前状态}
begin

Check:=TRUE;{当前正在朗读}
end
else

begin

Check:=FALSE;{当前没有朗读}
end;


Result:=Check;{返回状态值}
end;



procedure Destory;
begin

TTS:=nil;{释放对象}
end;


end.
 
我恰好刚刚做了这样一个控件。我来说说吧。
楼上那位的方法没法念中文,就算装了中文包也是,因为中文包不是为它做的。

安装了sdk5.1后,在Delphi里面Import Type Library对话框里会有一个Micosoft SAPI...
的ActiveX组件,将它导入。你会看到一大堆控件,不过你要用的只是TSpVoice而已。
TSpVoice实现了对SAPI的包装,能够设置Rate, volume,当然还有Voice(即声音,也就是
你要的中文效果),用TSpObjectTokens的EnumTokens方法得到目前安装的语音,装了
中文包后你就能得到中文的那个语音,然后TSpVoice.Voice := ...就可以了。
详细请看SAPI.chm(sdk5.1中自带的help)以及其中的例程。
 
高手,给个demo看看。人笨,没办法!谢了
 
对呀,大哥经个 DEMO看看吧
lance0909@hotmail.com
 
sweetgun,
能不能给个简单的例子?多谢!
 
我在线程中老是不能实现发音
但用单线程却可以,真急人
 
后退
顶部