zml84
发表于 2011-4-2 12:45:37
本帖最后由 zml84 于 2011-4-2 12:48 编辑
原文地址:http://zml84.blog.sohu.com/45480648.html
想让你的LISP程序说话吗? 答案是安装微软中文语言引擎后,使用下面这个函数即可实现。
语音练习.lsp;|;=====================================================================
定义函数: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
"<VOICE REQUIRED='NAME=Microsoft Sam'>"
)
)
;;使用中文引擎
((= mode 1)
(setq speekContent
"<VOICE REQUIRED='NAME=Microsoft Simplified Chinese'>"
)
)
) ;_结束 cond
(setq speekContent
(strcat speekContent
str
"</VOICE>"
)
)
(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)
有关微软中文语言引擎介绍及下载,请点击这里:http://support.microsoft.com/kb/320207/zh-cn
下载地址:
http://download.microsoft.com/download/speechSDK/SDK/5.1/WXP/EN-US/speechsdk51LangPack.exe
hhh454
发表于 2011-4-2 18:44:59
这个倒是很先进呀,试试
yxl88168
发表于 2011-4-2 22:00:50
看看这个,不知好用不
jiuzhoudugu
发表于 2011-4-3 11:01:45
谢谢了,太神了
周兴永
发表于 2011-4-3 11:40:23
怎么运用呀各位师傅
AMTONNY
发表于 2011-4-4 08:47:53
太强悍了哦,
goodwg
发表于 2011-4-6 20:26:06
长见识!
tyzhi222
发表于 2011-4-14 12:00:21
呵呵,有点意思
monkeycctv
发表于 2011-4-14 16:45:04
着实历害,配服配服!!1
zzhjxyx
发表于 2011-4-23 20:52:04
为什么提示:no function definition: VLAX-CREATE-OBJECT