Android 科大讯飞 语音转文字

第八、在需要使用讯飞输入语音转文字的页面初始化SDK。

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_monitor);

// 科大讯飞语音听写

SpeechUtility.createUtility(this, SpeechConstant.APPID +“=XXXXXX”);

// XXXXXX 这个地方写你在科大讯飞官网创建应用后的APPID

}

在代码中封装语音识别实体,然后封装个方法使用。

/**

*@TODO 科大讯飞语音听写

*@Create by: wjw

*@Create time: 2020/5/6 9:36

*/

public void initSpeech(final Context context) {

//1.创建RecognizerDialog对象

RecognizerDialog mDialog = new RecognizerDialog(context, null);

//2.设置accent、language等参数

mDialog.setParameter(SpeechConstant.LANGUAGE, “zh_cn”);

mDialog.setParameter(SpeechConstant.ACCENT, “mandarin”);

//3.设置回调接口

mDialog.setListener(new RecognizerDialogListener() {

@Override

public void onResult(RecognizerResult recognizerResult, boolean isLast) {

if (!isLast) {

//解析语音

//返回的result为识别后的汉字,直接赋值到TextView上即可

String result = parseVoice(recognizerResult.getResultString());

// Toast.makeText(context, result, Toast.LENGTH_SHORT).show();

}

}

@Override

public void onError(SpeechError speechError) {

}

});

//4.显示dialog,接收语音输入

mDialog.show();

}

/**

  • 解析语音json

*/

public String parseVoice(String resultString) {

Gson gson = new Gson();

Voice voiceBean = gson.fromJson(resultString, Voice.class);

StringBuffer sb = new StringBuffer();

ArrayList<Voice.WSBean> ws = voiceBean.ws;

for (Voice.WSBean wsBean : ws) {

String word = wsBean.cw.get(0).w;

sb.append(word);

}

return sb.toString();

}

/**

  • 语音实体类

*/

public class Voice {

public ArrayList ws;

public class WSBean {

public ArrayList cw;

}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Unity中使用科大讯飞语音的过程中,有一些常见问题需要注意。首先,关于路径的问题,需要确保ivw_res_path路径中不包含中文字符,否则会报错10102。此外,路径中的斜杠需要替换为反斜杠,否则也会报错10102。\[1\] 其次,关于QIVWAudioWrite接口需要调用两次的问题,这是因为在写入音频数据时,需要先调用一次MSP_AUDIO_SAMPLE_CONTINUE表示音频数据的中间部分,然后再调用一次MSP_AUDIO_SAMPLE_LAST表示音频数据的最后一部分。这样做是为了确保音频数据的完整性。\[2\] 最后,关于QIVWRegisterNotify接口后面需要使用Sleep的问题,这是因为在注册通知后,需要给科大讯飞语音一些时间来处理注册的操作。使用Sleep函数可以暂停程序的执行,让科大讯飞语音有足够的时间来完成注册。具体的等待时间可以根据实际情况进行调整。\[2\] 总结起来,在Unity中使用科大讯飞语音时,需要注意路径中不包含中文字符,斜杠需要替换为反斜杠;在写入音频数据时,需要调用两次接口来表示音频数据的中间部分和最后一部分;在注册通知后,需要使用Sleep函数给科大讯飞语音足够的时间来完成注册操作。 #### 引用[.reference_title] - *1* *2* [Unity 科大讯飞语音唤醒](https://blog.csdn.net/weixin_42208093/article/details/107364588)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值