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,37 +1,39 @@
1
1
  import { spawn } from 'node:child_process'
2
2
  import { RawAudio, encodeRawAudioToWave, getRawAudioDuration } from '../audio/AudioUtilities.js'
3
3
  import { Logger } from '../utilities/Logger.js'
4
- import { type WhisperTask, type WhisperModelName } from './WhisperSTT.js'
4
+ import { type WhisperTask, type WhisperModelId, type WhisperQuantizedModelId } from './WhisperCommon.js'
5
5
  import { getRandomHexString } from '../utilities/Utilities.js'
6
6
  import { Timeline, TimelineEntryType } from '../utilities/Timeline.js'
7
7
  import { tryParseTimeRangePatternWithHours } from '../subtitles/Subtitles.js'
8
8
  import { getAppTempDir, joinPath } from '../utilities/PathUtilities.js'
9
- import { appName } from '../api/Common.js'
9
+ import { appName, OperationCallbacks } from '../api/Common.js'
10
10
  import { readAndParseJsonFile, remove } from '../utilities/FileSystem.js'
11
11
  import { splitToLines } from '../nlp/Segmentation.js'
12
12
  import { extendDeep } from '../utilities/ObjectUtilities.js'
13
13
  import { formatLanguageCodeWithName, getShortLanguageCode } from '../utilities/Locale.js'
14
- import { loadPackage } from '../utilities/PackageManager.js'
15
- import { detectSpeechLanguageByParts } from '../api/SpeechLanguageDetection.js'
14
+ import { loadPackage, LoadPackageCallbacks } from '../utilities/PackageManager.js'
15
+ import { detectSpeechLanguageByParts, SpeechLanguageDetectionCallbacks } from '../api/SpeechLanguageDetection.js'
16
+ import { RecognitionCallbacks } from '../api/Recognition.js'
16
17
 
