mp3转文字,科大讯飞语音转文字用着效果怎么样?

只需一步,快速开始
扫一扫,访问微社区
后使用快捷导航没有帐号?
查看: 28969|回复: 5
录音能转文字,大赞!但讯飞应该推出录音宝PC版呀。
签到天数: 3 天[LV.2]偶尔看看I
其实很早就想找一款能把语音转成文字的软件了,虽然ibm也有,但不是很实用。
讯飞现在推出了录音宝,真的很不错,不过为什么只有安卓版,应该同时推出PC版才对呀。
如果涉及到会议或者记者采访,为了保证效果,是没有人会使用手机录音的,都是用录音笔。
你可以看到凡是有会议,或者讲座之类的,桌面上总是会摆一排录音笔。你说把手机摆上去?你确定不是在开玩笑?
其实稍微对音质有些要求的时候,都是会使用录音笔的,而且手机也不适合长时间录音,也耗电。感觉安卓录音宝,更适合来录电话,或许有时也可以记录一些不很重要的交谈。
现在录音宝有转文字功能,本来这个功能真的很好,中国有多少记者,又有多少人急需把各种会议记录,采访,录音转成文字的,这个需求量绝对很大,我手头就有不少想转成文字的录音。
自己边听边转文字,实在太麻烦了,深有体会。
如果这个问题解决好的话,绝对会成为广大记者朋友的神器。
而说到转文字,也就要涉及到文字的编辑,而且动不动几个小时的录音,这其实更适合在电脑上来完成。
想想这样的场景,打开PC版的录音宝,丢一个MP3格式的采访录音进去,然后录音宝开始工作,不一会,结果出来了。
刚才的录音被很轻松的转化成一个TXT文件,并且排版清晰,错字也少,这是多么激动人心的一件事情啊,这才是大家真正期待的功能。
当然,如果能提供一些高级功能就更好了,比如对特别词语进行纠错,减少判断失误的几率,个性化词语设置等。
对录音宝的发展很看好,希望录音宝在发展手机app的同时,也别忘记PC版,毕竟语音转文字效果好的话,绝对是个创举,而且前途广大。
签到天数: 42 天[LV.5]常住居民I
建议收到,多谢支持
签到天数: 615 天[LV.9]以坛为家II
早听说讯飞要推出录音笔。手机版的录音宝是不是这个的前奏呢?pc版的录音宝主意的确不错
该用户从未签到
盼pc版录音宝
该用户从未签到
要推出录音笔 即时声音转文字功能,或者 在手机录音宝上 提高 声音覆盖距离。
签到天数: 2 天[LV.1]初来乍到
黄花菜都凉了
Copyright &市场合作,请您联系:
品牌广告合作,请您联系:
企业创新合作,请您联系:
地方合作,请您联系:
满足以下场景,获得更高通过率:
新融资求报道
新公司求报道
新产品求报道
创投新闻爆料
为你推送和解读最前沿、最有料的科技创投资讯
聚集15家顶级投资机构的专业互联网融资平台
聚集全球最优秀的创业者,项目融资率接近97%,领跑行业输入关键字或相关内容进行搜索
调用下面的代码,并没有声音出来啊,请大神指教javascript
var main = plus.android.runtimeMainActivity();
var SynthesizerPlayer = plus.android.importClass('com.iflytek.speech.SynthesizerPlayer');
var play = SynthesizerPlayer.createSynthesizerPlayer(main,'appid=5177d8fe');
play.playText('水果',null,null);
问题解决了,竟然是因为我手机忘了开声音····························································= =
要回复问题请先或
关注: 1 人最近公司项目需要给APP中添加语音识别功能,主要功能是将语音转文字和文字转语音。
要求明白了,就开始干活了 。&
科大讯飞的语音识别是属于一流的行列,那不多想当然选择科大讯飞了。
下载地址:
在百度上输:讯飞语音 就能找到,输科大讯飞会直接出现官网,那里面没有。(ps我第一次就是这样)
下载后会有三个文件选择。
一个是语音+ &带有语音+APP的。一个是含语音交互界面,一个是不含语音交互界面
简单介绍下:
语音+ 看介绍就懂了。
语音交互界面 指的是讯飞提供的各种动画效果。比如录音时的麦克风动画。等
没有语音交互界面就也明白了。没有上面那种动画,只有底层的数据录制,发送,解析。等
我当初下载的时候用的是带语音交互界面的。这个其实无所谓了。不想用可以自定义
下载好了之后 将
按照文档导入包: Msc.Jar, &libmsc.so.
导入后 第一步:注册
在程序入口处初始化 SDK &
SpeechUtility.createUtility(this, &appid=53fd96ce&);这个初始化的是文字转语音的对象&
mTts = SpeechSynthesizer.createSynthesizer(this, mTtsInitListener); // 初始化合成对象mTtsInitListener 对象就是初始化的时候监听,当初始化成功之后就代表你现在可是使用语音功能了
private InitListener mTtsInitListener = new InitListener() {
public void onInit(int code) {
Log.e(&合成监听监听&, &InitListener init() code = & + code);
if (code == ErrorCode.SUCCESS) {
btnWZ.setEnabled(true);
text.setText(&可以进行识别文字(文字转声音)\n&);
btnSY.setEnabled(true);
text.append(&可以进行识别声音(声音转文字)\n&);
};然后下一步,对于合成对象 进行相关属性的设置。
还有一些其他属性可以参考API文档进行理解和添加。这里就不详细说明了。
// 设置合成
if (mEngineType.equals(SpeechConstant.TYPE_CLOUD)) {
mTts.setParameter(SpeechConstant.ENGINE_TYPE,
SpeechConstant.TYPE_CLOUD);
mTts.setParameter(SpeechConstant.ENGINE_TYPE,
SpeechConstant.TYPE_LOCAL);
// 设置发音人
mTts.setParameter(SpeechConstant.VOICE_NAME, voicer);
// 设置语速
mTts.setParameter(SpeechConstant.SPEED, &50&);
// 设置音调
mTts.setParameter(SpeechConstant.PITCH, &50&);
// 设置音量
mTts.setParameter(SpeechConstant.VOLUME, &50&);
// 设置播放器音频流类型
mTts.setParameter(SpeechConstant.STREAM_TYPE, &3&);
之后就进行上传你要转录的文本和监听接口了
int code = mTts.startSpeaking(context, mTtsListener);context:是要合成的文字&
code:就是最后的结果了 如果是0 就代表了正常了。如果不为零就代表出现了错误,具体的值所代表的意思可参考ErrorCode类来对照。
new SpeechError(code).getPlainDescription(true)可以使用上面的那段代码 将code 转换成文本,错误的文本。
mTtsListener/**
* 合成回调监听。
private SynthesizerListener mTtsListener = new SynthesizerListener() {
public void onSpeakBegin() {
showTip(&开始播放&);
public void onSpeakPaused() {
showTip(&暂停播放&);
public void onSpeakResumed() {
showTip(&继续播放&);
public void onBufferProgress(int percent, int beginPos, int endPos,
String info) {
mPercentForBuffering =
upProgressBar();
public void onSpeakProgress(int percent, int beginPos, int endPos) {
mPercentForPlaying =
upProgressBar();
public void onCompleted(SpeechError error) {
if (error == null) {
showTip(&播放完成&);
} else if (error != null) {
showTip(error.getPlainDescription(true));
其中的showTip ()方法只是我的一个回调显示的方法,可根据自己的需求自定义设置。
其中的&onBufferProgress 方法返回的是数据缓存的长度, 最大100 这个数据是从网络进行识别之后传递过来的数据
onSpeakProgress 播放的长度,当前播放进度, 最大值也是100
文字转语音也就上面的那些内容了。
语音转文字:
&span style=&font-size:12&&mIat = SpeechRecognizer.createRecognizer(this, mTtsInitListener);
iatDialog = new RecognizerDialog(this, mTtsInitListener);&/span&
其中的这个iatDialog 方法就是讯飞自己的语音交互界面了。 会弹出一个麦克风的dialgo并带有动画。,能根据我的声音大小进行动画。
第二步那个就是一个初始化监听。这个上面有介绍
第三步就是设置属性了 设置mIat的属性
// 设置语言
mIat.setParameter(SpeechConstant.LANGUAGE, &en_us&);
// 设置语言
mIat.setParameter(SpeechConstant.LANGUAGE, &zh_cn&);
// 设置语言区域
mIat.setParameter(SpeechConstant.ACCENT, &mandarin&);
// 设置语音前端点
mIat.setParameter(SpeechConstant.VAD_BOS, &4000&);
// 设置语音后端点
mIat.setParameter(SpeechConstant.VAD_EOS, &1000&);
// 设置标点符号
mIat.setParameter(SpeechConstant.ASR_PTT, &1&);
// 设置音频保存路径
mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH,
&/sdcard/my/luyin.pcm&);
设置完成之后就可以点击按钮进行录制了
点击按钮 按钮上的方法写:
iatDialog.setListener(recognizerDialogListener);
iatDialog.show();
监听方法 recognizerDialogListener
* 听写UI监听器
private RecognizerDialogListener recognizerDialogListener = new RecognizerDialogListener() {
public void onResult(RecognizerResult results, boolean isLast) {
String text = JsonParser.parseIatResult(results.getResultString());
edit.append(text);
edit.setSelection(edit.length());
* 识别回调错误.
public void onError(SpeechError error) {
showTip(error.getPlainDescription(true));
其中的onResult()方法会不断的回调,因为语音识别是一个字一个字识别并发送过来的。当然也有是一个词的形式发送过来。这个时候
我们就需要通过它来进行识别了
这个JsonParser类是直接从 讯飞提供的Demo中复制的。&
public class JsonParser {
public static String parseIatResult(String json) {
StringBuffer ret = new StringBuffer();
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray(&ws&);
for (int i = 0; i & words.length(); i++) {
// 转写结果词,默认使用第一个结果
JSONArray items = words.getJSONObject(i).getJSONArray(&cw&);
JSONObject obj = items.getJSONObject(0);
ret.append(obj.getString(&w&));
如果需要多候选结果,解析数组其他字段
for(int j = 0; j & items.length(); j++)
JSONObject obj = items.getJSONObject(j);
ret.append(obj.getString(&w&));
} catch (Exception e) {
e.printStackTrace();
return ret.toString();
public static String parseGrammarResult(String json) {
StringBuffer ret = new StringBuffer();
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray(&ws&);
for (int i = 0; i & words.length(); i++) {
JSONArray items = words.getJSONObject(i).getJSONArray(&cw&);
for(int j = 0; j & items.length(); j++)
JSONObject obj = items.getJSONObject(j);
if(obj.getString(&w&).contains(&nomatch&))
ret.append(&没有匹配结果.&);
return ret.toString();
ret.append(&【结果】& + obj.getString(&w&));
ret.append(&【置信度】& + obj.getInt(&sc&));
ret.append(&\n&);
} catch (Exception e) {
e.printStackTrace();
ret.append(&没有匹配结果.&);
return ret.toString();
然后有人要说了 如果没有使用讯飞提供的语音交互界面,那应该怎么写?&
在按钮的处理方法中将上面的显示iatDialog给替换成下面的代码就可以了。
int ret = mIat.startListening(recognizerListener);
if (ret != ErrorCode.SUCCESS) {
&span style=&font-size:14&&/**
* 听写监听器。
private RecognizerListener recognizerListener = new RecognizerListener() {
public void onBeginOfSpeech() {
showTip(&开始说话&);
public void onError(SpeechError error) {
showTip(error.getPlainDescription(true));
public void onEndOfSpeech() {
showTip(&结束说话&);
public void onEvent(int eventType, int arg1, int arg2, String msg) {
public void onResult(RecognizerResult results, boolean isLast) {
String text = JsonParser.parseIatResult(results.getResultString());
edit.append(text);
edit.setSelection(edit.length());
if (isLast) {
// TODO 最后的结果
public void onVolumeChanged(int volume) {
showTip(&当前正在说话,音量大小:& + volume);
大概就这样了。
总结一下: 使用第三方的SDK 都不是一件麻烦的事情,只要你去看看API和Demo 就能往自己的项目中套了。
这个讯飞语音识别,也不复杂。
第一个 注册SDK 将你申请到的APPID给赋值进去。 &(所有的第三方 SDK都有这个要求)
第二步 根据你的需要来创建指定的对象。&
创建对象的时候绑定一个InitListener接口。来检测 创建是否成功。
第三步 给对象设置基本属性
第四步 对象开始工作。
第五步给工作的对象添加回调接口,实时了解对象工作状态。
第六步 根据对象的状态来写各种不同的提示和说明。就是个交互的过程了。
本文已收录于以下专栏:
相关文章推荐
在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。本文通过两个具体的实例介绍该...
讯飞语音开发集成地址/
解压后的doc文件夹下的msc develop 文件中有详细集成步骤
1.先要注册开发者账户, 添加我的应用 ,...
前几天写的从零单排系列我发现了一个严重的错误,就是科大讯飞下载的Mscdemo是可以使用的,只不过是我没设置好环境而已才有那么多错误,特此更正一下。
具体遇到的错误即解决办法如下。
1.注释是乱码...
VOICE_NAME, "xiaoyan");//默认的,发音人为小燕(青年女声),小梅为新引擎参数,效果好点
speechSynthesizer.setParameter(Speec...
简介本人曾做过半年ai交互,主要做的就是机器人的语音识别,语义理解,自定义语法库,现在已经离职有一段时间了,在这里做一下总结,方便自己记忆,也方便后人。因为本人做的Android开发,所以以下皆基于A...
这篇文章是从我的笔记直接转过来的,大家将就看吧。
下面两个地址很有参考价值:
语音识别:/articles/NRF3a2
语音合成:htt...
这篇文章是从我的笔记直接转过来的,大家将就看吧。
下面两个地址很有参考价值:
语音识别:/articles/NRF3a2
语音合成:http:...
语音识别部分
MSPLogin: 登录讯飞服务器
MSPUploadData(可选): 上传语法文件
QISRSessionBegin: 创建语音识别会话
QISRAudioW...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 科大讯飞音频转文字 的文章

 

随机推荐