百度长语音SDK到RN的集成

react-native-bdVoice(百度长语音)

小米学院语音问答模块使用的是百度语音,在百度官网下载了百度语音的SDK,并封装成npm原生模块,使用的时候,只要npm install到自己的项目中,即可使用。长按按钮,开始讲话,松开按钮,停止录音,讲话的时候,实时将录音转换为文字。
我已经将该SDK封装完毕,放在小米代码托管平台,地址:https://micode.be.xiaomi.com/npm-mife/react-native-bdVoice.git


语音包SDK(使用者无需关注)

封装该包需要从百度官网下载一个压缩包【audiobd_speech_sdk_asr_v3.0.6_bdasr_20171108_9800a2a_v3.zip】,不同时期名字会有所不同,解压后,找到如下几个文件

  1. 百度语音包:bdasr_V3_20171108_9800a2a.jar;
  2. 五个动态链接库包so文件
  3. 下载地址:点击我 或者 [http://ai.baidu.com/sdk#asr]

语音包提供的供RN使用的接口方法

  1. 开始录音:start();
  2. 结束录音:stop();
  3. 讲话期间监听事件名称:onScanningResult
  4. 取消录音:onDestroy();

##RN项目如何引入该包

  1. 在RN的package.json中添加:“react-native-bdVoice”: “git+ssh://[email protected]:npm-mife/react-native-bdVoice.git”
  2. 命令行:$ npm i
  3. 命令行:$ react-native link react-native-bdVoice

经过link之后,android/settings.gradle、android/app/build.gradle、android/app/src/main/java/com/[xxx]/MainApplication.java中会自动针对react-native-bdVoice进行微妙的配置


##RN项目如何使用该包
1,在百度长语音平台创建一个应用
点击我开始创建,小米人的我已经创建了。创建好的应用,百度会立马提供APP_ID、API_KEY、SECRET_KEY,然后将这些值配置在RN项目中的AndroidManifest.xml文件中:以小米学院为例,具体配置如下,其他的应用要记得修改上述提到的三个值,因为每个应用的这些值是不同的,在标签下添加如下子标签:





2,同样在该AndroidManifest.xml文件中赋予该语音应用相关权限







3,引入相关联的包

import { NativeModules, DeviceEventEmitter } from 'react-native

4,在组件加载完成之后对“onScanningResult”事件进行监听

  componentDidMount() {
    DeviceEventEmitter.addListener('onScanningResult', this.onScanningResult.bind(this))
  }
  onScanningResult(e) {
    let result = e.result
    let json = result && result.includes('best_result') ? JSON.parse(result) : null
    if (json) {
	  //业务逻辑,此处自行设计
      console.log('json.best_result = ', json.best_result)
    }
  }

5,移除监听

componentWillUnmount() {
	DeviceEventEmitter.removeListener('onScanningResult', this.onScanningResult)
}

你可能感兴趣的:(前端,ReactNative,Android)