我录了一段音存储在这个test.m4a文件里,语音内容为"测试一下Netweaver对于并发请求的响应性能"。

使用如下Java代码进行测试:


package com.iflytek.msp.lfasr; import java.util.HashMap;
import org.apache.log4j.Logger;
import com.alibaba.fastjson.JSON;
import com.iflytek.msp.cpdb.lfasr.client.LfasrClientImp;
import com.iflytek.msp.cpdb.lfasr.exception.LfasrException;
import com.iflytek.msp.cpdb.lfasr.model.LfasrType;
import com.iflytek.msp.cpdb.lfasr.model.Message;
import com.iflytek.msp.cpdb.lfasr.model.ProgressStatus; // SDK document: http://www.xfyun.cn/doccenter/lfasr#go_sdk_doc_v2
public class TestLfasr
{
// original media path
private static final String local_file = "c:\\temp\\test.m4a"; private static final LfasrType type = LfasrType.LFASR_STANDARD_RECORDED_AUDIO; private static int sleepSecond = 20; public static void main(String[] args) {
LfasrClientImp lc = null;
try {
lc = LfasrClientImp.initLfasrClient();
} catch (LfasrException e) {
Message initMsg = JSON.parseObject(e.getMessage(), Message.class);
System.out.println("ecode=" + initMsg.getErr_no());
System.out.println("failed=" + initMsg.getFailed());
} // get upload task id
String task_id = "";
HashMap<String, String> params = new HashMap<>();
params.put("has_participle", "true");
try {
Message uploadMsg = lc.lfasrUpload(local_file, type, params);
int ok = uploadMsg.getOk();
if (ok == 0) {
task_id = uploadMsg.getData();
System.out.println("task_id=" + task_id);
} else {
System.out.println("ecode=" + uploadMsg.getErr_no());
System.out.println("failed=" + uploadMsg.getFailed());
}
} catch (LfasrException e) {
Message uploadMsg = JSON.parseObject(e.getMessage(), Message.class);
System.out.println("ecode=" + uploadMsg.getErr_no());
System.out.println("failed=" + uploadMsg.getFailed());
}
while (true) {
try {
Thread.sleep(sleepSecond * 1000);
System.out.println("waiting ...");
} catch (InterruptedException e) {
}
try {
Message progressMsg = lc.lfasrGetProgress(task_id);
if (progressMsg.getOk() != 0) {
System.out.println("task was fail. task_id:" + task_id);
System.out.println("ecode=" + progressMsg.getErr_no());
System.out.println("failed=" + progressMsg.getFailed());
continue;
} else {
ProgressStatus progressStatus = JSON.parseObject(progressMsg.getData(), ProgressStatus.class);
if (progressStatus.getStatus() == 9) {
System.out.println("task was completed. task_id:" + task_id);
break;
} else {
System.out.println("task was incomplete. task_id:" + task_id + ", status:" + progressStatus.getDesc());
continue;
}
}
} catch (LfasrException e) {
Message progressMsg = JSON.parseObject(e.getMessage(), Message.class);
System.out.println("ecode=" + progressMsg.getErr_no());
System.out.println("failed=" + progressMsg.getFailed());
}
}
try {
Message resultMsg = lc.lfasrGetResult(task_id);
System.out.println(resultMsg.getData());
if (resultMsg.getOk() == 0) {
System.out.println(resultMsg.getData());
} else {
System.out.println("ecode=" + resultMsg.getErr_no());
System.out.println("failed=" + resultMsg.getFailed());
}
} catch (LfasrException e) {
Message resultMsg = JSON.parseObject(e.getMessage(), Message.class);
System.out.println("ecode=" + resultMsg.getErr_no());
System.out.println("failed=" + resultMsg.getFailed());
}
}
}

测试结果

(1) 所有中文均能成功转成文字; 但英文Netweaver的语音转换成了Net ball

(2) 智能分词也能按照期望工作,比如“测试一下”成功地分词成了“测试”和“一下”。

完整的Java项目在我的github上:https://github.com/i042416/voice2text

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

