echogarden 2.10.2 → 3.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 (496) hide show
  1. package/LICENSE.MIT.md +7 -0
  2. package/README.md +9 -1
  3. package/data/lexicons/heteronyms.en.json +44 -10
  4. package/data/lexicons/words.en.json +726 -22
  5. package/data/schemas/options.json +91 -153
  6. package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -1
  7. package/dist/alignment/SemanticTextAlignment.d.ts +4 -2
  8. package/dist/alignment/SemanticTextAlignment.d.ts.map +1 -1
  9. package/dist/alignment/SemanticTextAlignment.js +7 -7
  10. package/dist/alignment/SemanticTextAlignment.js.map +1 -1
  11. package/dist/alignment/SpeechAlignment.d.ts +9 -10
  12. package/dist/alignment/SpeechAlignment.d.ts.map +1 -1
  13. package/dist/alignment/SpeechAlignment.js +23 -96
  14. package/dist/alignment/SpeechAlignment.js.map +1 -1
  15. package/dist/api/APIOptions.d.ts +1 -1
  16. package/dist/api/APIOptions.d.ts.map +1 -1
  17. package/dist/api/Alignment.d.ts +8 -6
  18. package/dist/api/Alignment.d.ts.map +1 -1
  19. package/dist/api/Alignment.js +31 -40
  20. package/dist/api/Alignment.js.map +1 -1
  21. package/dist/api/Common.d.ts +7 -0
  22. package/dist/api/Common.d.ts.map +1 -1
  23. package/dist/api/Common.js.map +1 -1
  24. package/dist/api/Denoising.d.ts +5 -2
  25. package/dist/api/Denoising.d.ts.map +1 -1
  26. package/dist/api/Denoising.js +15 -15
  27. package/dist/api/Denoising.js.map +1 -1
  28. package/dist/api/GlobalOptions.d.ts +2 -8
  29. package/dist/api/GlobalOptions.d.ts.map +1 -1
  30. package/dist/api/GlobalOptions.js +2 -13
  31. package/dist/api/GlobalOptions.js.map +1 -1
  32. package/dist/api/Recognition.d.ts +11 -12
  33. package/dist/api/Recognition.d.ts.map +1 -1
  34. package/dist/api/Recognition.js +32 -82
  35. package/dist/api/Recognition.js.map +1 -1
  36. package/dist/api/SourceSeparation.d.ts +7 -2
  37. package/dist/api/SourceSeparation.d.ts.map +1 -1
  38. package/dist/api/SourceSeparation.js +12 -10
  39. package/dist/api/SourceSeparation.js.map +1 -1
  40. package/dist/api/SpeechLanguageDetection.d.ts +11 -7
  41. package/dist/api/SpeechLanguageDetection.d.ts.map +1 -1
  42. package/dist/api/SpeechLanguageDetection.js +37 -30
  43. package/dist/api/SpeechLanguageDetection.js.map +1 -1
  44. package/dist/api/SpeechSearch.d.ts +4 -1
  45. package/dist/api/SpeechSearch.d.ts.map +1 -1
  46. package/dist/api/SpeechSearch.js.map +1 -1
  47. package/dist/api/SpeechTranslation.d.ts +10 -6
  48. package/dist/api/SpeechTranslation.d.ts.map +1 -1
  49. package/dist/api/SpeechTranslation.js +28 -26
  50. package/dist/api/SpeechTranslation.js.map +1 -1
  51. package/dist/api/Synthesis.d.ts +13 -8
  52. package/dist/api/Synthesis.d.ts.map +1 -1
  53. package/dist/api/Synthesis.js +67 -89
  54. package/dist/api/Synthesis.js.map +1 -1
  55. package/dist/api/TextLanguageDetection.d.ts +4 -2
  56. package/dist/api/TextLanguageDetection.d.ts.map +1 -1
  57. package/dist/api/TextLanguageDetection.js +4 -7
  58. package/dist/api/TextLanguageDetection.js.map +1 -1
  59. package/dist/api/TextTranslation.d.ts +4 -2
  60. package/dist/api/TextTranslation.d.ts.map +1 -1
  61. package/dist/api/TextTranslation.js +13 -24
  62. package/dist/api/TextTranslation.js.map +1 -1
  63. package/dist/api/TimelineTranslationAlignment.d.ts +6 -3
  64. package/dist/api/TimelineTranslationAlignment.d.ts.map +1 -1
  65. package/dist/api/TimelineTranslationAlignment.js +20 -11
  66. package/dist/api/TimelineTranslationAlignment.js.map +1 -1
  67. package/dist/api/TranscriptAndTranslationAlignment.d.ts +6 -4
  68. package/dist/api/TranscriptAndTranslationAlignment.d.ts.map +1 -1
  69. package/dist/api/TranscriptAndTranslationAlignment.js +11 -12
  70. package/dist/api/TranscriptAndTranslationAlignment.js.map +1 -1
  71. package/dist/api/TranslationAlignment.d.ts +6 -4
  72. package/dist/api/TranslationAlignment.d.ts.map +1 -1
  73. package/dist/api/TranslationAlignment.js +20 -21
  74. package/dist/api/TranslationAlignment.js.map +1 -1
  75. package/dist/api/VoiceActivityDetection.d.ts +9 -8
  76. package/dist/api/VoiceActivityDetection.d.ts.map +1 -1
  77. package/dist/api/VoiceActivityDetection.js +20 -43
  78. package/dist/api/VoiceActivityDetection.js.map +1 -1
  79. package/dist/audio/AudioBufferConversion.js.map +1 -1
  80. package/dist/audio/AudioPlayer.d.ts +1 -3
  81. package/dist/audio/AudioPlayer.d.ts.map +1 -1
  82. package/dist/audio/AudioPlayer.js +3 -188
  83. package/dist/audio/AudioPlayer.js.map +1 -1
  84. package/dist/audio/AudioUtilities.d.ts +2 -1
  85. package/dist/audio/AudioUtilities.d.ts.map +1 -1
  86. package/dist/audio/AudioUtilities.js +2 -2
  87. package/dist/audio/AudioUtilities.js.map +1 -1
  88. package/dist/build-tools/MakeTarballsForInstalledPackages.js +3 -3
  89. package/dist/build-tools/MakeTarballsForInstalledPackages.js.map +1 -1
  90. package/dist/cli/CLI.d.ts.map +1 -1
  91. package/dist/cli/CLI.js +139 -92
  92. package/dist/cli/CLI.js.map +1 -1
  93. package/dist/codecs/FFMpegTranscoder.d.ts +4 -3
  94. package/dist/codecs/FFMpegTranscoder.d.ts.map +1 -1
  95. package/dist/codecs/FFMpegTranscoder.js +16 -14
  96. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  97. package/dist/codecs/TIMITCodec.d.ts.map +1 -1
  98. package/dist/data-structures/DynamicTypedArray.d.ts.map +1 -1
  99. package/dist/data-structures/DynamicTypedArray.js.map +1 -1
  100. package/dist/data-structures/Queue.d.ts.map +1 -1
  101. package/dist/data-structures/WindowedList.d.ts.map +1 -1
  102. package/dist/data-structures/WindowedList.js.map +1 -1
  103. package/dist/denoising/NSNet2.d.ts +3 -2
  104. package/dist/denoising/NSNet2.d.ts.map +1 -1
  105. package/dist/denoising/NSNet2.js +4 -4
  106. package/dist/denoising/NSNet2.js.map +1 -1
  107. package/dist/denoising/RNNoise.d.ts +2 -1
  108. package/dist/denoising/RNNoise.d.ts.map +1 -1
  109. package/dist/denoising/RNNoise.js +10 -6
  110. package/dist/denoising/RNNoise.js.map +1 -1
  111. package/dist/dsp/BiquadFilter.d.ts.map +1 -1
  112. package/dist/dsp/DecayingPeakEstimator.d.ts.map +1 -1
  113. package/dist/dsp/DecayingPeakEstimator.js.map +1 -1
  114. package/dist/dsp/FFT.d.ts.map +1 -1
  115. package/dist/dsp/FFT.js +2 -1
  116. package/dist/dsp/FFT.js.map +1 -1
  117. package/dist/dsp/KWeightingFilter.d.ts.map +1 -1
  118. package/dist/dsp/KWeightingFilter.js.map +1 -1
  119. package/dist/dsp/LoudnessEstimator.d.ts.map +1 -1
  120. package/dist/dsp/LoudnessEstimator.js.map +1 -1
  121. package/dist/dsp/MFCC.d.ts +3 -2
  122. package/dist/dsp/MFCC.d.ts.map +1 -1
  123. package/dist/dsp/MFCC.js +4 -4
  124. package/dist/dsp/MFCC.js.map +1 -1
  125. package/dist/dsp/MelSpectrogram.d.ts +10 -8
  126. package/dist/dsp/MelSpectrogram.d.ts.map +1 -1
  127. package/dist/dsp/MelSpectrogram.js +31 -34
  128. package/dist/dsp/MelSpectrogram.js.map +1 -1
  129. package/dist/dsp/Rubberband.d.ts.map +1 -1
  130. package/dist/dsp/Rubberband.js +8 -3
  131. package/dist/dsp/Rubberband.js.map +1 -1
  132. package/dist/dsp/Sonic.d.ts.map +1 -1
  133. package/dist/dsp/Sonic.js +1 -1
  134. package/dist/dsp/Sonic.js.map +1 -1
  135. package/dist/dsp/SpeexResampler.d.ts.map +1 -1
  136. package/dist/dsp/SpeexResampler.js +1 -1
  137. package/dist/dsp/SpeexResampler.js.map +1 -1
  138. package/dist/encodings/Ascii.d.ts +1 -1
  139. package/dist/encodings/Ascii.d.ts.map +1 -1
  140. package/dist/encodings/Base64.js.map +1 -1
  141. package/dist/encodings/Utf16.d.ts.map +1 -1
  142. package/dist/encodings/Utf8.d.ts.map +1 -1
  143. package/dist/math/VectorMath.d.ts +1 -0
  144. package/dist/math/VectorMath.d.ts.map +1 -1
  145. package/dist/math/VectorMath.js +9 -5
  146. package/dist/math/VectorMath.js.map +1 -1
  147. package/dist/nlp/ChineseSegmentation.d.ts +1 -1
  148. package/dist/nlp/ChineseSegmentation.d.ts.map +1 -1
  149. package/dist/nlp/EspeakPhonemizer.d.ts +1 -1
  150. package/dist/nlp/EspeakPhonemizer.d.ts.map +1 -1
  151. package/dist/nlp/EspeakPhonemizer.js +2 -2
  152. package/dist/nlp/EspeakPhonemizer.js.map +1 -1
  153. package/dist/nlp/IPA.d.ts +2 -2
  154. package/dist/nlp/Segmentation.d.ts +1 -1
  155. package/dist/nlp/Segmentation.d.ts.map +1 -1
  156. package/dist/nlp/Segmentation.js +8 -4
  157. package/dist/nlp/Segmentation.js.map +1 -1
  158. package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -1
  159. package/dist/recognition/AmazonTranscribeSTT.d.ts.map +1 -1
  160. package/dist/recognition/AmazonTranscribeSTT.js +3 -3
  161. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  162. package/dist/recognition/AzureCognitiveServicesSTT.d.ts +2 -1
  163. package/dist/recognition/AzureCognitiveServicesSTT.d.ts.map +1 -1
  164. package/dist/recognition/AzureCognitiveServicesSTT.js +4 -4
  165. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
  166. package/dist/recognition/DeepgramSTT.d.ts +2 -1
  167. package/dist/recognition/DeepgramSTT.d.ts.map +1 -1
  168. package/dist/recognition/DeepgramSTT.js +12 -13
  169. package/dist/recognition/DeepgramSTT.js.map +1 -1
  170. package/dist/recognition/GoogleCloudSTT.d.ts +2 -1
  171. package/dist/recognition/GoogleCloudSTT.d.ts.map +1 -1
  172. package/dist/recognition/GoogleCloudSTT.js +11 -10
  173. package/dist/recognition/GoogleCloudSTT.js.map +1 -1
  174. package/dist/recognition/OpenAICloudSTT.d.ts +2 -1
  175. package/dist/recognition/OpenAICloudSTT.d.ts.map +1 -1
  176. package/dist/recognition/OpenAICloudSTT.js +6 -6
  177. package/dist/recognition/OpenAICloudSTT.js.map +1 -1
  178. package/dist/recognition/WhisperCommon.d.ts +9 -0
  179. package/dist/recognition/WhisperCommon.d.ts.map +1 -0
  180. package/dist/recognition/WhisperCommon.js +52 -0
  181. package/dist/recognition/WhisperCommon.js.map +1 -0
  182. package/dist/recognition/{WhisperCppSTT.d.ts → WhisperCppCliSTT.d.ts} +14 -16
  183. package/dist/recognition/WhisperCppCliSTT.d.ts.map +1 -0
  184. package/dist/recognition/{WhisperCppSTT.js → WhisperCppCliSTT.js} +55 -84
  185. package/dist/recognition/WhisperCppCliSTT.js.map +1 -0
  186. package/dist/recognition/WhisperSTT.d.ts +72 -85
  187. package/dist/recognition/WhisperSTT.d.ts.map +1 -1
  188. package/dist/recognition/WhisperSTT.js +384 -519
  189. package/dist/recognition/WhisperSTT.js.map +1 -1
  190. package/dist/server/Client.d.ts +2 -2
  191. package/dist/server/Client.d.ts.map +1 -1
  192. package/dist/server/Client.js.map +1 -1
  193. package/dist/server/Worker.d.ts +6 -7
  194. package/dist/server/Worker.d.ts.map +1 -1
  195. package/dist/server/Worker.js +42 -44
  196. package/dist/server/Worker.js.map +1 -1
  197. package/dist/source-separation/MDXNetSourceSeparation.d.ts +3 -2
  198. package/dist/source-separation/MDXNetSourceSeparation.d.ts.map +1 -1
  199. package/dist/source-separation/MDXNetSourceSeparation.js +10 -8
  200. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
  201. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts +3 -2
  202. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts.map +1 -1
  203. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js +5 -5
  204. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js.map +1 -1
  205. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +5 -3
  206. package/dist/speech-language-detection/SileroLanguageDetection.d.ts.map +1 -1
  207. package/dist/speech-language-detection/SileroLanguageDetection.js +8 -8
  208. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -1
  209. package/dist/speech-search/DTWSpeechSearch.d.ts +2 -1
  210. package/dist/speech-search/DTWSpeechSearch.d.ts.map +1 -1
  211. package/dist/speech-search/DTWSpeechSearch.js +4 -4
  212. package/dist/speech-search/DTWSpeechSearch.js.map +1 -1
  213. package/dist/subtitles/Subtitles.d.ts +13 -1
  214. package/dist/subtitles/Subtitles.d.ts.map +1 -1
  215. package/dist/subtitles/Subtitles.js +22 -22
  216. package/dist/subtitles/Subtitles.js.map +1 -1
  217. package/dist/synthesis/AwsPollyTTS.d.ts +3 -2
  218. package/dist/synthesis/AwsPollyTTS.d.ts.map +1 -1
  219. package/dist/synthesis/AwsPollyTTS.js +5 -5
  220. package/dist/synthesis/AwsPollyTTS.js.map +1 -1
  221. package/dist/synthesis/AzureCognitiveServicesTTS.d.ts +2 -1
  222. package/dist/synthesis/AzureCognitiveServicesTTS.d.ts.map +1 -1
  223. package/dist/synthesis/AzureCognitiveServicesTTS.js +3 -3
  224. package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -1
  225. package/dist/synthesis/CoquiServerTTS.d.ts +2 -1
  226. package/dist/synthesis/CoquiServerTTS.d.ts.map +1 -1
  227. package/dist/synthesis/CoquiServerTTS.js +7 -8
  228. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  229. package/dist/synthesis/DeepgramTTS.d.ts +2 -2
  230. package/dist/synthesis/DeepgramTTS.d.ts.map +1 -1
  231. package/dist/synthesis/DeepgramTTS.js +13 -13
  232. package/dist/synthesis/DeepgramTTS.js.map +1 -1
  233. package/dist/synthesis/ElevenLabsTTS.d.ts +3 -3
  234. package/dist/synthesis/ElevenLabsTTS.d.ts.map +1 -1
  235. package/dist/synthesis/ElevenLabsTTS.js +22 -21
  236. package/dist/synthesis/ElevenLabsTTS.js.map +1 -1
  237. package/dist/synthesis/EspeakTTS.d.ts +11 -9
  238. package/dist/synthesis/EspeakTTS.d.ts.map +1 -1
  239. package/dist/synthesis/EspeakTTS.js +118 -68
  240. package/dist/synthesis/EspeakTTS.js.map +1 -1
  241. package/dist/synthesis/FliteTTS.d.ts +2 -2
  242. package/dist/synthesis/FliteTTS.d.ts.map +1 -1
  243. package/dist/synthesis/FliteTTS.js +2 -2
  244. package/dist/synthesis/FliteTTS.js.map +1 -1
  245. package/dist/synthesis/GnuSpeechTTS.d.ts +2 -2
  246. package/dist/synthesis/GnuSpeechTTS.d.ts.map +1 -1
  247. package/dist/synthesis/GnuSpeechTTS.js +1 -1
  248. package/dist/synthesis/GnuSpeechTTS.js.map +1 -1
  249. package/dist/synthesis/GoogleCloudTTS.d.ts +3 -2
  250. package/dist/synthesis/GoogleCloudTTS.d.ts.map +1 -1
  251. package/dist/synthesis/GoogleCloudTTS.js +15 -14
  252. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  253. package/dist/synthesis/GoogleTranslateTTS.d.ts +3 -2
  254. package/dist/synthesis/GoogleTranslateTTS.d.ts.map +1 -1
  255. package/dist/synthesis/GoogleTranslateTTS.js +11 -11
  256. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  257. package/dist/synthesis/KokoroTTS.d.ts +4 -4
  258. package/dist/synthesis/KokoroTTS.d.ts.map +1 -1
  259. package/dist/synthesis/KokoroTTS.js +11 -10
  260. package/dist/synthesis/KokoroTTS.js.map +1 -1
  261. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +4 -3
  262. package/dist/synthesis/MicrosoftEdgeTTS.d.ts.map +1 -1
  263. package/dist/synthesis/MicrosoftEdgeTTS.js +41 -20
  264. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
  265. package/dist/synthesis/OpenAICloudTTS.d.ts +2 -2
  266. package/dist/synthesis/OpenAICloudTTS.d.ts.map +1 -1
  267. package/dist/synthesis/OpenAICloudTTS.js +6 -5
  268. package/dist/synthesis/OpenAICloudTTS.js.map +1 -1
  269. package/dist/synthesis/SamTTS.d.ts +2 -1
  270. package/dist/synthesis/SamTTS.d.ts.map +1 -1
  271. package/dist/synthesis/SamTTS.js +2 -2
  272. package/dist/synthesis/SamTTS.js.map +1 -1
  273. package/dist/synthesis/SapiTTS.d.ts +2 -2
  274. package/dist/synthesis/SapiTTS.d.ts.map +1 -1
  275. package/dist/synthesis/SapiTTS.js +2 -2
  276. package/dist/synthesis/SapiTTS.js.map +1 -1
  277. package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
  278. package/dist/synthesis/SvoxPicoTTS.d.ts.map +1 -1
  279. package/dist/synthesis/SvoxPicoTTS.js +3 -3
  280. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  281. package/dist/synthesis/VitsTTS.d.ts +3 -3
  282. package/dist/synthesis/VitsTTS.d.ts.map +1 -1
  283. package/dist/synthesis/VitsTTS.js +14 -11
  284. package/dist/synthesis/VitsTTS.js.map +1 -1
  285. package/dist/text-translation/DeepLTextTranslation.d.ts +2 -2
  286. package/dist/text-translation/DeepLTextTranslation.d.ts.map +1 -1
  287. package/dist/text-translation/DeepLTextTranslation.js +10 -9
  288. package/dist/text-translation/DeepLTextTranslation.js.map +1 -1
  289. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts +4 -4
  290. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts.map +1 -1
  291. package/dist/text-translation/GoogleTranslateTextTranslation.js +20 -18
  292. package/dist/text-translation/GoogleTranslateTextTranslation.js.map +1 -1
  293. package/dist/text-translation/NLLBTextTranslation.d.ts +2 -2
  294. package/dist/text-translation/NLLBTextTranslation.d.ts.map +1 -1
  295. package/dist/text-translation/NLLBTextTranslation.js +4 -6
  296. package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
  297. package/dist/typings/TypedArray.d.ts.map +1 -1
  298. package/dist/utilities/Compression.d.ts +4 -3
  299. package/dist/utilities/Compression.d.ts.map +1 -1
  300. package/dist/utilities/Compression.js +9 -9
  301. package/dist/utilities/Compression.js.map +1 -1
  302. package/dist/utilities/FileDownloader.d.ts +6 -3
  303. package/dist/utilities/FileDownloader.d.ts.map +1 -1
  304. package/dist/utilities/FileDownloader.js +25 -21
  305. package/dist/utilities/FileDownloader.js.map +1 -1
  306. package/dist/utilities/FileReader.d.ts.map +1 -1
  307. package/dist/utilities/FileReader.js.map +1 -1
  308. package/dist/utilities/FileSystem.js +1 -1
  309. package/dist/utilities/FileSystem.js.map +1 -1
  310. package/dist/utilities/FileWriter.d.ts.map +1 -1
  311. package/dist/utilities/FileWriter.js.map +1 -1
  312. package/dist/utilities/Hashing.d.ts.map +1 -1
  313. package/dist/utilities/Hashing.js.map +1 -1
  314. package/dist/utilities/Locale.js.map +1 -1
  315. package/dist/utilities/Logger.d.ts +17 -9
  316. package/dist/utilities/Logger.d.ts.map +1 -1
  317. package/dist/utilities/Logger.js +50 -35
  318. package/dist/utilities/Logger.js.map +1 -1
  319. package/dist/utilities/NpmUtilities.d.ts.map +1 -1
  320. package/dist/utilities/NpmUtilities.js +4 -5
  321. package/dist/utilities/NpmUtilities.js.map +1 -1
  322. package/dist/utilities/ObjectUtilities.js.map +1 -1
  323. package/dist/utilities/OpenPromise.d.ts.map +1 -1
  324. package/dist/utilities/OpenPromise.js.map +1 -1
  325. package/dist/utilities/PackageManager.d.ts +4 -1
  326. package/dist/utilities/PackageManager.d.ts.map +1 -1
  327. package/dist/utilities/PackageManager.js +37 -22
  328. package/dist/utilities/PackageManager.js.map +1 -1
  329. package/dist/utilities/PathUtilities.d.ts +2 -0
  330. package/dist/utilities/PathUtilities.d.ts.map +1 -1
  331. package/dist/utilities/PathUtilities.js +5 -2
  332. package/dist/utilities/PathUtilities.js.map +1 -1
  333. package/dist/utilities/RandomGenerator.d.ts.map +1 -1
  334. package/dist/utilities/SignalChannel.d.ts.map +1 -1
  335. package/dist/utilities/SmoothEstimator.d.ts.map +1 -1
  336. package/dist/utilities/SmoothEstimator.js.map +1 -1
  337. package/dist/utilities/StringBuilder.d.ts.map +1 -1
  338. package/dist/utilities/TarballMaker.d.ts +4 -3
  339. package/dist/utilities/TarballMaker.d.ts.map +1 -1
  340. package/dist/utilities/TarballMaker.js +6 -6
  341. package/dist/utilities/TarballMaker.js.map +1 -1
  342. package/dist/utilities/Timeline.js.map +1 -1
  343. package/dist/utilities/Timer.d.ts.map +1 -1
  344. package/dist/utilities/Utilities.d.ts +9 -7
  345. package/dist/utilities/Utilities.d.ts.map +1 -1
  346. package/dist/utilities/Utilities.js +49 -33
  347. package/dist/utilities/Utilities.js.map +1 -1
  348. package/dist/utilities/VirtualFileReadStream.d.ts.map +1 -1
  349. package/dist/utilities/WebReader.d.ts +2 -1
  350. package/dist/utilities/WebReader.d.ts.map +1 -1
  351. package/dist/utilities/WebReader.js +7 -6
  352. package/dist/utilities/WebReader.js.map +1 -1
  353. package/dist/utilities/WikipediaReader.d.ts +2 -1
  354. package/dist/utilities/WikipediaReader.d.ts.map +1 -1
  355. package/dist/utilities/WikipediaReader.js +1 -5
  356. package/dist/utilities/WikipediaReader.js.map +1 -1
  357. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +2 -1
  358. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts.map +1 -1
  359. package/dist/voice-activity-detection/AdaptiveGateVAD.js +1 -1
  360. package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -1
  361. package/dist/voice-activity-detection/SileroVAD.d.ts.map +1 -1
  362. package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
  363. package/dist/voice-activity-detection/WebRtcVAD.d.ts.map +1 -1
  364. package/dist/voice-activity-detection/WebRtcVAD.js +1 -1
  365. package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -1
  366. package/docs/API.md +62 -17
  367. package/docs/CUDA.md +4 -3
  368. package/docs/Engines.md +8 -7
  369. package/docs/Licenses.md +0 -3
  370. package/docs/Options.md +27 -31
  371. package/docs/Server.md +1 -0
  372. package/docs/Tasklist.md +2 -1
  373. package/docs/Technical.md +2 -2
  374. package/package.json +45 -35
  375. package/src/alignment/SemanticTextAlignment.ts +14 -7
  376. package/src/alignment/SpeechAlignment.ts +47 -150
  377. package/src/api/APIOptions.ts +1 -1
  378. package/src/api/Alignment.ts +95 -61
  379. package/src/api/Common.ts +11 -0
  380. package/src/api/Denoising.ts +22 -17
  381. package/src/api/GlobalOptions.ts +4 -20
  382. package/src/api/Recognition.ts +106 -123
  383. package/src/api/SourceSeparation.ts +39 -21
  384. package/src/api/SpeechLanguageDetection.ts +77 -37
  385. package/src/api/SpeechSearch.ts +6 -1
  386. package/src/api/SpeechTranslation.ts +75 -38
  387. package/src/api/Synthesis.ts +220 -116
  388. package/src/api/TextLanguageDetection.ts +10 -12
  389. package/src/api/TextTranslation.ts +43 -26
  390. package/src/api/TimelineTranslationAlignment.ts +41 -13
  391. package/src/api/TranscriptAndTranslationAlignment.ts +28 -15
  392. package/src/api/TranslationAlignment.ts +53 -24
  393. package/src/api/VoiceActivityDetection.ts +33 -68
  394. package/src/audio/AudioPlayer.ts +4 -232
  395. package/src/audio/AudioUtilities.ts +9 -2
  396. package/src/build-tools/MakeTarballsForInstalledPackages.ts +4 -3
  397. package/src/cli/CLI.ts +209 -101
  398. package/src/codecs/FFMpegTranscoder.ts +18 -16
  399. package/src/denoising/NSNet2.ts +5 -4
  400. package/src/denoising/RNNoise.ts +14 -6
  401. package/src/dsp/FFT.ts +2 -1
  402. package/src/dsp/MFCC.ts +7 -5
  403. package/src/dsp/MelSpectrogram.ts +56 -36
  404. package/src/dsp/Rubberband.ts +10 -3
  405. package/src/dsp/Sonic.ts +2 -1
  406. package/src/dsp/SpeexResampler.ts +2 -1
  407. package/src/encodings/Ascii.ts +1 -1
  408. package/src/encodings/Base64.ts +1 -1
  409. package/src/math/VectorMath.ts +10 -6
  410. package/src/nlp/EspeakPhonemizer.ts +2 -2
  411. package/src/nlp/Segmentation.ts +9 -4
  412. package/src/recognition/AmazonTranscribeSTT.ts +4 -3
  413. package/src/recognition/AzureCognitiveServicesSTT.ts +5 -4
  414. package/src/recognition/DeepgramSTT.ts +16 -16
  415. package/src/recognition/GoogleCloudSTT.ts +14 -12
  416. package/src/recognition/OpenAICloudSTT.ts +12 -6
  417. package/src/recognition/WhisperCommon.ts +130 -0
  418. package/src/recognition/{WhisperCppSTT.ts → WhisperCppCliSTT.ts} +73 -133
  419. package/src/recognition/WhisperSTT.ts +569 -718
  420. package/src/server/Client.ts +4 -4
  421. package/src/server/Worker.ts +59 -59
  422. package/src/source-separation/MDXNetSourceSeparation.ts +15 -10
  423. package/src/speech-embeddings/WavToVec2BertFeatureEmbeddings.ts +7 -5
  424. package/src/speech-language-detection/SileroLanguageDetection.ts +18 -9
  425. package/src/speech-search/DTWSpeechSearch.ts +6 -5
  426. package/src/subtitles/Subtitles.ts +22 -22
  427. package/src/synthesis/AwsPollyTTS.ts +12 -5
  428. package/src/synthesis/AzureCognitiveServicesTTS.ts +11 -3
  429. package/src/synthesis/CoquiServerTTS.ts +8 -7
  430. package/src/synthesis/DeepgramTTS.ts +21 -15
  431. package/src/synthesis/ElevenLabsTTS.ts +33 -23
  432. package/src/synthesis/EspeakTTS.ts +145 -69
  433. package/src/synthesis/FliteTTS.ts +3 -3
  434. package/src/synthesis/GnuSpeechTTS.ts +2 -2
  435. package/src/synthesis/GoogleCloudTTS.ts +23 -14
  436. package/src/synthesis/GoogleTranslateTTS.ts +19 -11
  437. package/src/synthesis/KokoroTTS.ts +37 -14
  438. package/src/synthesis/MicrosoftEdgeTTS.ts +71 -23
  439. package/src/synthesis/OpenAICloudTTS.ts +7 -6
  440. package/src/synthesis/SamTTS.ts +3 -2
  441. package/src/synthesis/SapiTTS.ts +3 -3
  442. package/src/synthesis/SvoxPicoTTS.ts +4 -5
  443. package/src/synthesis/VitsTTS.ts +43 -15
  444. package/src/text-translation/DeepLTextTranslation.ts +12 -10
  445. package/src/text-translation/GoogleTranslateTextTranslation.ts +35 -21
  446. package/src/text-translation/NLLBTextTranslation.ts +5 -9
  447. package/src/typings/Fillers.d.ts +0 -60
  448. package/src/typings/TypedArray.ts +12 -1
  449. package/src/utilities/Compression.ts +10 -9
  450. package/src/utilities/FileDownloader.ts +38 -23
  451. package/src/utilities/FileSystem.ts +1 -1
  452. package/src/utilities/Logger.ts +59 -42
  453. package/src/utilities/NpmUtilities.ts +4 -6
  454. package/src/utilities/OpenPromise.ts +1 -2
  455. package/src/utilities/PackageManager.ts +53 -26
  456. package/src/utilities/PathUtilities.ts +6 -2
  457. package/src/utilities/TarballMaker.ts +7 -7
  458. package/src/utilities/Utilities.ts +58 -41
  459. package/src/utilities/WebReader.ts +11 -6
  460. package/src/utilities/WikipediaReader.ts +2 -8
  461. package/src/voice-activity-detection/AdaptiveGateVAD.ts +13 -8
  462. package/src/voice-activity-detection/WebRtcVAD.ts +1 -2
  463. package/tsconfig.json +53 -54
  464. package/dist/audio/AudioRecorder.d.ts +0 -4
  465. package/dist/audio/AudioRecorder.d.ts.map +0 -1
  466. package/dist/audio/AudioRecorder.js +0 -68
  467. package/dist/audio/AudioRecorder.js.map +0 -1
  468. package/dist/audio/SoxPath.d.ts +0 -2
  469. package/dist/audio/SoxPath.d.ts.map +0 -1
  470. package/dist/audio/SoxPath.js +0 -24
  471. package/dist/audio/SoxPath.js.map +0 -1
  472. package/dist/recognition/SileroSTT.d.ts +0 -30
  473. package/dist/recognition/SileroSTT.d.ts.map +0 -1
  474. package/dist/recognition/SileroSTT.js +0 -152
  475. package/dist/recognition/SileroSTT.js.map +0 -1
  476. package/dist/recognition/VoskSTT.d.ts +0 -11
  477. package/dist/recognition/VoskSTT.d.ts.map +0 -1
  478. package/dist/recognition/VoskSTT.js +0 -72
  479. package/dist/recognition/VoskSTT.js.map +0 -1
  480. package/dist/recognition/WhisperCppSTT.d.ts.map +0 -1
  481. package/dist/recognition/WhisperCppSTT.js.map +0 -1
  482. package/dist/synthesis/StreamlabsPollyTTS.d.ts +0 -12
  483. package/dist/synthesis/StreamlabsPollyTTS.d.ts.map +0 -1
  484. package/dist/synthesis/StreamlabsPollyTTS.js +0 -88
  485. package/dist/synthesis/StreamlabsPollyTTS.js.map +0 -1
  486. package/dist/utilities/BinaryUtilities.d.ts +0 -14
  487. package/dist/utilities/BinaryUtilities.d.ts.map +0 -1
  488. package/dist/utilities/BinaryUtilities.js +0 -113
  489. package/dist/utilities/BinaryUtilities.js.map +0 -1
  490. package/src/audio/AudioRecorder.ts +0 -91
  491. package/src/audio/SoxPath.ts +0 -31
  492. package/src/recognition/SileroSTT.ts +0 -222
  493. package/src/recognition/VoskSTT.ts +0 -112
  494. package/src/synthesis/StreamlabsPollyTTS.ts +0 -114
  495. package/src/utilities/BinaryUtilities.ts +0 -138
  496. /package/{LICENSE.md → LICENSE.GPLv3.md} +0 -0
