更新记录

1.0.3(2024-07-26)

1.0.3

1.0.2(2024-07-26)

1.0.2

  1. 更新文档

1.0.0(2024-07-26)

1.0.1

  1. 完成文档编写和android sdk集成
查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.6.11,Android:支持,iOS:不支持,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

fy-speech-recog

开发文档

UTS 语法 UTS API插件 UTS 组件插件 Hello UTS

插件对外暴露FyPermission和FySpeechRecog两个类

1.FyPermission使用说明

FyPermission授权的事件说明

方法 参数 返回 说明
check void Boolean 判断权限是否已经被用户授予
requestPermission RequestPermissionOptions void 请求系统权限

RequestPermissionOptions 说明

参数名 必填 返回 说明
success (res: string) => void 获取权限成功
fail (res: string) => void 获取权限失败;获取失败后再次调起授权会提示打开权限设置页面

例子

import { FyPermission } from '@/uni_modules/fy-speech-recog';
const permis = new FyPermission();
permis.requestPermission({
    success: function (res) {
        console.log(res);
    },
    fail: function(res){
        console.log(res);
    }
})

2.FySpeechRecog使用说明

构造函数OBJECT 参数说明

参数名 类型 必填 说明
APP_ID string 百度开放平台创建应用后分配的鉴权信息
APP_KEY string 百度开放平台创建应用后分配的鉴权信息
SECRET string 百度开放平台创建应用后分配的鉴权信息

FySpeechRecog的事件说明

方法 参数 返回 说明
getWPStatus void boolean 获取唤醒状态
getRZStatus void boolean 获取语音识别状态
startWakeUp options: WakeUpOptions, callbackOptions: WakeUpCallbackOptions void 点击“开始识别”按钮,发送开始事件开始唤醒
stopWakeUp void void 停止唤醒
startRecognizer options: RecogOptions, callbackOptions: RecogCallbackOptions void 开启语音识别
stopRecognizer void void 停止语音识别

WakeUpOptions参数说明

