@gmessier/nitro-speech 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -148
  3. package/android/build.gradle +0 -1
  4. package/android/src/main/cpp/cpp-adapter.cpp +5 -1
  5. package/android/src/main/java/com/margelo/nitro/nitrospeech/HybridNitroSpeech.kt +2 -0
  6. package/android/src/main/java/com/margelo/nitro/nitrospeech/recognizer/AutoStopper.kt +80 -16
  7. package/android/src/main/java/com/margelo/nitro/nitrospeech/recognizer/HybridRecognizer.kt +93 -20
  8. package/android/src/main/java/com/margelo/nitro/nitrospeech/recognizer/RecognitionListenerSession.kt +27 -15
  9. package/ios/{BufferUtil.swift → Audio/AudioBufferConverter.swift} +3 -34
  10. package/ios/Audio/AudioLevelTracker.swift +66 -0
  11. package/ios/Coordinator.swift +105 -0
  12. package/ios/Engines/AnalyzerEngine.swift +241 -0
  13. package/ios/Engines/DictationRuntime.swift +67 -0
  14. package/ios/Engines/RecognizerEngine.swift +312 -0
  15. package/ios/Engines/SFSpeechEngine.swift +119 -0
  16. package/ios/Engines/SpeechRuntime.swift +58 -0
  17. package/ios/Engines/TranscriberRuntimeProtocol.swift +21 -0
  18. package/ios/HybridNitroSpeech.swift +1 -10
  19. package/ios/HybridRecognizer.swift +135 -192
  20. package/ios/LocaleManager.swift +73 -0
  21. package/ios/{AppStateObserver.swift → Shared/AppStateObserver.swift} +1 -2
  22. package/ios/Shared/AutoStopper.swift +147 -0
  23. package/ios/Shared/HapticImpact.swift +24 -0
  24. package/ios/Shared/Log.swift +41 -0
  25. package/ios/Shared/Permissions.swift +59 -0
  26. package/ios/Shared/Utils.swift +58 -0
  27. package/lib/NitroSpeech.d.ts +2 -0
  28. package/lib/NitroSpeech.js +2 -0
  29. package/lib/Recognizer/RecognizerRef.d.ts +5 -0
  30. package/lib/Recognizer/RecognizerRef.js +13 -0
  31. package/lib/Recognizer/SpeechRecognizer.d.ts +8 -0
  32. package/lib/Recognizer/SpeechRecognizer.js +9 -0
  33. package/lib/Recognizer/methods.d.ts +8 -0
  34. package/lib/Recognizer/methods.js +29 -0
  35. package/lib/Recognizer/types.d.ts +6 -0
  36. package/lib/Recognizer/types.js +1 -0
  37. package/lib/Recognizer/useRecognizer.d.ts +16 -0
  38. package/lib/Recognizer/useRecognizer.js +71 -0
  39. package/lib/Recognizer/useVoiceInputVolume.d.ts +25 -0
  40. package/lib/Recognizer/useVoiceInputVolume.js +52 -0
  41. package/lib/index.d.ts +6 -0
  42. package/lib/index.js +6 -0
  43. package/lib/specs/NitroSpeech.nitro.d.ts +8 -0
  44. package/lib/specs/NitroSpeech.nitro.js +1 -0
  45. package/lib/specs/Recognizer.nitro.d.ts +95 -0
  46. package/lib/specs/Recognizer.nitro.js +1 -0
  47. package/lib/specs/SpeechRecognitionConfig.d.ts +162 -0
  48. package/lib/specs/SpeechRecognitionConfig.js +1 -0
  49. package/lib/specs/VolumeChangeEvent.d.ts +31 -0
  50. package/lib/specs/VolumeChangeEvent.js +1 -0
  51. package/nitro.json +2 -6
  52. package/nitrogen/generated/android/NitroSpeech+autolinking.cmake +2 -2
  53. package/nitrogen/generated/android/NitroSpeechOnLoad.cpp +5 -3
  54. package/nitrogen/generated/android/c++/JFunc_void_VolumeChangeEvent.hpp +78 -0
  55. package/nitrogen/generated/android/c++/JFunc_void_std__vector_std__string_.hpp +14 -14
  56. package/nitrogen/generated/android/c++/JHybridRecognizerSpec.cpp +68 -19
  57. package/nitrogen/generated/android/c++/JHybridRecognizerSpec.hpp +7 -4
  58. package/nitrogen/generated/android/c++/JIosPreset.hpp +58 -0
  59. package/nitrogen/generated/android/c++/JMutableSpeechRecognitionConfig.hpp +79 -0
  60. package/nitrogen/generated/android/c++/{JSpeechToTextParams.hpp → JSpeechRecognitionConfig.hpp} +48 -30
  61. package/nitrogen/generated/android/c++/JVolumeChangeEvent.hpp +65 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/Func_void_VolumeChangeEvent.kt +80 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/HybridRecognizerSpec.kt +18 -5
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/IosPreset.kt +23 -0
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/MutableSpeechRecognitionConfig.kt +76 -0
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/SpeechRecognitionConfig.kt +121 -0
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/VolumeChangeEvent.kt +61 -0
  68. package/nitrogen/generated/ios/NitroSpeech-Swift-Cxx-Bridge.cpp +46 -30
  69. package/nitrogen/generated/ios/NitroSpeech-Swift-Cxx-Bridge.hpp +203 -70
  70. package/nitrogen/generated/ios/NitroSpeech-Swift-Cxx-Umbrella.hpp +13 -3
  71. package/nitrogen/generated/ios/NitroSpeechAutolinking.swift +2 -2
  72. package/nitrogen/generated/ios/c++/HybridRecognizerSpecSwift.hpp +41 -9
  73. package/nitrogen/generated/ios/swift/Func_void_VolumeChangeEvent.swift +46 -0
  74. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  75. package/nitrogen/generated/ios/swift/HybridRecognizerSpec.swift +6 -3
  76. package/nitrogen/generated/ios/swift/HybridRecognizerSpec_cxx.swift +66 -18
  77. package/nitrogen/generated/ios/swift/IosPreset.swift +40 -0
  78. package/nitrogen/generated/ios/swift/MutableSpeechRecognitionConfig.swift +118 -0
  79. package/nitrogen/generated/ios/swift/{SpeechToTextParams.swift → SpeechRecognitionConfig.swift} +108 -43
  80. package/nitrogen/generated/ios/swift/VolumeChangeEvent.swift +52 -0
  81. package/nitrogen/generated/shared/c++/HybridRecognizerSpec.cpp +4 -1
  82. package/nitrogen/generated/shared/c++/HybridRecognizerSpec.hpp +17 -7
  83. package/nitrogen/generated/shared/c++/IosPreset.hpp +76 -0
  84. package/nitrogen/generated/shared/c++/MutableSpeechRecognitionConfig.hpp +105 -0
  85. package/nitrogen/generated/shared/c++/{SpeechToTextParams.hpp → SpeechRecognitionConfig.hpp} +39 -20
  86. package/nitrogen/generated/shared/c++/VolumeChangeEvent.hpp +91 -0
  87. package/package.json +15 -16
  88. package/src/NitroSpeech.ts +5 -0
  89. package/src/Recognizer/RecognizerRef.ts +23 -0
  90. package/src/Recognizer/SpeechRecognizer.ts +10 -0
  91. package/src/Recognizer/methods.ts +40 -0
  92. package/src/Recognizer/types.ts +33 -0
  93. package/src/Recognizer/useRecognizer.ts +85 -0
  94. package/src/Recognizer/useVoiceInputVolume.ts +65 -0
  95. package/src/index.ts +6 -182
  96. package/src/specs/NitroSpeech.nitro.ts +2 -163
  97. package/src/specs/Recognizer.nitro.ts +110 -0
  98. package/src/specs/SpeechRecognitionConfig.ts +167 -0
  99. package/src/specs/VolumeChangeEvent.ts +31 -0
  100. package/android/proguard-rules.pro +0 -1
  101. package/ios/AnylyzerTranscriber.swift +0 -331
  102. package/ios/AutoStopper.swift +0 -69
  103. package/ios/HapticImpact.swift +0 -32
  104. package/ios/LegacySpeechRecognizer.swift +0 -161
  105. package/lib/commonjs/index.js +0 -145
  106. package/lib/commonjs/index.js.map +0 -1
  107. package/lib/commonjs/package.json +0 -1
  108. package/lib/commonjs/specs/NitroSpeech.nitro.js +0 -6
  109. package/lib/commonjs/specs/NitroSpeech.nitro.js.map +0 -1
  110. package/lib/module/index.js +0 -138
  111. package/lib/module/index.js.map +0 -1
  112. package/lib/module/package.json +0 -1
  113. package/lib/module/specs/NitroSpeech.nitro.js +0 -4
  114. package/lib/module/specs/NitroSpeech.nitro.js.map +0 -1
  115. package/lib/tsconfig.tsbuildinfo +0 -1
  116. package/lib/typescript/index.d.ts +0 -50
  117. package/lib/typescript/index.d.ts.map +0 -1
  118. package/lib/typescript/specs/NitroSpeech.nitro.d.ts +0 -162
  119. package/lib/typescript/specs/NitroSpeech.nitro.d.ts.map +0 -1
  120. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrospeech/SpeechToTextParams.kt +0 -68