科大讯飞语音转文字以及中文分词的Java测试代码的更多相关文章

  1. Centos下Sphinx中文分词编译安装测试---CoreSeek

    要支持中文分词,还需要下载Coreseek,可以去官方搜索下载,这里我用的4.1 百度云下载地址:      https://pan.baidu.com/s/1slNIyHf tar -zxvf co ...

  2. python安装Jieba中文分词组件并测试

    python安装Jieba中文分词组件 1.下载http://pypi.python.org/pypi/jieba/ 2.解压到解压到python目录下: 3.“win+R”进入cmd:依次输入如下代 ...

  3. 科大讯飞语音转文字,ffmpeg将wav转成pcm二进制音频文件

    百度和讯飞和其他厂都提供了语音识别的接口,这里使用讯飞的识别将本地手机录的音频文件转成文字 以下注意事项: 1.X_Param 参数开始的时候带了空格导致验证不过,原因是讯飞将字符串做了repelce ...

  4. 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较

    本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...

  5. 【中文分词】二阶隐马尔可夫模型2-HMM

    在前一篇中介绍了用HMM做中文分词,对于未登录词(out-of-vocabulary, OOV)有良好的识别效果,但是缺点也十分明显--对于词典中的(in-vocabulary, IV)词却未能很好地 ...

  6. 新浪SAE中文分词接口

    最近发现新浪SAE平台上竟然也提供分词功能,分词效果也还不错,由新浪爱问提供的分词服务,研究了一番,做了一个简易版的在线调用接口(get方式,非post) 官网说明:http://apidoc.sin ...

  7. ANSJ中文分词使用方法

    一.前言 之前做solr索引的时候就使用了ANSJ进行中文分词,用着挺好,然而当时没有写博客记录的习惯.最近又尝试了好几种JAVA下的中文分词库,个人感觉还是ANSJ好用,在这里简单总结之. 二.什么 ...

  8. R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:与前面的RsowballC分词不同的 ...

  9. (3.1)用ictclas4j进行中文分词,并去除停用词

    酒店评论情感分析系统——用ictclas4j进行中文分词,并去除停用词 ictclas4j是中科院计算所开发的中文分词工具ICTCLAS的Java版本,因其分词准确率较高,而备受青睐. 注:ictcl ...

随机推荐

  1. 页面布局常用,让子级div排排坐

    画页面的时候经常遇到页面布局的问题,父级div包裹多个子div很常见,代码如下: <div> <div style='width:100px;height: 100px;backgr ...

  2. 华东交通大学2015年ACM“双基”程序设计竞赛1004

    Problem D Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Sub ...

  3. 缓冲区 粘包 029 send 和sendall 的区别 find 和 findall 的区别

    一.tcp : 属于长连接 与客户端连接了之后 其他客户端需要等待 要连接另外一个 必须优雅的断开前面这个客户的连接. 二.缓冲区 :为了避免网络传输信号不通畅而是程序一直停留在消息发送状态而不向下进 ...

  4. python中的设计模式

    单例模式:Python 的单例模式最好不要借助类(在 Java 中借助类是因为 Java 所有代码都要写在类中),而是通过一个模块来实现.一个模块的模块内全局变量.模块内全局函数,组合起来就是一个单例 ...

  5. vue-cli中webpack配置解析

    版本号 vue-cli 2.8.1 (终端通过vue -V 可查看) vue 2.2.2 webpack 2.2.1 目录结构 ├── README.md ├── build │ ├── build. ...

  6. 转 windows下安装pycharm并连接Linux的python环境 以及 windows 下notepad ++编辑 linux 的文件

    ######sample 1:windows下安装pycharm并连接Linux的python环境 https://www.cnblogs.com/junxun/p/8287998.html wind ...

  7. 表单注册及自定义validate手机验证码验证实例

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...

  8. jQuery学习心得

    表示在document.ready时执行代码 $(function(){ //1.取得要操作的对象(尽量只限制范围),如果对象多次使用要记得缓存 var $selector = $('selector ...

  9. stm32 窗口看门狗学习(二)

    窗口看门狗有一个提前唤醒中断,如果开启这个中断,那么当计数器的值达到0x40的时候就会产生这个中断. 上次的代码加一点就可以做这个实验了. void WWDG_Init(u8 tr,u8 wr,u32 ...

  10. java多线程之原子变量

    看链接博客:http://blog.csdn.net/u011116672/article/details/51068828