想让你的LISP程序说话吗?
zml1984
zml1984 Lv.3
2007年09月01日 09:12:34
只看楼主

想让你的LISP程序说话吗?答案是安装微软中文语言引擎后,使用下面这个函数即可实现。 [code];|;===================================================================== 定义函数:zml-speak ( str mode ) 功 能:将字符转换为语音输出 参数说明: str----欲语音输出的内容,类型:字符串

想让你的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
sfjlx
2008年07月13日 10:18:00
2楼
不行啊!"Sapi.SpVoice"))这其中有分号
回复
chenjun19842002
2008年09月26日 21:37:38
3楼
定义函数:zml-speak ( str mode )
功 能:将字符转换为语音输出
参数说明: str----欲语音输出的内容,类型:字符串
mode---语音模式(0--英文;1--中文)
返回值 :若成功为字符串,否则为nil
示 例:(zml-speak "欢迎您!" 1)
返 回:"欢迎您!"
日 期:zml84 于2007-05-10


:victory: :victory: :victory: :victory:
回复

相关推荐

APP内打开