更新记录

1.0.0(2026-03-31)

  • 新版发布支持iOS、Android

平台兼容性

uni-app(4.81)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

uni-app x(4.81)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - × -

科大讯飞离线语音识别、离线中引文听写UTS插件

开发文档

AIkit 离线语音听写 Android SDK 文档, 错误码查询科大讯飞控制台创建应用获取, 离线语音听写(新版)获取appid/APISecret/APIKey,

插件主要功能

  • 离线语音识别---iOS+Android
  • 打包时iOS超包可先将yt-recognition/app-ios/Resources/AEEResource.bundle中的LSTMLM_ED和MLP_YN_ED文件先删除再打自定义基座,打完基座再把这两个文件放回yt-recognition/app-ios/Resources/AEEResource.bundle中,再运行自定义基座,Android打包超限不能按此操作(亲测Android删文件打包会有问题)
  • 科大讯飞离线合成插件可前往--离线合成插件

特别提醒

  • 购买本插件前,请先试用、请先试用、请先试用,并充分自测确认满足需求之后再行购买。虚拟物品一旦购买之后无法退款;
  • 如有使用上的疑问、bug,可以进交 流 群联系作者;
  • 作者可承接各种插件定制;
  • 请在合法范围内使用,若使用本插件做非法开发,本方概不负责;
  • 结合文档和示例demo集成使用;
  • 测试需要打自定义基座,测试需要打自定义基座,测试需要打自定义基座。

插件说明

插件基于科大讯飞离线语音听写(新版)SDK封装,AIkit离线语音听写官方文档

插件使用

1、 引入插件

插件首页点击“试用”按钮,选择需要使用的项目,选完点击确认-->弹框点击“继续导入HBuilderX”-->再次选择需要试用的项目-->确认,会在项目根目录下生成uni_modules/yt-aikit,至此插件引入成功。 下列文档都是以uniapp为例介绍,文档最底下将给出uniapp-x的完整示例代码。

<!--打基座前现在需要使用的页面导入插件,否则插件不会打包进项目-->
import * as RecognitionManager from '@/uni_modules/yt-recognition'

2、初始化插件(离线和成设备第一次初始化需要联网,后续初始化不需要网络,但每次启动后都需要先初始化才能合成)

RecognitionManager.initSDK({
    appId: "66*****68",
    apiKey: "4351c9*******991c32fb2",
    apiSecret: "NW*******OWIz",
    ability: "ee62fa27c",
    authType: 0,
    authInterval: 300,
    refreshFile: false,
    authHandler: (res) => {
        console.log(res)
    }
});
参数 参数类型 参数说明 是否必传
appId string appid可在控制台查看(科大讯飞创建应用后得到)
apiKey string apiKey可在控制台查看(科大讯飞创建应用后得到)
apiSecret string apiSecret可在控制台查看(科大讯飞创建应用后得到)
authInterval number 在线授权校验间隔时长,默认为300s,可自定义设置,最短为60s,单位秒
authType number 离线授权类型(0或1),0-->(默认)设备级授权(DEVICE)和 1-->应用级授权(APP)
ability string 能力ID 固定传“ee62fa27c”
refreshFile bool 是否更新语音文件,默认false,更新后会把assets/xtts(修改assets文件需重新打基座)文件覆盖工作目录下的文件
authHandler function 授权(初始化)回调,内容包含错误码,错误码查询

2、逆初始化

RecognitionManager.releaseSDK();

3、离线语音识别

RecognitionManager.startDictation({
    onResult: (res) => {
        console.log(`中英文听写回调多次触发:${res}`)
    },
    onFinalResult: () => {
        console.log('识别结束')
    },
    onError: (error) => {
        console.log(`中英文听写报错:${error}`);
    }
})

4、停止语音识别

RecognitionManager.stopDictation()

5、离线语音识别参数设置(识别前设置有效)

RecognitionManager.dictationConfigure({
                    lmLoad: true,//加载二遍资源   bool    true:加载, false:不加载  默认:true 非必填
                    vadLoad: false,//加载VAD资源    bool    true:加载, false:不加载  默认:false 非必填
                    puncLoad: false,//加载标点资源    bool    true:加载, false:不加载  默认:false 非必填
                    numLoad: false,//加载数字规整资源   bool    true:加载, false:不加载  默认:false 非必填
                    postprocOn: false,//是否开启后处理 bool    true:开启, false:不开启  默认:false 非必填
                    lmOn: false,//开启二遍  bool    true:开启, false:不开启  默认:false 非必填
                    vadOn: false,//是否开启vad功能    bool    true:开启, false:不开启  默认:false 非必填
                    vadSpeechEnd: 200,//vad结束参数 最小值:0, 最大值:999999   默认:200 vad后端点检测超时时间 非必填
                    vadResponsetime: 1000,//vadResponsetime 最小值:0, 最大值:999999  vad前端点检测超时时间 非必填
                    htkNeed: true,//htkNeed 是否输出htk结果 true:输出, false:不输出 默认:true  非必填
                    readableNeed: true,//是否输出readableNeed true:输出, false:不输出 默认:true 非必填
                    dialectType: 0,//方言参数。0-普通话/台湾,1-四川,2-粤语,3-长沙,4-东北,5-甘肃,6-贵州,7-河北,8-合肥,9-河南,10-客家,11-闽南,12-南昌,13-南京,14-宁夏,15-山西,16-山东,17-上海/苏州,18-太原,19-天津,20-皖北,21-武汉,22-云南 非必填
                    pgsNeed: true,//是否输出pgs结果   bool    true:输出, false:不输出  否   true  非必填
                    plainNeed: true,//是否输出plain结果   bool    true:输出, false:不输出  否   true 非必填
                    vadNeed: true,//是否输出vad结果   bool    true:输出, false:不输出  否   true 非必填
                } )

