我录了一段音存储在这个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. 找到一篇关于 Oracle 全文检索实践 的文章

    http://www.iteye.com/topic/1118055 有详细的例子记录了Oracle 全文检索的使用.

  2. 在Pycharm上编写WordCount程序

    本篇博客将给大家介绍怎么在PyCharm上编写运行WordCount程序. 第一步 下载安装PyCharm 下载Pycharm PyCharm的下载地址(Linux版本).下载完成后你将得到一个名叫: ...

  3. php数组·的方法3-数组指针

    /* * 数组指针函数 * */ //key() current() 指针一直停在第一位 不会下移 echo '<hr>'; $arr5 = array('name' => 'hxq ...

  4. 转 Relinking Causes Many Warning on AIX

    SYMPTOMS Relink returns many warnings Running make for target ioracle OPatch found the word "er ...

  5. 研磨设计模式学习笔记1--简单工厂(SimpleFactory)

    需求:实现一个简单工厂,客户端根据需求获取实现类. 简单工厂优点: 客户端不需要知道工厂内部实现,然组件外部实现面向接口编程. 客户端.实现类解耦. 一.接口及实现类 //接口 public inte ...

  6. JS中==、===和Object.is()的区别

    JS中==.===和Object.is()的区别 首先,先粗略了解一下这三个玩意儿: ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较: ===:恒等,严格比较运算符,不做类型转换 ...

  7. SpringBoot初始教程之Servlet、Filter、Listener配置详解

    1.介绍 通过之前的文章来看,SpringBoot涵盖了很多配置,但是往往一些配置是采用原生的Servlet进行的,但是在SpringBoot中不需要配置web.xml的 因为有可能打包之后是一个ja ...

  8. 【C】一个读取文件记录器

    分享一下!!! #include<stdio.h> #include<windows.h> #define N 70000 //定义行数!!用空间换取时间 struct stu ...

  9. WSGI学习系列Pecan

    Pecan Introduce Pecan是一个轻量级的基于Python的Web框架, Pecan的目标并不是要成为一个“full stack”的框架, 因此Pecan本身不支持类似Session和D ...

  10. Quartz使用(6) - Quartz项目实战

    本片博文将阐述项目工作中使用Quartz的情况,包含项目背景.项目框架.Quartz集群部署等方面,重点讲述如何在实际项目中使用Quartz. 1. 背景 因项目需求,需要定时调用数据下载接口,并将数 ...