利用讯飞语音听写接口实现实时语音转写。

讯飞语音,识别真的很准确。

讯飞语音转写,实时的贵,不实时的慢。。。

今天尝试了用讯飞听写通过流的方式实现实时转写。

  1. 主要思路是这样。首先确认pcm文件的保存路径。
  2. 然后创建一个线程不断读写pcm内的内容变化。
  3. 每次读取1024*1024字节调用
    mIat.writeAudio(byte[] var1, int var2, int var3)方法,等待回调结果。
  4. 记录每次的回调结果,拼接字符串。

部分代码如下,下面代码是完整pcm文件的转写的代码。准确率和讯飞网页的识别率相差无几。

实现了之后发现。讯飞听写接口认证后才20000/天,没有认证500/天。可能讯飞也知道这个漏洞才加的限制吧

public static void startRecognizer(String path)
{
    audioDataList=null;
    resultText="";
    mIatResults.clear();
    // 设置参数
    setParam();

    // 也可以像以下这样直接设置音频文件路径识别(要求设置文件在sdcard上的全路径):
   /* mIat.setParameter(SpeechConstant.AUDIO_SOURCE, "-2");
    mIat.setParameter(SpeechConstant.ASR_SOURCE_PATH, path);
    mIat.startListening(mRecognizerListener);
    mIat.stopListening();*/

    // 设置音频来源为外部文件
    mIat.setParameter(SpeechConstant.AUDIO_SOURCE, "-1");
    byte[] audioData = FileUtil.readAudioFile(new File(path));

    if (null != audioData) {
        LogUtil.logInfo("开始音频流识别");
        // 一次(也可以分多次)写入音频文件数据,数据格式必须是采样率为8KHz或16KHz(本地识别只支持16K采样率,云端都支持),
        // 位长16bit,单声道的wav或者pcm
        // 写入8KHz采样的音频时,必须
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值