
Spokestackを使用して音声を追加するためのネイティブプラグインを反応します。これには、音声認識、ウェイクワード、および自然言語の理解、およびSpokeStack Voicesを使用したテキストへのテキストの合成が含まれます。
NPMの使用:
npm install --save react-native-spokestackまたは糸を使用する:
yarn add react-native-spokestack次に、各プラットフォームの指示に従って、React-Native-Spokestackをプロジェクトにリンクします。
まず、Xcodeを開いてProject-> Infoに移動して、iOS展開目標を13.0以降に設定します。
また、ターゲット - >一般 - >展開情報の下で展開を13.0に設定します。
FlipperがNativeの反応に導入されたとき、いくつかのライブラリ検索パスがSwiftに設定されました。 Reactネイティブプロジェクトのデフォルトの検索パスには長年の問題がありました。これにより、Swift 5.0の検索パスが追加されたため、他のReactネイティブライブラリがSwift 5.2以降でのみ利用可能なAPIを使用できなくなりました。 SpokeStack-IOS、React-Native-SpokeStackの依存性はこれらのAPIを利用し、Xcodeは構築に失敗します。
幸いなことに、修正はかなり簡単です。ターゲットに移動します - > [設定]をビルドし、「ライブラリ検索パス」を検索します。
""$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)""リストから削除します。
pod installを実行する前に、次の編集を必ず作成してください。
React-Native-Spokestackは、iOS 13+でのみ利用可能な比較的新しいAPIを使用しています。ポッドファイルの上部にある展開ターゲットをiOS 13に設定します。
platform :ios , '13.0'また、 use_frameworks! Swiftで書かれた依存関係をサポートするためのPodfileで。
target 'SpokestackExample' do
use_frameworks!
#...今のところ、 use_frameworks!フリッパーでは動作しないため、フリッパーを無効にする必要もあります。ポッドファイルのフリッパー関連の線を削除します。反応ネイティブ0.63.2+では、彼らは次のように見えます:
# X Remove or comment out these lines X
# use_flipper!
# post_install do |installer|
# flipper_post_install(installer)
# end
# XX React Native 0.64.0は、 use_frameworks!彼らのポッドファイルで。
このバグの詳細については、Facebook/React-Native#31149を参照してください。
この問題を回避するには、Podfileに以下を追加してください。
# Moves 'Generate Specs' build_phase to be first for FBReactNativeSpec
post_install do | installer |
installer . pods_project . targets . each do | target |
if ( target . name &. eql? ( 'FBReactNativeSpec' ) )
target . build_phases . each do | build_phase |
if ( build_phase . respond_to? ( :name ) && build_phase . name . eql? ( '[CP-User] Generate Specs' ) )
target . build_phases . move ( build_phase , 0 )
end
end
end
end
end 既存のpodfile.lock and podsフォルダーを削除して、競合がないことを確認してから、ポッドをインストールします。
$ npx pod-install情報に以下を追加して、許可を有効にします。
< key >NSMicrophoneUsageDescription</ key >
< string >This app uses the microphone to hear voice commands</ string >
< key >NSSpeechRecognitionUsageDescription</ key >
< string >This app uses speech recognition to process voice commands</ string >Flipperは、 use_frameworks! 、フリッパーを無効にする必要があります。上記のポッドからフリッパー依存関係を既に削除していますが、appdelegate.mにはフリッパーをインポートするコードが残っています。これを修正するには2つの方法があります。
-DFB_SONARKIT_ENABLED=1削除します。私たちの例アプリでは、オプション1を実行し、将来機能している場合に備えてフリッパーコードに残しました。
# import < AVFoundation/AVFoundation.h > オーディオセッションカテゴリを設定します。機能する構成がいくつかあります。
以下は、ほとんどのユースケースに適合する提案です。
- ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions
{
AVAudioSession *session = [AVAudioSession sharedInstance ];
[session setCategory: AVAudioSessionCategoryPlayAndRecord
mode: AVAudioSessionModeDefault
options: AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionAllowAirPlay | AVAudioSessionCategoryOptionAllowBluetoothA2DP | AVAudioSessionCategoryOptionAllowBluetooth
error: nil ];
[session setActive: YES error: nil ];
// ... この例では、システムが提供するASR( AndroidSpeechRecognizerおよびAppleSpeechRecognizer )を使用しています。ただし、 AndroidSpeechRecognizer 、100%のデバイスでは使用できません。アプリが組み込みの音声認識がないデバイスをサポートしている場合は、 profile Propを使用してprofile SpokeStackプロファイルに設定することにより、SpokeStack ASRを使用します。
詳細については、ASRドキュメントを参照してください。
// ...
ext {
// Set the minimum SDK to 24.
// React Native 0.64+ sets version 21.
// If you prefer to leave the minimum SDK at 21,
// another option is to set this to 21, but
// also set android.enableDexingArtifactTransform=false
// in your top-level gradle.properties.
// See https://github.com/google/ExoPlayer/issues/6801#issuecomment-574089568
minSdkVersion = 24
// ...
dependencies {
// Minimium gradle is 3.0.1+
// The latest React Native already has this
classpath( " com.android.tools.build:gradle:4.2.1 " )AndroidManifest.xmlに必要な権限を追加します。最初の許可はすでにそこにあることがよくあります。 2つ目は、マイクを使用するために必要です。
<!-- For TTS -->
< uses-permission android : name = " android.permission.INTERNET " />
<!-- For wakeword and ASR -->
< uses-permission android : name = " android.permission.RECORD_AUDIO " />
<!-- For ensuring no downloads happen over cellular, unless forced -->
< uses-permission android : name = " android.permission.ACCESS_NETWORK_STATE " />Record_audioの許可は、 AndroidManifest.xmlにリストされている必要があるという点で特別です。これを処理する方法はいくつかあります(React-Native-Spokestackはあなたのためにこれをしません):
iOSは必要なアクセス許可に対して[権限]ダイアログを自動的に表示しますが、Androidでこれを手動で行う必要があります。
Reactネイティブはすでにこのモジュールを提供しています。詳細については、React NativeのPermissionsAndroidを参照してください。
SpokeStackの使用を開始するか、ASR、NLU、およびTTSの詳細なチュートリアルをご覧ください。また、一般的な問題の迅速な解決策については、クックブックをご覧ください。
実用的なサンプルアプリは、このリポジトリにexample/フォルダーに含まれています。
import Spokestack from 'react-native-spokestack'
import { View , Button , Text } from 'react-native'
function App ( ) {
const [ listening , setListening ] = useState ( false )
const onActivate = ( ) => setListening ( true )
const onDeactivate = ( ) => setListening ( false )
const onRecognize = ( { transcript } ) => console . log ( transcript )
useEffect ( ( ) => {
Spokestack . addEventListener ( 'activate' , onActivate )
Spokestack . addEventListener ( 'deactivate' , onDeactivate )
Spokestack . addEventListener ( 'recognize' , onRecognize )
Spokestack . initialize (
process . env . SPOKESTACK_CLIENT_ID ,
process . env . SPOKESTACK_CLIENT_SECRET
)
// This example starts the Spokestack pipeline immediately,
// but it could be delayed until after onboarding or other
// conditions have been met.
. then ( Spokestack . start )
return ( ) => {
Spokestack . removeAllListeners ( )
}
} , [ ] )
return (
< View >
< Button onClick = { ( ) => Spokestack . activate ( ) } title = "Listen" />
< Text > { listening ? 'Listening...' : 'Idle' } </ Text >
</ View >
)
} モデルファイルをアプリにローカルに含めるには(CDNからダウンロードするのではなく)、必要な拡張機能を追加して、ファイルをBabelに含めることもできます。これを行うには、 metro.config.jsを編集します。
const defaults = require ( 'metro-config/src/defaults/defaults' )
module . exports = {
resolver : {
assetExts : defaults . assetExts . concat ( [ 'tflite' , 'txt' , 'sjson' ] )
}
}次に、ソースオブジェクトを使用してモデルファイルを含めます。
Spokestack . initialize ( clientId , clientSecret , {
wakeword : {
filter : require ( './filter.tflite' ) ,
detect : require ( './detect.tflite' ) ,
encode : require ( './encode.tflite' )
} ,
nlu : {
model : require ( './nlu.tflite' ) ,
vocab : require ( './vocab.txt' ) ,
// Be sure not to use "json" here.
// We use a different extension (.sjson) so that the file is not
// immediately parsed as json and instead
// passes a require source object to Spokestack.
// The special extension is only necessary for local files.
metadata : require ( './metadata.sjson' )
}
} )これは必要ありません。リモートURLを同じ構成オプションに渡すと、ファイルが最初にinitialize呼び出すとダウンロードされ、キャッシュされます。
リポジトリと開発ワークフローに貢献する方法を学ぶための寄稿ガイドを参照してください。
▸初期化( clientId 、 clientSecret 、 config? ): Promise void
音声パイプラインを初期化します。他のすべての方法に必要です。
最初の2つのARGは、https://spokestack.ioから無料で利用できるSpokestack資格情報です。これらをアプリでハードコードすることは避けてください。コードに環境変数を含める方法はいくつかあります。
Process.envを使用:https://babeljs.io/docs/en/babel-plugin-transform-inline-environment-variables/
gitで無視されたローカル.envファイルの使用:https://github.com/goatandsheep/react-native-dotenv https://github.com/luggit/react-native-config
利用可能なすべてのオプションについては、SpokeStackConfigを参照してください。
example
import Spokestack from 'react-native-spokestack'
// ...
await Spokestack . initialize ( process . env . CLIENT_ID , process . env . CLIENT_SECRET , {
pipeline : {
profile : Spokestack . PipelineProfile . PTT_NATIVE_ASR
}
} ) | 名前 | タイプ |
|---|---|
clientId | string |
clientSecret | string |
config? | [SpokestackConfig](#SpokestackConfig) |
Promise void
index.ts:64
destroy (): Promise void
音声パイプラインを破壊し、すべてのリスナーを削除し、すべてのリソースを解放します。これは、パイプラインを再初期化する前に呼び出すことができます。これを呼び出すのに適した場所は、 componentWillUnmountにあります。
example
componentWillUnmount ( ) {
Spokestack . destroy ( )
} Promise void
index.ts:81
▸start (): Promise void
音声パイプラインを開始します。音声パイプラインは、 deactivate状態で開始されます。
example
import Spokestack from 'react-native-spokestack`
// ...
Spokestack . initialize ( process . env . CLIENT_ID , process . env . CLIENT_SECRET )
. then ( Spokestack . start ) Promise void
index.ts:96
▸stop (): Promise void
音声パイプラインを停止します。これにより、ASR、VAD、およびWakewordが効果的に停止します。
example
import Spokestack from 'react-native-spokestack`
// ...
await Spokestack . stop ( ) Promise void
index.ts:110
▸アクティベート(): Promise void
音声パイプラインを手動でアクティブにします。これは、PTTプロファイルを使用するときに必要です。 VADプロファイルは、このメソッドを呼び出す必要なくASRをアクティブにすることもできます。
example
import Spokestack from 'react-native-spokestack`
// ...
< Button title = "Listen" onClick = { ( ) => Spokestack . activate ( ) } /> Promise void
index.ts:126
octivate (): Promise void
音声パイプラインを無効にします。プロファイルにウェイクワードが含まれている場合、パイプラインはウェイクワードのリスニングに戻ります。 VADがアクティブな場合、パイプラインはActivate()を呼び出すことなく再アクティブ化できます。
example
import Spokestack from 'react-native-spokestack`
// ...
< Button title = "Stop listening" onClick = { ( ) => Spokestack . deactivate ( ) } /> Promise void
index.ts:142
▸合成( input 、 format? 、 voice? ): Promise string
いくつかのテキストをPromise<string>に合成します。
現在、利用可能な無料の音声は1つだけです(「デモメール」)。 Spokestack Makerアカウントを使用してカスタム音声を作成した場合、音声を変更できます。 https://spokestack.io/pricing#makerを参照してください。
example
const url = await Spokestack . synthesize ( 'Hello world' )
play ( url ) | 名前 | タイプ |
|---|---|
input | string |
format? | [TTSFormat](#TTSFormat) |
voice? | string |
Promise < string >
index.ts:158
▸話( input 、 format? 、 voice? ): Promise void
いくつかのテキストをスピーチに合成し、すぐにデフォルトのオーディオシステムを介してオーディオを再生します。オーディオセッションの処理は非常に複雑になる可能性があり、非常に簡単な再生以上のものについて、オーディオに焦点を当てたRNライブラリを使用することをお勧めします。
現在、利用可能な無料の音声は1つだけです(「デモメール」)。
example
await Spokestack . speak ( 'Hello world' ) | 名前 | タイプ |
|---|---|
input | string |
format? | [TTSFormat](#TTSFormat) |
voice? | string |
Promise void
index.ts:174
classify ( utterance ): Promise SpokestackNLUResult
SpokeStack.Initialize()に渡された意図/スロット自然言語理解モデルを使用して発話を分類します。詳細については、https://www.spokestack.io/docs/concepts/nluを参照してください。
example
const result = await Spokestack . classify ( 'hello' )
// Here's what the result might look like,
// depending on the NLU model
console . log ( result . intent ) // launch | 名前 | タイプ |
|---|---|
utterance | string |
Promise SpokestackNLUResult
index.ts:190
▸ISInitialized (): Promise boolean
SpokeStackが初期化されたかどうかを返します
example
console . log ( `isInitialized: ${ await Spokestack . isInitialized ( ) } ` ) Promise boolean
index.ts:199
sstarted (): Promise boolean
音声パイプラインが開始されたかどうかを返します
example
console . log ( `isStarted: ${ await Spokestack . isStarted ( ) } ` ) Promise boolean
index.ts:208
activated (): Promise boolean
現在、音声パイプラインがアクティブになっているかどうかを返します
example
console . log ( `isActivated: ${ await Spokestack . isActivated ( ) } ` ) Promise boolean
index.ts:217
•自信: number
認識された意図に対するNLUモデルの信頼を表す0から1の数は、1が絶対的な信頼を表します。
Types.TS:115
•意図: string
NLUモデルが提供する試合に基づく意図
Types.ts:113
•スロット: SpokestackNLUSlots
NLUモデルによって提供される意図に関連するデータ
Types.ts:117
▪[key: string ]: SpokestackNLUSlot
• rawValue : string
ユーザー発話で認識されているスロットの元の文字列値
Types.TS:104
•タイプ: string
モデルメタデータで定義されているスロットのタイプ
Types.ts:100
•値: any
ユーザー発話で認識されているスロットの解析(入力された)値
Types.ts:102
addeventListener ( eventType 、 listener 、 context? ): EmitterSubscription
ネイティブライブラリによって放出されるすべてのイベントにバインドしてください。利用可能なすべてのイベントのリストについては、イベントを参照してください。
example
useEffect ( ( ) => {
const listener = Spokestack . addEventListener ( 'recognize' , onRecognize )
// Unsubsribe by calling remove when components are unmounted
return ( ) => {
listener . remove ( )
}
} , [ ] ) | 名前 | タイプ | 説明 |
|---|---|---|
eventType | string | リスナーを登録しているイベントの名前 |
listener | ( event : any )=> void | リスナー機能 |
context? | Object | リスナーのコンテキスト |
EmitterSubscription
index.ts:237
removeEventListener ( eventType 、 listener ): void
イベントリスナーを削除します
example
Spokestack . removeEventListener ( 'recognize' , onRecognize ) | 名前 | タイプ | 説明 |
|---|---|---|
eventType | string | エミットするイベントの名前 |
listener | (... args : any [])=> any | 指定されたイベントが放出されたときに呼び出す機能 |
void
index.ts:253
▸Removealllisteners (): void
既存のリスナーを削除します
example
Spokestack . removeAllListeners ( ) void
index.ts:265
SpokeStack TTSを使用する場合、3つの形式がサポートされています。生のテキスト、SSML、およびスピーチマークダウン。 https://www.speechmarkdown.org/を参照してください。スピーチマークダウンに慣れていない場合。 SSMLまたはスピーチマークダウンを使用する場合、IPAが予想されます。
• SpeechMarkDown = 2
Types.ts:73
• SSML = 1
Types.TS:72
•テキスト= 0
Types.ts:71
addEventListener() 、 removeEventListener() 、およびremoveAllListeners()を使用して、イベントハンドラーを追加および削除します。すべてのイベントは、iOSとAndroidの両方で利用できます。
| 名前 | データ | 説明 |
|---|---|---|
| 認識する | { transcript: string } | 音声認識が正常に完了するたびに解雇されます。 |
| partial_ecognize | { transcript: string } | 音声認識中に転写産物が変化するたびに発射されました。 |
| 始める | null | 音声パイプラインが開始されたときに解雇されました(ウェイクワードの聴きを開始するか、VADを開始します)。 |
| 停止 | null | 音声パイプラインが停止すると発射されます。 |
| 活性化 | null | Speech PipelineがVAD、Wakewordを介して、または.activate()を呼び出すときにアクティブになると発射されます。 |
| 無効にします | null | 音声パイプラインが無効になったときに解雇されます。 |
| 遊ぶ | { playing: boolean } | TTSの再生が始まり、停止すると発射されました。 speak()関数を参照してください。 |
| タイムアウト | null | 認識が不足しているため、アクティブなパイプラインが廃止されたときに解雇されました。 |
| トレース | { message: string } | トレースメッセージのために発射されます。冗長性は、 traceLevelオプションによって決定されます。 |
| エラー | { error: string } | SpokeStackにエラーが発生したときに発射されます。 |
エラーイベントがトリガーされると、既存の約束は拒否されます。
これらは、 Spokestack.initialize(_, _, spokestackConfig)に渡すことができる構成オプションです。 SpokeStackConfigのオプションは必要ありません。
SpokeStackConfigには次の構造があります。
interface SpokestackConfig {
/**
* This option is only used when remote URLs are passed to fields such as `wakeword.filter`.
*
* Set this to true to allow downloading models over cellular.
* Note that `Spokestack.initialize()` will still reject the promise if
* models need to be downloaded but there is no network at all.
*
* Ideally, the app will include network handling itself and
* inform the user about file downloads.
*
* Default: false
*/
allowCellularDownloads ?: boolean
/**
* Wakeword, Keyword, and NLU model files are cached internally.
* Set this to true whenever a model is changed
* during development to refresh the internal model cache.
*
* This affects models passed with `require()` as well
* as models downloaded from remote URLs.
*
* Default: true in dev mode, false otherwise
*
* **Important:** By default, apps in production will
* cache models to avoid downloading them every time
* the app is launched. The side-effect of this optimization
* is that if models change on the CDN, apps will
* not pick up those changes–unless the app were reinstalled.
* We think this is a fair trade-off, but set this to `true`
* if you prefer to download the models every time the app
* is launched.
*/
refreshModels ?: boolean
/**
* This controls the log level for the underlying native
* iOS and Android libraries.
* Also add a `"trace"` event listener to get trace events.
* See the TraceLevel enum for values.
*/
traceLevel ?: TraceLevel
/**
* Most of these options are advanced aside from "profile"
*/
pipeline ?: PipelineConfig
/** Only needed if using Spokestack.classify */
nlu ?: NLUConfig
/**
* Only required for wakeword
* Most options are advanced aside from
* filter, encode, and decode for specifying config files.
*/
wakeword ?: WakewordConfig
/**
* Only required for the keyword recognizer
* Most options are advanced aside from
* filter, encode, decode, metadata, and classes.
*/
keyword ?: KeywordConfig
} 数を表示するためのログの量は、より多くのログを意味します。
• debug = 10
Types.TS:58
•情報= 30
Types.TS:60
•なし= 100
Types.ts:61
• PERF = 20
Types.ts:59
パイプラインプロファイルあなたのニーズに基づいて音声パイプラインを設定します
• ptt_native_asr = 2
Apple/Androidの自動音声認識は、音声パイプラインがアクティブなときにオンになっています。これは、ウェイクワードを使用していない場合、より一般的なプロファイルである可能性があります。
Types.ts:24
• PTT_SPOKESTACK_ASR = 5
SPOKESTACKの自動音声認識は、音声パイプラインがアクティブなときにオンになっています。これは、ウェイクワードを使用していない場合、より一般的なプロファイルである可能性がありますが、Spokestack ASRが推奨されます。
Types.TS:42
• tflite_wakeword_keyword = 6
VADに敏感なTflite Wake Wordは、Tfliteキーワード認識器をアクティブにします
Types.TS:46
• tflite_wakeword_native_asr = 0
ウェイクワードをセットアップし、ローカルApple/Android ASRを使用します。 Wakeword.filter、wakeword.encode、およびwakeword.detectが必要な場合は、Wakewordプロファイルが使用されている場合は注意してください。
Types.ts:12
• tflite_wakeword_spokestack_asr = 3
ウェイクワードをセットアップし、リモートスポークスタックASRを使用します。 Wakeword.filter、wakeword.encode、およびwakeword.detectが必要な場合は、Wakewordプロファイルが使用されている場合は注意してください。
Types.ts:30
• vad_keyword_asr = 7
VADトリガーされたTfliteキーワード認識機
Types.ts:50
• vad_native_asr = 1
Apple/Android自動音声認識が発生しているときに、音声アクティブ検出がトリガーされます。
Types.ts:17
• vad_spokestack_asr = 4
SpokeStack Voice Active Detectionがそれをトリガーするときに自動音声認識がオンになっています。
Types.ts:35
• Optional agcccpressiongaindb : number
advanced
AcousticGainControlのAndroidのみ
-DBでのターゲットピークオーディオレベル、-9dBのピークを維持するには、9の値を構成します
Types.TS:192
• Optional agctargetLeveldbfs : number
advanced
AcousticGainControlのAndroidのみ
DBFSのダイナミックレンジ圧縮率
Types.ts:200
• Optional Anspolicy : "aggressive" | "very-aggressive" | "mild" | "medium"
advanced
AcousticnoiseSuppressorのAndroidのみ
ノイズポリシー
Types.ts:183
• Optionalバッファー幅: number
advanced
バッファーサイズを決定するためにフレーム幅で使用されるバッファ幅
Types.TS:155
• Optional framewidth : number
advanced
音声フレーム幅、MSの幅
Types.ts:149
• Optionalプロファイル: PipelineProfile
プロファイルは、パイプライン段階の共通構成のコレクションです。
プロファイルが明示的に設定されていない場合、SpokeStackはSpokestack.initialize()に渡された構成に基づいて賢明なデフォルトプロファイルを決定します。
Wakeword構成ファイルが設定されている場合(およびキーワード構成はそうではありません)、デフォルトはTFLITE_WAKEWORD_NATIVE_ASRに設定されます。
キーワード構成ファイルが設定されている場合(およびWakeword構成はそうではありません)、デフォルトはVAD_KEYWORD_ASRに設定されます。
Wakewordとキーワード構成ファイルの両方が設定されている場合、デフォルトはTFLITE_WAKEWORD_KEYWORDに設定されます。
それ以外の場合、デフォルトはPTT_NATIVE_ASRです。
Types.TS:139
• Optionalサンプル: number
Hzのオーディオサンプリングレート
Types.TS:143
• Optional vadfalldelay : number
advanced
MSの下落した検出の実行長。この値は、検出器を負に反転するために何件の負のサンプルを受信する必要があるかを決定します
Types.ts:166
• Optional VADMODE : "quality" | "low-bitrate" | "aggressive" | "very-aggressive"
音声アクティビティ検出器モード
Types.TS:159
• Optional VadriseDelay : number
advanced
Androidのみ
MSでのライジングエッジ検出の実行長。この値は、検出器を陽性に反転させるためにいくつの正のサンプルを受信する必要があるかを決定します
Types.TS:175
•メタデータ: string | number
NLUメタデータのJSONファイル。指定されている場合、モデルと語彙も必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例: metadata: require('./metadata.sjson') )。重要:特別な拡張機能は、 requireまたはimportを使用する場合、ローカルメタデータJSONファイル( .sjson )に使用されるため、ファイルは含まれている場合は解析されず、代わりにソースオブジェクトとしてインポートされます。これにより、ファイルが下にあるネイティブライブラリによって読み取られ、解析されるようになります。
Types.TS:223
•モデル: string | number
NLU Tensorflow-Liteモデル。指定されている場合、メタデータとボカブも必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例model: require('./nlu.tflite') ) Types.TS:211
• vocab : string | number
NLU語彙を含むTXTファイル。指定されている場合、モデルとメタデータも必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例vocab: require('./vocab.txt') ) Types.TS:231
• Optional inputlength : number
Types.TS:244
•検出: string | number
Tensorflow-Liteモデルを「検出」します。指定した場合、フィルターとエンコードも必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例detect: require('./detect.tflite') ))エンコードモデルは、MELフレーム上の各自己回帰ステップを実行するために使用されます。その入力は[Mel-Length、Mel-Width]、およびその出力[Encode-Width]を形成する必要があり、追加の状態入力/出力が形成されます[状態幅]
Types.TS:272
•エンコード: string | number
「エンコード」tensorflow-liteモデル。指定した場合、フィルターと検出も必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例encode: require('./encode.tflite') ))その入力は[エンコードレングス、エンコード幅]、およびその出力を形作る必要があります
Types.TS:283
•フィルター: string | number
「フィルター」Tensorflow-Liteモデル。指定する場合は、検出とエンコードも必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例filter: require('./filter.tflite') ))フィルターモデルは、線形STFTからMELスペクトログラムフレームを計算するために使用されます。その入力は[fft-width]を形作る必要があり、その出力[mel-width]
Types.TS:260
• Optional ActiveMax : number
advanced
活性化の最大長さは、活性化のタイムアウトに使用されます
Types.TS:373
• Optionalアクティベミン: number
advanced
起きた後のVADの非アクティブ化を無視するために使用される、ミリ秒単位での活性化の最小長さ
Types.TS:366
• Optionalリクエストタイムアウト: number
iOSのみ
MillisecondsでApple ASRリクエストを実行できる時間の長さ。 Appleには、リクエストあたり60000msの文書化されていない制限があります。
Types.TS:380
• Optional rmsalpha : number
advanced Androidのみ
現在のRMS信号エネルギーの指数加重移動平均(EWMA)更新率(RMS正規化なしで0)
Types.TS:397
• Optional rmstarget : number
advanced Androidのみ
信号正規化に使用され、トレーニング中に使用されるRMSターゲットに合わせて調整する必要がある、目的の線形根平方乗(RMS)信号エネルギー
Types.TS:389
• Optionalウェイクワード: string | string []
iOSのみ
順序付けられた配列またはウェイクワードキーワードのコンマ区切りリストは、パスを渡し、検出し、エンコードする場合にのみ必要です。
Types.TS:404
•検出: string | number
Tensorflow-Liteモデルを「検出」します。指定した場合、フィルターとエンコードも必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例detect: require('./detect.tflite') ))エンコードモデルは、MELフレーム上の各自己回帰ステップを実行するために使用されます。その入力は[Mel-Length、Mel-Width]、およびその出力[Encode-Width]を形成する必要があり、追加の状態入力/出力が形成されます[状態幅]
Types.TS:272
•エンコード: string | number
「エンコード」tensorflow-liteモデル。指定した場合、フィルターと検出も必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例encode: require('./encode.tflite') ))その入力は[エンコードレングス、エンコード幅]、およびその出力を形作る必要があります
Types.TS:283
•フィルター: string | number
「フィルター」Tensorflow-Liteモデル。指定する場合は、検出とエンコードも必要です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例filter: require('./filter.tflite') ))フィルターモデルは、線形STFTからMELスペクトログラムフレームを計算するために使用されます。その入力は[fft-width]を形作る必要があり、その出力[mel-width]
Types.TS:260
metadataまたはclassesいずれかが必要であり、それらは相互に排他的です。
•メタデータ: string | number
キーワードメタデータのJSONファイル。 keyword.classesが指定されていない場合は必須です。
このフィールドは、2種類の値を受け入れます。
requireまたはimportによって取得されたソースオブジェクト(例: metadata: require('./metadata.sjson') )。重要:特別な拡張機能は、 requireまたはimportを使用する場合、ローカルメタデータJSONファイル( .sjson )に使用されるため、ファイルは含まれている場合は解析されず、代わりにソースオブジェクトとしてインポートされます。これにより、ファイルが下にあるネイティブライブラリによって読み取られ、解析されるようになります。
Types.TS:424
•クラス: string | string []
キーワードのコンマ区切りリストまたは順序付けられたクラス名の配列。最も可能性の高いクラスに対応する名前は、認識イベントが発生すると、転写産物フィールドで返されます。 keyword.metadataが指定されていない場合は必須です。
Types.TS:434
これらのプロパティは、 wakewordまたはkeyword構成オブジェクトのいずれかに渡すことができますが、共有されません。
• Optionalエンコードレングス: number
advanced
分類器への入力としてミリ秒単位で使用されるエンコーダ出力のスライディングウィンドウの長さ
Types.TS:293
• Optionalエンコーディングウィッド: number
advanced
ベクトル単位のエンコーダー出力のサイズ
Types.TS:299
• Optional ffthoplength : number
advanced
重複するSTFTが計算されるたびにスキップする時間の長さ、ミリ秒単位で
Types.TS:322
• Optional fftwindowsize : number
advanced
STFTの計算に使用される信号ウィンドウのサイズ、サンプルの数で - 最大効率のために2のパワーでなければなりません
Types.TS:306
• Optional fftwindowtype : string
advanced
Androidのみ
STFTを計算する前に、各オーディオフレームに適用するウィンドウ機能の名前。現在、「ハン」ウィンドウがサポートされています
Types.ts:315
• Optionalメルフラメル長: number
advanced
重複するSTFTが計算されるたびにスキップする時間の長さ、ミリ秒単位で
Types.TS:329
• Optional melframewidth : number
advanced
各メルスペクトログラムフレームのサイズ、フィルターバンクコンポーネントの数
Types.TS:336
• Optional拡張前: number
advanced
エンファシス前のフィルター重量は、正規化されたオーディオ信号に適用されます(エンファシス前の場合は0)
Types.TS:343
• Optional状態幅: number
advanced
ベクトル単位のエンコーダ状態のサイズ(デフォルトはウェイクエンコード幅になります)
Types.TS:349
• Optionalしきい値: number
advanced
トリガーがパイプラインをアクティブにする範囲[0、1]の上記である分類器の後部出力のしきい値[0、1]
Types.TS:356
Apache-2.0
著作権2021スポークストック