花粉俱乐部  logo 花粉俱乐部  因为热爱
搜索 |
[交流分享]

快应用快速接入HiAI Engine(5)- 语音识别

[复制帖子标题和链接]

5733

莓夏文  版主  发表于 2019-1-2 11:11:37 来自:浏览器

最新回复 2019-1-2 11:14:48

HiAI体验”快应用源码在github(https://github.com/Huawei/Consumer/tree/master/HiAI-quickapp-demo)开源了,一步步带你快速在快应用中接入华为HiAI Engine,让你的快应用变得更智能。

1.   引言
华为HiAIEngine提供了免费的人脸检测、语音识别等多种AI能力,而且还可以在快应用中使用,您可以轻松将多种AI能力和APP或快应用相结合,让您的APP或快应用更加智能强大。最重要的是华为的HiAI Engine是离线的,用户的数据始终都在他们自己的手机上面,不需要担心隐私泄露的问题,可以放心使用。
本次介绍的是HiAI Engine的语音识别能力。语音识别是将语音文件、实时语音数据流转换为汉子序列,可应用于语音输入法、语音搜索、社交聊天、驾驶模式等,本次实现效果图如下。

1.jpg

莓夏文  版主  发表于 2019-1-2 11:12:10 来自:浏览器
2.   接入准备
语音识别这个接口在快应用中开发很简单,只需要开发者在华为快应用官网下载华为快应用IDE,然后就可以根据华为HiAI开发指南进行开发了。目前使用华为快应用IDE开发HiAI的能力只需完成以下两步即可开始代码编写,具体如下:
1)  manifest配置文件增加如下配置:{"name":"system.ai"}。
2)  导入AI模块,如:importai from ´@system.ai或var ai = require("@system.ai ")。

莓夏文  版主  发表于 2019-1-2 11:12:58 来自:浏览器
本帖最后由 莓夏文 于 2019-1-2 11:14 编辑

3.   代码实现
代码编写先是完成界面部分,然后实现HiAI接口功能,界面实现可以参考快应用开发指南,这里详细介绍一下HiAI中语音识别接口的实现,本示例中具体实现步骤如下:
第一步:开始语音识别。
第二步:结束语音识别。
(1) 开始语音识别:
    //开始录音
    onStartSpeeh: function () {
        var that = this;
        ai.startRecognize({
            //前端静音检测时间
            fontTime: 3000,
            //后端静音检测时间
            backTime: 4000,
            //超时时间
            totalTime: 20000,
            //用户开始说话回调该函数
            onBeginningOfSpeech: function () {
                console.log("beginspeech")
            },
           //返回当前输入语音的能量
            onRmsChanged: function (res) {
                 console.log("rmsis" + res.rms)
            },
           //引擎检测到用户已经说完后回调该函数
            onEndOfSpeech: function () {
                console.log("endof speech")
                that.isStart = "false";
                that.startBtnText = "开始录音";
            },
            //识别过程中,每解码一个chunk,回调一次
            onPartialResult: function (res) {
                console.log("start PartialResult is: " + JSON.stringify(res.result))
            },
            //识别结束回调
            onEnd: function () {
                console.log("voicerecognization end")
            },
            //成功回调
            success: function (data) {
                var resultStr =´´;
               for (var index = 0; index <data.result.length; index++) {
                     resultStr += data.result[index].word;
                }
                that.resultWord = resultStr;
            },
            //失败回调
            fail: function (data,code) {
                console.log("handlingfail, code: " + code)
                that.resultWord = "错误码: " + errCodeList[code];
            }
        })
    },
(2)调用停止录音接口
    //停止录音
    onStopSpeeh: function () {
        var that = this;
        //调用语音识别停止接口
        ai.stopRecognize({
            //停止录音成功回调
            success: function () {
                that.isStart = "false";
                that.startBtnText = "开始录音";
            },
            //停止录音失败回调
            fail: function (data,code) {
                console.log("endhandling fail, code: " + code);
                that.resultWord = "错误码: " + errCodeList[code];
            },
            complete: function (msg) {
                console.log("endhandling complete");
            }
        })
    }
本示例实现了实时语音数据流转换成汉子序列的功能,开发者可以参考本示例实现语音输入法、语音搜索、实时字幕、游戏娱乐、社交聊天等应用场景的开发。

莓夏文  版主  发表于 2019-1-2 11:14:48 来自:浏览器
4.   总结
至此,介绍快应用接入华为HiAI的语音识别能力已经描述完了,继上次人脸检测、人脸比对等介绍,本次只介绍语音识别这个能力,后续将会将其他关于华为HiAI的能力也介绍给大家,如:图像识别、自然语言处理等几种能力。本次介绍能力源码在github上有上传,大家可以通过访问文章头部提供的链接去参考一下。
除此之外,华为还提供了Android端的HiAI,本次分享没有介绍,后期会继续分享一下,有兴趣的朋友可以先去华为开发者网站了解一下。

您需要登录后才可以回帖 登录 | 立即注册

EMUI9.0

工具下载

  • 花粉客户端官方

    Make it Possible

华为软件专区

关注花粉俱乐部

苏ICP备17040376号-6| 增值电信业务经营许可证:苏B2-20130048号| 苏网文[2015]1599-026号| 苏公网安备 32011402010002号

Copyright © 2011-2019 华为软件技术有限公司 版权所有 保留一切权利

快速回复 返回顶部 返回列表