关山初度尘未洗,策马扬鞭再奋蹄!这篇文章主要讲述使用APICloud & 科大讯飞SDK快速实现语音识别功能相关的知识,希望能为你提供帮助。
语音识别功能已经是一个很普及的功能,在特定情境下,能带给人们方便的交互的体验,比如驾驶时使用语音进行唤醒手机,各类智能音响产品,语音控制智能电视等。本文主要介绍在APICloud平台使用科大讯飞的SDK快速实现语音识别功能。
一、效果预览
二、功能实现
在注册好APICloud账号后,进入控制台,添加iflyRecognition模块。iflyRecognition模块封装了科大讯飞的SDK 的语音听写、语音在线合成功能。
使用流程:
1、注册讯飞开放平台账号
2、在讯飞开放平台创建应用,并添加语音听写、在线语音合成服务。
3、参考模块文档(docs.apicloud.com/Client-API/Open-SDK/iflyRecognition)相关描述,制作android自定义模块。
从讯飞下载的合成SDK,如下图:
【使用APICloud & 科大讯飞SDK快速实现语音识别功能】
根据文档提示,制作的自定义模块如下图:
重新压缩后,上传到自定义模块处,添加到项目。
根据模块文档,调用接口:
1、
createUtility创建科大讯飞引擎
createUtility(params, callback(ret, err))
paramsandroid_appid:
ios_appid:
示例:
var iflyRecognition = api.require(iflyRecognition);
iflyRecognition.createUtility(
ios_appid: 6041****,// 填写讯飞平台上获得的appid
android_appid: 6041****// 填写讯飞平台上获得的appid
, function (ret, err)
if (ret.status)
api.alert(
msg: 创建成功
);
else
api.alert(
msg: "创建失败"
);
);
2、
record识别语音返回文字
record(params, callback(ret, err))
paramsvadbos:
vadeos:
rate:
asrptt:
audioPath:
callback(ret, err)ret:
status:true//布尔类型;操作成功状态值,true|false
wordStr://字符串类型;识别语音后的文字
eventType:,//字符串类型;交互事件类型:
//record_end:录音结束事件 (仅支持ios)
//recognize_end:识别结束事件
//recognize_start: 识别开始事件(仅支持Android)
示例:
var iflyRecognition = api.require(iflyRecognition);
iflyRecognition.record(
vadbos: 5000,
vadeos: 2000,
rate: 16000,
asrptt: 1,
audioPath: fs://myapp/speech.pcm
, function (ret, err)
if (ret.status)
if (ret.wordStr)
let wordStr = ret.wordStr;
that.data.items.push(wordStr);
that.data.isOk = true;
//flag = false;
else
// api.alert(
//msg: err.msg
// );
);
完整代码如下:
<
template>
<
safe-area>
<
view class="page">
<
view class="content"v-if="isOk">
<
view class="item" v-for="(item, index) in items">
<
text>
item<
/text>
<
/view>
<
/view>
<
view class="btm" onclick="fnrecord()">
<
text>
开始语音识别,请说话。。。<
/text>
<
/view>
<
/view>
<
/safe-area>
<
/template>
<
script>
export default
name: record,
apiready() //like created
var iflyRecognition = api.require(iflyRecognition);
iflyRecognition.createUtility(
ios_appid: 6041****,// 填写自己从讯飞平台上获得的appid
android_appid: 6041****// 填写自己从讯飞平台上获得的appid
, function (ret, err)
if (ret.status)
api.alert(
msg: 创建成功
);
else
api.alert(
msg: "创建失败"
);
);
,
data()
return
isOk: false,
items: []
,
methods:
fnrecord()
console.log(1111)
var that = this;
var iflyRecognition = api.require(iflyRecognition);
iflyRecognition.record(
vadbos: 5000,
vadeos: 2000,
rate: 16000,
asrptt: 1,
audioPath: fs://myapp/speech.pcm
, function (ret, err)
if (ret.status)
if (ret.wordStr)
let wordStr = ret.wordStr;
that.data.items.push(wordStr);
that.data.isOk = true;
//flag = false;
else
// api.alert(
//msg: err.msg
// );
);
<
/script>
<
style>
.page
height: 100%;
width: 100%;
.content
position: relative;
top: 30px;
width: 80%;
height: 60%;
border: 1px solid #333;
background-color: #fff;
.btm
position: absolute;
bottom: 20px;
left: 40px;
height: 70px;
width: 300px;
padding: 20px 20px;
border: 1px solid #eee;
border-radius: 5px;
background-color: rgb(51, 142, 216);
.item
width: 90%;
<
/style>
推荐阅读
- 百度小程序包流式下载安装优化
- k8s-监控组件:heaper部署
- Nginx实现后端多台Tomcat的负载均衡调度
- 使用vue+docxtemplater导出word
- 基于Feature Flag的下一代开发模式
- HAC集群状态检查切换数据同步验证方法 目录
- JVS开源框架系列(??动态数据模型说明?「含软开企服的开源地址」)
- Angular项目实战Angular服务器渲染常遇的坑,这份填坑指南请收好~
- 印刷电路板(PCB)基础