echogarden 0.12.2 → 1.0.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 (334) hide show
  1. package/README.md +15 -14
  2. package/data/schemas/options.json +398 -111
  3. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  4. package/dist/alignment/DTWMfccSequenceAlignment.js +8 -8
  5. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
  6. package/dist/alignment/DTWSequenceAlignment.js +1 -1
  7. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
  8. package/dist/alignment/DTWSequenceAlignmentWindowed.js +2 -2
  9. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -1
  10. package/dist/alignment/LevenshteinSequenceAlignment.js +1 -1
  11. package/dist/alignment/SpeechAlignment.d.ts +9 -10
  12. package/dist/alignment/SpeechAlignment.js +136 -105
  13. package/dist/alignment/SpeechAlignment.js.map +1 -1
  14. package/dist/api/API.d.ts +13 -12
  15. package/dist/api/API.js +14 -13
  16. package/dist/api/API.js.map +1 -1
  17. package/dist/api/APIOptions.d.ts +5 -4
  18. package/dist/api/Alignment.d.ts +15 -9
  19. package/dist/api/Alignment.js +88 -74
  20. package/dist/api/Alignment.js.map +1 -1
  21. package/dist/api/Common.js +1 -1
  22. package/dist/api/Denoising.d.ts +6 -6
  23. package/dist/api/Denoising.js +23 -23
  24. package/dist/api/Denoising.js.map +1 -1
  25. package/dist/api/LanguageDetection.d.ts +19 -12
  26. package/dist/api/LanguageDetection.js +88 -38
  27. package/dist/api/LanguageDetection.js.map +1 -1
  28. package/dist/api/Recognition.d.ts +16 -6
  29. package/dist/api/Recognition.js +129 -55
  30. package/dist/api/Recognition.js.map +1 -1
  31. package/dist/api/SourceSeparation.d.ts +17 -0
  32. package/dist/api/SourceSeparation.js +61 -0
  33. package/dist/api/SourceSeparation.js.map +1 -0
  34. package/dist/api/Synthesis.d.ts +18 -18
  35. package/dist/api/Synthesis.js +191 -164
  36. package/dist/api/Synthesis.js.map +1 -1
  37. package/dist/api/Translation.d.ts +19 -8
  38. package/dist/api/Translation.js +132 -35
  39. package/dist/api/Translation.js.map +1 -1
  40. package/dist/api/Vad.d.ts +10 -5
  41. package/dist/api/Vad.js +76 -38
  42. package/dist/api/Vad.js.map +1 -1
  43. package/dist/audio/AudioBufferConversion.d.ts +1 -1
  44. package/dist/audio/AudioBufferConversion.js +4 -4
  45. package/dist/audio/AudioPlayer.d.ts +1 -1
  46. package/dist/audio/AudioPlayer.js +26 -26
  47. package/dist/audio/AudioPlayer.js.map +1 -1
  48. package/dist/audio/AudioRecorder.d.ts +1 -1
  49. package/dist/audio/AudioRecorder.js +5 -5
  50. package/dist/audio/AudioUtilities.d.ts +13 -9
  51. package/dist/audio/AudioUtilities.js +86 -24
  52. package/dist/audio/AudioUtilities.js.map +1 -1
  53. package/dist/cli/CLI.d.ts +3 -3
  54. package/dist/cli/CLI.js +271 -162
  55. package/dist/cli/CLI.js.map +1 -1
  56. package/dist/cli/CLIConfigFile.js +8 -8
  57. package/dist/cli/CLILauncher.js +6 -6
  58. package/dist/cli/CLIOptionsSchema.js +2 -2
  59. package/dist/cli/CLIParser.js +5 -5
  60. package/dist/cli/CLIStarter.js +4 -4
  61. package/dist/codecs/FFMpegTranscoder.d.ts +2 -2
  62. package/dist/codecs/FFMpegTranscoder.js +37 -37
  63. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  64. package/dist/codecs/TIMITCodec.js +5 -5
  65. package/dist/codecs/WaveCodec.d.ts +1 -1
  66. package/dist/codecs/WaveCodec.js +22 -22
  67. package/dist/denoising/RNNoise.d.ts +1 -1
  68. package/dist/denoising/RNNoise.js +9 -9
  69. package/dist/dsp/BiquadFilter.d.ts +3 -2
  70. package/dist/dsp/BiquadFilter.js +18 -11
  71. package/dist/dsp/BiquadFilter.js.map +1 -1
  72. package/dist/dsp/DecayingPeakEstimator.d.ts +16 -0
  73. package/dist/dsp/DecayingPeakEstimator.js +23 -0
  74. package/dist/dsp/DecayingPeakEstimator.js.map +1 -0
  75. package/dist/dsp/FFT.d.ts +8 -4
  76. package/dist/dsp/FFT.js +76 -30
  77. package/dist/dsp/FFT.js.map +1 -1
  78. package/dist/dsp/KWeightingFilter.d.ts +9 -0
  79. package/dist/dsp/KWeightingFilter.js +40 -0
  80. package/dist/dsp/KWeightingFilter.js.map +1 -0
  81. package/dist/dsp/LoudnessEstimator.d.ts +21 -0
  82. package/dist/dsp/LoudnessEstimator.js +47 -0
  83. package/dist/dsp/LoudnessEstimator.js.map +1 -0
  84. package/dist/dsp/MFCC.d.ts +2 -2
  85. package/dist/dsp/MFCC.js +15 -15
  86. package/dist/dsp/MelSpectogram.d.ts +1 -1
  87. package/dist/dsp/MelSpectogram.js +6 -6
  88. package/dist/dsp/Rubberband.d.ts +11 -11
  89. package/dist/dsp/Rubberband.js +27 -27
  90. package/dist/dsp/Sonic.d.ts +1 -1
  91. package/dist/dsp/Sonic.js +3 -3
  92. package/dist/dsp/SpeexResampler.d.ts +1 -1
  93. package/dist/dsp/SpeexResampler.js +2 -2
  94. package/dist/math/VectorMath.d.ts +12 -8
  95. package/dist/math/VectorMath.js +35 -32
  96. package/dist/math/VectorMath.js.map +1 -1
  97. package/dist/nlp/ChineseSegmentation.js +2 -2
  98. package/dist/nlp/CompromiseNLP.js +3 -3
  99. package/dist/nlp/EspeakPhonemizer.js +30 -30
  100. package/dist/nlp/IPA.js +20 -20
  101. package/dist/nlp/JapaneseSegmentation.js +6 -6
  102. package/dist/nlp/Lexicon.d.ts +1 -1
  103. package/dist/nlp/Lexicon.js +7 -7
  104. package/dist/nlp/Segmentation.d.ts +3 -0
  105. package/dist/nlp/Segmentation.js +21 -14
  106. package/dist/nlp/Segmentation.js.map +1 -1
  107. package/dist/nlp/TextNormalizer.js +16 -16
  108. package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -2
  109. package/dist/recognition/AmazonTranscribeSTT.js +13 -14
  110. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  111. package/dist/recognition/AzureCognitiveServicesSTT.js +5 -6
  112. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
  113. package/dist/recognition/GoogleCloudSTT.d.ts +3 -3
  114. package/dist/recognition/GoogleCloudSTT.js +18 -18
  115. package/dist/recognition/OpenAICloudSTT.d.ts +19 -0
  116. package/dist/recognition/OpenAICloudSTT.js +81 -0
  117. package/dist/recognition/OpenAICloudSTT.js.map +1 -0
  118. package/dist/recognition/SileroSTT.d.ts +2 -2
  119. package/dist/recognition/SileroSTT.js +25 -25
  120. package/dist/recognition/VoskSTT.d.ts +2 -2
  121. package/dist/recognition/VoskSTT.js +8 -8
  122. package/dist/recognition/WhisperCppSTT.d.ts +88 -0
  123. package/dist/recognition/WhisperCppSTT.js +332 -0
  124. package/dist/recognition/WhisperCppSTT.js.map +1 -0
  125. package/dist/recognition/WhisperSTT.d.ts +49 -25
  126. package/dist/recognition/WhisperSTT.js +626 -481
  127. package/dist/recognition/WhisperSTT.js.map +1 -1
  128. package/dist/server/Client.d.ts +1 -1
  129. package/dist/server/Client.js +22 -22
  130. package/dist/server/Server.js +9 -9
  131. package/dist/server/Server.js.map +1 -1
  132. package/dist/server/Worker.d.ts +22 -22
  133. package/dist/server/Worker.js +36 -36
  134. package/dist/server/Worker.js.map +1 -1
  135. package/dist/server/WorkerStarter.js +2 -2
  136. package/dist/source-separation/MDXNetSourceSeparation.d.ts +11 -0
  137. package/dist/source-separation/MDXNetSourceSeparation.js +161 -0
  138. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -0
  139. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
  140. package/dist/speech-language-detection/SileroLanguageDetection.js +7 -7
  141. package/dist/subtitles/Subtitles.d.ts +10 -0
  142. package/dist/subtitles/Subtitles.js +2 -2
  143. package/dist/subtitles/Subtitles.js.map +1 -1
  144. package/dist/synthesis/AwsPollyTTS.d.ts +1 -1
  145. package/dist/synthesis/AwsPollyTTS.js +12 -12
  146. package/dist/synthesis/AzureCognitiveServicesTTS.js +7 -7
  147. package/dist/synthesis/CoquiServerTTS.js +10 -10
  148. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  149. package/dist/synthesis/ElevenlabsTTS.d.ts +23 -0
  150. package/dist/synthesis/ElevenlabsTTS.js +103 -0
  151. package/dist/synthesis/ElevenlabsTTS.js.map +1 -0
  152. package/dist/synthesis/EspeakTTS.d.ts +6 -5
  153. package/dist/synthesis/EspeakTTS.js +81 -69
  154. package/dist/synthesis/EspeakTTS.js.map +1 -1
  155. package/dist/synthesis/FliteTTS.d.ts +3 -3
  156. package/dist/synthesis/FliteTTS.js +154 -154
  157. package/dist/synthesis/FliteTTS.js.map +1 -1
  158. package/dist/synthesis/GoogleCloudTTS.d.ts +3 -3
  159. package/dist/synthesis/GoogleCloudTTS.js +17 -17
  160. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  161. package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
  162. package/dist/synthesis/GoogleTranslateTTS.js +103 -103
  163. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +2 -2
  164. package/dist/synthesis/MicrosoftEdgeTTS.js +74 -74
  165. package/dist/synthesis/OpenAICloudTTS.d.ts +13 -0
  166. package/dist/synthesis/OpenAICloudTTS.js +169 -0
  167. package/dist/synthesis/OpenAICloudTTS.js.map +1 -0
  168. package/dist/synthesis/SamTTS.js +3 -3
  169. package/dist/synthesis/SapiTTS.d.ts +3 -3
  170. package/dist/synthesis/SapiTTS.js +26 -26
  171. package/dist/synthesis/StreamlabsPollyTTS.d.ts +2 -2
  172. package/dist/synthesis/StreamlabsPollyTTS.js +27 -27
  173. package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
  174. package/dist/synthesis/SvoxPicoTTS.js +65 -65
  175. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  176. package/dist/synthesis/VitsTTS.d.ts +3 -3
  177. package/dist/synthesis/VitsTTS.js +378 -378
  178. package/dist/synthesis/VitsTTS.js.map +1 -1
  179. package/dist/tests/Test.js +2 -2
  180. package/dist/utilities/Compression.d.ts +5 -0
  181. package/dist/utilities/Compression.js +29 -13
  182. package/dist/utilities/Compression.js.map +1 -1
  183. package/dist/utilities/FileDownloader.d.ts +1 -1
  184. package/dist/utilities/FileDownloader.js +16 -16
  185. package/dist/utilities/FileSystem.js +7 -7
  186. package/dist/utilities/Locale.d.ts +7 -7
  187. package/dist/utilities/Locale.js +15 -15
  188. package/dist/utilities/Logger.js +3 -3
  189. package/dist/utilities/ObjectUtilities.js +19 -19
  190. package/dist/utilities/OpenPromise.js +2 -2
  191. package/dist/utilities/OpenPromise.js.map +1 -1
  192. package/dist/utilities/PackageManager.js +31 -0
  193. package/dist/utilities/PackageManager.js.map +1 -1
  194. package/dist/utilities/PathUtilities.js +8 -8
  195. package/dist/utilities/RandomGenerator.js +2 -2
  196. package/dist/utilities/SmoothEstimator.d.ts +8 -0
  197. package/dist/utilities/SmoothEstimator.js +25 -0
  198. package/dist/utilities/SmoothEstimator.js.map +1 -0
  199. package/dist/utilities/TarballMaker.js +8 -8
  200. package/dist/utilities/Timeline.d.ts +3 -2
  201. package/dist/utilities/Timeline.js +11 -11
  202. package/dist/utilities/Timeline.js.map +1 -1
  203. package/dist/utilities/Timer.js +4 -4
  204. package/dist/utilities/Utilities.d.ts +4 -0
  205. package/dist/utilities/Utilities.js +38 -15
  206. package/dist/utilities/Utilities.js.map +1 -1
  207. package/dist/utilities/WasmMemoryManager.js +7 -7
  208. package/dist/utilities/WebReader.js +23 -23
  209. package/dist/utilities/WikipediaReader.js +2 -2
  210. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +28 -0
  211. package/dist/voice-activity-detection/AdaptiveGateVAD.js +138 -0
  212. package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -0
  213. package/dist/voice-activity-detection/SileroVAD.d.ts +1 -1
  214. package/dist/voice-activity-detection/SileroVAD.js +5 -5
  215. package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
  216. package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -1
  217. package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
  218. package/docs/API.md +29 -11
  219. package/docs/CLI.md +31 -7
  220. package/docs/Contributing.md +38 -0
  221. package/docs/Development.md +93 -19
  222. package/docs/Engines.md +28 -16
  223. package/docs/Licenses.md +4 -1
  224. package/docs/Options.md +158 -78
  225. package/docs/Releases.md +262 -0
  226. package/docs/Server.md +7 -7
  227. package/docs/Tasklist.md +95 -76
  228. package/docs/Technical.md +4 -4
  229. package/package.json +13 -14
  230. package/src/alignment/DTWMfccSequenceAlignment.ts +9 -9
  231. package/src/alignment/DTWSequenceAlignment.ts +2 -2
  232. package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
  233. package/src/alignment/LevenshteinSequenceAlignment.ts +2 -2
  234. package/src/alignment/SpeechAlignment.ts +204 -119
  235. package/src/api/API.ts +14 -13
  236. package/src/api/APIOptions.ts +12 -11
  237. package/src/api/Alignment.ts +147 -90
  238. package/src/api/Common.ts +1 -1
  239. package/src/api/Denoising.ts +28 -28
  240. package/src/api/LanguageDetection.ts +135 -48
  241. package/src/api/Recognition.ts +198 -59
  242. package/src/api/SourceSeparation.ts +99 -0
  243. package/src/api/Synthesis.ts +217 -181
  244. package/src/api/Translation.ts +193 -40
  245. package/src/api/Vad.ts +110 -41
  246. package/src/audio/AudioBufferConversion.ts +4 -4
  247. package/src/audio/AudioPlayer.ts +27 -27
  248. package/src/audio/AudioRecorder.ts +5 -5
  249. package/src/audio/AudioUtilities.ts +107 -24
  250. package/src/cli/CLI.ts +313 -164
  251. package/src/cli/CLIConfigFile.ts +8 -8
  252. package/src/cli/CLILauncher.ts +6 -6
  253. package/src/cli/CLIOptionsSchema.ts +2 -2
  254. package/src/cli/CLIParser.ts +5 -5
  255. package/src/cli/CLIStarter.ts +4 -4
  256. package/src/codecs/FFMpegTranscoder.ts +38 -38
  257. package/src/codecs/TIMITCodec.ts +5 -5
  258. package/src/codecs/WaveCodec.ts +22 -22
  259. package/src/denoising/RNNoise.ts +9 -9
  260. package/src/dsp/BiquadFilter.ts +19 -11
  261. package/src/dsp/DecayingPeakEstimator.ts +35 -0
  262. package/src/dsp/FFT.ts +103 -35
  263. package/src/dsp/KWeightingFilter.ts +43 -0
  264. package/src/dsp/LoudnessEstimator.ts +74 -0
  265. package/src/dsp/MFCC.ts +15 -15
  266. package/src/dsp/MelSpectogram.ts +7 -7
  267. package/src/dsp/Rubberband.ts +38 -38
  268. package/src/dsp/Sonic.ts +4 -4
  269. package/src/dsp/SpeexResampler.ts +2 -2
  270. package/src/math/VectorMath.ts +42 -33
  271. package/src/nlp/ChineseSegmentation.ts +3 -3
  272. package/src/nlp/CompromiseNLP.ts +3 -3
  273. package/src/nlp/EspeakPhonemizer.ts +30 -30
  274. package/src/nlp/IPA.ts +20 -20
  275. package/src/nlp/JapaneseSegmentation.ts +6 -6
  276. package/src/nlp/Lexicon.ts +8 -8
  277. package/src/nlp/Segmentation.ts +23 -14
  278. package/src/nlp/TextNormalizer.ts +16 -16
  279. package/src/recognition/AmazonTranscribeSTT.ts +16 -17
  280. package/src/recognition/AzureCognitiveServicesSTT.ts +8 -6
  281. package/src/recognition/GoogleCloudSTT.ts +21 -21
  282. package/src/recognition/OpenAICloudSTT.ts +142 -0
  283. package/src/recognition/SileroSTT.ts +26 -26
  284. package/src/recognition/VoskSTT.ts +10 -10
  285. package/src/recognition/WhisperCppSTT.ts +555 -0
  286. package/src/recognition/WhisperSTT.ts +760 -507
  287. package/src/server/Client.ts +23 -23
  288. package/src/server/Server.ts +9 -9
  289. package/src/server/Worker.ts +53 -53
  290. package/src/server/WorkerStarter.ts +2 -2
  291. package/src/source-separation/MDXNetSourceSeparation.ts +228 -0
  292. package/src/speech-language-detection/SileroLanguageDetection.ts +8 -8
  293. package/src/subtitles/Subtitles.ts +3 -3
  294. package/src/synthesis/AwsPollyTTS.ts +14 -14
  295. package/src/synthesis/AzureCognitiveServicesTTS.ts +10 -10
  296. package/src/synthesis/CoquiServerTTS.ts +10 -10
  297. package/src/synthesis/ElevenlabsTTS.ts +137 -0
  298. package/src/synthesis/EspeakTTS.ts +90 -71
  299. package/src/synthesis/FliteTTS.ts +157 -157
  300. package/src/synthesis/GoogleCloudTTS.ts +19 -19
  301. package/src/synthesis/GoogleTranslateTTS.ts +104 -104
  302. package/src/synthesis/MicrosoftEdgeTTS.ts +80 -80
  303. package/src/synthesis/OpenAICloudTTS.ts +196 -0
  304. package/src/synthesis/SamTTS.ts +3 -3
  305. package/src/synthesis/SapiTTS.ts +29 -29
  306. package/src/synthesis/StreamlabsPollyTTS.ts +29 -29
  307. package/src/synthesis/SvoxPicoTTS.ts +67 -67
  308. package/src/synthesis/VitsTTS.ts +380 -380
  309. package/src/tests/Test.ts +4 -4
  310. package/src/utilities/Compression.ts +34 -13
  311. package/src/utilities/FileDownloader.ts +19 -19
  312. package/src/utilities/FileSystem.ts +7 -7
  313. package/src/utilities/Locale.ts +22 -22
  314. package/src/utilities/Logger.ts +4 -4
  315. package/src/utilities/ObjectUtilities.ts +19 -19
  316. package/src/utilities/OpenPromise.ts +2 -2
  317. package/src/utilities/PackageManager.ts +40 -0
  318. package/src/utilities/PathUtilities.ts +8 -8
  319. package/src/utilities/RandomGenerator.ts +3 -3
  320. package/src/utilities/SmoothEstimator.ts +35 -0
  321. package/src/utilities/TarballMaker.ts +9 -9
  322. package/src/utilities/Timeline.ts +15 -13
  323. package/src/utilities/Timer.ts +4 -4
  324. package/src/utilities/Utilities.ts +49 -15
  325. package/src/utilities/WasmMemoryManager.ts +7 -7
  326. package/src/utilities/WebReader.ts +23 -23
  327. package/src/utilities/WikipediaReader.ts +2 -2
  328. package/src/voice-activity-detection/AdaptiveGateVAD.ts +202 -0
  329. package/src/voice-activity-detection/SileroVAD.ts +5 -5
  330. package/src/voice-activity-detection/WebRtcVAD.ts +5 -5
  331. package/dist/synthesis/ElevenLabsTTS.d.ts +0 -8
  332. package/dist/synthesis/ElevenLabsTTS.js +0 -82
  333. package/dist/synthesis/ElevenLabsTTS.js.map +0 -1
  334. package/src/synthesis/ElevenLabsTTS.ts +0 -104
