土木在线论坛 \ 建筑设计 \ CAD下载及教程 \ 想让你的LISP程序说话吗?

想让你的LISP程序说话吗?

发布于:2007-09-01 09:12:01 来自:建筑设计/CAD下载及教程 [复制转发]
想让你的LISP程序说话吗?
答案是安装微软中文语言引擎后,使用下面这个函数即可实现。
[code]
;|;=====================================================================
定义函数:zml-speak ( str mode )
功 能:将字符转换为语音输出
参数说明: str----欲语音输出的内容,类型:字符串
mode---语音模式(0--英文;1--中文)
返回值 :若成功为字符串,否则为nil
示 例:(zml-speak "欢迎您!" 1)
返 回:"欢迎您!"
日 期:zml84 于2007-05-10
|;
(defun zml-speak (str mode)
(if (= (type str) ’STR)
(if (setq sapi (vlax-create-object "Sapi.SpVoice"))
(progn
(cond
;;使用英文引擎
((= mode 0)
(setq speekContent
""
)
)
;;使用中文引擎
((= mode 1)
(setq speekContent
""

)
)
) ;_结束 cond
(setq speekContent
(strcat speekContent
str
""
)
)

(setq str speekContent)
;;(vlax-invoke-method sapi "Speak" str 3)
(vlax-invoke
sapi
"Speak"
str
0
)
(vlax-release-object sapi)
str
)
)
)
)
;;;=====================================================================
;;;练习
(vl-load-com)
(defun c:speak (/ tmp)
(if (zml-speak "输入词句!" 1)
(while (/=
(setq tmp (getstring "\n输入字词或句子:"))
""
)
(zml-speak tmp 1)
)
(princ "\n不能继续,原因是:系统中未安装语音工具包。")
)
(princ)
)
;;;=====================================================================
;;;加载后的提示信息
(princ "\n语音提示练习 加载完成!!")
(zml-speak "加载完成!!" 1)
(princ "\n★输入命令\"speak\"开始运行\n")
(princ)
[/code]
更多相关讨论,参见:http://www.acad.net.cn/viewthread.php?tid=41&extra=page%3D1

全部回复(2 )

只看楼主 我来说两句抢地板
  • chenjun19842002
    定义函数:zml-speak ( str mode )
    功 能:将字符转换为语音输出
    参数说明: str----欲语音输出的内容,类型:字符串
    mode---语音模式(0--英文;1--中文)
    返回值 :若成功为字符串,否则为nil
    示 例:(zml-speak "欢迎您!" 1)
    返 回:"欢迎您!"
    日 期:zml84 于2007-05-10


    :victory: :victory: :victory: :victory:
    2008-09-26 21:37:26

    回复 举报
    赞同0
  • sfjlx
    sfjlx 板凳
    不行啊!"Sapi.SpVoice"))这其中有分号
    2008-07-13 10:18:13

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

CAD下载及教程

返回版块

52.08 万条内容 · 666 人订阅

猜你喜欢

阅读下一篇

如何快速在区域内计算面积

大家在进行CAD图中进行设计时,对于面积计算采用软件面积统计工具,该工具慢而且麻烦,强力推出:常青藤辅助设计系统.该软件可在常青藤工作室下载并免费注册.轻轻一点即可满足你面积计算!!!

回帖成功

经验值 +10