@@ -1,38 +1,40 @@
1
+ import chalk from 'chalk';
2
+ import * as API from './API.js';
1
3
  import { attenuateIfClippingInPlace, ensureRawAudio, subtractAudio } from '../audio/AudioUtilities.js';
2
4
  import { Logger } from '../utilities/Logger.js';
3
5
  import { extendDeep } from '../utilities/ObjectUtilities.js';
4
6
  import { loadPackage } from '../utilities/PackageManager.js';
5
- import chalk from 'chalk';
6
7
  import { readdir } from '../utilities/FileSystem.js';
7
8
  import { defaultMDXNetOptions, getProfileForMDXNetModelName } from '../source-separation/MDXNetSourceSeparation.js';
8
9
  import { joinPath } from '../utilities/PathUtilities.js';
9
- export async function isolate(input, options) {
10
- const logger = new Logger();
10
+ export async function isolate(input, options, callbacks) {
11
+ options = extendDeep(defaultSourceSeparationOptions, options);
12
+ callbacks = { logLevel: API.getGlobalLogLevel(), ...callbacks };
13
+ const logger = new Logger(callbacks.logLevel);
11
14
  const startTimestamp = logger.getTimestamp();
12
- const inputRawAudio = await ensureRawAudio(input);
15
+ const inputRawAudio = await ensureRawAudio(input, undefined, undefined, callbacks);
13
16
  let isolatedRawAudio;
14
17
  let backgroundRawAudio;
15
- options = extendDeep(defaultSourceSeparationOptions, options);
16
18
  switch (options.engine) {
17
19
  case 'mdx-net': {
18
20
  const MDXNetSourceSeparation = await import('../source-separation/MDXNetSourceSeparation.js');
19
21
  const mdxNetOptions = options.mdxNet;
20
- const packageDir = await loadPackage(`mdxnet-${mdxNetOptions.model}`);
22
+ const packageDir = await loadPackage(`mdxnet-${mdxNetOptions.model}`, callbacks);
21
23
  const modelFilename = (await readdir(packageDir)).filter(name => name.endsWith('onnx'))[0];
22
24
  if (!modelFilename) {
23
25
  throw new Error(`Couldn't find an ONNX model file in package directory`);
24
26
  }
25
27
  const modelPath = joinPath(packageDir, modelFilename);
26
28
  await logger.startAsync(`Convert audio to 44.1 kHz stereo`);
27
- let inputRawAudioAs44100Stereo = await ensureRawAudio(inputRawAudio, 44100, 2);
29
+ let inputRawAudioAs44100Stereo = await ensureRawAudio(inputRawAudio, 44100, 2, callbacks);
28
30
  logger.end();
29
31
  const modelProfile = getProfileForMDXNetModelName(mdxNetOptions.model);
30
- isolatedRawAudio = await MDXNetSourceSeparation.isolate(inputRawAudioAs44100Stereo, modelPath, modelProfile, mdxNetOptions);
32
+ isolatedRawAudio = await MDXNetSourceSeparation.isolate(inputRawAudioAs44100Stereo, modelPath, modelProfile, mdxNetOptions, callbacks);
31
33
  logger.end();
32
34
  // Release memory for the converted input audio since it's not needed anymore
33
35
  inputRawAudioAs44100Stereo = undefined;
34
36
  await logger.startAsync(`Convert isolated audio back to original sample rate (${inputRawAudio.sampleRate} Hz) and channel count (${inputRawAudio.audioChannels.length})`);
35
- isolatedRawAudio = await ensureRawAudio(isolatedRawAudio, inputRawAudio.sampleRate, inputRawAudio.audioChannels.length);
37
+ isolatedRawAudio = await ensureRawAudio(isolatedRawAudio, inputRawAudio.sampleRate, inputRawAudio.audioChannels.length, callbacks);
36
38
  await logger.startAsync(`Subtract from original waveform to extract background audio`);
37
39
  backgroundRawAudio = subtractAudio(inputRawAudio, isolatedRawAudio);
38
40
  break;
@@ -45,7 +47,7 @@ export async function isolate(input, options) {
45
47
  attenuateIfClippingInPlace(isolatedRawAudio);
46
48
  attenuateIfClippingInPlace(backgroundRawAudio);
47
49
  logger.end();
48
- logger.logDuration(`Total source separation time`, startTimestamp, chalk.magentaBright);
50
+ logger.logDuration(`Total source separation time`, startTimestamp, 'info', chalk.magentaBright);
49
51
  return {
50
52
  inputRawAudio,
51
53
  isolatedRawAudio,
@@ -1 +1 @@
1
- {"version":3,"file":"SourceSeparation.js","sourceRoot":"","sources":["../../src/api/SourceSeparation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceSeparation.js","sourceRoot":"","sources":["../../src/api/SourceSeparation.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,32 @@
1
- import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
2
1
  import * as API from './API.js';
2
+ import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
3
3
  import { type WhisperLanguageDetectionOptions } from '../recognition/WhisperSTT.js';
4
- import { type WhisperCppOptions } from '../recognition/WhisperCppSTT.js';
4
+ import { type WhisperCppCliOptions } from '../recognition/WhisperCppCliSTT.js';
5
5
  import { type SileroLanguageDetectionOptions } from '../speech-language-detection/SileroLanguageDetection.js';
6
6
  import { LanguageDetectionResults } from './LanguageDetectionCommon.js';
7
- export declare function detectSpeechLanguage(input: AudioSourceParam, options: SpeechLanguageDetectionOptions): Promise<SpeechLanguageDetectionResult>;
7
+ export declare function detectSpeechLanguage(input: AudioSourceParam, options: SpeechLanguageDetectionOptions, callbacks?: SpeechLanguageDetectionCallbacks): Promise<SpeechLanguageDetectionResult>;
8
8
  export interface SpeechLanguageDetectionResult {
9
9
  detectedLanguage: string;
10
10
  detectedLanguageName: string;
11
11
  detectedLanguageProbabilities: LanguageDetectionResults;
12
12
  inputRawAudio: RawAudio;
13
13
  }
14
- export declare function detectSpeechLanguageByParts(sourceRawAudio: RawAudio, getResultsForAudioPart: (audioPart: RawAudio) => Promise<LanguageDetectionResults>, audioPartDuration?: number, hopDuration?: number): Promise<API.LanguageDetectionResults>;
14
+ export declare function detectSpeechLanguageByParts(sourceRawAudio: RawAudio, getResultsForAudioPart: (audioPart: RawAudio) => Promise<LanguageDetectionResults>, maxAudioPartDuration?: number, hopDuration?: number, callbacks?: SpeechLanguageDetectionCallbacks): Promise<LanguageDetectionResults>;
15
15
  export type SpeechLanguageDetectionEngine = 'silero' | 'whisper' | 'whisper.cpp';
16
- export interface SpeechLanguageDetectionOptions {
16
+ export interface SpeechLanguageDetectionOptions extends API.OperationOptions {
17
17
  engine?: SpeechLanguageDetectionEngine;
18
18
  defaultLanguage?: string;
19
19
  fallbackThresholdProbability?: number;
20
20
  crop?: boolean;
21
21
  silero?: SileroLanguageDetectionOptions;
22
22
  whisper?: WhisperLanguageDetectionOptions;
23
- whisperCpp?: WhisperCppOptions;
24
- vad?: API.VADOptions;
23
+ whisperCpp?: WhisperCppCliOptions;
24
+ vad?: API.VoiceActivityDetectionOptions;
25
25
  }
26
26
  export declare const defaultSpeechLanguageDetectionOptions: SpeechLanguageDetectionOptions;
27
+ export interface SpeechLanguageDetectionCallbacks extends API.OperationCallbacks {
28
+ onPart?: SpeechLanguageDetectionPartCallback;
29
+ }
30
+ export type SpeechLanguageDetectionPartCallback = (partResults: LanguageDetectionResults, partStartTime: number, partEndTime: number) => Promise<void>;
27
31
  export declare const speechLanguageDetectionEngines: API.EngineMetadata[];
28
32
  //# sourceMappingURL=SpeechLanguageDetection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechLanguageDetection.d.ts","sourceRoot":"","sources":["../../src/api/SpeechLanguageDetection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsG,MAAM,4BAA4B,CAAA;AAG3K,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAInF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,yDAAyD,CAAA;AAE7G,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAKvE,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAkHnJ;AAED,MAAM,WAAW,6BAA6B;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,6BAA6B,EAAE,wBAAwB,CAAA;IACvD,aAAa,EAAE,QAAQ,CAAA;CACvB;AAED,wBAAsB,2BAA2B,CAAC,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,OAAO,CAAC,wBAAwB,CAAC,EAAE,iBAAiB,SAAK,EAAE,WAAW,SAAK,yCAoDvM;AAED,MAAM,MAAM,6BAA6B,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAA;AAEhF,MAAM,WAAW,8BAA8B;IAC9C,MAAM,CAAC,EAAE,6BAA6B,CAAA;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,MAAM,CAAC,EAAE,8BAA8B,CAAA;IAEvC,OAAO,CAAC,EAAE,+BAA+B,CAAA;IAEzC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAE9B,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAA;CACpB;AAED,eAAO,MAAM,qCAAqC,EAAE,8BAsBnD,CAAA;AAED,eAAO,MAAM,8BAA8B,EAAE,GAAG,CAAC,cAAc,EAmB9D,CAAA"}
1
+ {"version":3,"file":"SpeechLanguageDetection.d.ts","sourceRoot":"","sources":["../../src/api/SpeechLanguageDetection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAI/B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsG,MAAM,4BAA4B,CAAA;AAG3K,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAGnF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAC9E,OAAO,EAAE,KAAK,8BAA8B,EAAE,MAAM,yDAAyD,CAAA;AAE7G,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAGvE,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,8BAA8B,EAAE,SAAS,CAAC,EAAE,gCAAgC,GAAG,OAAO,CAAC,6BAA6B,CAAC,CA+IjM;AAED,MAAM,WAAW,6BAA6B;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,6BAA6B,EAAE,wBAAwB,CAAA;IACvD,aAAa,EAAE,QAAQ,CAAA;CACvB;AAED,wBAAsB,2BAA2B,CAAC,cAAc,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,SAAS,EAAE,QAAQ,KAAK,OAAO,CAAC,wBAAwB,CAAC,EAAE,oBAAoB,SAAK,EAAE,WAAW,SAAK,EAAE,SAAS,CAAC,EAAE,gCAAgC,qCA2DxP;AAED,MAAM,MAAM,6BAA6B,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAA;AAEhF,MAAM,WAAW,8BAA+B,SAAQ,GAAG,CAAC,gBAAgB;IAC3E,MAAM,CAAC,EAAE,6BAA6B,CAAA;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4BAA4B,CAAC,EAAE,MAAM,CAAA;IAErC,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,MAAM,CAAC,EAAE,8BAA8B,CAAA;IAEvC,OAAO,CAAC,EAAE,+BAA+B,CAAA;IAEzC,UAAU,CAAC,EAAE,oBAAoB,CAAA;IAEjC,GAAG,CAAC,EAAE,GAAG,CAAC,6BAA6B,CAAA;CACvC;AAED,eAAO,MAAM,qCAAqC,EAAE,8BAsBnD,CAAA;AAED,MAAM,WAAW,gCAAiC,SAAQ,GAAG,CAAC,kBAAkB;IAC/E,MAAM,CAAC,EAAE,mCAAmC,CAAA;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAAG,CAAC,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEtJ,eAAO,MAAM,8BAA8B,EAAE,GAAG,CAAC,cAAc,EAmB9D,CAAA"}
@@ -1,25 +1,24 @@
1
+ import chalk from 'chalk';
2
+ import * as API from './API.js';
1
3
  import { deepClone, extendDeep } from '../utilities/ObjectUtilities.js';
2
4
  import { ensureRawAudio, getRawAudioDuration, normalizeAudioLevelInPlace, sliceRawAudioByTime, trimAudioEnd } from '../audio/AudioUtilities.js';
3
5
  import { Logger } from '../utilities/Logger.js';
4
- import * as API from './API.js';
5
- import { logToStderr } from '../utilities/Utilities.js';
6
6
  import { formatLanguageCodeWithName, languageCodeToName } from '../utilities/Locale.js';
7
7
  import { loadPackage } from '../utilities/PackageManager.js';
8
- import chalk from 'chalk';
9
8
  import { joinPath } from '../utilities/PathUtilities.js';
10
- const log = logToStderr;
11
- export async function detectSpeechLanguage(input, options) {
12
- const logger = new Logger();
13
- const startTime = logger.getTimestamp();
9
+ export async function detectSpeechLanguage(input, options, callbacks) {
14
10
  options = extendDeep(defaultSpeechLanguageDetectionOptions, options);
15
- const inputRawAudio = await ensureRawAudio(input);
11
+ callbacks = { logLevel: API.getGlobalLogLevel(), ...callbacks };
12
+ const logger = new Logger(callbacks.logLevel);
13
+ const startTime = logger.getTimestamp();
14
+ const inputRawAudio = await ensureRawAudio(input, undefined, undefined, callbacks);
16
15
  logger.start(`Resample audio to 16kHz mono`);
17
- let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
16
+ let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1, callbacks);
18
17
  normalizeAudioLevelInPlace(sourceRawAudio);
19
18
  sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0]);
20
19
  if (options.crop) {
21
20
  logger.start('Crop using voice activity detection');
22
- ({ croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad));
21
+ ({ croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad, { ...callbacks, logLevel: 'warning' }));
23
22
  logger.end();
24
23
  }
25
24
  logger.start(`Initialize ${options.engine} module`);
@@ -31,30 +30,33 @@ export async function detectSpeechLanguage(input, options) {
31
30
  const SileroLanguageDetection = await import('../speech-language-detection/SileroLanguageDetection.js');
32
31
  logger.end();
33
32
  const sileroOptions = options.silero;
34
- const modelDir = await loadPackage('silero-lang-classifier-95');
33
+ const modelDir = await loadPackage('silero-lang-classifier-95', callbacks);
35
34
  const modelPath = joinPath(modelDir, 'lang_classifier_95.onnx');
36
35
  const languageDictionaryPath = joinPath(modelDir, 'lang_dict_95.json');
37
36
  const languageGroupDictionaryPath = joinPath(modelDir, 'lang_group_dict_95.json');
38
37
  const onnxExecutionProviders = sileroOptions.provider ? [sileroOptions.provider] : [];
39
- const languageResults = await SileroLanguageDetection.detectLanguage(sourceRawAudio, modelPath, languageDictionaryPath, languageGroupDictionaryPath, onnxExecutionProviders);
38
+ const languageResults = await SileroLanguageDetection.detectLanguage(sourceRawAudio, modelPath, languageDictionaryPath, languageGroupDictionaryPath, onnxExecutionProviders, callbacks);
40
39
  detectedLanguageProbabilities = languageResults;
41
40
  break;
42
41
  }
43
42
  case 'whisper': {
44
43
  const WhisperSTT = await import('../recognition/WhisperSTT.js');
45
- const whisperOptions = options.whisper;
46
- const { modelName, modelDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperOptions.model, undefined);
44
+ const WhisperCommon = await import('../recognition/WhisperCommon.js');
45
+ const whisperOptions = extendDeep(WhisperSTT.defaultWhisperLanguageDetectionOptions, options.whisper);
46
+ const { modelId, modelPath } = await WhisperCommon.loadModelPackage(whisperOptions.model, undefined, callbacks);
47
+ const { libPath } = await WhisperSTT.loadLibraryPackages(whisperOptions.enableGPU, callbacks);
47
48
  logger.end();
48
- detectedLanguageProbabilities = await WhisperSTT.detectLanguage(sourceRawAudio, modelName, modelDir, whisperOptions);
49
+ detectedLanguageProbabilities = await WhisperSTT.detectLanguage(sourceRawAudio, modelId, modelPath, libPath, whisperOptions, callbacks);
49
50
  break;
50
51
  }
51
52
  case 'whisper.cpp': {
52
- const WhisperCppSTT = await import('../recognition/WhisperCppSTT.js');
53
- const whisperCppOptions = options.whisperCpp;
53
+ const WhisperCppCliSTT = await import('../recognition/WhisperCppCliSTT.js');
54
+ const WhisperCommon = await import('../recognition/WhisperCommon.js');
55
+ const whisperCppCliOptions = options.whisperCpp;
54
56
  logger.end();
55
- const { modelName, modelPath } = await WhisperCppSTT.loadModelPackage(whisperCppOptions.model, undefined);
57
+ const { modelId, modelPath } = await WhisperCommon.loadModelPackage(whisperCppCliOptions.model, undefined, callbacks);
56
58
  logger.end();
57
- detectedLanguageProbabilities = await WhisperCppSTT.detectLanguage(sourceRawAudio, modelName, modelPath);
59
+ detectedLanguageProbabilities = await WhisperCppCliSTT.detectLanguage(sourceRawAudio, modelId, modelPath, callbacks);
58
60
  break;
59
61
  }
60
62
  default: {
@@ -70,7 +72,7 @@ export async function detectSpeechLanguage(input, options) {
70
72
  detectedLanguage = detectedLanguageProbabilities[0].language;
71
73
  }
72
74
  logger.end();
73
- logger.logDuration('\nTotal language detection time', startTime, chalk.magentaBright);
75
+ logger.logDuration('\nTotal language detection time', startTime, 'info', chalk.magentaBright);
74
76
  return {
75
77
  detectedLanguage,
76
78
  detectedLanguageName: languageCodeToName(detectedLanguage),
@@ -78,19 +80,21 @@ export async function detectSpeechLanguage(input, options) {
78
80
  inputRawAudio,
79
81
  };
80
82
  }
81
- export async function detectSpeechLanguageByParts(sourceRawAudio, getResultsForAudioPart, audioPartDuration = 30, hopDuration = 25) {
82
- const logger = new Logger();
83
+ export async function detectSpeechLanguageByParts(sourceRawAudio, getResultsForAudioPart, maxAudioPartDuration = 30, hopDuration = 25, callbacks) {
84
+ callbacks = { logLevel: API.getGlobalLogLevel(), ...callbacks };
85
+ const logger = new Logger(callbacks.logLevel);
83
86
  const audioDuration = getRawAudioDuration(sourceRawAudio);
84
87
  if (audioDuration === 0) {
85
88
  return [];
86
89
  }
87
90
  const resultsForParts = [];
88
91
  for (let audioTimeOffset = 0; audioTimeOffset < audioDuration; audioTimeOffset += hopDuration) {
89
- const startOffset = audioTimeOffset;
90
- const endOffset = Math.min(audioTimeOffset + audioPartDuration, audioDuration);
91
- const audioPartLength = endOffset - startOffset;
92
- logger.logTitledMessage(`\nDetect speech language starting at audio offset`, `${startOffset.toFixed(1)}`, chalk.magentaBright);
93
- const audioPart = sliceRawAudioByTime(sourceRawAudio, startOffset, endOffset);
92
+ callbacks?.abortSignal?.throwIfAborted();
93
+ const startTimeOffset = audioTimeOffset;
94
+ const endTimeOffset = Math.min(audioTimeOffset + maxAudioPartDuration, audioDuration);
95
+ const audioPartDuration = endTimeOffset - startTimeOffset;
96
+ logger.logTitledMessage(`\nDetect speech language starting at audio offset`, `${startTimeOffset.toFixed(1)}`, 'info', chalk.magentaBright);
97
+ const audioPart = sliceRawAudioByTime(sourceRawAudio, startTimeOffset, endTimeOffset);
94
98
  const resultsForPart = await getResultsForAudioPart(audioPart);
95
99
  resultsForParts.push(resultsForPart);
96
100
  const sortedResultsForPart = deepClone(resultsForPart).sort((a, b) => b.probability - a.probability);
@@ -99,7 +103,10 @@ export async function detectSpeechLanguageByParts(sourceRawAudio, getResultsForA
99
103
  topCandidatesStrings.push(`${formatLanguageCodeWithName(sortedResultsForPart[i].language)}: ${sortedResultsForPart[i].probability.toFixed(3)}`);
100
104
  }
101
105
  logger.logTitledMessage(`Top candidates`, topCandidatesStrings.join(', '));
102
- if (audioPartLength < audioPartDuration) {
106
+ if (callbacks?.onPart) {
107
+ callbacks.onPart(sortedResultsForPart, startTimeOffset, endTimeOffset);
108
+ }
109
+ if (audioPartDuration < maxAudioPartDuration) {
103
110
  break;
104
111
  }
105
112
  }
@@ -147,8 +154,8 @@ export const speechLanguageDetectionEngines = [
147
154
  },
148
155
  {
149
156
  id: 'whisper.cpp',
150
- name: 'OpenAI Whisper (C++ port)',
151
- description: 'Uses the language tokens produced by Whisper.cpp to classify the spoken langauge.',
157
+ name: 'OpenAI Whisper (C++ port) CLI',
158
+ description: 'Uses the language tokens produced by whisper.cpp to classify the spoken langauge.',
152
159
  type: 'local'
153
160
  },
154
161
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechLanguageDetection.js","sourceRoot":"","sources":["../../src/api/SpeechLanguageDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpeechLanguageDetection.js","sourceRoot":"","sources":["../../src/api/SpeechLanguageDetection.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { AudioSourceParam } from "../audio/AudioUtilities.js";
2
+ import { OperationCallbacks } from "./Common.js";
2
3
  export declare function searchSpeech(inputAudio: AudioSourceParam, text: string, options: SpeechSearchOptions): Promise<SpeechSearchResult>;
3
- export interface SpeechSearchOptions {
4
+ export interface SpeechSearchOptions extends OperationCallbacks {
4
5
  }
5
6
  export interface SpeechSearchResult {
6
7
  }
8
+ export interface SpeechSearchCallbacks extends OperationCallbacks {
9
+ }
7
10
  //# sourceMappingURL=SpeechSearch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechSearch.d.ts","sourceRoot":"","sources":["../../src/api/SpeechSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,wBAAsB,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAExI;AAED,MAAM,WAAW,mBAAmB;CAEnC;AAED,MAAM,WAAW,kBAAkB;CAClC"}
1
+ {"version":3,"file":"SpeechSearch.d.ts","sourceRoot":"","sources":["../../src/api/SpeechSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAsB,YAAY,CAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAExI;AAED,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;CAE9D;AAED,MAAM,WAAW,kBAAkB;CAClC;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;CAEhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechSearch.js","sourceRoot":"","sources":["../../src/api/SpeechSearch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAA4B,EAAE,IAAY,EAAE,OAA4B;IAC1G,OAAO,EAAE,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"SpeechSearch.js","sourceRoot":"","sources":["../../src/api/SpeechSearch.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAA4B,EAAE,IAAY,EAAE,OAA4B;IAC1G,OAAO,EAAE,CAAA;AACV,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import * as API from './API.js';
2
2
  import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
3
3
  import { Timeline } from '../utilities/Timeline.js';
4
- import { WhisperPartCallback, type WhisperOptions } from '../recognition/WhisperSTT.js';
4
+ import { type WhisperOptions, type WhisperPartCallback, type WhisperTokenCallback } from '../recognition/WhisperSTT.js';
5
5
  import { type EngineMetadata } from './Common.js';
6
6
  import { type SpeechLanguageDetectionOptions } from './API.js';
7
7
  import { type SubtitlesConfig } from '../subtitles/Subtitles.js';
8
8
  import { type OpenAICloudSTTOptions } from '../recognition/OpenAICloudSTT.js';
9
- import { type WhisperCppOptions } from '../recognition/WhisperCppSTT.js';
10
- export declare function translateSpeech(input: AudioSourceParam, options: SpeechTranslationOptions, onPart?: WhisperPartCallback): Promise<SpeechTranslationResult>;
9
+ import { type WhisperCppCliOptions } from '../recognition/WhisperCppCliSTT.js';
10
+ export declare function translateSpeech(input: AudioSourceParam, options: SpeechTranslationOptions, callbacks?: SpeechTranslationCallbacks): Promise<SpeechTranslationResult>;
11
11
  export interface SpeechTranslationResult {
12
12
  transcript: string;
13
13
  timeline: Timeline;
@@ -19,7 +19,7 @@ export interface SpeechTranslationResult {
19
19
  backgroundRawAudio?: RawAudio;
20
20
  }
21
21
  export type SpeechTranslationEngine = 'whisper' | 'whisper.cpp' | 'openai-cloud';
22
- export interface SpeechTranslationOptions {
22
+ export interface SpeechTranslationOptions extends API.OperationOptions {
23
23
  engine?: SpeechTranslationEngine;
24
24
  sourceLanguage?: string;
25
25
  targetLanguage?: string;
@@ -27,12 +27,16 @@ export interface SpeechTranslationOptions {
27
27
  isolate?: boolean;
28
28
  languageDetection?: SpeechLanguageDetectionOptions;
29
29
  subtitles?: SubtitlesConfig;
30
- vad?: API.VADOptions;
30
+ vad?: API.VoiceActivityDetectionOptions;
31
31
  sourceSeparation?: API.SourceSeparationOptions;
32
32
  whisper?: WhisperOptions;
33
- whisperCpp?: WhisperCppOptions;
33
+ whisperCpp?: WhisperCppCliOptions;
34
34
  openAICloud?: OpenAICloudSTTOptions;
35
35
  }
36
36
  export declare const defaultSpeechTranslationOptions: SpeechTranslationOptions;
37
+ export interface SpeechTranslationCallbacks extends API.OperationCallbacks {
38
+ onPart?: WhisperPartCallback;
39
+ onToken?: WhisperTokenCallback;
40
+ }
37
41
  export declare const speechTranslationEngines: EngineMetadata[];
38
42
  //# sourceMappingURL=SpeechTranslation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechTranslation.d.ts","sourceRoot":"","sources":["../../src/api/SpeechTranslation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAK/B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAA4D,MAAM,4BAA4B,CAAA;AAGjI,OAAO,EAAE,QAAQ,EAA8E,MAAM,0BAA0B,CAAA;AAC/H,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAEvF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,8BAA8B,EAAwB,MAAM,UAAU,CAAA;AACpF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAOxE,wBAAsB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAkNhK;AAED,MAAM,WAAW,uBAAuB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,QAAQ,CAAA;IAEvB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IAEtB,aAAa,EAAE,QAAQ,CAAA;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAA;IAC3B,kBAAkB,CAAC,EAAE,QAAQ,CAAA;CAC7B;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAA;AAEhF,MAAM,WAAW,wBAAwB;IACxC,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAEhC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,iBAAiB,CAAC,EAAE,8BAA8B,CAAA;IAClD,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAA;IACpB,gBAAgB,CAAC,EAAE,GAAG,CAAC,uBAAuB,CAAA;IAE9C,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,WAAW,CAAC,EAAE,qBAAqB,CAAA;CACnC;AAED,eAAO,MAAM,+BAA+B,EAAE,wBA0B7C,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,cAAc,EAmBpD,CAAA"}
1
+ {"version":3,"file":"SpeechTranslation.d.ts","sourceRoot":"","sources":["../../src/api/SpeechTranslation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAK/B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAA4D,MAAM,4BAA4B,CAAA;AAGjI,OAAO,EAAE,QAAQ,EAA8E,MAAM,0BAA0B,CAAA;AAC/H,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAG,MAAM,8BAA8B,CAAA;AAExH,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,KAAK,8BAA8B,EAAwB,MAAM,UAAU,CAAA;AACpF,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kCAAkC,CAAA;AAC7E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAO9E,wBAAsB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,wBAAwB,EAAE,SAAS,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAkP1K;AAED,MAAM,WAAW,uBAAuB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,CAAC,EAAE,QAAQ,CAAA;IAEvB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IAEtB,aAAa,EAAE,QAAQ,CAAA;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAA;IAC3B,kBAAkB,CAAC,EAAE,QAAQ,CAAA;CAC7B;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,CAAA;AAEhF,MAAM,WAAW,wBAAyB,SAAQ,GAAG,CAAC,gBAAgB;IACrE,MAAM,CAAC,EAAE,uBAAuB,CAAA;IAEhC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,iBAAiB,CAAC,EAAE,8BAA8B,CAAA;IAClD,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,GAAG,CAAC,EAAE,GAAG,CAAC,6BAA6B,CAAA;IACvC,gBAAgB,CAAC,EAAE,GAAG,CAAC,uBAAuB,CAAA;IAE9C,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,UAAU,CAAC,EAAE,oBAAoB,CAAA;IACjC,WAAW,CAAC,EAAE,qBAAqB,CAAA;CACnC;AAED,eAAO,MAAM,+BAA+B,EAAE,wBA0B7C,CAAA;AAED,MAAM,WAAW,0BAA2B,SAAQ,GAAG,CAAC,kBAAkB;IACzE,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAC9B;AAED,eAAO,MAAM,wBAAwB,EAAE,cAAc,EAmBpD,CAAA"}
@@ -11,31 +11,30 @@ const log = logToStderr;
11
11
  /////////////////////////////////////////////////////////////////////////////////////////////
12
12
  // Speech translation
13
13
  /////////////////////////////////////////////////////////////////////////////////////////////
14
- export async function translateSpeech(input, options, onPart) {
15
- const logger = new Logger();
16
- const startTimestamp = logger.getTimestamp();
14
+ export async function translateSpeech(input, options, callbacks) {
17
15
  options = extendDeep(defaultSpeechTranslationOptions, options);
18
- const inputRawAudio = await ensureRawAudio(input);
16
+ callbacks = { logLevel: API.getGlobalLogLevel(), ...callbacks };
17
+ const logger = new Logger(callbacks.logLevel);
18
+ const startTimestamp = logger.getTimestamp();
19
+ const inputRawAudio = await ensureRawAudio(input, undefined, undefined, callbacks);
19
20
  let sourceRawAudio;
20
21
  let isolatedRawAudio;
21
22
  let backgroundRawAudio;
22
23
  if (options.isolate) {
23
- logger.log(``);
24
- logger.end();
25
- ({ isolatedRawAudio, backgroundRawAudio } = await API.isolate(inputRawAudio, options.sourceSeparation));
24
+ logger.logTitledMessage(`Isolate vocals`, '');
25
+ ({ isolatedRawAudio, backgroundRawAudio } = await API.isolate(inputRawAudio, options.sourceSeparation, { ...callbacks, logLevel: logger.logLevel }));
26
26
  logger.end();
27
- logger.log(``);
28
27
  logger.start(`Resample audio to 16kHz mono`);
29
- sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1);
28
+ sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1, callbacks);
30
29
  }
31
30
  else {
32
31
  logger.start(`Resample audio to 16kHz mono`);
33
- sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
32
+ sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1, callbacks);
34
33
  }
35
34
  let sourceUncropTimeline;
36
35
  if (options.crop) {
37
36
  logger.start('Crop using voice activity detection');
38
- ({ timeline: sourceUncropTimeline, croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad));
37
+ ({ timeline: sourceUncropTimeline, croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad, { ...callbacks, logLevel: 'warning' }));
39
38
  logger.end();
40
39
  }
41
40
  logger.start('Normalize and trim audio');
@@ -49,7 +48,7 @@ export async function translateSpeech(input, options, onPart) {
49
48
  }
50
49
  else {
51
50
  logger.start('No source language specified. Detect speech language');
52
- const { detectedLanguage } = await detectSpeechLanguage(sourceRawAudio, options.languageDetection || {});
51
+ const { detectedLanguage } = await detectSpeechLanguage(sourceRawAudio, options.languageDetection, { abortSignal: callbacks.abortSignal, logLevel: 'warning' });
53
52
  options.sourceLanguage = detectedLanguage;
54
53
  logger.end();
55
54
  logger.logTitledMessage('Source language detected', formatLanguageCodeWithName(detectedLanguage));
@@ -67,38 +66,41 @@ export async function translateSpeech(input, options, onPart) {
67
66
  switch (engine) {
68
67
  case 'whisper': {
69
68
  const WhisperSTT = await import('../recognition/WhisperSTT.js');
70
- const whisperOptions = options.whisper;
69
+ const WhisperCommon = await import('../recognition/WhisperCommon.js');
70
+ const whisperOptions = extendDeep(WhisperSTT.defaultWhisperOptions, options.whisper);
71
71
  const shortSourceLanguageCode = getShortLanguageCode(sourceLanguage);
72
72
  const shortTargetLanguageCode = getShortLanguageCode(targetLanguage);
73
- const { modelName, modelDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperOptions.model, shortSourceLanguageCode);
74
73
  if (shortTargetLanguageCode != 'en') {
75
74
  throw new Error('Whisper translation only supports English as target language');
76
75
  }
77
- if (modelName.endsWith('.en')) {
78
- throw new Error('Whisper translation tasks are only possible with a multilingual model');
79
- }
80
76
  if (shortSourceLanguageCode == 'en' && shortTargetLanguageCode == 'en') {
81
77
  throw new Error('Both translation source and target languages are English');
82
78
  }
79
+ const { modelId, modelPath } = await WhisperCommon.loadModelPackage(whisperOptions.model, shortSourceLanguageCode, callbacks);
80
+ const { libPath } = await WhisperSTT.loadLibraryPackages(whisperOptions.enableGPU, callbacks);
81
+ if (modelId.endsWith('.en')) {
82
+ throw new Error(`Whisper translation task is not supported with model '${modelId}', since it's not multilingual model.`);
83
+ }
83
84
  logger.end();
84
- ({ transcript, timeline: wordTimeline } = await WhisperSTT.recognize(sourceRawAudio, modelName, modelDir, 'translate', sourceLanguage, whisperOptions, onPart));
85
+ ({ transcript, timeline: wordTimeline } = await WhisperSTT.recognize(sourceRawAudio, modelId, modelPath, libPath, 'translate', sourceLanguage, whisperOptions, callbacks));
85
86
  break;
86
87
  }
87
88
  case 'whisper.cpp': {
88
- const WhisperCppSTT = await import('../recognition/WhisperCppSTT.js');
89
- const whisperCppOptions = options.whisperCpp;
89
+ const WhisperCppCliSTT = await import('../recognition/WhisperCppCliSTT.js');
90
+ const WhisperCommon = await import('../recognition/WhisperCommon.js');
91
+ const whisperCppCliOptions = options.whisperCpp;
90
92
  const shortSourceLanguageCode = getShortLanguageCode(sourceLanguage);
91
93
  const shortTargetLanguageCode = getShortLanguageCode(targetLanguage);
92
94
  logger.end();
93
- const { modelName, modelPath } = await WhisperCppSTT.loadModelPackage(whisperCppOptions.model, shortSourceLanguageCode);
95
+ const { modelId, modelPath } = await WhisperCommon.loadModelPackage(whisperCppCliOptions.model, shortSourceLanguageCode, callbacks);
94
96
  if (shortTargetLanguageCode != 'en') {
95
97
  throw new Error('Whisper.cpp translation only supports English as target language');
96
98
  }
97
- if (modelName.endsWith('.en')) {
99
+ if (modelId.endsWith('.en')) {
98
100
  throw new Error('Whisper.cpp translation tasks are only possible with a multilingual model');
99
101
  }
100
102
  logger.end();
101
- ({ transcript, timeline: wordTimeline } = await WhisperCppSTT.recognize(sourceRawAudio, 'translate', shortSourceLanguageCode, modelName, modelPath, whisperCppOptions));
103
+ ({ transcript, timeline: wordTimeline } = await WhisperCppCliSTT.recognize(sourceRawAudio, 'translate', shortSourceLanguageCode, modelId, modelPath, whisperCppCliOptions, callbacks));
102
104
  break;
103
105
  }
104
106
  case 'openai-cloud': {
@@ -113,7 +115,7 @@ export async function translateSpeech(input, options, onPart) {
113
115
  throw new Error('OpenAI cloud speech translation only supports English as target language');
114
116
  }
115
117
  logger.end();
116
- ({ transcript, timeline: segmentTimeline } = await OpenAICloudSTT.recognize(sourceRawAudio, shortSourceLanguageCode, openAICloudSTTOptions, 'translate'));
118
+ ({ transcript, timeline: segmentTimeline } = await OpenAICloudSTT.recognize(sourceRawAudio, shortSourceLanguageCode, openAICloudSTTOptions, 'translate', callbacks));
117
119
  break;
118
120
  }
119
121
  default: {
@@ -137,7 +139,7 @@ export async function translateSpeech(input, options, onPart) {
137
139
  ({ segmentTimeline } = await wordTimelineToSegmentSentenceTimeline(wordTimeline, transcript, targetLanguage, 'single', 'preserve'));
138
140
  }
139
141
  logger.log('');
140
- logger.logDuration(`Total speech translation time`, startTimestamp, chalk.magentaBright);
142
+ logger.logDuration(`Total speech translation time`, startTimestamp, 'info', chalk.magentaBright);
141
143
  return {
142
144
  transcript,
143
145
  timeline: segmentTimeline,
@@ -173,7 +175,7 @@ export const speechTranslationEngines = [
173
175
  },
174
176
  {
175
177
  id: 'whisper.cpp',
176
- name: 'OpenAI Whisper (C++ port)',
178
+ name: 'OpenAI Whisper (C++ port) CLI',
177
179
  description: `Uses Whisper's speech translation capability to produce an English transcript from speech in a different language.`,
178
180
  type: 'local'
179
181
  },
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechTranslation.js","sourceRoot":"","sources":["../../src/api/SpeechTranslation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpeechTranslation.js","sourceRoot":"","sources":["../../src/api/SpeechTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAA8B,cAAc,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACjI,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAY,mCAAmC,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAA;AAE/H,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,iCAAiC,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjJ,OAAO,EAAuC,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAMpF,MAAM,GAAG,GAAG,WAAW,CAAA;AAEvB,6FAA6F;AAC7F,qBAAqB;AACrB,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAuB,EAAE,OAAiC,EAAE,SAAsC;IACvI,OAAO,GAAG,UAAU,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAA;IAC9D,SAAS,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,iBAAiB,EAAE,EAAE,GAAG,SAAS,EAAE,CAAA;IAE/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IAE7C,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IAE5C,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IAElF,IAAI,cAAwB,CAAA;IAC5B,IAAI,gBAAsC,CAAA;IAC1C,IAAI,kBAAwC,CAAA;IAE5C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAE9C,CAAC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAC5D,aAAa,EACb,OAAO,CAAC,gBAAiB,EACzB,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE9C,MAAM,CAAC,GAAG,EAAE,CAAA;QAEZ,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC5C,cAAc,GAAG,MAAM,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IAC7E,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAC5C,cAAc,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;IAC1E,CAAC;IAED,IAAI,oBAA0C,CAAA;IAE9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpD,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM,GAAG,CAAC,mBAAmB,CACnG,cAAc,EACd,OAAO,CAAC,GAAI,EACZ,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAExC,MAAM,CAAC,GAAG,EAAE,CAAA;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAExC,0BAA0B,CAAC,cAAc,CAAC,CAAA;IAC1C,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/E,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEtE,OAAO,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAAA;QAE1C,MAAM,CAAC,GAAG,EAAE,CAAA;QACZ,MAAM,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;IACzG,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,oBAAoB,CACtD,cAAc,EACd,OAAO,CAAC,iBAAkB,EAC1B,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,CAC3D,CAAA;QAED,OAAO,CAAC,cAAc,GAAG,gBAAgB,CAAA;QAEzC,MAAM,CAAC,GAAG,EAAE,CAAA;QACZ,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,0BAA0B,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAClG,CAAC;IAED,OAAO,CAAC,cAAc,GAAG,MAAM,iCAAiC,CAAC,OAAO,CAAC,cAAe,CAAC,CAAA;IAEzF,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;IAE9F,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;IAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAO,CAAA;IAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,cAAe,CAAA;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,cAAe,CAAA;IAE9C,IAAI,UAAkB,CAAA;IACtB,IAAI,YAAkC,CAAA;IACtC,IAAI,eAAqC,CAAA;IAEzC,MAAM,CAAC,KAAK,CAAC,QAAQ,MAAM,SAAS,CAAC,CAAA;IAErC,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,SAAS,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;YAC/D,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;YAErE,MAAM,cAAc,GAAoB,UAAU,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAQ,CAAC,CAAA;YAEtG,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YACpE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YAEpE,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;YAChF,CAAC;YAED,IAAI,uBAAuB,IAAI,IAAI,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;gBACxE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;YAC5E,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAClE,cAAc,CAAC,KAAK,EACpB,uBAAuB,EACvB,SAAS,CACT,CAAA;YAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CAAC,mBAAmB,CACvD,cAAc,CAAC,SAAS,EACxB,SAAS,CACT,CAAA;YAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,yDAAyD,OAAO,uCAAuC,CAAC,CAAA;YACzH,CAAC;YAED,MAAM,CAAC,GAAG,EAAE,CAAC;YAEb,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,UAAU,CAAC,SAAS,CACnE,cAAc,EACd,OAAO,EACP,SAAS,EACT,OAAO,EACP,WAAW,EACX,cAAc,EACd,cAAc,EACd,SAAS,CACT,CAAC,CAAA;YAEF,MAAK;QACN,CAAC;QAED,KAAK,aAAa,EAAE,CAAC;YACpB,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAA;YAC3E,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAA;YAErE,MAAM,oBAAoB,GAAG,OAAO,CAAC,UAAW,CAAA;YAEhD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YACpE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YAEpE,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAClE,oBAAoB,CAAC,KAAK,EAC1B,uBAAuB,EACvB,SAAS,CACT,CAAA;YAED,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;YACpF,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;YAC7F,CAAC;YAED,MAAM,CAAC,GAAG,EAAE,CAAC;YAEb,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,gBAAgB,CAAC,SAAS,CACzE,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,OAAO,EACP,SAAS,EACT,oBAAoB,EACpB,SAAS,CACT,CAAC,CAAA;YAEF,MAAK;QACN,CAAC;QAED,KAAK,cAAc,EAAE,CAAC;YACrB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAA;YAEvE,MAAM,qBAAqB,GAAG,OAAO,CAAC,WAAY,CAAA;YAElD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;YACpD,CAAC;YAED,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YACpE,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;YAEpE,IAAI,uBAAuB,IAAI,IAAI,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;YAC5F,CAAC;YAED,MAAM,CAAC,GAAG,EAAE,CAAC;YAEb,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,cAAc,CAAC,SAAS,CAC1E,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,WAAW,EACX,SAAS,CACT,CAAC,CAAA;YAEF,MAAK;QACN,CAAC;QAED,SAAS,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAA;QAC/D,CAAC;IACF,CAAC;IAED,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,6FAA6F;IAC7F,IAAI,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,IAAI,YAAY,EAAE,CAAC;YAClB,GAAG,CAAC,iCAAiC,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAA;QAC1E,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC5B,GAAG,CAAC,iCAAiC,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAA;QAC7E,CAAC;IACF,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QAClB,mCAAmC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IAC9D,CAAC;IAED,IAAI,CAAC,eAAe,EAAE,CAAC;QACtB,CAAC,EAAE,eAAe,EAAE,GAAG,MAAM,qCAAqC,CAAC,YAAa,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IACrI,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACd,MAAM,CAAC,WAAW,CAAC,+BAA+B,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAEhG,OAAO;QACN,UAAU;QACV,QAAQ,EAAE,eAAe;QACzB,YAAY;QAEZ,cAAc;QACd,cAAc;QAEd,aAAa;QACb,gBAAgB;QAChB,kBAAkB;KAClB,CAAA;AACF,CAAC;AAoCD,MAAM,CAAC,MAAM,+BAA+B,GAA6B;IACxE,MAAM,EAAE,SAAS;IAEjB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,IAAI;IAEpB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;IAEd,iBAAiB,EAAE,SAAS;IAE5B,SAAS,EAAE,EACV;IAED,GAAG,EAAE;QACJ,MAAM,EAAE,eAAe;KACvB;IAED,OAAO,EAAE,EACR;IAED,UAAU,EAAE,EACX;IAED,WAAW,EAAE,EACZ;CACD,CAAA;AAOD,MAAM,CAAC,MAAM,wBAAwB,GAAqB;IACzD;QACC,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,oHAAoH;QACjI,IAAI,EAAE,OAAO;KACb;IACD;QACC,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,oHAAoH;QACjI,IAAI,EAAE,OAAO;KACb;IACD;QACC,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,+FAA+F;QAC5G,IAAI,EAAE,OAAO;KACb;CACD,CAAA"}