
رد فعل البرنامج المساعد الأصلي لإضافة الصوت باستخدام Spokestack. ويشمل ذلك التعرف على الكلام ، والكلمة المعدلة ، وفهم اللغة الطبيعية ، وكذلك توليف النص على الكلام باستخدام أصوات المتحدثين.
باستخدام NPM:
npm install --save react-native-spokestackأو استخدام الغزل:
yarn add react-native-spokestackثم اتبع الإرشادات لكل منصة لربط رد فعل React-Spokestack بمشروعك:
أولاً ، افتح Xcode وانتقل إلى Project -> معلومات لتعيين هدف نشر iOS إلى 13.0 أو أعلى.
أيضا ، اضبط النشر على 13.0 تحت الهدف -> عام -> معلومات النشر.
عندما تم تقديم Flipper إلى React Native ، تم تعيين بعض مسارات البحث في المكتبات لـ Swift. كانت هناك مشكلة طويلة الأمد مع مسارات البحث الافتراضية في المشاريع الأصلية React لأنه تمت إضافة مسار بحث لـ Swift 5.0 الذي منع أي مكتبات منصقة أخرى من استخدام واجهات برمجة التطبيقات متوفرة فقط في Swift 5.2 أو لاحقًا. Spokestack-IOS ، فإن اعتماد Spokestack-dokestack الاستفادة من APIs وسوف يفشل Xcode في البناء.
لحسن الحظ ، الإصلاح بسيط إلى حد ما. انتقل إلى هدفك -> إنشاء الإعدادات وابحث عن "مسارات البحث في المكتبة".
قم بإزالة ""$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)"" من القائمة.
قبل تشغيل pod install ، تأكد من إجراء التعديلات التالية.
يستفيد React-Spokestack من واجهات برمجة التطبيقات الجديدة نسبيًا متوفرة فقط في iOS 13+. قم بتعيين هدف النشر على iOS 13 في الجزء العلوي من podfile:
platform :ios , '13.0' نحتاج أيضًا إلى استخدام use_frameworks! في podfile لدينا من أجل دعم التبعيات المكتوبة في Swift.
target 'SpokestackExample' do
use_frameworks!
#... في الوقت الحالي ، use_frameworks! لا يعمل مع Flipper ، لذلك نحتاج أيضًا إلى تعطيل Flipper. قم بإزالة أي خطوط متعلقة بالفلزاز في podfile. في React Native 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! في podfiles.
لمزيد من المعلومات حول هذا الخطأ ، راجع 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 و pods الحالي لضمان عدم وجود تعارضات ، ثم قم بتثبيت القرون:
$ npx pod-installأضف ما يلي إلى info.plist لتمكين الأذونات.
< 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 على إصلاح POD الخاص بهم لـ use_frameworks! ، يجب علينا تعطيل Flipper. لقد أزلنا بالفعل تبعيات Flipper من القرون أعلاه ، ولكن لا يزال هناك بعض التعليمات البرمجية في AppDelegate.m التي تستورد Flipper. هناك طريقتان لإصلاح هذا.
-DFB_SONARKIT_ENABLED=1 من الأعلام.في تطبيق المثال الخاص بنا ، قمنا بالخيار 1 وتركنا في رمز Flipper في حالة عمله في المستقبل ويمكننا إضافته مرة أخرى.
# import < AVFoundation/AVFoundation.h > تعيين فئة Audiosession. هناك العديد من التكوينات التي تعمل.
فيما يلي اقتراح يجب أن يناسب معظم حالات الاستخدام:
- ( 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 ];
// ... يستخدم الاستخدام المثال ASRs المقدمة من النظام ( AndroidSpeechRecognizer و AppleSpeechRecognizer ). ومع ذلك ، لا يتوفر AndroidSpeechRecognizer على 100 ٪ من الأجهزة. إذا كان تطبيقك يدعم جهازًا لا يحتوي على التعرف المدمج على الكلام ، فاستخدم SPOKESTACK ASR بدلاً من ذلك عن طريق تعيين profile على ملف تعريف Spokestack باستخدام profile Prop.
انظر وثائق 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 . الإذن الأول غالبا ما يكون هناك بالفعل. والثاني ضروري لاستخدام الميكروفون.
<!-- 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 وكذلك المطلوب في وقت التشغيل. هناك طريقتان للتعامل مع هذا (لا يفعل ذلك من أجيال رد الفعل-لا يفعل ذلك من أجلك):
على الرغم من أن iOS ستقوم بإظهار حوار أذونات تلقائيًا لأي أذونات مطلوبة ، يجب عليك القيام بذلك يدويًا في Android.
يوفر React Native بالفعل وحدة لهذا النمط لهذا الغرض. انظر أذونات React NativeAndRoidroid لمزيد من المعلومات.
ابدأ باستخدام 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) ، تحتاج أيضًا إلى إضافة الامتدادات اللازمة حتى يمكن بابل تضمين الملفات. للقيام بذلك ، قم بتحرير 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 args هي بيانات اعتماد Spokestack الخاصة بك المتاحة مجانًا من https://spokestack.io. تجنب ترميز هذه في التطبيق الخاص بك. هناك عدة طرق لتضمين متغيرات البيئة في الكود الخاص بك.
باستخدام Process.env: https://babeljs.io/docs/en/babel-plugin-transform-inline-environment-variables/
باستخدام ملف .env محلي تم تجاهله بواسطة git: https://github.com/goatandsheep/react-nistric-dotenv
انظر 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
▸ تدمير (): 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
▸ إلغاء تنشيط (): Promise void
إلغاء تنشيط خط أنابيب الكلام. إذا كان الملف الشخصي يتضمن Wakeword ، فسوف يعود خط الأنابيب إلى الاستماع إلى كلمة WakeWord. إذا كان 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> مع السلسلة كونها عنوان URL لـ MPEG القابل للتشغيل.
لا يوجد حاليًا سوى صوت مجاني واحد متاح ("Demo-Male"). يمكن تغيير الصوت إذا قمت بإنشاء صوت مخصص باستخدام حساب صانع Spokestack. انظر 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 التي تركز على الصوت لأي شيء أكثر من تشغيل بسيط للغاية.
لا يوجد حاليًا سوى صوت مجاني واحد متاح ("Demo-Male").
example
await Spokestack . speak ( 'Hello world' ) | اسم | يكتب |
|---|---|
input | string |
format? | [TTSFormat](#TTSFormat) |
voice? | string |
Promise void
index.ts: 174
▸ تصنيف ( 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
▸ isstarted (): Promise boolean
يعود ما إذا كان خط أنابيب الكلام قد بدأ
example
console . log ( `isStarted: ${ await Spokestack . isStarted ( ) } ` ) Promise boolean
INDEX.TS: 208
▸ Isactivated (): Promise boolean
يعود ما إذا كان خط أنابيب الكلام قد تم تنشيطه حاليًا
example
console . log ( `isActivated: ${ await Spokestack . isActivated ( ) } ` ) Promise boolean
INDEX.TS: 217
• الثقة : number
رقم من 0 إلى 1 يمثل ثقة نموذج NLU في النية التي تم الاعتراف بها ، حيث يمثل 1 الثقة المطلقة.
الأنواع: 115
• القصد : string
القصد على أساس المباراة التي يوفرها نموذج NLU
الأنواع .1: 113
• فتحات : SpokestackNLUSlots
البيانات المرتبطة بالقصد ، الذي يوفره نموذج NLU
الأنواع .1: 117
▪ [المفتاح: string ]: SpokestackNLUSlot
• Rawvalue : string
قيمة السلسلة الأصلية للفتحة المعترف بها في كلام المستخدم
أنواع
• النوع : string
نوع الفتحة ، كما هو محدد في بيانات التعريف النموذجية
أنواع
• القيمة : any
القيمة المحفورة (المكتوبة) للفتحة المعترف بها في كلام المستخدم
أنواع
▸ 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
يتم دعم ثلاثة تنسيقات عند استخدام TTS Spokestack. النص الخام ، SSML ، وتخفيض الكلام. راجع https://www.speechmarkdown.org/ إذا لم يكن مألوفًا بتخفيض الكلام. من المتوقع IPA عند استخدام SSML أو تخفيض الكلام.
• ProbermMarkdown = 2
أنواع
• SSML = 1
الأنواع: 72
• النص = 0
أنواع
استخدم addEventListener() ، removeEventListener() ، و removeAllListeners() لإضافة معالجات الأحداث وإزالتها. جميع الأحداث متوفرة في كل من iOS و Android.
| اسم | بيانات | وصف |
|---|---|---|
| يتعرف على | { transcript: string } | تم إطلاقه عندما يكمل التعرف على الكلام بنجاح. |
| partial_recognize | { transcript: string } | تم إطلاقه عندما يتغير النص أثناء التعرف على الكلام. |
| يبدأ | null | تم إطلاقه عندما يبدأ خط أنابيب الكلام (والذي يبدأ الاستماع إلى WakeWord أو يبدأ VAD). |
| قف | null | أطلقت عندما يتوقف خط أنابيب الكلام. |
| فعل | null | تم إطلاقه عندما يتم تنشيط خط أنابيب الكلام ، إما من خلال 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
} مقدار التسجيل لإظهار رقم أقل يعني المزيد من السجلات.
• تصحيح = 10
أنواع
• معلومات = 30
الأنواع: 60
• لا شيء = 100
أنواع
• perf = 20
أنواع
تقوم ملفات تعريف خطوط الأنابيب بإعداد خط أنابيب الكلام بناءً على احتياجاتك
• PTT_NATITION_ASR = 2
إن التعرف على الكلام التلقائي لـ Apple/Android عندما يكون خط أنابيب الكلام نشطًا. من المحتمل أن يكون هذا الملف الشخصي الأكثر شيوعًا عند عدم استخدام Wakeword.
أنواع
• PTT_SPOKESTACK_ASR = 5
إن التعرف على الكلام التلقائي للمتحدثين عندما يكون خط أنابيب الكلام نشطًا. من المحتمل أن يكون هذا الملف الشخصي الأكثر شيوعًا عند عدم استخدام WakeWord ، ولكن يفضل Spokestack ASR.
أنواع
• tflite_wakeword_keyword = 6
كلمة Tflite Wake حساسة لـ VAD تنشط معرف الكلمات الرئيسية Tflite
أنواع
• tflite_wakeword_native_asr = 0
قم بإعداد WakeWord واستخدم Apple/Android ASR المحلي. لاحظ أن WakeWord.filter و WakeWord.encode و WakeWord.Detect مطلوبة في حالة استخدام أي كلمة مرور WakeWord.
أنواع
• tflite_wakeword_spokestack_asr = 3
قم بإعداد WakeWord واستخدم Spokestack ASR عن بُعد. لاحظ أن WakeWord.filter و WakeWord.encode و WakeWord.Detect مطلوبة في حالة استخدام أي كلمة مرور WakeWord.
الأنواع
• VAD_KEYWORD_ASR = 7
معرف الكلمات الرئيسية Tflite المفعمة بفعالية Tflite
الأنواع: 50
• vad_native_asr = 1
إن التعرف على الكلام التلقائي لـ Apple/Android عندما يؤدي الكشف النشط الصوتي إلى تشغيله.
الأنواع: 17
• VAD_SPOKESTACK_ASR = 4
إن التعرف على الكلام التلقائي للمتحدثين عندما يؤدي الكشف النشط الصوتي إلى تشغيله.
الأنواع: 35
• Optional agccompressiongaindb : number
advanced
Android فقط ل acousticgaincontrol
مستوى الصوت الذروة المستهدف ، في -DB ، للحفاظ على ذروة -9db ، تكوين قيمة 9
أنواع
number agctArgetLevelDBFS Optional
advanced
Android فقط ل acousticgaincontrol
معدل ضغط النطاق الديناميكي ، في DBFS
الأنواع
• Optional ANSPOLICY : "aggressive" | "very-aggressive" | "mild" | "medium"
advanced
Android فقط لـ Acousticnoisesupressor
سياسة الضوضاء
أنواع
• العداء المخفي Optional : number
advanced
عرض المخزن المؤقت ، يستخدم مع الإطار لتحديد حجم المخزن المؤقت
أنواع
• إطار عمل Optional : number
advanced
عرض إطار الكلام ، في مرض التصلب العصبي المتعدد
أنواع
• ملف تعريف Optional : PipelineProfile
الملامح هي مجموعات من التكوينات الشائعة لمراحل خطوط الأنابيب.
إذا لم يتم تعيين ملف تعريف بشكل صريح ، فإن Spokestack يحدد ملف تعريف افتراضي معقول استنادًا إلى التكوين الذي تم تمريره إلى Spokestack.initialize() :
إذا تم تعيين ملفات تكوين Wakeword (ولم يكن تكوين الكلمات الرئيسية) ، فسيتم تعيين الافتراضي على TFLITE_WAKEWORD_NATIVE_ASR .
إذا تم تعيين ملفات تكوين الكلمات الرئيسية (ولم يكن تكوين Wakeword) ، فسيتم تعيين الافتراضي على VAD_KEYWORD_ASR .
إذا تم تعيين كل من ملفات Wakeword و Wordword Config ، فسيتم تعيين الافتراضي على TFLITE_WAKEWORD_KEYWORD .
خلاف ذلك ، الافتراضي هو PTT_NATIVE_ASR .
أنواع
• أخذ عينات Optional : number
معدل أخذ عينات الصوت ، في هرتز
أنواع
• Optional Vadfalldelay : number
advanced
طول تشغيل الكشف عن الحافة ، في مرض التصلب العصبي المتعدد ؛ تحدد هذه القيمة عدد العينات السلبية التي يجب استلامها لقلب الكاشف إلى السلبية
أنواع
• Vadmode Optional : "quality" | "low-bitrate" | "aggressive" | "very-aggressive"
وضع كاشف النشاط الصوتي
أنواع
• Optional Vadrisedelay : number
advanced
Android فقط
ارتفاع الكشف عن الحافة طول ، في مرض التصلب العصبي المتعدد ؛ تحدد هذه القيمة عدد العينات الإيجابية التي يجب استلامها لقلب الكاشف إلى إيجابي
الأنواع: 175
• بيانات التعريف : string | number
ملف JSON لـ NLU Metadata. إذا تم تحديدها ، فإن النموذج والمفردات مطلوبة أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال metadata: require('./metadata.sjson') ). هام: يتم استخدام امتداد خاص لملفات Metadata JSON المحلية ( .sjson ) عند استخدام require أو import حتى لا يتم تحليل الملف عند تضمينه ولكن بدلاً من ذلك يتم استيراده ككائن مصدر. هذا يجعله حتى يتم قراءة الملف وتحليله من قبل المكتبات الأصلية الأساسية بدلاً من ذلك.
أنواع
• النموذج : string | number
نموذج NLU TensorFlow-Lite. إذا تم تحديدها ، فإن البيانات الوصفية والمفردات مطلوبة أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال model: require('./nlu.tflite') )) أنواع
• المفردات : string | number
ملف TXT يحتوي على المفردات NLU. إذا تم تحديدها ، فإن النموذج والبيانات الوصفية مطلوبة أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال vocab: require('./vocab.txt') )) أنواع
• إدخال Optional : number
أنواع
• اكتشاف : string | number
نموذج "اكتشاف" Tensorflow-Lite. في حالة تحديد ، يلزم التصفية والتشفير أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال detect: require('./detect.tflite') ))يتم استخدام طراز الترميز لأداء كل خطوة من الانحدار التلقائي على إطارات MEL ؛ يجب تشكيل مدخلاته [طول الميل ، عرض ميل] ، ومخرجاته [عرض الترميز] ، مع إدخال/إخراج الحالة الإضافية [عرض الحالة]
الأنواع: 272
• الترميز : string | number
نموذج "تشفير" Tensorflow-Lite. في حالة تحديد ، يلزم التصفية والاكتشاف أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (EG encode: require('./encode.tflite') ))يجب تشكيل مدخلاته [Encode-Length ، عرض الترميز] ، ومخرجاته
الأنواع: 283
• مرشح : string | number
نموذج "مرشح" Tensorflow-Lite. إذا تم تحديدها ، فإن اكتشاف وترميز مطلوب أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال filter: require('./filter.tflite') ))يتم استخدام نموذج المرشح لحساب إطار طيفي MEL من STFT الخطي ؛ يجب تشكيل مدخلاته [FFT-Width] ، ومخرجاته [Mel-Width]
أنواع
• activeMax Optional : number
advanced
الحد الأقصى لطول التنشيط ، بالمللي ثانية ، اعتاد وقت الخروج من التنشيط
أنواع
• activemin Optional : number
advanced
الحد الأدنى لطول التنشيط ، بالمللي ثانية ، يستخدم لتجاهل إلغاء تنشيط VAD بعد الكلمة
الأنواع. 366
• requesttimeOut Optional : number
iOS فقط
طول الوقت للسماح لطلب Apple ASR بالركض ، بالمللي ثانية. لدى Apple حد غير موثق قدره 60000 مللي ثانية لكل طلب.
أنواع
• RMSAlpha Optional : number
advanced Android فقط
معدل التحديث المتوسط المتحرك (EWMA) المرجح بشكل كبير (EWMA) لطاقة إشارة RMS الحالية (0 لعدم تطبيع RMS)
أنواع
• RMSTarget Optional : number
advanced Android فقط
طاقة الإشارة المربعة (RMS) المتوسطة الجذر الخطي المرغوب فيها ، والتي يتم استخدامها لتطبيع الإشارة ويجب ضبطها على هدف RMS المستخدم أثناء التدريب
أنواع
• Wakewords Optional : string | string []
iOS فقط
صفيف مرتبة أو قائمة مفصولة بالفاصلة للكلمات الرئيسية للكلمات الرئيسية الضرورية فقط عند عدم تمرير المسارات المرشح والاكتشاف وترميز.
أنواع
• اكتشاف : string | number
نموذج "اكتشاف" Tensorflow-Lite. في حالة تحديد ، يلزم التصفية والتشفير أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال detect: require('./detect.tflite') ))يتم استخدام طراز الترميز لأداء كل خطوة من الانحدار التلقائي على إطارات MEL ؛ يجب تشكيل مدخلاته [طول الميل ، عرض ميل] ، ومخرجاته [عرض الترميز] ، مع إدخال/إخراج الحالة الإضافية [عرض الحالة]
الأنواع: 272
• الترميز : string | number
نموذج "تشفير" Tensorflow-Lite. في حالة تحديد ، يلزم التصفية والاكتشاف أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (EG encode: require('./encode.tflite') ))يجب تشكيل مدخلاته [Encode-Length ، عرض الترميز] ، ومخرجاته
الأنواع: 283
• مرشح : string | number
نموذج "مرشح" Tensorflow-Lite. إذا تم تحديدها ، فإن اكتشاف وترميز مطلوب أيضًا.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال filter: require('./filter.tflite') ))يتم استخدام نموذج المرشح لحساب إطار طيفي MEL من STFT الخطي ؛ يجب تشكيل مدخلاته [FFT-Width] ، ومخرجاته [Mel-Width]
أنواع
إما metadata أو classes مطلوبة ، وهي حصرية بشكل متبادل.
• بيانات التعريف : string | number
ملف JSON للبيانات الوصفية للكلمة الرئيسية. مطلوب إذا لم يتم تحديد keyword.classes . classes.
يقبل هذا الحقل نوعين من القيم.
require أو import (على سبيل المثال metadata: require('./metadata.sjson') ). هام: يتم استخدام امتداد خاص لملفات Metadata JSON المحلية ( .sjson ) عند استخدام require أو import حتى لا يتم تحليل الملف عند تضمينه ولكن بدلاً من ذلك يتم استيراده ككائن مصدر. هذا يجعله حتى يتم قراءة الملف وتحليله من قبل المكتبات الأصلية الأساسية بدلاً من ذلك.
أنواع
• الفصول : string | string []
قائمة مفصولة فاصلة أو مجموعة مرتبة من أسماء الفصول الدراسية للكلمات الرئيسية. سيتم إرجاع الاسم المقابل للفئة الأكثر احتمالا في حقل النص عند رفع حدث التعرف. مطلوب إذا لم يتم تحديد keyword.metadata . metadata.
أنواع
يمكن تمرير هذه الخصائص إلى كائن wakeword أو keyword ، ولكن لم يتم مشاركتها.
• طول التشفير Optional : number
advanced
طول النافذة المنزلق لإخراج التشفير المستخدم كمدخل للمصنف ، بالمللي ثانية
أنواع
• Optional الاختياري : number
advanced
حجم إخراج المشفر ، في وحدات المتجهات
أنواع
• Optional ffthoplength : number
advanced
طول الوقت للتخطي في كل مرة يتم حساب STFT المتداخلة ، بالمللي ثانية
أنواع
• Optional fftwindowsize : number
advanced
يجب أن يكون حجم نافذة الإشارة المستخدمة لحساب STFT ، في عدد من العينات - قوة 2 لتحقيق أقصى قدر من الكفاءة
أنواع
• Optional fftwindowtype : string
advanced
Android فقط
اسم وظيفة Windowing لتطبيقه على كل إطار صوتي قبل حساب STFT ؛ حاليًا يتم دعم نافذة "هان"
الأنواع: 315
• MelframeLength Optional : number
advanced
طول الوقت للتخطي في كل مرة يتم حساب STFT المتداخلة ، بالمللي ثانية
الأنواع. 329
• melframewidth Optional : number
advanced
حجم كل إطار طيفي MEL ، في عدد مكونات FilterBank
أنواع
• preemphasis Optional : number
advanced
وزن مرشح مرشح ما قبل التأثير لتطبيقه على إشارة الصوت الطبيعية (0 لعدم وجود ما قبل التظاهر)
الأنواع. 343
• عرض الدولة Optional : number
advanced
حجم حالة التشفير ، في وحدات المتجهات (الافتراضيات لإعادة عرض رمز الاستيقاظ)
أنواع
• العتبة Optional : number
advanced
عتبة الناتج الخلفي للمصنف ، الذي ينشط الزناد أعلاه خط الأنابيب ، في النطاق [0 ، 1]
أنواع
Apache-2.0
حقوق الطبع والنشر 2021 Spokestack