做嵌入式语音的兄弟帮帮忙!1

使用WinCE 4.1,在做一个语音的应用程序时,老是找不到SAPI.LIB,请问这个库文件在哪个地方?是在自已定制的平台里面吗?
还有一个问题,WinCE 4.1下如何设置声卡的一些参数,有相应API吗?
[109 byte] By [feahoo-我是流氓,谁怕谁.] at [2007-12-16]
# 1
好好看看CE的帮助吧!
# 2
你可以参见PB帮助中的Speech API部分。
solobird-索罗博德 at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 3
要设置环境变量来启用这个Module的。参见SAPI implementation consideration
solobird-索罗博德 at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 4
呵呵,帮助文件有点大呢!
solobird(索罗博德) 你说的那个我也看了,那个环境变量是在定制的平台上,当加入SPEECH的时候就自动加上去了吧。我是想在标准的平台上做一个带语音的应用程序,能行?我用的是EVC4.0 sp1,编译时找不到sapi.h,sapi.lib,请问这些文件到底在那个地方,我看了我安装的目录下有挺多的sapi.lib。这是怎么回事?
# 5
你需要安装4.1的SDK
Gowhawk at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 6
我已经安装了4.1的SDK,并且还安装了我定定制的带有语音SPEECH API的平台,但我编译时要如何设置SAPI.LIB和SAPI.H的路径信息呢?
居然还有这种错误,帮我看看:
SpeechTestDlg.obj : error LNK2019: unresolved external symbol __imp__CoInitialize referenced in function "protected: virtual int __thiscall CSpeechTestDlg::OnInitDialog(void)" (?OnInitDialog@CSpeechTestDlg@@MAEHXZ)
# 7
Linking...
SpeechTestDlg.obj : error LNK2001: unresolved external symbol _CLSID_SpVoice
为什么会说连CLSID_SpVoice都会错啊?
# 8
帮帮忙啊,各位大哥!
# 9
不用IBM的了?
lxj9002-hulu at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 10
没找到lib或DLL啊
在Project->Setting->c/c++下设置头文件路径
在Project->Setting->link下设置lib路径
把sapi.dll拷到目标机器上(要相应的cpu 类型哦)
joyfly-cnemb.com at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 11
IBM的太贵了。
joyfly(刨冰)我指的是我不知道指定哪个LIB给编译器。
至于拷贝SAPI.DLL到目标机器上倒还没有试过,谢谢,回去试一把再说。
# 12
当我指定我build出来的sapi.lib给编译器时出现了上面的链接错误。
Linking...
SpeechTestDlg.obj : error LNK2001: unresolved external symbol _CLSID_SpVoice
sapi.lib这个文件好象很小,才一K多。
# 13
难道CE下的SAPI SDK没有区分平台的吗?
如果有的话,一个一个试吧,呵呵
SAPI。DLL是运行时要求的,不是你现在的问题。

或者你可以搜索看看,是不是sapi.lib里有_CLSID_SpVoice,或哪个文件里有
joyfly-cnemb.com at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 14
当然有区分平台了,不过我用的平台即使是我build出来的,它的sapi.lib中却找不到_CLSID_SpVoice,对了 joyfly(刨冰) 你做的基于4.1下面的语音程序能运行起来么?你是怎么做的?微软语音开发小组说如果要找那个sapi.lib的话,就不是sapi5而是sapi4,真不知道难道sapi5就不用库文件了么?
# 15
不好意思,我没做过这样的程序。我只是根据我的一些经验和知识,给你点参考而已。

既然现在你的lib里没有_CLSID_SpVoice , 而程序又要求这个,那你就自己定义一个_CLSID_SpVoice ,给他一个ID值 (可以看看注册表里是否有这类信息)

或者你干脆不用lib,直接用LoadLibrary()来装载sapi.dll

"微软语音开发小组说如果要找那个sapi.lib的话,就不是sapi5而是sapi4"这是什么意思?
joyfly-cnemb.com at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 16
对了,我刚刚看了WinCE4.1,它的帮助文件里写的是用SAPI5.0,你怎么会用SAPI4.1呢?
而且,也有SAPI SDK,在 C:\WINCE410\PUBLIC\SPEECH\SDK
里面有sapi.lib和sapilib.lib两个文件里都有_CLSID_SpVoice,
而且还有SAMPLE
你有没有去看过?
joyfly-cnemb.com at 2007-10-23 > top of Msdn China Tech,硬件/嵌入开发,嵌入开发(WinCE)...
# 17
呵呵,特别感谢 joyfly(刨冰) 。
----- Original Message -----
From: "Speech SDK Team" <sapi5@microsoft.com>
Newsgroups: microsoft.public.speech_tech.sdk
Sent: Friday, September 06, 2002 10:23 AM
Subject: Re: Can I use Speech API in my Application(Windows CE 4.1)

> The fact that you are looking for SAPI.LIB would tend to indicate that you're trying to use SAPI4.However, SAPI4 is not available on WinCE.
>
> "feahoo" <feahoo@hotmail.com> wrote in message
> news:O0WdqHKVCHA.2496@tkmsftngp09...
> > Hello,
> > I develop an application on Standard Emulator with eM VC 4.0+sp1.When I compiling my application,Compiler tell me can not find SAPI.LIB.Please tell me how to resolve this problem.
> > thanks
上面的回答就是微软语音开发小组说的。
至于C:\WINCE410\PUBLIC\SPEECH\SDK下面的sapi.lib和sapilib.lib我也看过,不过前者放在NT目录下后者放在其它CPU类型目录下,我不太清楚到底该用哪个LIB文件。还有它的例子没有完整的工程,我也不知道他是如何解决error LNK2001: unresolved external symbol _CLSID_SpVoice这样的问题的?
我对COM不是很熟,你能详细点说明一下如何显式加载sapi.dll进来,它的加载不是由CoCreateInstance()完成的么?加载进来后如何使用呢?

有没有QQ,能否跟你详聊一下,呵呵,我对嵌入式也是个newbie,跟你们多学习一把。我的QQ:675331
# 18
lxj9002(hulu) 呵呵,原来是你啊。现在还好吧。
唉,公司觉得的IBM东西太贵了。再说IBM想跟我们进行OEM式的合作,公司不干。另外IBM的做我们这一需求的SDK好象没有现成的。可能还有点风险。而微软的WinCE 4.1是免费的,所以就搞成现在这个样子了。
有时间多来看看啊。有空过来玩!
# 19
我自己来up