语音识别小程序SDK

简介

HI,您好,欢迎使用学而思网校AI开放平台小程序语音识别服务。本文档主要针对需要小程序开发语音识别的技术研发工程师,详细描述小程序开发语音识别相关的技术。内容包含儿童英文识别、成人英文识别、K12中文语音识别。您可以通过快速接入安全接入使用此AI能力,在项目代码中给与用户体验文本以及录好的参考音频,请按照规则进行调试。

适用范围/环境依赖

小程序开发工具V1.0.2.1904090,开发机器-微信版本IOS 7.0.3 安卓 7.0.3 小程序开发工具请使用真机调试

语音识别小程序版介绍

语音识别小程序版 提供识别的中文/英文两种识别方式。您可以通过参数配置

  3 英文识别 4 K12中文语音识别 5 儿童英语识别
    let ceping = '3'

快速接入方式

请求参数详情

参数名 类型 是否必选 赋值说明 样例 备注
app_key string

应用标识

8102b22a5e81e840176d9f381ec6f837 请登录官网获app_key

代码示例

初始化请求传参:

    //接入方式 1快速接入  2安全接入
    let access_mode = 1
    //app_key 身份标识
    let app_key = '8102b22a5e81e840176d9f381ec6f837'

安全接入方式

请求参数详情

参数名 类型 是否必选 赋值说明 样例 备注
app_key string 应用标识 8102b22a5e81e840176d9f381ec6f837 请登录官网获app_key
time_stamp string 秒级时间戳 1493468759 安全接入必备,用于唯一地标识某一刻的时间
nonce_str string 随机字符串 dd599ef889859f9fe 安全接入必备 1-32个字符(数字或字母)
app_secret
string 应用标识
f308ce31e42e366093c01e5283f1acc02c2
cd47492f5c8633b55d58930be2b2c
请登录官网获app_secret
sign string 签名信息 99880aabb33f4def5c875875b6bdc3b1 安全接入必备

请求代码示例

初始化请求传参:

    //接入方式 1快速接入  2安全接入
    let access_mode = 2
    //app_key
    let app_key = '8102b22a5e81e840176d9f381ec6f837'
    //app_secret
    let app_secret = 'f308ce31e42e366093c01e5283f1acc02c2cd47492f5c8633b55d58930be2b2c'

 

识别sdk主要参数说明

参数名 类型 是否必选 赋值说明 样例
sid
string

sid,全局唯一

sid='7dbb864c-33e9-4abf-98b6-16d65b3c6748"'
idx
string

分段音频的次序,最后一个包用负值表示(如:-100)

"1"  /  "2"  /  "-n(数值)"
compress
string

【默认为0】

0:pcm(16K采样率) 或 wav(16K采样率)

位深度16bit

2:mp3(16K) 或 aac(16K)

compress='0'
app_key
string

请阅读接入方式

请阅读接入方式
app_secret
string

请阅读接入方式

请阅读接入方式
vad_max_sec
string
默认30s, 最大说话时长,最大可设置90s
vad_max_sec = '90'
vad_pause_sec
string
默认5s, 说话后静音停止时间
vad_pause_sec = '3'
long_speech
string

【默认为""】

"1",开启长语音识别

非"1",不开启长语音识别

long_speech = '1'
vad_st_sil_sec
string
默认为10s, 说话前最大静音时长
vad_st_sil_sec = '3'
audio
string

音频字节流base64编码之后的字符串

 

json示例


{

    "common": {

        "sid": "7dbb864c-33e9-4abf-98b6-16d65b3c6748",

        "idx": "1",

        "compress": "2"

    },

    "spec": {

        "vad_max_sec": "15",

        "vad_pause_sec": "3",

        "vad_st_sil_sec": "5",

        "long_speech": "1",

        "extra": {}

    },

    "audio": "audio-bytes"

}

正式操作

完整小程序代码请发送邮件至linqi@100tal.com免费领取!

您可以通过上面的链接直接下载小程序sdk代码,并复制到您的项目中,一键运行。亦可按照下面的完整步骤进行操作。

操作步骤一:

1,下载小程序sdk-->wx文件夹下小程序sdk完整代码, 小程序开发者工具下载

2,创建小程序。如有小程序AppID请填写,没有AppID请点击测试号

init0.png

3,将lib文件夹 和images 文件夹引入小程序的根目录

init1.png

 操作步骤二:

