Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 8546|回复: 15

Lazarus for 文本转语音程序(Lazaurs中文社区首发)

[复制链接]

该用户从未签到

发表于 2012-3-19 10:58:15 | 显示全部楼层 |阅读模式
这个程序好玩,可以朗读MEMO上文字
Lazarus中文社区首发
开发工具:FreePascal2.6.0 + Lazarus 0.9.30.4
作者:东兰梦舞
时间:2012.03.18





网盘直接下载:
http://filemarkets.com/file/bugxiong/0b7963d5/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册(注册审核可向QQ群索取)

x
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2012-3-19 20:15:02 | 显示全部楼层
没有,源码作者没有公开
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-20 14:52:01 | 显示全部楼层
那位有完整点的,入门容易点的,微软语音库使用的教程?必须中文的。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-20 18:19:29 | 显示全部楼层
反编译是好样的,呵呵。

这里有源码……
http://www.fpccn.com/read.php?tid=1700
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2012-3-20 19:33:31 | 显示全部楼层

回 4楼(东兰梦舞) 的帖子

东兰梦舞:反编译是好样的,呵呵。

这里有源码……
http://www.fpccn.com/read.php?tid=1700 (2012-03-20 18:19) 
哈哈,原来是这样滴啊
有证就是不一般
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2012-3-19 19:59:18 | 显示全部楼层
请问一下没源码?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-2-16 03:05:26 | 显示全部楼层
链接打不开了.
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2019-5-29 22:08:50 | 显示全部楼层

RE: Lazarus for 文本转语音程序(Lazaurs中文社区首发)

這裡有一些參考資料, 暫時抵著先 ...
http://www.blong.com/Conferences ... h/SAPI51/SAPI51.htm

取之於社會, 用之於社會
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2019-5-29 23:10:09 | 显示全部楼层

RE: Lazarus for 文本转语音程序(Lazaurs中文社区首发)

本帖最后由 bruce0829 于 2019-5-29 23:11 编辑

先試出講英文的

uses ...., comobj;

//參考 http://wiki.freepascal.org/SAPI
procedure TForm1.Button1Click(Sender: TObject);
var SavedCW: Word;
    SpVoice: Variant;
begin
  SpVoice := CreateOleObject('SAPI.SpVoice'); //use comobj
  // Change FPU interrupt mask to avoid SIGFPE exceptions
  SavedCW := Get8087CW;
  try
    Set8087CW(SavedCW or $4);
    SpVoice.Speak('This is a book, that is a pen', 0);  //播放 'This is a book, that is a pen'
  finally
    // Restore FPU mask
    Set8087CW(SavedCW);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var SpVoice1: Variant;
    VoiceString: WideString; // WideString must be used to assign variable for speech to function, can be Global.
begin
  SpVoice1 := CreateOleObject('SAPI.SpVoice'); // Can be assigned in form.create
  VoiceString := Button2.Caption;              // variable assignment  //播放 Button2.Caption (:='Lazarus is the best')
  SpVoice1.Speak(VoiceString,0);
end;                                   
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2019-5-30 15:05:48 | 显示全部楼层

RE: Lazarus for 文本转语音程序(Lazaurs中文社区首发)

講中文的

procedure TForm1.Button1Click(Sender: TObject);
var SavedCW: Word;
    SpVoice: OleVariant;
    lO, lV, lX: OleVariant;
    Voices, Voice: OleVariant;
    x: integer;
    VoiceString: WideString;
begin
  SpVoice := CreateOleObject('SAPI.SpVoice'); //use comobj   

  //獲取系統語音庫列表(放到 Memo1 上)
  lV := SpVoice.GetVoices;
  for x := 0 to lV.count - 1 do
  begin
    lX := lV.item(x);
    Memo1.Lines.Add(lX.GetDescription);
  end;

  Voices := SpVoice.GetVoices;
  Voice := Voices.Item(0); //使用第一個系統語音庫
  Caption := string(Voice.GetDescription);
  SpVoice.Voice := IDispatch(Voice);

  VoiceString:=PChar('ready to say , 我會說中文'); //中文試好久才知要加 PChar()
  SpVoice.Speak(VoiceString, 0);

end;        
回复 支持 反对

使用道具 举报

*滑块验证:

本版积分规则

QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

GMT+8, 2025-5-2 12:14 , Processed in 0.031142 second(s), 12 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表