更新记录

1.0.6(2024-08-03)

新增:语音识别

1.0.5(2024-08-03)

修复:App 运行报错的问题

1.0.4(2024-08-02)

新增:时长播放参数

查看更多

平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.15 app-vue ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

Attributes

参数 说明 类型 默认值
appkey 阿里云appkey String -
token 阿里云token String -
auto 是否开启自动定时监听 Boolean false
limitTime 说话时长 Number 5000
payTime 语音播放时间 Number 5000

Events

监听 说明 回调参数
appChange 识别成功 识别结果

使用说明

  1. 在页面中引入组件;
  2. 在data中定义appkey和token;
  3. 在onReady中调用init方法;
  4. 点击机器人,开始聆听您的说话(auto=true 时自动执行);
  5. 当说话结束后,点击机器人,结束聆听(auto=true 时自动执行);
  6. 聆听结束后,会自动将您的说话内容转为文字,并显示在下方;
  7. 您也可以手动点击机器人,重新聆听。

注意事项:

  1. 本插件需要您自行申请appkey和token,并填入上方输入框中;
  2. 创建一个项目获得appkey 获取链接
  3. 临时Token 获取地址,建议后端获取,防止泄露,

示例代码

<template>
    <view>

        <view class="content">
            <text class="text">{{content}}</text>
        </view>
        <!-- 录音文件版本识别(目前仅支持阿里云) -->
        <mms-asr ref="asr" :appkey="appkey" :token="token" :auto="true" :limitTime="5000" ></mms-asr>
        <!-- 实时语音识别(目前仅支持腾讯) -->
        <!-- <mms-asr-socket ref="asr" appId="" secretKey="" secretId=""  @change="change" uploadFile="false" ></mms-asr-socket> -->
    </view>
</template>

<script>
    export default {
        data() {
            return {
                time: null,
                content: "",
                appkey: "s16qLe3Z4By6VSQd", //获取地址:https://nls-portal.console.aliyun.com/applist  创建一个项目获得
                token: "2d9c747cae69436a912c8ef61b3e0e1d", // 建议后端获取,防止泄露,临时Token获取地址  :https://nls-portal.console.aliyun.com/overview

            };
        },
        onLoad() {

        },
        onReady() {
            var than = this;
            this.$refs.asr.init();
            uni.$on('appChange', function(data) {
                console.log('监听到事件来自appChange:' + data);
                than.content = data;
                than.endMsg(data);
            })
        },
        methods: {
            open: function() {
                this.$refs.asr.init();
            },
            change: function(content) {
                console.log('语音识别确认结果:' + content);
                if (content == null || content === undefined || content.length == 0) {
                    return;
                }
                this.content = content;
                // 新的识别进来了

                // 停止延时器
                if (this.time) {
                    clearTimeout(this.time);
                }
                // 重新启动
                this.time = setTimeout(() => {
                    this.$refs.asr.stop();
                    this.endMsg(content);
                }, 1500);

            },
            fileChange: function({
                file,
                content
            }) {
                console.log('录音文件', file);
                console.log('语音识别确认结果:' + content);
            },
            uploadFile: function(tempFilePath) {
                return new Promise((resolve, reject) => {
                    //调用你的接口把音频文件转为文字
                    this.$minApi
                        .upload('txasr/SentenceRecognition', null, tempFilePath)
                        .then(res => {
                            if (res.code == 1) {
                                resolve(res.data.Result);
                            } else {
                                reject(e);
                            }
                        })
                        .catch(e => {
                            reject(e);
                        });
                });
            },
            endMsg(content) {
                const innerAudioContext = uni.createInnerAudioContext();
                if (content === "小柯小柯。" || content === "小柯,小柯。" || content === "小柯。" || content === "小柯同学。" || content ===
                    "你是谁?") {
                    console.log('小科在...');

                    innerAudioContext.autoplay = true;
                    innerAudioContext.src = 'https://sxpcwlkj-test.oss-cn-hangzhou.aliyuncs.com/xk.mp3';
                    innerAudioContext.onEnded(() => {
                    console.log('结束播放');
                    this.$refs.asr.stop();
                    });
                    return;
                }
                if (content === "小科在...") {
                    return;
                }
                if (content == "退下。") {
                    this.$refs.asr.stop();
                    this.content = "";
                    return;
                }
                innerAudioContext.autoplay = true;
                innerAudioContext.src =
                    'https://sxpcwlkj-test.oss-cn-hangzhou.aliyuncs.com/ttsmaker-file-2024-7-27-22-40-35.mp3';
                innerAudioContext.onEnded(() => {
                    console.log('结束播放');
                    this.$refs.asr.stop();
                });
            }
        }
    };
</script>

<style lang="scss">
    .content {
        min-height: 100vh;
        width: 98%;
        background-color: #f8f4ff;
        padding: 1%;
    }
</style>

隐私、权限声明

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

录音权限

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

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

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