@@ -1,162 +0,0 @@
1
- import { type HybridObject } from 'react-native-nitro-modules';
2
- interface ParamsAndroid {
3
- /**
4
- * Default - false
5
- *
6
- * Prefer quality over latency (may break autofinish timing, depends on engine)
7
- *
8
- * Android 13+
9
- */
10
- androidFormattingPreferQuality?: boolean;
11
- /**
12
- * Default - false
13
- *
14
- * Language model based on web search terms. (may not work on some devices)
15
- *
16
- * Default - free form model
17
- */
18
- androidUseWebSearchModel?: boolean;
19
- /**
20
- * Default - false.
21
- *
22
- * If required to handle batches non-default way.
23
- *
24
- * Will add lots of batches with empty or similar content to the result.
25
- */
26
- androidDisableBatchHandling?: boolean;
27
- }
28
- interface ParamsIOS {
29
- /**
30
- * Default - true
31
- *
32
- * Adds punctuation to speech recognition results
33
- *
34
- * iOS 16+
35
- */
36
- iosAddPunctuation?: boolean;
37
- }
38
- type HapticFeedbackStyle = 'light' | 'medium' | 'heavy' | 'none';
39
- export interface SpeechToTextParams extends ParamsAndroid, ParamsIOS {
40
- /**
41
- * Default - "en-US"
42
- */
43
- locale?: string;
44
- /**
45
- * Default - 8s
46
- */
47
- autoFinishRecognitionMs?: number;
48
- /**
49
- * Default - false
50
- *
51
- * Lots of repeating words in a row can be annoying
52
- */
53
- disableRepeatingFilter?: boolean;
54
- /**
55
- * Default - empty array
56
- *
57
- * An array of strings that should be recognized, even if they are not in the system vocabulary.
58
- */
59
- contextualStrings?: string[];
60
- /**
61
- * Default - "medium"
62
- *
63
- * Haptic feedback style when microphone starts recording.
64
- */
65
- startHapticFeedbackStyle?: HapticFeedbackStyle;
66
- /**
67
- * Default - "medium"
68
- *
69
- * Haptic feedback style when microphone stops recording.
70
- */
71
- stopHapticFeedbackStyle?: HapticFeedbackStyle;
72
- /**
73
- * Default - false
74
- *
75
- * Android 13+
76
- *
77
- * iOS 26+ (iOS <26: always `false`)
78
- */
79
- maskOffensiveWords?: boolean;
80
- }
81
- export interface Recognizer extends HybridObject<{
82
- ios: 'swift';
83
- android: 'kotlin';
84
- }> {
85
- /**
86
- * Tries to start the speech recognition.
87
- *
88
- * Not guaranteed to start the speech recognition.
89
- */
90
- startListening(params: SpeechToTextParams): void;
91
- /**
92
- * Stops the speech recognition. if not started, does nothing.
93
- *
94
- * Not a sync operation for android, delay about 250ms to polish the result.
95
- *
96
- * Use onRecordingStopped to handle the stop event.
97
- */
98
- stopListening(): void;
99
- /**
100
- * Manually adds time to the auto finish progress.
101
- *
102
- * If you want to give the user ability to manually increase time before timer calls stop.
103
- *
104
- * @param additionalTimeMs - time in ms to add to the current auto finish timer. If not set, will reset the timer to the original auto finish time.
105
- */
106
- addAutoFinishTime(additionalTimeMs?: number): void;
107
- /**
108
- * Updates the auto finish time.
109
- *
110
- * Applies changes only within the current recognition session.
111
- *
112
- * @param newTimeMs - new time in ms for the auto finish timer.
113
- * @param withRefresh - if true, will refresh the auto finish progress.
114
- */
115
- updateAutoFinishTime(newTimeMs: number, withRefresh?: boolean): void;
116
- /**
117
- * Returns true if the speech recognition is active.
118
- */
119
- getIsActive(): boolean;
120
- /**
121
- * The speech recognition has started.
122
- */
123
- onReadyForSpeech?: () => void;
124
- /**
125
- * Audio recording has stopped.
126
- */
127
- onRecordingStopped?: () => void;
128
- /**
129
- * Called each time either a new batch has been added or the last batch has been updated.
130
- */
131
- onResult?: (resultBatches: string[]) => void;
132
- /**
133
- * Called each second while auto finish is in progress.
134
- *
135
- * Time left in milliseconds. Always more than 1000ms.
136
- *
137
- * TODO: Add for android
138
- */
139
- onAutoFinishProgress?: (timeLeftMs: number) => void;
140
- /**
141
- * Error of the speech recognition.
142
- */
143
- onError?: (message: string) => void;
144
- /**
145
- * Permission to record audio has been denied.
146
- */
147
- onPermissionDenied?: () => void;
148
- /**
149
- * Called with arbitrary frequency (many times per second) while audio recording is active.
150
- *
151
- * Voice input volume normalized to a range of 0 to 1.
152
- */
153
- onVolumeChange?: (normVolume: number) => void;
154
- }
155
- export interface NitroSpeech extends HybridObject<{
156
- ios: 'swift';
157
- android: 'kotlin';
158
- }> {
159
- recognizer: Recognizer;
160
- }
161
- export {};
162
- //# sourceMappingURL=NitroSpeech.nitro.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NitroSpeech.nitro.d.ts","sourceRoot":"","sources":["../../../src/specs/NitroSpeech.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,UAAU,aAAa;IACrB;;;;;;OAMG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;;;;;OAMG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC;AAED,UAAU,SAAS;IACjB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,KAAK,mBAAmB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,aAAa,EAAE,SAAS;IAClE;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC5B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,mBAAmB,CAAA;IAC9C;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,mBAAmB,CAAA;IAC7C;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC;IAC/C,GAAG,EAAE,OAAO,CAAA;IACZ,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAC;IACA;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAChD;;;;;;OAMG;IACH,aAAa,IAAI,IAAI,CAAA;IAErB;;;;;;OAMG;IACH,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAElD;;;;;;;OAOG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAEpE;;OAEG;IACH,WAAW,IAAI,OAAO,CAAA;IAEtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC7B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC5C;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IACnD;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CAC9C;AAED,MAAM,WAAW,WAAY,SAAQ,YAAY,CAAC;IAChD,GAAG,EAAE,OAAO,CAAA;IACZ,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAC;IACA,UAAU,EAAE,UAAU,CAAA;CACvB"}
@@ -1,68 +0,0 @@
1
- ///
2
- /// SpeechToTextParams.kt
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © Marc Rousavy @ Margelo
6
- ///
7
-
8
- package com.margelo.nitro.nitrospeech
9
-
10
- import androidx.annotation.Keep
11
- import com.facebook.proguard.annotations.DoNotStrip
12
-
13
-
14
- /**
15
- * Represents the JavaScript object/struct "SpeechToTextParams".
16
- */
17
- @DoNotStrip
18
- @Keep
19
- data class SpeechToTextParams(
20
- @DoNotStrip
21
- @Keep
22
- val locale: String?,
23
- @DoNotStrip
24
- @Keep
25
- val autoFinishRecognitionMs: Double?,
26
- @DoNotStrip
27
- @Keep
28
- val disableRepeatingFilter: Boolean?,
29
- @DoNotStrip
30
- @Keep
31
- val contextualStrings: Array<String>?,
32
- @DoNotStrip
33
- @Keep
34
- val startHapticFeedbackStyle: HapticFeedbackStyle?,
35
- @DoNotStrip
36
- @Keep
37
- val stopHapticFeedbackStyle: HapticFeedbackStyle?,
38
- @DoNotStrip
39
- @Keep
40
- val maskOffensiveWords: Boolean?,
41
- @DoNotStrip
42
- @Keep
43
- val androidFormattingPreferQuality: Boolean?,
44
- @DoNotStrip
45
- @Keep
46
- val androidUseWebSearchModel: Boolean?,
47
- @DoNotStrip
48
- @Keep
49
- val androidDisableBatchHandling: Boolean?,
50
- @DoNotStrip
51
- @Keep
52
- val iosAddPunctuation: Boolean?
53
- ) {
54
- /* primary constructor */
55
-
56
- companion object {
57
- /**
58
- * Constructor called from C++
59
- */
60
- @DoNotStrip
61
- @Keep
62
- @Suppress("unused")
63
- @JvmStatic
64
- private fun fromCpp(locale: String?, autoFinishRecognitionMs: Double?, disableRepeatingFilter: Boolean?, contextualStrings: Array<String>?, startHapticFeedbackStyle: HapticFeedbackStyle?, stopHapticFeedbackStyle: HapticFeedbackStyle?, maskOffensiveWords: Boolean?, androidFormattingPreferQuality: Boolean?, androidUseWebSearchModel: Boolean?, androidDisableBatchHandling: Boolean?, iosAddPunctuation: Boolean?): SpeechToTextParams {
65
- return SpeechToTextParams(locale, autoFinishRecognitionMs, disableRepeatingFilter, contextualStrings, startHapticFeedbackStyle, stopHapticFeedbackStyle, maskOffensiveWords, androidFormattingPreferQuality, androidUseWebSearchModel, androidDisableBatchHandling, iosAddPunctuation)
66
- }
67
- }
68
- }