返回 登录
0

使用语音SDK开发:如何集成和使用语音库文件?

一、文档概述

本文档是开发科大讯飞Windows语音程序的用户指南,提供工程创建、配置、编译、运行等相关信息的说明。其适用的读者为使用语音SDK进行开发的产品设计师、软件工程师,通过阅读本文档,读者可以掌握如何集成和使用语音库文件。

二、新建项目

1)打开Microsoft Visual Studio 2010,选择文件->新建->新建项目。
图片描述
2)选择Visual C++ ->Win32->Win32控制台应用程序,输入项目名称,然后点击确定键。
图片描述
3)点击下一步。
图片描述
4)附加选项选择“空项目”,应用程序类型选择“控制台应用程序”,然后点击完成。
图片描述
图片描述
5)鼠标右键点击“源文件”,点击添加->新建项。
图片描述
6)选择“代码”,输入后缀名为.c的名称,例如“main.c”,点击添加。
图片描述
7)代码请参考SDK/Windows_SDK/samples下的语音示例。
图片描述
8)将科大讯飞语音SDK中bin,include,libs文件复制到Demo文件夹下。
图片描述

三、导入头文件

1)鼠标右键点击Demo项目,选择属性。
图片描述
2)点击C/C++->常规->附加包含目录,输入相对于工程文件Demo.vcxproj的相对路径,即相对于$(ProjectDir)的路径。
图片描述
图片描述

四、加载msc.dll

1)加载msc.lib文件:在main.c文件中输入如下图所示代码。(注意:加载路径输入相对于工程文件的相对路径)
图片描述
2)将msc.dll所在目录设置为工作目录,即“$(ProjectDir)..\bin\”。
图片描述

五、打印日志

运行程序后,bin/msc文件夹下会生成日志。(注意:msc文件夹下需有msc.cfg文件)

图片描述

六、运行可执行文件

1)通过属性设置,将可执行文件copy到bin目录下运行,否则会报如图16错误。
图片描述
图片描述
2)点击“命令行”后边的下拉框,选择“编辑”。
图片描述
3)输入“copy $(TargetPath) $(ProjectDir)..\bin\”。
图片描述

七、常见问题
1)如何联系我们获得技术支持?
答:科大讯飞提供以下方式的技术支持:
a.自助查询——请登陆官网:http://www.xfyun.cn/
语音合成:http://www.xfyun.cn/doccenter/tts
语音识别:http://www.xfyun.cn/doccenter/asr
新手指南:http://www.xfyun.cn/doccenter/newer
常见解答:http://www.xfyun.cn/default/doccenter/doccenterInner?itemTitle=ZmFx

b.电话支持——请于周一~周五,北京时间9:00~17:00间,拨打电话: 0551-65309063获得技术支持信息。
c.电子邮件支持——请将问题的详细描述发至:msp_support@iflytek.com。
d.在线支持——请登录我们的论坛:http://bbs.xfyun.cn/forum.php

联系时对问题的描述请尽量包含以下内容:
1.系统配置(包括CPU、内存、硬盘、操作系统及产品版本等信息)
2.问题细节(包括问题的重现过程及合成的文本内容、识别音频等)
3.问题重现(包括详细的操作过程和运行日志等)

2)拿到了合成音频但不知道如何来播放?
答:合成拿到的音频是没有音频头的,音频头中含有音频格式、采样率、音频长度等播放音频所需信息。拿到合成音频后,用户可以添加音频头,可参考例子tts_sample中的代码,然后使用常规播放器来播放;也可以使用Cool Edit等软件手动选择音频参数来播放。

3) 如何进行大文本的合成?
答:语音云一次语音合成允许的合成文本大小不超过8192个字节,所以对于长度超过此值的大合成文本,用户可以采用“分段合成”的方式,即先将大文本按照标点符号如句号进行切分,然后对每一段文本分别进行合成。进行分段合成时,用户既可以在一路会话中循环使用QTTSTextPut+QTTSAudioGet组合完成合成,也可以为每一段文本使用一路独立的会话完成合成。

4) 获取不到识别/听写结果。
答:原因可能是:
a.QISRSessionBegin的参数设置不正确,如没有设置好正确的引擎类型等。
b.音频格式不对,客户端支持的音频编解码算法只支持16位Intel PCM格式的音频。

5)能获取到语音听写结果但是不全。
答:此问题主要是在调用QISRAudioWrite时没有正确设置参数audioStatus所致,此参数在写入非最后一个音频数据块时需要设置为2,写入最后一个数据块时需要设置为4,以告诉MSC音频写入完毕。如果只有一个音频数据块,audioStatus也需要设置为4。

6) 可以拿到识别或转写结果但是响应很慢。
答:此问题可以尝试如下方法来解决:
a.调用QISRAudioWrite接口写音频数据时,尽量做到“匀速发送”——周期性的发送定长数据,做到边录边发,避免一次发送数据量过大的音频。
b.采用QISRAudioWrite接口和QISRGetResult接口混调的方式。在调用QISRAudioWrite接口时,可以检查out型参数recogStatus,如果其值为0,表明已经有(部分)识别结果缓存在MSC中了,此时可以调用QISRGetResult来获取结果。

评论