17
18
  export async function recognize(
18
19
  sourceRawAudio: RawAudio,
19
20
  task: WhisperTask,
20
21
  sourceLanguage: string | undefined,
21
- modelName: WhisperModelName,
22
+ modelId: WhisperModelId,
22
23
  modelPath: string,
23
- options: WhisperCppOptions) {
24
+ options: WhisperCppCliOptions,
25
+ callbacks: RecognitionCallbacks) {
24
26
 
25
27
  return new Promise<RecognitionResult>(async (resolve, reject) => {
26
- const logger = new Logger()
28
+ const logger = new Logger(callbacks.logLevel)
27
29
 
28
30
  if (sourceRawAudio.sampleRate != 16000) {
29
31
  throw new Error('Source audio must have a sample rate of 16000 Hz')
30
32
  }
31
33
 
32
- options = extendDeep(defaultWhisperCppOptions, options)
34
+ options = extendDeep(defaultWhisperCppCliOptions, options)
33
35
 
34
- let buildKind: WhisperCppBuild
36
+ let buildKind: WhisperCppCliBuild
35
37
  let executablePath: string
36
38
 
37
39
  if (options.executablePath) {
@@ -48,11 +50,11 @@ export async function recognize(
48
50
 
49
51
  if (options.enableGPU == null) {
50
52
  options.enableGPU = buildKind.startsWith('cublas-')
51
- } else if (options.enableGPU === true && !buildKind.startsWith('cublas-')) {
53
+ } else if (process.platform !== 'darwin' && options.enableGPU === true && !buildKind.startsWith('cublas-')) {
52
54
  throw new Error('GPU support is only available for CUDA builds')
53
55
  }
54
56
  } else {
55
- if (options.enableGPU) {
57
+ if (process.platform !== 'darwin' && options.enableGPU) {
56
58
  buildKind = 'cublas-12.4.0'
57
59
  } else {
58
60
  buildKind = 'cpu'
@@ -61,7 +63,7 @@ export async function recognize(
61
63
 
62
64
  logger.end()
63
65
 
64
- executablePath = await loadExecutablePackage(buildKind)
66
+ executablePath = await loadBinariesPackage(buildKind, callbacks)
65
67
  }
66
68
 
67
69
  if (options.enableFlashAttention && options.enableDTW) {
@@ -72,7 +74,7 @@ export async function recognize(
72
74
  throw new Error(`The 'large-v3-turbo' model doesn't support translation tasks.`)
73
75
  }
74
76
 
75
- logger.start(`Recognize with command-line whisper.cpp (model: ${options.model || modelName}, build: ${buildKind})`)
77
+ logger.start(`Recognize with command-line whisper.cpp (model: ${options.model || modelId}, build: ${buildKind})`)
76
78
  logger.log('')
77
79
  logger.log('')
78
80
 
@@ -135,7 +137,7 @@ export async function recognize(
135
137
  '0',
136
138
 
137
139
  '--dtw',
138
- modelName.replaceAll('-', '.'),
140
+ modelId.replaceAll('-', '.'),
139
141
  )
140
142
  } else {
141
143
  args.push(
@@ -148,6 +150,10 @@ export async function recognize(
148
150
  args.push(
149
151
  '--flash-attn'
150
152
  )
153
+ } else {
154
+ args.push(
155
+ '--no-flash-attn'
156
+ )
151
157
  }
152
158
 
153
159
  if (task === 'translate') {
@@ -158,13 +164,18 @@ export async function recognize(
158
164
 
159
165
  const argsString = args.join(' ')
160
166
 
161
- const process = spawn(executablePath, [...args, '-'])
167
+ const cliProcess = spawn(executablePath, [...args, '-'])
168
+
169
+ callbacks.abortSignal?.addEventListener('abort', () => {
170
+ reject(new DOMException('whisper.cpp CLI process aborted by user.', 'AbortError'))
171
+ cliProcess.kill()
172
+ })
162
173
 
163
174
  const stdoutLines: string[] = []
164
175
  let stderrOutput = ''
165
176
 
166
- process.stdout.setEncoding('utf8')
167
- process.stdout.on('data', (str: string) => {
177
+ cliProcess.stdout.setEncoding('utf8')
178
+ cliProcess.stdout.on('data', (str: string) => {
168
179
  if (task === 'detect-language') {
169
180
  return
170
181
  }
@@ -178,8 +189,8 @@ export async function recognize(
178
189
  stdoutLines.push(...parts)
179
190
  })
180
191
 
181
- process.stderr.setEncoding('utf8')
182
- process.stderr.on('data', (str: string) => {
192
+ cliProcess.stderr.setEncoding('utf8')
193
+ cliProcess.stderr.on('data', (str: string) => {
183
194
  if (options.verbose) {
184
195
  logger.log(str)
185
196
  }
@@ -187,23 +198,23 @@ export async function recognize(
187
198
  stderrOutput += str
188
199
  })
189
200
 
190
- process.on('error', (e) => {
201
+ cliProcess.on('error', (e) => {
191
202
  reject(e)
192
203
  })
193
204
 
194
- process.on('close', async (exitCode) => {
205
+ cliProcess.on('close', async (exitCode) => {
195
206
  logger.end()
196
207
 
197
208
  if (exitCode === 0) {
198
209
  const parsedStdOut = parseStdOutLinesToTimeline(stdoutLines, 'word')
199
210
 
200
- const resultObject: WhisperCppVerboseResult = await readAndParseJsonFile(outJsonFilePath)
211
+ const resultObject: WhisperCppCliVerboseResult = await readAndParseJsonFile(outJsonFilePath)
201
212
  await remove(outJsonFilePath)
202
213
 
203
214
  if (task === 'detect-language') {
204
215
  resolve({ timeline: [], transcript: '', language: resultObject.result.language })
205
216
  } else {
206
- const parsedResultObject = await parseResultObject(resultObject, modelName, getRawAudioDuration(sourceRawAudio), options.enableDTW!)
217
+ const parsedResultObject = await parseResultObject(resultObject, modelId, getRawAudioDuration(sourceRawAudio), options.enableDTW!, callbacks)
207
218
 
208
219
  resolve(parsedResultObject)
209
220
  }
@@ -214,12 +225,12 @@ export async function recognize(
214
225
  }
215
226
  })
216
227
 
217
- //writeToStdinInChunks(process, sourceAsWave, 2 ** 10)
218
- process.stdin.end(sourceAsWave)
228
+ //writeToStdinInChunks(cliProcess, sourceAsWave, 2 ** 10)
229
+ cliProcess.stdin.end(sourceAsWave)
219
230
  })
220
231
  }
221
232
 
222
- export async function detectLanguage(sourceRawAudio: RawAudio, modelName: WhisperModelName, modelPath: string) {
233
+ export async function detectLanguage(sourceRawAudio: RawAudio, modelId: WhisperModelId, modelPath: string, callbacks: SpeechLanguageDetectionCallbacks) {
223
234
  if (sourceRawAudio.sampleRate != 16000) {
224
235
  throw new Error('Source audio must have a sample rate of 16000')
225
236
  }
@@ -229,9 +240,10 @@ export async function detectLanguage(sourceRawAudio: RawAudio, modelName: Whispe
229
240
  partAudio,
230
241
  'detect-language',
231
242
  undefined,
232
- modelName,
243
+ modelId,
233
244
  modelPath,
234
245
  {},
246
+ { abortSignal: callbacks.abortSignal, logLevel: callbacks.logLevel }
235
247
  )
236
248
 
237
249
  const partResults = [{
@@ -243,18 +255,24 @@ export async function detectLanguage(sourceRawAudio: RawAudio, modelName: Whispe
243
255
  return partResults
244
256
  }
245
257
 
246
- const results = await detectSpeechLanguageByParts(sourceRawAudio, detectLanguageForPart)
258
+ const results = await detectSpeechLanguageByParts(
259
+ sourceRawAudio,
260
+ detectLanguageForPart,
261
+ undefined,
262
+ undefined,
263
+ callbacks,
264
+ )
247
265
 
248
266
  results.sort((entry1, entry2) => entry2.probability - entry1.probability)
249
267
 
250
268
  return results
251
269
  }
252
270
 
253
- async function parseResultObject(resultObject: WhisperCppVerboseResult, modelName: WhisperModelName, totalDuration: number, enableDTW: boolean): Promise<RecognitionResult> {
254
- const { Whisper } = await import('../recognition/WhisperSTT.js')
271
+ async function parseResultObject(resultObject: WhisperCppCliVerboseResult, modelId: WhisperModelId, totalDuration: number, enableDTW: boolean, callbacks: OperationCallbacks): Promise<RecognitionResult> {
272
+ const { Whisper } = await import('./WhisperSTT.js')
255
273
 
256
- const whisper = new Whisper(modelName, '', [], [])
257
- await whisper.initializeTokenizerIfNeeded()
274
+ const whisper = new Whisper(modelId, '', '')
275
+ await whisper.initializeTokenizerIfNeeded(callbacks)
258
276
 
259
277
  const tokenTimeline: Timeline = []
260
278
 
@@ -374,38 +392,9 @@ function parseStdOutLinesToTimeline(lines: string[], entryType: TimelineEntryTyp
374
392
  return { transcript, timeline }
375
393
  }
376
394
 
377
- export async function loadModelPackage(modelId: WhisperCppModelId | undefined, languageCode: string | undefined) {
378
- if (modelId === 'large') {
379
- modelId = 'large-v2'
380
- }
381
-
382
- if (modelId) {
383
- const modelName = getModelNameFromModelId(modelId)
384
-
385
- if (languageCode != 'en' && modelName.endsWith('.en')) {
386
- throw new Error(`The English-only model '${modelName}' cannot be used with a non-English language '${languageCode}'.`)
387
- }
388
- } else {
389
- if (languageCode) {
390
- const shortLanguageCode = getShortLanguageCode(languageCode)
395
+ export type WhisperCppCliBuild = 'cpu' | 'cublas-12.4.0' | 'custom'
391
396
 
392
- modelId = shortLanguageCode == 'en' ? 'base.en' : 'base'
393
- } else {
394
- modelId = 'base'
395
- }
396
- }
397
-
398
- const packageName = `whisper.cpp-${modelId}`
399
- const modelDir = await loadPackage(packageName)
400
- const modelPath = joinPath(modelDir, `ggml-${modelId}.bin`)
401
- const modelName = getModelNameFromModelId(modelId)
402
-
403
- return { modelName, modelPath }
404
- }
405
-
406
- export type WhisperCppBuild = 'cpu' | 'cublas-12.4.0' | 'custom'
407
-
408
- export async function loadExecutablePackage(buildKind: WhisperCppBuild) {
397
+ export async function loadBinariesPackage(buildKind: WhisperCppCliBuild, callbacks: LoadPackageCallbacks) {
409
398
  if (buildKind === 'custom') {
410
399
  throw new Error(`A 'custom' build kind requires providing a custom path to the 'whisper-cli' executable in the 'executablePath' option.`)
411
400
  }
@@ -417,17 +406,25 @@ export async function loadExecutablePackage(buildKind: WhisperCppBuild) {
417
406
 
418
407
  if (buildKind.startsWith('cublas-')) {
419
408
  if (platform === 'win32' && arch === 'x64') {
420
- packageName = `whisper.cpp-binaries-windows-x64-${buildKind}-latest`
409
+ packageName = `whisper.cpp-binaries-windows-x64-${buildKind}`
421
410
  } else if (platform === 'linux' && arch === 'x64') {
422
- packageName = `whisper.cpp-binaries-linux-x64-${buildKind}-latest`
411
+ packageName = `whisper.cpp-binaries-linux-x64-${buildKind}`
423
412
  } else {
424
413
  throw new Error(`whisper.cpp GPU builds (NVIDIA CUDA only) are currently only available as packages for Windows x64 and Linux x64. Please specify a custom path to a whisper.cpp 'main' binary in the 'executablePath' option.`)
425
414
  }
426
415
  } else if (buildKind === 'cpu') {
427
416
  if (platform === 'win32' && arch === 'x64') {
428
- packageName = `whisper.cpp-binaries-windows-x64-cpu-latest`
417
+ packageName = `whisper.cpp-binaries-windows-x64-cpu`
418
+ } else if (platform === 'win32' && arch === 'arm64') {
419
+ packageName = `whisper.cpp-binaries-windows-arm64-cpu`
420
+ } else if (platform === 'darwin' && arch === 'x64') {
421
+ packageName = `whisper.cpp-binaries-macos-universal`
422
+ } else if (platform === 'darwin' && arch === 'arm64') {
423
+ packageName = `whisper.cpp-binaries-macos-universal`
429
424
  } else if (platform === 'linux' && arch === 'x64') {
430
- packageName = `whisper.cpp-binaries-linux-x64-cpu-latest`
425
+ packageName = `whisper.cpp-binaries-linux-x64-cpu`
426
+ } else if (platform === 'linux' && arch === 'arm64') {
427
+ packageName = `whisper.cpp-binaries-linux-arm64-cpu`
431
428
  } else {
432
429
  throw new Error(`Couldn't find a matching whisper.cpp binary package. Please specify a custom path to a whisper.cpp 'main' binary in the 'executablePath' option.`)
433
430
  }
@@ -435,9 +432,9 @@ export async function loadExecutablePackage(buildKind: WhisperCppBuild) {
435
432
  throw new Error(`Unsupported build kind '${buildKind}'`)
436
433
  }
437
434
 
438
- const packagePath = await loadPackage(packageName)
435
+ const packagePath = await loadPackage(packageName, callbacks)
439
436
 
440
- let filename = 'whisper-cli' // used to be called 'main' but 'main' is now deprecated
437
+ let filename = 'whisper-cli'
441
438
 
442
439
  if (platform === 'win32') {
443
440
  filename += '.exe'
@@ -446,37 +443,7 @@ export async function loadExecutablePackage(buildKind: WhisperCppBuild) {
446
443
  return joinPath(packagePath, filename)
447
444
  }
448
445
 
449
- function getModelNameFromModelId(modelId: WhisperCppModelId): WhisperModelName {
450
- if (modelId.startsWith('large-v1')) {
451
- return 'large-v1'
452
- }
453
-
454
- if (modelId.startsWith('large-v2')) {
455
- return 'large-v2'
456
- }
457
-
458
- if (modelId.startsWith('large-v3-turbo')) {
459
- return 'large-v3-turbo'
460
- }
461
-
462
- if (modelId.startsWith('large-v3')) {
463
- return 'large-v3'
464
- }
465
-
466
- const lastDashIndex = modelId.lastIndexOf('-')
467
-
468
- let modelName: string
469
-
470
- if (lastDashIndex >= 0) {
471
- modelName = modelId.substring(0, lastDashIndex) as WhisperModelName
472
- } else {
473
- modelName = modelId
474
- }
475
-
476
- return modelName as WhisperModelName
477
- }
478
-
479
- export interface WhisperCppVerboseResult {
446
+ export interface WhisperCppCliVerboseResult {
480
447
  model: {
481
448
  type: string
482
449
  multilingual: boolean
@@ -535,13 +502,13 @@ interface RecognitionResult {
535
502
  language?: string
536
503
  }
537
504
 
538
- export interface WhisperCppOptions {
539
- build?: WhisperCppBuild
505
+ export interface WhisperCppCliOptions {
506
+ build?: WhisperCppCliBuild
540
507
  executablePath?: string
541
- enableGPU?: boolean
542
508
 
543
- model?: WhisperCppModelId
509
+ model?: WhisperQuantizedModelId
544
510
 
511
+ enableGPU?: boolean
545
512
  threadCount?: number,
546
513
  splitCount?: number,
547
514
 
@@ -559,15 +526,15 @@ export interface WhisperCppOptions {
559
526
  verbose?: boolean
560
527
  }
561
528
 
562
- export const defaultWhisperCppOptions: WhisperCppOptions = {
529
+ export const defaultWhisperCppCliOptions: WhisperCppCliOptions = {
563
530
  build: undefined,
564
531
  executablePath: undefined,
565
532
 
566
533
  model: undefined,
567
534
 
535
+ enableGPU: undefined,
568
536
  threadCount: 4,
569
537
  splitCount: 1,
570
- enableGPU: undefined,
571
538
 
572
539
  topCandidateCount: 5,
573
540
  beamCount: 5,
@@ -583,30 +550,3 @@ export const defaultWhisperCppOptions: WhisperCppOptions = {
583
550
 
584
551
  verbose: false,
585
552
  }
586
-
587
- export type WhisperCppModelId =
588
- 'tiny' |
589
- 'tiny-q5_1' |
590
- 'tiny.en' |
591
- 'tiny.en-q5_1' |
592
- 'tiny.en-q8_0' |
593
- 'base' |
594
- 'base-q5_1' |
595
- 'base.en' |
596
- 'base.en-q5_1' |
597
- 'small' |
598
- 'small-q5_1' |
599
- 'small.en' |
600
- 'small.en-q5_1' |
601
- 'medium' |
602
- 'medium-q5_0' |
603
- 'medium.en' |
604
- 'medium.en-q5_0' |
605
- 'large' |
606
- 'large-v1' |
607
- 'large-v2' |
608
- 'large-v2-q5_0' |
609
- 'large-v3' |
610
- 'large-v3-q5_0' |
611
- `large-v3-turbo` |
612
- `large-v3-turbo-q5_0`