@@ -1,6 +1,6 @@
1
- import * as API from "./API.js";
2
- import type { ServerOptions } from "../server/Server.js";
3
- export type APIOptions = {
1
+ import * as API from './API.js';
2
+ import type { ServerOptions } from '../server/Server.js';
3
+ export interface APIOptions {
4
4
  VoiceListRequestOptions: API.VoiceListRequestOptions;
5
5
  SynthesisOptions: API.SynthesisOptions;
6
6
  RecognitionOptions: API.RecognitionOptions;
@@ -10,5 +10,6 @@ export type APIOptions = {
10
10
  TextLanguageDetectionOptions: API.TextLanguageDetectionOptions;
11
11
  VADOptions: API.VADOptions;
12
12
  DenoisingOptions: API.DenoisingOptions;
13
+ SourceSeparationOptions: API.SourceSeparationOptions;
13
14
  ServerOptions: ServerOptions;
14
- };
15
+ }
@@ -1,9 +1,9 @@
1
- import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
- import * as API from "./API.js";
3
- import { Timeline } from "../utilities/Timeline.js";
4
- import { WhisperOptions } from "../recognition/WhisperSTT.js";
5
- import { DtwGranularity } from "../alignment/SpeechAlignment.js";
6
- import { SubtitlesConfig } from "../subtitles/Subtitles.js";
1
+ import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
2
+ import * as API from './API.js';
3
+ import { Timeline } from '../utilities/Timeline.js';
4
+ import { WhisperOptions } from '../recognition/WhisperSTT.js';
5
+ import { DtwGranularity } from '../alignment/SpeechAlignment.js';
6
+ import { SubtitlesConfig } from '../subtitles/Subtitles.js';
7
7
  export declare function align(input: AudioSourceParam, transcript: string, options: AlignmentOptions): Promise<AlignmentResult>;
8
8
  export declare function alignSegments(sourceRawAudio: RawAudio, segmentTimeline: Timeline, alignmentOptions: AlignmentOptions): Promise<Timeline>;
9
9
  export interface AlignmentResult {
@@ -12,14 +12,19 @@ export interface AlignmentResult {
12
12
  transcript: string;
13
13
  language: string;
14
14
  inputRawAudio: RawAudio;
15
+ isolatedRawAudio?: RawAudio;
16
+ backgroundRawAudio?: RawAudio;
15
17
  }
16
- export type AlignmentEngine = "dtw" | "dtw-ra" | "whisper";
17
- export type PhoneAlignmentMethod = "interpolation" | "dtw";
18
+ export type AlignmentEngine = 'dtw' | 'dtw-ra' | 'whisper';
19
+ export type PhoneAlignmentMethod = 'interpolation' | 'dtw';
18
20
  export interface AlignmentOptions {
19
21
  engine?: AlignmentEngine;
20
22
  language?: string;
21
- languageDetection?: API.TextLanguageDetectionOptions;
23
+ isolate?: boolean;
24
+ crop?: boolean;
22
25
  customLexiconPaths?: string[];
26
+ languageDetection?: API.TextLanguageDetectionOptions;
27
+ vad?: API.VADOptions;
23
28
  plainText?: API.PlainTextOptions;
24
29
  subtitles?: SubtitlesConfig;
25
30
  dtw?: {
@@ -28,6 +33,7 @@ export interface AlignmentOptions {
28
33
  phoneAlignmentMethod?: PhoneAlignmentMethod;
29
34
  };
30
35
  recognition?: API.RecognitionOptions;
36
+ sourceSeparation?: API.SourceSeparationOptions;
31
37
  whisper?: WhisperOptions;
32
38
  }
33
39
  export declare const defaultAlignmentOptions: AlignmentOptions;
@@ -1,26 +1,42 @@
1
- import { extendDeep } from "../utilities/ObjectUtilities.js";
2
- import { logToStderr } from "../utilities/Utilities.js";
3
- import { downmixToMonoAndNormalize, ensureRawAudio, getRawAudioDuration, normalizeAudioLevel, trimAudioEnd } from "../audio/AudioUtilities.js";
4
- import { Logger } from "../utilities/Logger.js";
5
- import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
6
- import * as API from "./API.js";
7
- import { addTimeOffsetToTimeline, addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from "../utilities/Timeline.js";
8
- import { formatLanguageCodeWithName, getDefaultDialectForLanguageCodeIfPossible, getShortLanguageCode, normalizeLanguageCode } from "../utilities/Locale.js";
9
- import { whisperOptionsDefaults } from "../recognition/WhisperSTT.js";
10
- import chalk from "chalk";
11
- import { defaultSubtitlesBaseConfig } from "../subtitles/Subtitles.js";
12
- import { synthesize } from "./API.js";
13
- import { defaultEspeakOptions } from "../synthesis/EspeakTTS.js";
1
+ import { extendDeep } from '../utilities/ObjectUtilities.js';
2
+ import { logToStderr } from '../utilities/Utilities.js';
3
+ import { ensureRawAudio, getRawAudioDuration, normalizeAudioLevel, trimAudioEnd } from '../audio/AudioUtilities.js';
4
+ import { Logger } from '../utilities/Logger.js';
5
+ import * as API from './API.js';
6
+ import { addTimeOffsetToTimeline, addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from '../utilities/Timeline.js';
7
+ import { formatLanguageCodeWithName, getDefaultDialectForLanguageCodeIfPossible, getShortLanguageCode, normalizeLanguageCode } from '../utilities/Locale.js';
8
+ import chalk from 'chalk';
9
+ import { createAlignmentReferenceUsingEspeak } from '../alignment/SpeechAlignment.js';
10
+ import { defaultSubtitlesBaseConfig } from '../subtitles/Subtitles.js';
14
11
  const log = logToStderr;
15
12
  export async function align(input, transcript, options) {
16
13
  const logger = new Logger();
17
14
  const startTimestamp = logger.getTimestamp();
18
- logger.start("Prepare for alignment");
15
+ options = extendDeep(defaultAlignmentOptions, options);
19
16
  const inputRawAudio = await ensureRawAudio(input);
20
- let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
17
+ let sourceRawAudio;
18
+ let isolatedRawAudio;
19
+ let backgroundRawAudio;
20
+ if (options.isolate) {
21
+ logger.log(``);
22
+ logger.end();
23
+ ({ isolatedRawAudio, backgroundRawAudio } = await API.isolate(inputRawAudio, options.sourceSeparation));
24
+ logger.end();
25
+ logger.log(``);
26
+ sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1);
27
+ }
28
+ else {
29
+ sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
30
+ }
31
+ let sourceUncropTimeline;
32
+ if (options.crop) {
33
+ logger.start('Crop using voice activity detection');
34
+ ({ timeline: sourceUncropTimeline, croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad));
35
+ logger.end();
36
+ }
37
+ logger.start('Prepare for alignment');
21
38
  sourceRawAudio = normalizeAudioLevel(sourceRawAudio);
22
39
  sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0]);
23
- options = extendDeep(defaultAlignmentOptions, options);
24
40
  if (options.dtw.windowDuration == null) {
25
41
  const sourceAudioDuration = getRawAudioDuration(sourceRawAudio);
26
42
  if (sourceAudioDuration < 5 * 60) { // If up to 5 minutes, set window to one minute
@@ -38,33 +54,15 @@ export async function align(input, transcript, options) {
38
54
  language = normalizeLanguageCode(options.language);
39
55
  }
40
56
  else {
41
- logger.start("No language specified. Detecting language");
57
+ logger.start('No language specified. Detecting language');
42
58
  const { detectedLanguage } = await API.detectTextLanguage(transcript, options.languageDetection || {});
43
59
  language = detectedLanguage;
44
60
  logger.end();
45
61
  logger.logTitledMessage('Language detected', formatLanguageCodeWithName(detectedLanguage));
46
62
  }
47
63
  language = getDefaultDialectForLanguageCodeIfPossible(language);
48
- logger.start("Load alignment module");
49
- const { alignUsingDtwWithRecognition, alignUsingDtw } = await import("../alignment/SpeechAlignment.js");
50
- async function getAlignmentReference() {
51
- logger.start("Create alignment reference with eSpeak");
52
- const synthesisOptions = {
53
- engine: "espeak",
54
- language,
55
- plainText: options.plainText,
56
- customLexiconPaths: options.customLexiconPaths,
57
- espeak: {
58
- useKlatt: false
59
- }
60
- };
61
- let { audio: referenceRawAudio, timeline: segmentTimeline, voice: espeakVoice } = await synthesize(transcript, synthesisOptions);
62
- const sentenceTimeline = segmentTimeline.flatMap(entry => entry.timeline);
63
- const wordTimeline = sentenceTimeline.flatMap(entry => entry.timeline);
64
- referenceRawAudio = await resampleAudioSpeex(referenceRawAudio, 16000);
65
- referenceRawAudio = downmixToMonoAndNormalize(referenceRawAudio);
66
- return { referenceRawAudio, referenceTimeline: wordTimeline, espeakVoice };
67
- }
64
+ logger.start('Load alignment module');
65
+ const { alignUsingDtwWithRecognition: alignUsingDtwWithRecognitionReference, alignUsingDtw } = await import('../alignment/SpeechAlignment.js');
68
66
  function getDtwWindowDurationsAndGranularities() {
69
67
  let granularities;
70
68
  let windowDurations;
@@ -101,66 +99,65 @@ export async function align(input, transcript, options) {
101
99
  }
102
100
  let mappedTimeline;
103
101
  switch (options.engine) {
104
- case "dtw": {
105
- const { referenceRawAudio, referenceTimeline } = await getAlignmentReference();
102
+ case 'dtw': {
103
+ const { referenceRawAudio, referenceTimeline } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths);
106
104
  logger.end();
107
105
  const { windowDurations, granularities } = getDtwWindowDurationsAndGranularities();
108
106
  mappedTimeline = await alignUsingDtw(sourceRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations);
109
107
  break;
110
108
  }
111
- case "dtw-ra": {
112
- /*
113
- const promptWords = (await splitToWords(prompt, language)).filter(word => isWord(word))
114
-
115
- shuffleArrayInPlace(promptWords, this.randomGen)
116
- //promptWords.reverse()
117
-
118
- prompt = promptWords.join(" ")
119
- */
120
- const recognitionOptionsDefaults = {
121
- engine: "whisper",
122
- language,
123
- };
124
- const recognitionOptions = extendDeep(recognitionOptionsDefaults, options.recognition || {});
109
+ case 'dtw-ra': {
110
+ const recognitionOptions = extendDeep({ crop: options.crop, language }, options.recognition);
125
111
  logger.end();
126
- const { wordTimeline: recognitionTimeline } = await API.recognize(sourceRawAudio, recognitionOptions);
127
- const { referenceRawAudio, referenceTimeline, espeakVoice } = await getAlignmentReference();
112
+ // Recognize source audio
113
+ const { transcript: recognizedTranscript, wordTimeline: recognitionTimeline } = await API.recognize(sourceRawAudio, recognitionOptions);
114
+ // Synthesize the ground-truth transcript and get its timeline
115
+ logger.start('Synthesize ground-truth transcript with eSpeak');
116
+ const { referenceRawAudio, referenceTimeline, } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths, true);
117
+ // Synthesize the recognized transcript and get its timeline
118
+ logger.start('Synthesize recognized transcript with eSpeak');
119
+ const { referenceRawAudio: synthesizedRecognizedTranscriptRawAudio, referenceTimeline: synthesizedRecognitionTimeline } = await createAlignmentReferenceUsingEspeak(recognizedTranscript, language, undefined, undefined, true);
128
120
  logger.end();
129
121
  const { windowDurations, granularities } = getDtwWindowDurationsAndGranularities();
130
- const espeakOptions = { ...defaultEspeakOptions, voice: espeakVoice, useKlatt: false };
131
122
  const phoneAlignmentMethod = options.dtw.phoneAlignmentMethod;
132
- mappedTimeline = await alignUsingDtwWithRecognition(sourceRawAudio, referenceRawAudio, referenceTimeline, recognitionTimeline, granularities, windowDurations, espeakOptions, phoneAlignmentMethod);
123
+ // Align the ground-truth transcript and the recognized transcript
124
+ mappedTimeline = await alignUsingDtwWithRecognitionReference(sourceRawAudio, referenceRawAudio, referenceTimeline, recognitionTimeline, synthesizedRecognizedTranscriptRawAudio, synthesizedRecognitionTimeline, granularities, windowDurations, phoneAlignmentMethod);
133
125
  break;
134
126
  }
135
- case "whisper": {
136
- const WhisperSTT = await import("../recognition/WhisperSTT.js");
127
+ case 'whisper': {
128
+ const WhisperSTT = await import('../recognition/WhisperSTT.js');
137
129
  const whisperOptions = options.whisper;
138
130
  const shortLanguageCode = getShortLanguageCode(language);
139
- const { modelName, modelDir, tokenizerDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperOptions.model, language);
140
- if (modelName.endsWith(".en") && shortLanguageCode != "en") {
141
- throw new Error(`The model '${modelName}' is English only and cannot transcribe language '${shortLanguageCode}'`);
142
- }
131
+ const { modelName, modelDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperOptions.model, language);
143
132
  if (getRawAudioDuration(sourceRawAudio) > 30) {
144
- throw new Error("Whisper based alignment currently only supports audio inputs that are 30s or less");
133
+ throw new Error('Whisper based alignment currently only supports audio inputs that are 30s or less');
145
134
  }
146
135
  logger.end();
147
- mappedTimeline = await WhisperSTT.align(sourceRawAudio, transcript, modelName, modelDir, tokenizerDir, shortLanguageCode);
136
+ mappedTimeline = await WhisperSTT.align(sourceRawAudio, transcript, modelName, modelDir, shortLanguageCode);
148
137
  break;
149
138
  }
150
139
  default: {
151
140
  throw new Error(`Engine '${options.engine}' is not supported`);
152
141
  }
153
142
  }
143
+ // If the audio was cropped before recognition, map the timestamps back to the original audio
144
+ if (sourceUncropTimeline && sourceUncropTimeline.length > 0) {
145
+ API.convertCroppedToUncroppedTimeline(mappedTimeline, sourceUncropTimeline);
146
+ }
147
+ // Add text offsets
154
148
  addWordTextOffsetsToTimeline(mappedTimeline, transcript);
149
+ // Make segment timeline
155
150
  const { segmentTimeline } = await wordTimelineToSegmentSentenceTimeline(mappedTimeline, transcript, language, options.plainText?.paragraphBreaks, options.plainText?.whitespace);
156
151
  logger.end();
157
152
  logger.logDuration(`Total alignment time`, startTimestamp, chalk.magentaBright);
158
153
  return {
159
154
  timeline: segmentTimeline,
160
155
  wordTimeline: mappedTimeline,
161
- inputRawAudio,
162
156
  transcript,
163
- language
157
+ language,
158
+ inputRawAudio,
159
+ isolatedRawAudio,
160
+ backgroundRawAudio,
164
161
  };
165
162
  }
166
163
  export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOptions) {
@@ -183,10 +180,12 @@ export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOp
183
180
  return timeline;
184
181
  }
185
182
  export const defaultAlignmentOptions = {
186
- engine: "dtw",
183
+ engine: 'dtw',
187
184
  language: undefined,
188
- languageDetection: {},
185
+ isolate: false,
186
+ crop: true,
189
187
  customLexiconPaths: undefined,
188
+ languageDetection: {},
190
189
  plainText: {
191
190
  paragraphBreaks: 'double',
192
191
  whitespace: 'collapse'
@@ -197,26 +196,41 @@ export const defaultAlignmentOptions = {
197
196
  windowDuration: undefined,
198
197
  phoneAlignmentMethod: 'dtw'
199
198
  },
200
- recognition: {},
201
- whisper: whisperOptionsDefaults
199
+ recognition: {
200
+ whisper: {
201
+ temperature: 0.15,
202
+ topCandidateCount: 5,
203
+ punctuationThreshold: 0.2,
204
+ maxTokensPerPart: 250,
205
+ autoPromptParts: true,
206
+ suppressRepetition: true,
207
+ seed: undefined,
208
+ decodeTimestampTokens: false,
209
+ }
210
+ },
211
+ vad: {
212
+ engine: 'adaptive-gate'
213
+ },
214
+ sourceSeparation: {},
215
+ whisper: {}
202
216
  };
203
217
  export const alignmentEngines = [
204
218
  {
205
219
  id: 'dtw',
206
220
  name: 'Dynamic Time Warping',
207
- description: 'Makes use of synthesis to find the best mapping between the original audio and its transcript.',
221
+ description: 'Makes use of a synthesized reference to find the best mapping between the spoken audio and its transcript.',
208
222
  type: 'local'
209
223
  },
210
224
  {
211
225
  id: 'dtw-ra',
212
226
  name: 'Dynamic Time Warping with Recognition Assist',
213
- description: 'Makes use of both synthesis and recognition to find the best mapping between the original audio and its transcript.',
227
+ description: 'Makes use of both a synthesized reference and a synthsized recognized transcript to find the best mapping between the spoken audio and its transcript.',
214
228
  type: 'local'
215
229
  },
216
230
  {
217
231
  id: 'whisper',
218
232
  name: 'OpenAI Whisper',
219
- description: 'Extracts timestamps from the internal state of the Whisper recognition model (note: currently limited to a maximum of 30s audio length).',
233
+ description: 'Extracts timestamps from the internal state of the Whisper recognition model (note: currently limited to a maximum audio duration of 30 seconds).',
220
234
  type: 'local'
221
235
  }
222
236
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"Alignment.js","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Alignment.js","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export const appName = "echogarden";
1
+ export const appName = 'echogarden';
2
2
  //# sourceMappingURL=Common.js.map
@@ -1,5 +1,5 @@
1
- import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
- import { EngineMetadata } from "./Common.js";
1
+ import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
2
+ import { EngineMetadata } from './Common.js';
3
3
  export declare function denoise(input: AudioSourceParam, options: DenoisingOptions): Promise<{
4
4
  denoisedAudio: RawAudio;
5
5
  inputRawAudio: RawAudio;
@@ -8,14 +8,14 @@ export interface DenoisingResult {
8
8
  denoisedAudio: RawAudio;
9
9
  inputRawAudio: RawAudio;
10
10
  }
11
- export type DenoisingMethod = "rnnoise";
11
+ export type DenoisingMethod = 'rnnoise';
12
12
  export interface DenoisingOptions {
13
13
  method?: DenoisingMethod;
14
14
  postProcessing?: {
15
15
  normalizeAudio: boolean;
16
- targetPeakDb: number;
17
- maxIncreaseDb: number;
18
- dryMixGainDb?: number;
16
+ targetPeak: number;
17
+ maxGainIncrease: number;
18
+ dryMixGain?: number;
19
19
  };
20
20
  }
21
21
  export declare const defaultDenoisingOptions: DenoisingOptions;
@@ -1,14 +1,14 @@
1
- import { extendDeep } from "../utilities/ObjectUtilities.js";
2
- import { applyGainDecibels, ensureRawAudio, getAudioPeakDecibels, mixAudio, normalizeAudioLevel } from "../audio/AudioUtilities.js";
3
- import { Logger } from "../utilities/Logger.js";
4
- import { logToStderr } from "../utilities/Utilities.js";
5
- import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
6
- import chalk from "chalk";
1
+ import { extendDeep } from '../utilities/ObjectUtilities.js';
2
+ import { applyGainDecibels, ensureRawAudio, getSamplePeakDecibels, mixAudio, normalizeAudioLevel } from '../audio/AudioUtilities.js';
3
+ import { Logger } from '../utilities/Logger.js';
4
+ import { logToStderr } from '../utilities/Utilities.js';
5
+ import { resampleAudioSpeex } from '../dsp/SpeexResampler.js';
6
+ import chalk from 'chalk';
7
7
  const log = logToStderr;
8
8
  export async function denoise(input, options) {
9
9
  const logger = new Logger();
10
10
  const startTime = logger.getTimestamp();
11
- logger.start("Prepare for denoising");
11
+ logger.start('Prepare for denoising');
12
12
  options = extendDeep(defaultDenoisingOptions, options);
13
13
  const inputRawAudio = await ensureRawAudio(input);
14
14
  const processingSampleRate = 48000;
@@ -17,8 +17,8 @@ export async function denoise(input, options) {
17
17
  logger.start(`Initialize ${options.method} module`);
18
18
  let denoisedAudio;
19
19
  switch (options.method) {
20
- case "rnnoise": {
21
- const RNNoise = await import("../denoising/RNNoise.js");
20
+ case 'rnnoise': {
21
+ const RNNoise = await import('../denoising/RNNoise.js');
22
22
  logger.end();
23
23
  const denoisedAudioChannels = [];
24
24
  for (const audioChannel of resampledRawAudio.audioChannels) {
@@ -33,35 +33,35 @@ export async function denoise(input, options) {
33
33
  throw new Error(`Method: '${options.method}' is not supported`);
34
34
  }
35
35
  }
36
- logger.start("Postprocess audio");
36
+ logger.start('Postprocess audio');
37
37
  const shouldNormalize = options.postProcessing.normalizeAudio;
38
- const targetPeakDb = options.postProcessing.targetPeakDb;
39
- const maxIncreaseDb = options.postProcessing.maxIncreaseDb;
40
- const dryMixGainDb = options.postProcessing.dryMixGainDb;
41
- const preMixPeakDb = getAudioPeakDecibels(denoisedAudio.audioChannels);
42
- denoisedAudio = mixAudio(denoisedAudio, applyGainDecibels(resampledRawAudio, dryMixGainDb));
43
- const postMixPeakDb = getAudioPeakDecibels(denoisedAudio.audioChannels);
38
+ const targetPeakDecibels = options.postProcessing.targetPeak;
39
+ const maxGainIncreaseDecibels = options.postProcessing.maxGainIncrease;
40
+ const dryMixGainDecibels = options.postProcessing.dryMixGain;
41
+ const preMixPeakDecibels = getSamplePeakDecibels(denoisedAudio.audioChannels);
42
+ denoisedAudio = mixAudio(denoisedAudio, applyGainDecibels(resampledRawAudio, dryMixGainDecibels));
43
+ const postMixPeakDecibels = getSamplePeakDecibels(denoisedAudio.audioChannels);
44
44
  if (shouldNormalize) {
45
- denoisedAudio = normalizeAudioLevel(denoisedAudio, targetPeakDb, maxIncreaseDb);
45
+ denoisedAudio = normalizeAudioLevel(denoisedAudio, targetPeakDecibels, maxGainIncreaseDecibels);
46
46
  }
47
47
  else {
48
- denoisedAudio = applyGainDecibels(denoisedAudio, preMixPeakDb - postMixPeakDb);
48
+ denoisedAudio = applyGainDecibels(denoisedAudio, preMixPeakDecibels - postMixPeakDecibels);
49
49
  }
50
50
  logger.end();
51
51
  logger.log('');
52
- logger.logDuration("Total denoising time", startTime, chalk.magentaBright);
52
+ logger.logDuration('Total denoising time', startTime, chalk.magentaBright);
53
53
  return {
54
54
  denoisedAudio,
55
55
  inputRawAudio
56
56
  };
57
57
  }
58
58
  export const defaultDenoisingOptions = {
59
- method: "rnnoise",
59
+ method: 'rnnoise',
60
60
  postProcessing: {
61
61
  normalizeAudio: false,
62
- targetPeakDb: -3,
63
- maxIncreaseDb: 30,
64
- dryMixGainDb: -20,
62
+ targetPeak: -3,
63
+ maxGainIncrease: 30,
64
+ dryMixGain: -20,
65
65
  }
66
66
  };
67
67
  export const denoisingEngines = [
@@ -1 +1 @@
1
- {"version":3,"file":"Denoising.js","sourceRoot":"","sources":["../../src/api/Denoising.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Denoising.js","sourceRoot":"","sources":["../../src/api/Denoising.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
- import * as API from "./API.js";
3
- import { type WhisperOptions } from "../recognition/WhisperSTT.js";
1
+ import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
2
+ import * as API from './API.js';
3
+ import { WhisperModelName } from '../recognition/WhisperSTT.js';
4
+ import { WhisperCppOptions } from '../recognition/WhisperCppSTT.js';
4
5
  export declare function detectSpeechLanguage(input: AudioSourceParam, options: SpeechLanguageDetectionOptions): Promise<SpeechLanguageDetectionResult>;
5
6
  export interface SpeechLanguageDetectionResult {
6
7
  detectedLanguage: string;
@@ -9,13 +10,19 @@ export interface SpeechLanguageDetectionResult {
9
10
  inputRawAudio: RawAudio;
10
11
  }
11
12
  export declare function detectSpeechLanguageByParts(sourceRawAudio: RawAudio, getResultsForAudioPart: (audioPart: RawAudio) => Promise<LanguageDetectionResults>, audioPartDuration?: number, hopDuration?: number): Promise<API.LanguageDetectionResults>;
12
- export type SpeechLanguageDetectionEngine = "silero" | "whisper";
13
+ export type SpeechLanguageDetectionEngine = 'silero' | 'whisper' | 'whisper.cpp';
13
14
  export interface SpeechLanguageDetectionOptions {
14
15
  engine?: SpeechLanguageDetectionEngine;
15
16
  defaultLanguage?: string;
16
17
  fallbackThresholdProbability?: number;
18
+ crop?: boolean;
17
19
  silero?: {};
18
- whisper?: WhisperOptions;
20
+ whisper?: {
21
+ model?: WhisperModelName;
22
+ temperature?: number;
23
+ };
24
+ whisperCpp?: WhisperCppOptions;
25
+ vad?: API.VADOptions;
19
26
  }
20
27
  export declare const defaultSpeechLanguageDetectionOptions: SpeechLanguageDetectionOptions;
21
28
  export declare function detectTextLanguage(input: string, options: TextLanguageDetectionOptions): Promise<TextLanguageDetectionResult>;
@@ -25,22 +32,22 @@ export interface TextLanguageDetectionResult {
25
32
  detectedLanguageProbabilities: LanguageDetectionResults;
26
33
  }
27
34
  export type LanguageDetectionResults = LanguageDetectionResultsEntry[];
28
- export type LanguageDetectionResultsEntry = {
35
+ export interface LanguageDetectionResultsEntry {
29
36
  language: string;
30
37
  languageName: string;
31
38
  probability: number;
32
- };
39
+ }
33
40
  export type LanguageDetectionGroupResults = LanguageDetectionGroupResultsEntry[];
34
- export type LanguageDetectionGroupResultsEntry = {
41
+ export interface LanguageDetectionGroupResultsEntry {
35
42
  languageGroup: string;
36
43
  probability: number;
37
- };
38
- export type TextLanguageDetectionEngine = "tinyld" | "fasttext";
39
- export type TextLanguageDetectionOptions = {
44
+ }
45
+ export type TextLanguageDetectionEngine = 'tinyld' | 'fasttext';
46
+ export interface TextLanguageDetectionOptions {
40
47
  engine?: TextLanguageDetectionEngine;
41
48
  defaultLanguage?: string;
42
49
  fallbackThresholdProbability?: number;
43
- };
50
+ }
44
51
  export declare const defaultTextLanguageDetectionOptions: TextLanguageDetectionOptions;
45
52
  export declare const speechLanguageDetectionEngines: API.EngineMetadata[];
46
53
  export declare const textLanguageDetectionEngines: API.EngineMetadata[];