app.js 文件中引入 

  globalData: {
    userInfo: null, // 每句录音 、
    testResult: [], // 返回结果
    myRecording: '',
    cpluyinurl:'' //原音地址
  }

操作步骤三:

app.json 文件引入

引入
 "pages/newpage/newpage", 
 "lib/followResult/followResult"


最终app.json 目录结构
{
  "pages": [
    "pages/newpage/newpage",
    "pages/index/index",
    "pages/logs/logs",
    "lib/followResult/followResult"
  ]
}

init3.png

操作步骤四:

目录pages-->newpage-->newpage.js 引入

  var sdkdemo = require('../../lib/newdatatest/newdatatest.js')
  
  /**
   * 页面的初始数据
   */
  data: {
    postList: sdkdemo.showdata,
  },
  /**
  * 初始化方法
  */
  initsystem: function () {
    getApp().globalData.testResult = [];
    this.onLoad();
  },

  /**
  * 点击原音按钮
  */
  bindNative: function () {
    sdkdemo.playRecording(this)  //  唤起接口
  },
  /**
  * 点击录音按钮
  */
  bindRecord: function () {
    sdkdemo.clickRecording(this)  //  唤起接口
  },
  /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
 
    // type:String 1 英文 2 中文 3 英文识别 4 中文识别 5 儿童英文识别
    let ceping = '1'
    // 测评对照阅读的文本
    let cpinfo = ' how are you  | i have a apple'
    // 测评参考录音
    let cpluyinurl = 'http://43.228.39.217:12001/waiyanshe/record/one/oneSen.m4a'
    //接入方式 1快速接入  2安全接入
    let access_mode = 1
    //app_key
    let app_key = '8102b22a5e81e840176d9f381ec6f837'
    //app_secret
    let app_secret = 'f308ce31e42e366093c01e5283f1acc02c2cd47492f5c8633b55d58930be2b2c'

    //默认30s, 最大说话时长,最大可设置90s 
    let vad_max_sec = (ceping === '3' || ceping === '4' || ceping === '5') ? '20':'90';

    // 默认5s, 说话后静音停止时间
    let vad_pause_sec = '3';
    //默认为10s, 说话前最大静音时长
    let vad_st_sil_sec = '3';

    // 识别中的长语音设定 
    var long_speech = '1'

      //静音时长提示,单位是10ms  
    let sil_tips_sec = '200';
      //清音惩罚选项,测评单词时对清音发音好坏更敏感
    let voiceless_penal = '1';
      //单句测评与多句测评模式选项,多句测评模式置为1 单句测评为0
    let multi_sent_loop = '1';
    
   

    //  初始化数据 
    let initData = {
      "ceping": ceping,
      "cpinfo": cpinfo,
      "cpluyinurl": cpluyinurl
    };
    //  接入方式数据
    let accessModeData = {
      "access_mode": access_mode,
      "app_key": app_key,
      "app_secret": app_secret
    }
    let initAiData = {
      "vad_max_sec": vad_max_sec,
      "vad_pause_sec": vad_pause_sec,
      "vad_st_sil_sec": vad_st_sil_sec,
      
    }
    // 如果是测评的话,会多加几个参数
    if (ceping === '1' || ceping === '2') {
      initAiData = Object.assign(initAiData, {
        "sil_tips_sec": sil_tips_sec,
        "voiceless_penal": voiceless_penal,
        "multi_sent_loop": multi_sent_loop
       
      })
    } else if (ceping === '3' || ceping === '4' || ceping === '5'){
      initAiData = Object.assign(initAiData, {
        "long_speech": long_speech
      })
    }
    

    console.log('~~~~~~~~', initAiData)
    sdkdemo.showtest(this, initData, accessModeData, initAiData)
  }

init4.png

 

操作步骤五:

目录pages-->newpage-->newpage.wxml 引入

<import src="/lib/newdatatest/newdatatest.wxml" />   
<template is="skxTestPage" data="{{...postList}}"/>

init5.png

操作步骤六:

目录pages-->newpage-->newpage.wxss 引入

@import "/lib/newdatatest/newdatatest.wxss";

init6.png

 

操作步骤七:

不校验合法域名:

小程序开发者工具--》右上角”详情“--》项目设置tab --》勾选”不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书“

init7.png

目录结构:

--images 
--lib 
--pages 
--utils 
--app.js 
--app.json 
--app.wxss 
--project.config.json

init8.png

 

 

 

 

 

 

 

 

 

 

Back to top