参数名 必填 类型 说明
WP_WORDS_FILE string 唤醒词bin文件,前往百度语音唤醒配置;下载WakeUp.bin文件后可以放在static文件夹中,具体使用看下方案例
IN_FILE string 文件路径资源路径或回调方法名
ACCEPT_AUDIO_DATA boolean 默认关闭。开启后,会有音频回调(CALLBACK_EVENT_WAKEUP_AUDIO),很占资源
WP_ENGINE_LICENSE_FILE_PATH string 不填写,在联网时会获取自动获取离线正式授权。有特殊原因可用在官网下载临时授权文件,配置此参数,支持android asset目录(如assets:///mylicense.dat)
SAMPLE_RATE Int 16000(默认值,且唤醒仅支持16k采样)

WakeUpCallbackOptions参数说明

参数名 必填 类型 说明
success (res: string) => void 唤醒成功
fail (res: string) => void 唤醒失败
stop () => void 唤醒结束

RecogOptions参数说明

参数名 必填 类型 说明
AUDIO_MILLS Int 录音开始的时间点。用于唤醒+识别连续说。SDK有15s的录音缓存。如设置为(System.currentTimeMillis() - 1500),表示回溯1.5s的音频。
PID Int 场景: 在线;默认1537,即中文输入法模型,不带在线语义
LM_ID Int 场景: 在线;自训练平台上线后的模型Id,必须和自训练平台的PID连用。
DECODER Int 默认0,0=在线,2=离在线融合(在线优先);离在线的并行策略
VAD string 默认VAD_DNN;可设置VAD_DNN或VAD_TOUCH;语音活动检测, 根据静音时长自动断句。注意不开启长语音的情况下,SDK只能录制60s音频。长语音请设置BDS_ASR_ENABLE_LONG_SPEECH参数;VAD_TOUCH=关闭语音活动检测。注意关闭后不要开启长语音。适合用户自行控制音频结束,但时长不能超过60s
BDS_ASR_ENABLE_LONG_SPEECH boolean 是否开启长语音。 即无静音超时断句,开启后需手动调用ASR_STOP停止录音。 请勿和VAD=touch联用!优先级大于VAD_ENDPOINT_TIMEOUT 设置
VAD_ENDPOINT_TIMEOUT Int 静音超时断句及长语音
IN_FILE string 文件路径资源路径或回调方法名
OUT_FILE string 文件路径,保存识别过程产生的录音文件, 该参数需要开启ACCEPT_AUDIO_DATA后生效
NLU string 本地语义解析设置。必须设置ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数生效,无论网络状况,都可以有本地语义结果。并且本地语义结果会覆盖在线语义结果。本参数不控制在线语义输出,需要在线语义输出见PID参数
ASROFFLINEENGINE_GRAMMER_FILE_PATH string 用于支持本地语义解析的bsg文件,离线和在线都可使用。NLU开启生效,其它说明见NLU参数。注意bsg文件同时也用于ASR_KWS_LOAD_ENGINE离线命令词功能。
SLOT_DATA string 与ASR_OFFLINE_ENGINE_GRAMMER_FILE_PATH参数一起使用后生效
DISABLE_PUNCTUATION boolean 在选择1537开头的pid(输入法模式)的时候,是否禁用标点符号
ACCEPT_AUDIO_DATA boolean 是否需要语音音频数据回调,开启后有CALLBACK_EVENT_ASR_AUDIO事件
ACCEPT_AUDIO_VOLUME boolean 是否需要语音音量数据回调,开启后有CALLBACK_EVENT_ASR_VOLUME事件回调
SOUND_START Int 说话开始的提示音
SOUND_END Int 说话结束的提示音
SOUND_SUCCESS Int 识别成功的提示音
SOUND_ERROR Int 识别出错的提示音
SOUND_CANCEL Int 识别取消的提示音
SAMPLE_RATE Int 采样率 ,固定及默认值16000
ASR_OFFLINE_ENGINE_LICENSE_FILE_PATH string 临时授权文件路径

RecogCallbackOptions参数说明

参数名 必填 类型 说明
listener (res: string) => void 监听语音识别

综合案例

<template>
    <view class="content">
        <view class="">
            <button @click="handleStartWU">语音唤醒开始</button>
            <button @click="handleStopWU">语音唤醒结束</button>
            <view style="width: 750rpx;height: 2px;background-color: #000000;margin-top: 30px;"></view>
            <button @click="handleStart">语音识别开始</button>
            <button @click="handleStop">语音识别结束</button>
        </view>
    </view>
</template>

<script>
import { FySpeechRecog, FyPermission } from '@/uni_modules/fy-speech-recog';
let recogHandle = null;
export default {
    data() {
        return {
            title: 'Hello'
        }
    },
    onReady() {
        const permis = new FyPermission();
        permis.requestPermission({
            success: function () {
                recogHandle = new FySpeechRecog({
                    APP_ID: "百度开放平台拿到的APP_ID",
                    APP_KEY: "百度开放平台拿到的APP_KEY",
                    SECRET: "百度开放平台拿到的SECRET",
                });
            }
        })
    },
    methods: {
        // 开启语音唤醒
        handleStartWU() {
            recogHandle && recogHandle.startWakeUp({
                    WP_WORDS_FILE: plus.io.convertLocalFileSystemURL("/static/WakeUp.bin")
                }, {
                success: function(res) {
                    console.log(res)
                }
            });
        },
        // 停止语音唤醒
        handleStopWU() {
            recogHandle && recogHandle.stopWakeUp();
        },
        // 开启语音识别
        handleStart() {
            recogHandle && recogHandle.startRecognizer({ AUDIO_MILLS: 0 }, {
                listener: function(res) {
                    try {
                        const recogRes = JSON.parse(res);
                        console.log(recogRes);
                        if (recogRes.resultWold && [6, 11061, 7].includes(recogRes.status)) { // 临时识别、最总识别、长语音识别
                            console.log(recogRes.resultWold);
                        }
                    } catch(err) {
                        console.log(err);
                    }
                }
            })
        },
        // 停止语音识别
        handleStop() {
            recogHandle && recogHandle.stopRecognizer();
        }
    }
}
</script>

重点注意事项

  1. 导入插件后记得一定一定要重新打包自定义基座,并配置在百度AI开放平台填写的android包名;
  2. 语音唤醒可以使用个人百度AI开放平台账号,但是语音识别个人账号免费额度是不行的,可以使用企业账号或者自行开通个人账号API权限。
  3. 语音唤醒、语音识别和手机系统提供的智能助手功能不一样,需要开启录音等权限,需要先使用permis.requestPermission开启权限后才能使用语音唤醒和语音识别,流程一定不能出错。
  4. WakeUpOptions、RecogOptions文档提供的参数不一定很全很正确,可以自行前往百度官方文档查看。必填项都是正确和常用的。

语音智能助手

  1. 需要配合fy-tts语音播报、fy-segment-words文本分词可做简单的语音助手。
  2. 如需语音控制app打开关闭可配合fy-getinstall即可打开其他应用程序,如微信、qq等;
  3. 如需智能回答还可接入uni-ai。注:收费功能

路线图

  1. 目前没有规划ios sdk集成,但是后续会找时间继续集成进来。

隐私、权限声明

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

<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 蓝牙录音使用,不需要可以去除 --> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

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

插件不采集任何数据

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问