RNSpokestack 4.0.0

RNSpokestack 4.0.0

Noel Weichbrodt 维护。



 
依赖项
Spokestack-iOS= 14.0.1
React>= 0
 

  • RNSpokestack

react-native-spokestack

Spokestack 论坛的 React Native 包装器,用于 Spokestack 语音活动检测/自动语音识别项目。

目录

入门

$ npm install react-native-spokestack --save

  • React Native: 0.60.0+
  • Android: Android SDK 24+
  • : iOS 13+

用法

使用 Spokestack 入门,或查看我们关于 ASRNLUTTS 的详细教程。务必查看食谱,以获取常见问题的快速解决方案!

API

方法

方法名称 描述 方法值 操作系统
Spokestack.initialize() 初始化语音流,对于所有其他方法都是必需的 Android, iOS
Spokestack.start()         启动语音流。语音流以“deactivate”状态启动。 Android, iOS
Spokestack.stop() 停止语音流 Android, iOS
Spokestack.activate() 手动激活语音流 Android, iOS
Spokestack.deactivate() 手动关闭语音流 Android, iOS
Spokestack.synthesize({'input': string, 'format': int, 'voice': string}) 请求一个指定语音输入的音频文件URL 格式 [0: 文本, 1: ssml, 2: speechmarkdown], 语音 ["demo-male"] iOS, Android
Spokestack.classify(utterance: string, {}) 使用意图/槽位自然语言理解模型对语句进行分类 语句:string,上下文:字典(目前未使用,可以是空的) iOS, Android

事件

事件名称 属性 描述 操作系统
onActivate(event) null 当语音流被激活时调用,这启用了语音识别器并开始新的对话会话 Android, iOS
onDeactivate(event) null 当语音流被注销时调用 Android, iOS
onStart(event) null 当语音流启动时调用 Android, iOS
onStop(event) null 当语音流已经被停止时调用 Android, iOS
onRecognize(event) transcript:string 当语音被识别时调用 Android, iOS
onTimeout(event) null 当激活后没有检测到语音超过 wake-active-max 时调用 Android, iOS
onTrace(event) message:string 当可用跟踪消息时调用 Android
onError(event) error:string 在Spokestack模块中发生错误时调用。 Android, iOS
onSuccess(ttsEvent) url:string 当TTS合成请求成功时调用 iOS
onClassification(nluEvent) result:dictionary 在成功的NLU语句分类上调用 iOS

词典

nluEvent

结果 词典
结果
意图 字符串
置信度 字符串
词典
类型 字符串
字符串

枚举

跟踪

跟踪等级
DEBUG 10
PERF 20
INFO 30
NONE 100

格式

TTSFormat
TEXT 0
SSML 1
SPEECHMARKDOWN 2

管道配置文件

PipelineProfile
TFLITE_WAKEWORDNative_ASR 0
VAD_Native_ASR 1
PTT_Native_ASR 2
TFLITE_WAKEWORD_SPOKESTACK_ASR 3
VAD_SPOKESTACK_ASR 4
PTT_SPOKESTACK_ASR 5

注意事项

Android

  • 需要支持Android SDK 24版本
  • 需要Gradle 3.0.1+版本 (classpath 'com.android.tools.build:gradle:3.0.1' 在根build.gradledependencies)
  • 添加应用设置以获取麦克风权限

示例使用的是系统提供的ASR(AndroidSpeechRecognizerAppleSpeechRecognizer)。尽管如此,AndroidSpeechRecognizer并非在100%的设备上都可用;有关更多信息,请参阅我们的ASR文档。如果您使用不同的ASR提供商,还需要将input行更改为

input: "io.spokestack.spokestack.android.MicrophoneInput",

iOS

  • 为麦克风权限(NSMicrophoneUsageDescription)和语音识别(NSSpeechRecognitionUsageDescription)添加应用设置
  • Spokestack在iOS上不管理AudioSession设置。客户端应用需要实现必要的任何AudioSession类型和选项。至少,会话类别应该允许录音,例如 AVAudioSessionCategoryRecordAVAudioSessionCategoryPlayAndRecord。一个简单的AudioSession设置,适用于插入到AppDelegate.m中,可以是
  [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord mode:AVAudioSessionModeDefault options:AVAudioSessionCategoryOptionDefaultToSpeaker  error:nil];
  [[AVAudioSession sharedInstance] setActive:YES error:nil];

发布

  1. 确保CocoaPods是通过gem安装的,而不是通过brew安装的
  2. package.json中增加version
  3. git commit -a -m 'YOUR_COMMIT_MESSAGE' && git tag YOUR_VERSION && git push --origin
  4. pod spec lint --use-libraries --allow-warnings --use-modular-headers,应该通过除了一个检查以外的所有检查(期望ERROR | [iOS] xcodebuild: 返回了一个失败退出码。你可以使用--verbose来获取更多信息。
  5. 编辑/Library/Ruby/Gems/YOUR_RUBY_VERSION/gems/cocoapods-trunk-YOUR_COCOAPODS_VERSION/lib/pod/command/trunk/push.rb,注释掉validate_podspec_files(《https://github.com/CocoaPods/CocoaPods/blob/master/lib/cocoapods/command/repo/push.rb#L77》)
  6. pod trunk register YOUR_EMAIL --description='release YOUR_PODSPEC_VERSION'
  7. 使用npm publish在NPM上发布
  8. pod trunk push --use-libraries --allow-warnings --use-modular-headers
  • 由于RNSpokestack iOS需要React Native头文件,但没有任何React Native依赖项,它本身无法编译,需要包含React Native依赖项的客户端库。

许可

版权所有 2020 Spokestack, Inc.

遵循Apache License,版本2.0(“许可证”);除非符合许可证规定或书面同意,否则不得使用此文件。您可以在以下位置获得许可证副本:

  https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不附带任何明示或暗示的保证或条件。有关许可证的具体语言管理权限和限制,请参阅许可证。