uniapp-x完整示例

uniapp 完整示例

<template>
    <view class="content">
        <navigator url="/pages/index/index"
            style="height: 80rpx;width: 500rpx;margin: 20rpx;display: flex;align-items: center;justify-content: center;background-color: aquamarine;">
            跳转</navigator>
        <view class="btn" @click="initSDK">初始化</view>
        <view class="btn" @click="unInitSDK">逆初始化</view>
        <view class="btn" @click="startDictation">开始语音识别</view>
        <view class="btn" @click="stopDictation">停止语音识别</view>
        <view class="btn" @click="dictationConfigure">离线识别参数配置</view>
    </view>
</template>

<script>
    import * as RecognitionManager from '@/uni_modules/yt-recognition'
    export default {
        data() {
            return {

            }
        },
        onLoad() {

        },
        methods: {
            //初始化SDK
            initSDK() {
                RecognitionManager.initSDK({
                    appId: "66****68",//换成自己的
                    apiKey: "4351*******91c32fb2",//换成自己的
                    apiSecret: "NWFk*******Y2EzOWIz",//换成自己的
                    ability: "ee62fa27c",
                    authType: 0,
                    authInterval: 300,
                    refreshFile: false,
                    authHandler: (res) => {
                        console.log(res)
                    }
                });
            },
            //逆初始化SDK
            unInitSDK() {
                RecognitionManager.releaseSDK();
            },
            dictationConfigure() {
                RecognitionManager.dictationConfigure({
                    lmLoad: true, //加载二遍资源   bool    true:加载, false:不加载  默认:true 非必填
                    vadLoad: false, //加载VAD资源    bool    true:加载, false:不加载  默认:false 非必填
                    puncLoad: false, //加载标点资源    bool    true:加载, false:不加载  默认:false 非必填
                    numLoad: false, //加载数字规整资源   bool    true:加载, false:不加载  默认:false 非必填
                    postprocOn: false, //是否开启后处理 bool    true:开启, false:不开启  默认:false 非必填
                    lmOn: false, //开启二遍  bool    true:开启, false:不开启  默认:false 非必填
                    vadOn: false, //是否开启vad功能    bool    true:开启, false:不开启  默认:false 非必填
                    vadSpeechEnd: 200, //vad结束参数 最小值:0, 最大值:999999   默认:200 vad后端点检测超时时间 非必填
                    vadResponsetime: 1000, //vadResponsetime 最小值:0, 最大值:999999  vad前端点检测超时时间 非必填
                    htkNeed: true, //htkNeed 是否输出htk结果 true:输出, false:不输出 默认:true  非必填
                    readableNeed: true, //是否输出readableNeed true:输出, false:不输出 默认:true 非必填
                    dialectType: 0, //方言参数。0-普通话/台湾,1-四川,2-粤语,3-长沙,4-东北,5-甘肃,6-贵州,7-河北,8-合肥,9-河南,10-客家,11-闽南,12-南昌,13-南京,14-宁夏,15-山西,16-山东,17-上海/苏州,18-太原,19-天津,20-皖北,21-武汉,22-云南 非必填
                    pgsNeed: true, //是否输出pgs结果   bool    true:输出, false:不输出  否   true  非必填
                    plainNeed: true, //是否输出plain结果   bool    true:输出, false:不输出  否   true 非必填
                    vadNeed: true, //是否输出vad结果   bool    true:输出, false:不输出  否   true 非必填
                })
            },
            startDictation() {
                RecognitionManager.startDictation({
                    onResult: (res) => {
                        console.log(res)
                    },
                    onFinalResult: () => {
                        console.log('识别结束')
                    },
                    onError: (error) => {
                        console.log(error);
                    }
                })
            },
            stopDictation() {
                RecognitionManager.stopDictation()
            }
        }
    }
</script>

<style>
    .content {
        display: flex;
        width: 750rpx;
        height: 100%;
        align-items: center;
        background-color: antiquewhite;
        flex-direction: column;
    }

    .btn {
        display: flex;
        width: 500rpx;
        height: 80rpx;
        align-items: center;
        justify-content: center;
        background-color: aquamarine;
        margin: 20rpx 0;
    }
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" tools:ignore="ProtectedPermissions" /> iOS:NSMicrophoneUsageDescription

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率: