Android 讯飞听写集成

本文介绍了如何在Android应用中集成讯飞的语音听写功能。首先,从讯飞官网下载相关文件并导入项目。接着,声明APPID。然后,通过代码实现将语音转换为文字,使用Gson解析返回的结果,提取并组合成字符串。
摘要由CSDN通过智能技术生成

一.进入讯飞 官网 下载 相对应 文件

二 .导入 相应的文件

(iflytek 这个包名下的文件是讯飞自带的Dialog,效果还是不错的)

三.声明 APPID  (建议 ;最好在MyApp中声明)

 

SpeechUtility.createUtility(applicationContext, SpeechConstant.APPID + "=******")

四.代码 及注解

 

//初始化监听器。
private val mInitListener = InitListener { code ->
    if (code != ErrorCode.SUCCESS) {
        Toast.makeText(this, "初始化失败,错误码:$code", Toast.LENGTH_SHORT).show()
    }
}
/**
 * 语音对象封装
 */
inner class Voice {

    var ws: java.util.ArrayList<WSBean>? = null

    inner class WSBean {
        var cw: java.util.ArrayList<CWBean>? = null
    }

    inner class CWBean {
        var w: String? = null
    }
}
  /**
     * 解析语音json  要用到 gson
       implementation 'com.google.code.gson:gson:2.8.2
 */

fun parseVoice(resultString: String): String {// 创建gson对象 

val gson = Gson() 

  val voiceBean = gson.fromJson<Voice>(resultString, Voice::class.java!!) 

  val sb = StringBuffer() 

  val ws = voiceBean.ws 

for (wsBean in ws!!) { val word = wsBean.cw?.get(0)?.w sb.append(word) } 

  return sb.toString() 

 }

//1.创建SpeechRecognizer对象,第二个参数:本地听写时传InitListener
var iatDialog = RecognizerDialog(this, mInitListener)
//2.设置听写参数
iatDialog.setParameter(SpeechConstant.DOMAIN, "iat")
iatDialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn")
iatDialog.setParameter(SpeechConstant.ACCENT, "mandarin ")
//3.设置回调接口
iatDialog.setListener(object : RecognizerDialogListener {
    override fun onResult(recognizerResult: RecognizerResult, b: Boolean) {
        if (!b) {
            val result = parseVoice(recognizerResult.resultString)
            textView.setText(textview.getText()+result)
        }
    }

    override fun onError(speechError: SpeechError) {
        logger(speechError.toString())
    }
})
//4.开始听写
iatDialog.show()
// showTip(getString(R.string.text_begin))
//获取字体所在的控件,设置为"",隐藏字体,
val txt = iatDialog.window.decorView.findViewWithTag("textlink") as TextView
txt.text = ""
语言 kotlin  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值