echogarden 2.10.1 → 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 (595) 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.d.ts +1 -0
  7. package/dist/alignment/DTWMfccSequenceAlignment.d.ts.map +1 -0
  8. package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -1
  9. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -0
  10. package/dist/alignment/DTWSequenceAlignment.d.ts.map +1 -0
  11. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -0
  12. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts.map +1 -0
  13. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -0
  14. package/dist/alignment/LevenshteinSequenceAlignment.d.ts.map +1 -0
  15. package/dist/alignment/SemanticTextAlignment.d.ts +5 -2
  16. package/dist/alignment/SemanticTextAlignment.d.ts.map +1 -0
  17. package/dist/alignment/SemanticTextAlignment.js +7 -7
  18. package/dist/alignment/SemanticTextAlignment.js.map +1 -1
  19. package/dist/alignment/SpeechAlignment.d.ts +10 -10
  20. package/dist/alignment/SpeechAlignment.d.ts.map +1 -0
  21. package/dist/alignment/SpeechAlignment.js +23 -96
  22. package/dist/alignment/SpeechAlignment.js.map +1 -1
  23. package/dist/api/API.d.ts +1 -0
  24. package/dist/api/API.d.ts.map +1 -0
  25. package/dist/api/APIOptions.d.ts +2 -1
  26. package/dist/api/APIOptions.d.ts.map +1 -0
  27. package/dist/api/Alignment.d.ts +9 -6
  28. package/dist/api/Alignment.d.ts.map +1 -0
  29. package/dist/api/Alignment.js +31 -40
  30. package/dist/api/Alignment.js.map +1 -1
  31. package/dist/api/Common.d.ts +8 -0
  32. package/dist/api/Common.d.ts.map +1 -0
  33. package/dist/api/Common.js.map +1 -1
  34. package/dist/api/Denoising.d.ts +6 -2
  35. package/dist/api/Denoising.d.ts.map +1 -0
  36. package/dist/api/Denoising.js +15 -15
  37. package/dist/api/Denoising.js.map +1 -1
  38. package/dist/api/GlobalOptions.d.ts +3 -8
  39. package/dist/api/GlobalOptions.d.ts.map +1 -0
  40. package/dist/api/GlobalOptions.js +2 -13
  41. package/dist/api/GlobalOptions.js.map +1 -1
  42. package/dist/api/LanguageDetectionCommon.d.ts +1 -0
  43. package/dist/api/LanguageDetectionCommon.d.ts.map +1 -0
  44. package/dist/api/Recognition.d.ts +12 -12
  45. package/dist/api/Recognition.d.ts.map +1 -0
  46. package/dist/api/Recognition.js +32 -82
  47. package/dist/api/Recognition.js.map +1 -1
  48. package/dist/api/SourceSeparation.d.ts +8 -2
  49. package/dist/api/SourceSeparation.d.ts.map +1 -0
  50. package/dist/api/SourceSeparation.js +12 -10
  51. package/dist/api/SourceSeparation.js.map +1 -1
  52. package/dist/api/SpeechLanguageDetection.d.ts +12 -7
  53. package/dist/api/SpeechLanguageDetection.d.ts.map +1 -0
  54. package/dist/api/SpeechLanguageDetection.js +37 -30
  55. package/dist/api/SpeechLanguageDetection.js.map +1 -1
  56. package/dist/api/SpeechSearch.d.ts +5 -1
  57. package/dist/api/SpeechSearch.d.ts.map +1 -0
  58. package/dist/api/SpeechSearch.js.map +1 -1
  59. package/dist/api/SpeechTranslation.d.ts +11 -6
  60. package/dist/api/SpeechTranslation.d.ts.map +1 -0
  61. package/dist/api/SpeechTranslation.js +28 -26
  62. package/dist/api/SpeechTranslation.js.map +1 -1
  63. package/dist/api/Synthesis.d.ts +14 -8
  64. package/dist/api/Synthesis.d.ts.map +1 -0
  65. package/dist/api/Synthesis.js +67 -89
  66. package/dist/api/Synthesis.js.map +1 -1
  67. package/dist/api/TextLanguageDetection.d.ts +5 -2
  68. package/dist/api/TextLanguageDetection.d.ts.map +1 -0
  69. package/dist/api/TextLanguageDetection.js +4 -7
  70. package/dist/api/TextLanguageDetection.js.map +1 -1
  71. package/dist/api/TextTranslation.d.ts +5 -2
  72. package/dist/api/TextTranslation.d.ts.map +1 -0
  73. package/dist/api/TextTranslation.js +13 -24
  74. package/dist/api/TextTranslation.js.map +1 -1
  75. package/dist/api/TimelineTranslationAlignment.d.ts +7 -3
  76. package/dist/api/TimelineTranslationAlignment.d.ts.map +1 -0
  77. package/dist/api/TimelineTranslationAlignment.js +20 -11
  78. package/dist/api/TimelineTranslationAlignment.js.map +1 -1
  79. package/dist/api/TranscriptAndTranslationAlignment.d.ts +7 -4
  80. package/dist/api/TranscriptAndTranslationAlignment.d.ts.map +1 -0
  81. package/dist/api/TranscriptAndTranslationAlignment.js +11 -12
  82. package/dist/api/TranscriptAndTranslationAlignment.js.map +1 -1
  83. package/dist/api/TranslationAlignment.d.ts +7 -4
  84. package/dist/api/TranslationAlignment.d.ts.map +1 -0
  85. package/dist/api/TranslationAlignment.js +20 -21
  86. package/dist/api/TranslationAlignment.js.map +1 -1
  87. package/dist/api/VoiceActivityDetection.d.ts +10 -8
  88. package/dist/api/VoiceActivityDetection.d.ts.map +1 -0
  89. package/dist/api/VoiceActivityDetection.js +20 -43
  90. package/dist/api/VoiceActivityDetection.js.map +1 -1
  91. package/dist/audio/AudioBufferConversion.d.ts +1 -0
  92. package/dist/audio/AudioBufferConversion.d.ts.map +1 -0
  93. package/dist/audio/AudioBufferConversion.js.map +1 -1
  94. package/dist/audio/AudioPlayer.d.ts +2 -3
  95. package/dist/audio/AudioPlayer.d.ts.map +1 -0
  96. package/dist/audio/AudioPlayer.js +3 -188
  97. package/dist/audio/AudioPlayer.js.map +1 -1
  98. package/dist/audio/AudioUtilities.d.ts +3 -1
  99. package/dist/audio/AudioUtilities.d.ts.map +1 -0
  100. package/dist/audio/AudioUtilities.js +2 -2
  101. package/dist/audio/AudioUtilities.js.map +1 -1
  102. package/dist/build-tools/MakeTarballsForInstalledPackages.d.ts +1 -0
  103. package/dist/build-tools/MakeTarballsForInstalledPackages.d.ts.map +1 -0
  104. package/dist/build-tools/MakeTarballsForInstalledPackages.js +3 -3
  105. package/dist/build-tools/MakeTarballsForInstalledPackages.js.map +1 -1
  106. package/dist/cli/CLI.d.ts +1 -0
  107. package/dist/cli/CLI.d.ts.map +1 -0
  108. package/dist/cli/CLI.js +139 -92
  109. package/dist/cli/CLI.js.map +1 -1
  110. package/dist/cli/CLIConfigFile.d.ts +1 -0
  111. package/dist/cli/CLIConfigFile.d.ts.map +1 -0
  112. package/dist/cli/CLILauncher.d.ts +1 -0
  113. package/dist/cli/CLILauncher.d.ts.map +1 -0
  114. package/dist/cli/CLIOptions.d.ts +1 -0
  115. package/dist/cli/CLIOptions.d.ts.map +1 -0
  116. package/dist/cli/CLIOptionsSchema.d.ts +1 -0
  117. package/dist/cli/CLIOptionsSchema.d.ts.map +1 -0
  118. package/dist/cli/CLIParser.d.ts +1 -0
  119. package/dist/cli/CLIParser.d.ts.map +1 -0
  120. package/dist/cli/CLIStarter.d.ts +1 -0
  121. package/dist/cli/CLIStarter.d.ts.map +1 -0
  122. package/dist/codecs/FFMpegTranscoder.d.ts +5 -3
  123. package/dist/codecs/FFMpegTranscoder.d.ts.map +1 -0
  124. package/dist/codecs/FFMpegTranscoder.js +16 -14
  125. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  126. package/dist/codecs/TIMITCodec.d.ts +1 -0
  127. package/dist/codecs/TIMITCodec.d.ts.map +1 -0
  128. package/dist/data-structures/DynamicTypedArray.d.ts +1 -0
  129. package/dist/data-structures/DynamicTypedArray.d.ts.map +1 -0
  130. package/dist/data-structures/DynamicTypedArray.js.map +1 -1
  131. package/dist/data-structures/Queue.d.ts +1 -0
  132. package/dist/data-structures/Queue.d.ts.map +1 -0
  133. package/dist/data-structures/WindowedList.d.ts +1 -0
  134. package/dist/data-structures/WindowedList.d.ts.map +1 -0
  135. package/dist/data-structures/WindowedList.js.map +1 -1
  136. package/dist/denoising/NSNet2.d.ts +4 -2
  137. package/dist/denoising/NSNet2.d.ts.map +1 -0
  138. package/dist/denoising/NSNet2.js +4 -4
  139. package/dist/denoising/NSNet2.js.map +1 -1
  140. package/dist/denoising/RNNoise.d.ts +3 -1
  141. package/dist/denoising/RNNoise.d.ts.map +1 -0
  142. package/dist/denoising/RNNoise.js +10 -6
  143. package/dist/denoising/RNNoise.js.map +1 -1
  144. package/dist/dsp/BiquadFilter.d.ts +1 -0
  145. package/dist/dsp/BiquadFilter.d.ts.map +1 -0
  146. package/dist/dsp/DecayingPeakEstimator.d.ts +1 -0
  147. package/dist/dsp/DecayingPeakEstimator.d.ts.map +1 -0
  148. package/dist/dsp/DecayingPeakEstimator.js.map +1 -1
  149. package/dist/dsp/FFT.d.ts +1 -0
  150. package/dist/dsp/FFT.d.ts.map +1 -0
  151. package/dist/dsp/FFT.js +2 -1
  152. package/dist/dsp/FFT.js.map +1 -1
  153. package/dist/dsp/KWeightingFilter.d.ts +1 -0
  154. package/dist/dsp/KWeightingFilter.d.ts.map +1 -0
  155. package/dist/dsp/KWeightingFilter.js.map +1 -1
  156. package/dist/dsp/LoudnessEstimator.d.ts +1 -0
  157. package/dist/dsp/LoudnessEstimator.d.ts.map +1 -0
  158. package/dist/dsp/LoudnessEstimator.js.map +1 -1
  159. package/dist/dsp/MFCC.d.ts +4 -2
  160. package/dist/dsp/MFCC.d.ts.map +1 -0
  161. package/dist/dsp/MFCC.js +4 -4
  162. package/dist/dsp/MFCC.js.map +1 -1
  163. package/dist/dsp/MelSpectrogram.d.ts +11 -8
  164. package/dist/dsp/MelSpectrogram.d.ts.map +1 -0
  165. package/dist/dsp/MelSpectrogram.js +31 -34
  166. package/dist/dsp/MelSpectrogram.js.map +1 -1
  167. package/dist/dsp/Rubberband.d.ts +1 -0
  168. package/dist/dsp/Rubberband.d.ts.map +1 -0
  169. package/dist/dsp/Rubberband.js +8 -3
  170. package/dist/dsp/Rubberband.js.map +1 -1
  171. package/dist/dsp/Sonic.d.ts +1 -0
  172. package/dist/dsp/Sonic.d.ts.map +1 -0
  173. package/dist/dsp/Sonic.js +1 -1
  174. package/dist/dsp/Sonic.js.map +1 -1
  175. package/dist/dsp/SpeexResampler.d.ts +1 -0
  176. package/dist/dsp/SpeexResampler.d.ts.map +1 -0
  177. package/dist/dsp/SpeexResampler.js +1 -1
  178. package/dist/dsp/SpeexResampler.js.map +1 -1
  179. package/dist/encodings/Ascii.d.ts +2 -1
  180. package/dist/encodings/Ascii.d.ts.map +1 -0
  181. package/dist/encodings/Base64.d.ts +1 -0
  182. package/dist/encodings/Base64.d.ts.map +1 -0
  183. package/dist/encodings/Base64.js.map +1 -1
  184. package/dist/encodings/Hex.d.ts +1 -0
  185. package/dist/encodings/Hex.d.ts.map +1 -0
  186. package/dist/encodings/HtmlEscape.d.ts +1 -0
  187. package/dist/encodings/HtmlEscape.d.ts.map +1 -0
  188. package/dist/encodings/LEB128.d.ts +1 -0
  189. package/dist/encodings/LEB128.d.ts.map +1 -0
  190. package/dist/encodings/TextEncodingsCommon.d.ts +1 -0
  191. package/dist/encodings/TextEncodingsCommon.d.ts.map +1 -0
  192. package/dist/encodings/Utf16.d.ts +1 -0
  193. package/dist/encodings/Utf16.d.ts.map +1 -0
  194. package/dist/encodings/Utf32.d.ts +1 -0
  195. package/dist/encodings/Utf32.d.ts.map +1 -0
  196. package/dist/encodings/Utf8.d.ts +1 -0
  197. package/dist/encodings/Utf8.d.ts.map +1 -0
  198. package/dist/math/MedianFilter.d.ts +1 -0
  199. package/dist/math/MedianFilter.d.ts.map +1 -0
  200. package/dist/math/VectorMath.d.ts +2 -0
  201. package/dist/math/VectorMath.d.ts.map +1 -0
  202. package/dist/math/VectorMath.js +9 -5
  203. package/dist/math/VectorMath.js.map +1 -1
  204. package/dist/nlp/ChineseSegmentation.d.ts +2 -1
  205. package/dist/nlp/ChineseSegmentation.d.ts.map +1 -0
  206. package/dist/nlp/EspeakPhonemizer.d.ts +2 -1
  207. package/dist/nlp/EspeakPhonemizer.d.ts.map +1 -0
  208. package/dist/nlp/EspeakPhonemizer.js +2 -2
  209. package/dist/nlp/EspeakPhonemizer.js.map +1 -1
  210. package/dist/nlp/IPA.d.ts +3 -2
  211. package/dist/nlp/IPA.d.ts.map +1 -0
  212. package/dist/nlp/JapaneseSegmentation.d.ts +1 -0
  213. package/dist/nlp/JapaneseSegmentation.d.ts.map +1 -0
  214. package/dist/nlp/Lexicon.d.ts +1 -0
  215. package/dist/nlp/Lexicon.d.ts.map +1 -0
  216. package/dist/nlp/PhoneConversion.d.ts +1 -0
  217. package/dist/nlp/PhoneConversion.d.ts.map +1 -0
  218. package/dist/nlp/Segmentation.d.ts +2 -1
  219. package/dist/nlp/Segmentation.d.ts.map +1 -0
  220. package/dist/nlp/Segmentation.js +8 -4
  221. package/dist/nlp/Segmentation.js.map +1 -1
  222. package/dist/nlp/TextNormalizer.d.ts +1 -0
  223. package/dist/nlp/TextNormalizer.d.ts.map +1 -0
  224. package/dist/recognition/AmazonTranscribeSTT.d.ts +3 -1
  225. package/dist/recognition/AmazonTranscribeSTT.d.ts.map +1 -0
  226. package/dist/recognition/AmazonTranscribeSTT.js +3 -3
  227. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  228. package/dist/recognition/AzureCognitiveServicesSTT.d.ts +3 -1
  229. package/dist/recognition/AzureCognitiveServicesSTT.d.ts.map +1 -0
  230. package/dist/recognition/AzureCognitiveServicesSTT.js +4 -4
  231. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
  232. package/dist/recognition/DeepgramSTT.d.ts +3 -1
  233. package/dist/recognition/DeepgramSTT.d.ts.map +1 -0
  234. package/dist/recognition/DeepgramSTT.js +12 -13
  235. package/dist/recognition/DeepgramSTT.js.map +1 -1
  236. package/dist/recognition/GoogleCloudSTT.d.ts +3 -1
  237. package/dist/recognition/GoogleCloudSTT.d.ts.map +1 -0
  238. package/dist/recognition/GoogleCloudSTT.js +11 -10
  239. package/dist/recognition/GoogleCloudSTT.js.map +1 -1
  240. package/dist/recognition/OpenAICloudSTT.d.ts +3 -1
  241. package/dist/recognition/OpenAICloudSTT.d.ts.map +1 -0
  242. package/dist/recognition/OpenAICloudSTT.js +6 -6
  243. package/dist/recognition/OpenAICloudSTT.js.map +1 -1
  244. package/dist/recognition/WhisperCommon.d.ts +9 -0
  245. package/dist/recognition/WhisperCommon.d.ts.map +1 -0
  246. package/dist/recognition/WhisperCommon.js +52 -0
  247. package/dist/recognition/WhisperCommon.js.map +1 -0
  248. package/dist/recognition/{WhisperCppSTT.d.ts → WhisperCppCliSTT.d.ts} +14 -15
  249. package/dist/recognition/WhisperCppCliSTT.d.ts.map +1 -0
  250. package/dist/recognition/{WhisperCppSTT.js → WhisperCppCliSTT.js} +55 -84
  251. package/dist/recognition/WhisperCppCliSTT.js.map +1 -0
  252. package/dist/recognition/WhisperSTT.d.ts +73 -85
  253. package/dist/recognition/WhisperSTT.d.ts.map +1 -0
  254. package/dist/recognition/WhisperSTT.js +384 -519
  255. package/dist/recognition/WhisperSTT.js.map +1 -1
  256. package/dist/server/Client.d.ts +3 -2
  257. package/dist/server/Client.d.ts.map +1 -0
  258. package/dist/server/Client.js.map +1 -1
  259. package/dist/server/Server.d.ts +1 -0
  260. package/dist/server/Server.d.ts.map +1 -0
  261. package/dist/server/ServerStarter.d.ts +1 -0
  262. package/dist/server/ServerStarter.d.ts.map +1 -0
  263. package/dist/server/Worker.d.ts +7 -7
  264. package/dist/server/Worker.d.ts.map +1 -0
  265. package/dist/server/Worker.js +42 -44
  266. package/dist/server/Worker.js.map +1 -1
  267. package/dist/server/WorkerStarter.d.ts +1 -0
  268. package/dist/server/WorkerStarter.d.ts.map +1 -0
  269. package/dist/source-separation/MDXNetSourceSeparation.d.ts +4 -2
  270. package/dist/source-separation/MDXNetSourceSeparation.d.ts.map +1 -0
  271. package/dist/source-separation/MDXNetSourceSeparation.js +10 -8
  272. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
  273. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts +4 -2
  274. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts.map +1 -0
  275. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js +5 -5
  276. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js.map +1 -1
  277. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +6 -3
  278. package/dist/speech-language-detection/SileroLanguageDetection.d.ts.map +1 -0
  279. package/dist/speech-language-detection/SileroLanguageDetection.js +8 -8
  280. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -1
  281. package/dist/speech-search/DTWSpeechSearch.d.ts +3 -1
  282. package/dist/speech-search/DTWSpeechSearch.d.ts.map +1 -0
  283. package/dist/speech-search/DTWSpeechSearch.js +4 -4
  284. package/dist/speech-search/DTWSpeechSearch.js.map +1 -1
  285. package/dist/subtitles/Subtitles.d.ts +14 -1
  286. package/dist/subtitles/Subtitles.d.ts.map +1 -0
  287. package/dist/subtitles/Subtitles.js +22 -22
  288. package/dist/subtitles/Subtitles.js.map +1 -1
  289. package/dist/synthesis/AwsPollyTTS.d.ts +4 -2
  290. package/dist/synthesis/AwsPollyTTS.d.ts.map +1 -0
  291. package/dist/synthesis/AwsPollyTTS.js +5 -5
  292. package/dist/synthesis/AwsPollyTTS.js.map +1 -1
  293. package/dist/synthesis/AzureCognitiveServicesTTS.d.ts +3 -1
  294. package/dist/synthesis/AzureCognitiveServicesTTS.d.ts.map +1 -0
  295. package/dist/synthesis/AzureCognitiveServicesTTS.js +3 -3
  296. package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -1
  297. package/dist/synthesis/CoquiServerTTS.d.ts +3 -1
  298. package/dist/synthesis/CoquiServerTTS.d.ts.map +1 -0
  299. package/dist/synthesis/CoquiServerTTS.js +7 -8
  300. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  301. package/dist/synthesis/DeepgramTTS.d.ts +3 -2
  302. package/dist/synthesis/DeepgramTTS.d.ts.map +1 -0
  303. package/dist/synthesis/DeepgramTTS.js +13 -13
  304. package/dist/synthesis/DeepgramTTS.js.map +1 -1
  305. package/dist/synthesis/ElevenLabsTTS.d.ts +4 -3
  306. package/dist/synthesis/ElevenLabsTTS.d.ts.map +1 -0
  307. package/dist/synthesis/ElevenLabsTTS.js +22 -21
  308. package/dist/synthesis/ElevenLabsTTS.js.map +1 -1
  309. package/dist/synthesis/EspeakTTS.d.ts +12 -9
  310. package/dist/synthesis/EspeakTTS.d.ts.map +1 -0
  311. package/dist/synthesis/EspeakTTS.js +118 -68
  312. package/dist/synthesis/EspeakTTS.js.map +1 -1
  313. package/dist/synthesis/FliteTTS.d.ts +3 -2
  314. package/dist/synthesis/FliteTTS.d.ts.map +1 -0
  315. package/dist/synthesis/FliteTTS.js +2 -2
  316. package/dist/synthesis/FliteTTS.js.map +1 -1
  317. package/dist/synthesis/GnuSpeechTTS.d.ts +3 -2
  318. package/dist/synthesis/GnuSpeechTTS.d.ts.map +1 -0
  319. package/dist/synthesis/GnuSpeechTTS.js +1 -1
  320. package/dist/synthesis/GnuSpeechTTS.js.map +1 -1
  321. package/dist/synthesis/GoogleCloudTTS.d.ts +4 -2
  322. package/dist/synthesis/GoogleCloudTTS.d.ts.map +1 -0
  323. package/dist/synthesis/GoogleCloudTTS.js +15 -14
  324. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  325. package/dist/synthesis/GoogleTranslateTTS.d.ts +4 -2
  326. package/dist/synthesis/GoogleTranslateTTS.d.ts.map +1 -0
  327. package/dist/synthesis/GoogleTranslateTTS.js +11 -11
  328. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  329. package/dist/synthesis/KokoroTTS.d.ts +5 -4
  330. package/dist/synthesis/KokoroTTS.d.ts.map +1 -0
  331. package/dist/synthesis/KokoroTTS.js +11 -10
  332. package/dist/synthesis/KokoroTTS.js.map +1 -1
  333. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +5 -3
  334. package/dist/synthesis/MicrosoftEdgeTTS.d.ts.map +1 -0
  335. package/dist/synthesis/MicrosoftEdgeTTS.js +41 -20
  336. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
  337. package/dist/synthesis/OpenAICloudTTS.d.ts +3 -2
  338. package/dist/synthesis/OpenAICloudTTS.d.ts.map +1 -0
  339. package/dist/synthesis/OpenAICloudTTS.js +6 -5
  340. package/dist/synthesis/OpenAICloudTTS.js.map +1 -1
  341. package/dist/synthesis/SamTTS.d.ts +3 -1
  342. package/dist/synthesis/SamTTS.d.ts.map +1 -0
  343. package/dist/synthesis/SamTTS.js +2 -2
  344. package/dist/synthesis/SamTTS.js.map +1 -1
  345. package/dist/synthesis/SapiTTS.d.ts +3 -2
  346. package/dist/synthesis/SapiTTS.d.ts.map +1 -0
  347. package/dist/synthesis/SapiTTS.js +2 -2
  348. package/dist/synthesis/SapiTTS.js.map +1 -1
  349. package/dist/synthesis/SvoxPicoTTS.d.ts +3 -2
  350. package/dist/synthesis/SvoxPicoTTS.d.ts.map +1 -0
  351. package/dist/synthesis/SvoxPicoTTS.js +3 -3
  352. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  353. package/dist/synthesis/VitsTTS.d.ts +4 -3
  354. package/dist/synthesis/VitsTTS.d.ts.map +1 -0
  355. package/dist/synthesis/VitsTTS.js +14 -11
  356. package/dist/synthesis/VitsTTS.js.map +1 -1
  357. package/dist/tests/Test.d.ts +1 -0
  358. package/dist/tests/Test.d.ts.map +1 -0
  359. package/dist/text-language-detection/FastTextLanguageDetection.d.ts +1 -0
  360. package/dist/text-language-detection/FastTextLanguageDetection.d.ts.map +1 -0
  361. package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +1 -0
  362. package/dist/text-language-detection/TinyLDLanguageDetection.d.ts.map +1 -0
  363. package/dist/text-translation/DeepLTextTranslation.d.ts +3 -2
  364. package/dist/text-translation/DeepLTextTranslation.d.ts.map +1 -0
  365. package/dist/text-translation/DeepLTextTranslation.js +10 -9
  366. package/dist/text-translation/DeepLTextTranslation.js.map +1 -1
  367. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts +5 -4
  368. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts.map +1 -0
  369. package/dist/text-translation/GoogleTranslateTextTranslation.js +20 -18
  370. package/dist/text-translation/GoogleTranslateTextTranslation.js.map +1 -1
  371. package/dist/text-translation/NLLBTextTranslation.d.ts +3 -2
  372. package/dist/text-translation/NLLBTextTranslation.d.ts.map +1 -0
  373. package/dist/text-translation/NLLBTextTranslation.js +4 -6
  374. package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
  375. package/dist/typings/TypedArray.d.ts +1 -0
  376. package/dist/typings/TypedArray.d.ts.map +1 -0
  377. package/dist/utilities/BrowserRequestHeaders.d.ts +1 -0
  378. package/dist/utilities/BrowserRequestHeaders.d.ts.map +1 -0
  379. package/dist/utilities/Compression.d.ts +5 -3
  380. package/dist/utilities/Compression.d.ts.map +1 -0
  381. package/dist/utilities/Compression.js +9 -9
  382. package/dist/utilities/Compression.js.map +1 -1
  383. package/dist/utilities/FileDownloader.d.ts +7 -3
  384. package/dist/utilities/FileDownloader.d.ts.map +1 -0
  385. package/dist/utilities/FileDownloader.js +25 -21
  386. package/dist/utilities/FileDownloader.js.map +1 -1
  387. package/dist/utilities/FileReader.d.ts +1 -0
  388. package/dist/utilities/FileReader.d.ts.map +1 -0
  389. package/dist/utilities/FileReader.js.map +1 -1
  390. package/dist/utilities/FileSystem.d.ts +1 -0
  391. package/dist/utilities/FileSystem.d.ts.map +1 -0
  392. package/dist/utilities/FileSystem.js +1 -1
  393. package/dist/utilities/FileSystem.js.map +1 -1
  394. package/dist/utilities/FileWriter.d.ts +1 -0
  395. package/dist/utilities/FileWriter.d.ts.map +1 -0
  396. package/dist/utilities/FileWriter.js.map +1 -1
  397. package/dist/utilities/Hashing.d.ts +1 -0
  398. package/dist/utilities/Hashing.d.ts.map +1 -0
  399. package/dist/utilities/Hashing.js.map +1 -1
  400. package/dist/utilities/Locale.d.ts +1 -0
  401. package/dist/utilities/Locale.d.ts.map +1 -0
  402. package/dist/utilities/Locale.js.map +1 -1
  403. package/dist/utilities/Logger.d.ts +18 -9
  404. package/dist/utilities/Logger.d.ts.map +1 -0
  405. package/dist/utilities/Logger.js +50 -35
  406. package/dist/utilities/Logger.js.map +1 -1
  407. package/dist/utilities/NpmUtilities.d.ts +1 -0
  408. package/dist/utilities/NpmUtilities.d.ts.map +1 -0
  409. package/dist/utilities/NpmUtilities.js +4 -5
  410. package/dist/utilities/NpmUtilities.js.map +1 -1
  411. package/dist/utilities/ObjectUtilities.d.ts +1 -0
  412. package/dist/utilities/ObjectUtilities.d.ts.map +1 -0
  413. package/dist/utilities/ObjectUtilities.js.map +1 -1
  414. package/dist/utilities/OnnxUtilities.d.ts +1 -0
  415. package/dist/utilities/OnnxUtilities.d.ts.map +1 -0
  416. package/dist/utilities/OpenPromise.d.ts +1 -0
  417. package/dist/utilities/OpenPromise.d.ts.map +1 -0
  418. package/dist/utilities/OpenPromise.js.map +1 -1
  419. package/dist/utilities/PackageManager.d.ts +5 -1
  420. package/dist/utilities/PackageManager.d.ts.map +1 -0
  421. package/dist/utilities/PackageManager.js +37 -22
  422. package/dist/utilities/PackageManager.js.map +1 -1
  423. package/dist/utilities/PathUtilities.d.ts +3 -0
  424. package/dist/utilities/PathUtilities.d.ts.map +1 -0
  425. package/dist/utilities/PathUtilities.js +5 -2
  426. package/dist/utilities/PathUtilities.js.map +1 -1
  427. package/dist/utilities/RandomGenerator.d.ts +1 -0
  428. package/dist/utilities/RandomGenerator.d.ts.map +1 -0
  429. package/dist/utilities/SignalChannel.d.ts +1 -0
  430. package/dist/utilities/SignalChannel.d.ts.map +1 -0
  431. package/dist/utilities/SmoothEstimator.d.ts +1 -0
  432. package/dist/utilities/SmoothEstimator.d.ts.map +1 -0
  433. package/dist/utilities/SmoothEstimator.js.map +1 -1
  434. package/dist/utilities/StringBuilder.d.ts +1 -0
  435. package/dist/utilities/StringBuilder.d.ts.map +1 -0
  436. package/dist/utilities/StringUtilities.d.ts +1 -0
  437. package/dist/utilities/StringUtilities.d.ts.map +1 -0
  438. package/dist/utilities/TarballMaker.d.ts +5 -3
  439. package/dist/utilities/TarballMaker.d.ts.map +1 -0
  440. package/dist/utilities/TarballMaker.js +6 -6
  441. package/dist/utilities/TarballMaker.js.map +1 -1
  442. package/dist/utilities/Timeline.d.ts +1 -0
  443. package/dist/utilities/Timeline.d.ts.map +1 -0
  444. package/dist/utilities/Timeline.js.map +1 -1
  445. package/dist/utilities/Timer.d.ts +1 -0
  446. package/dist/utilities/Timer.d.ts.map +1 -0
  447. package/dist/utilities/Utilities.d.ts +10 -7
  448. package/dist/utilities/Utilities.d.ts.map +1 -0
  449. package/dist/utilities/Utilities.js +49 -31
  450. package/dist/utilities/Utilities.js.map +1 -1
  451. package/dist/utilities/VirtualFileReadStream.d.ts +1 -0
  452. package/dist/utilities/VirtualFileReadStream.d.ts.map +1 -0
  453. package/dist/utilities/WebReader.d.ts +3 -1
  454. package/dist/utilities/WebReader.d.ts.map +1 -0
  455. package/dist/utilities/WebReader.js +7 -6
  456. package/dist/utilities/WebReader.js.map +1 -1
  457. package/dist/utilities/WikipediaReader.d.ts +3 -1
  458. package/dist/utilities/WikipediaReader.d.ts.map +1 -0
  459. package/dist/utilities/WikipediaReader.js +1 -5
  460. package/dist/utilities/WikipediaReader.js.map +1 -1
  461. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +3 -1
  462. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts.map +1 -0
  463. package/dist/voice-activity-detection/AdaptiveGateVAD.js +1 -1
  464. package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -1
  465. package/dist/voice-activity-detection/SileroVAD.d.ts +1 -0
  466. package/dist/voice-activity-detection/SileroVAD.d.ts.map +1 -0
  467. package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
  468. package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -0
  469. package/dist/voice-activity-detection/WebRtcVAD.d.ts.map +1 -0
  470. package/dist/voice-activity-detection/WebRtcVAD.js +1 -1
  471. package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -1
  472. package/docs/API.md +62 -17
  473. package/docs/CUDA.md +4 -3
  474. package/docs/Engines.md +8 -7
  475. package/docs/Licenses.md +0 -3
  476. package/docs/Options.md +27 -31
  477. package/docs/Server.md +1 -0
  478. package/docs/Tasklist.md +2 -1
  479. package/docs/Technical.md +2 -2
  480. package/package.json +45 -35
  481. package/src/alignment/SemanticTextAlignment.ts +14 -7
  482. package/src/alignment/SpeechAlignment.ts +47 -150
  483. package/src/api/APIOptions.ts +1 -1
  484. package/src/api/Alignment.ts +95 -61
  485. package/src/api/Common.ts +11 -0
  486. package/src/api/Denoising.ts +22 -17
  487. package/src/api/GlobalOptions.ts +4 -20
  488. package/src/api/Recognition.ts +106 -123
  489. package/src/api/SourceSeparation.ts +39 -21
  490. package/src/api/SpeechLanguageDetection.ts +77 -37
  491. package/src/api/SpeechSearch.ts +6 -1
  492. package/src/api/SpeechTranslation.ts +75 -38
  493. package/src/api/Synthesis.ts +220 -116
  494. package/src/api/TextLanguageDetection.ts +10 -12
  495. package/src/api/TextTranslation.ts +43 -26
  496. package/src/api/TimelineTranslationAlignment.ts +41 -13
  497. package/src/api/TranscriptAndTranslationAlignment.ts +28 -15
  498. package/src/api/TranslationAlignment.ts +53 -24
  499. package/src/api/VoiceActivityDetection.ts +33 -68
  500. package/src/audio/AudioPlayer.ts +4 -232
  501. package/src/audio/AudioUtilities.ts +9 -2
  502. package/src/build-tools/MakeTarballsForInstalledPackages.ts +4 -3
  503. package/src/cli/CLI.ts +209 -101
  504. package/src/codecs/FFMpegTranscoder.ts +18 -16
  505. package/src/denoising/NSNet2.ts +5 -4
  506. package/src/denoising/RNNoise.ts +14 -6
  507. package/src/dsp/FFT.ts +2 -1
  508. package/src/dsp/MFCC.ts +7 -5
  509. package/src/dsp/MelSpectrogram.ts +56 -36
  510. package/src/dsp/Rubberband.ts +10 -3
  511. package/src/dsp/Sonic.ts +2 -1
  512. package/src/dsp/SpeexResampler.ts +2 -1
  513. package/src/encodings/Ascii.ts +1 -1
  514. package/src/encodings/Base64.ts +1 -1
  515. package/src/math/VectorMath.ts +10 -6
  516. package/src/nlp/EspeakPhonemizer.ts +2 -2
  517. package/src/nlp/Segmentation.ts +9 -4
  518. package/src/recognition/AmazonTranscribeSTT.ts +4 -3
  519. package/src/recognition/AzureCognitiveServicesSTT.ts +5 -4
  520. package/src/recognition/DeepgramSTT.ts +16 -16
  521. package/src/recognition/GoogleCloudSTT.ts +14 -12
  522. package/src/recognition/OpenAICloudSTT.ts +12 -6
  523. package/src/recognition/WhisperCommon.ts +130 -0
  524. package/src/recognition/{WhisperCppSTT.ts → WhisperCppCliSTT.ts} +73 -133
  525. package/src/recognition/WhisperSTT.ts +569 -718
  526. package/src/server/Client.ts +4 -4
  527. package/src/server/Worker.ts +59 -59
  528. package/src/source-separation/MDXNetSourceSeparation.ts +15 -10
  529. package/src/speech-embeddings/WavToVec2BertFeatureEmbeddings.ts +7 -5
  530. package/src/speech-language-detection/SileroLanguageDetection.ts +18 -9
  531. package/src/speech-search/DTWSpeechSearch.ts +6 -5
  532. package/src/subtitles/Subtitles.ts +22 -22
  533. package/src/synthesis/AwsPollyTTS.ts +12 -5
  534. package/src/synthesis/AzureCognitiveServicesTTS.ts +11 -3
  535. package/src/synthesis/CoquiServerTTS.ts +8 -7
  536. package/src/synthesis/DeepgramTTS.ts +21 -15
  537. package/src/synthesis/ElevenLabsTTS.ts +33 -23
  538. package/src/synthesis/EspeakTTS.ts +145 -69
  539. package/src/synthesis/FliteTTS.ts +3 -3
  540. package/src/synthesis/GnuSpeechTTS.ts +2 -2
  541. package/src/synthesis/GoogleCloudTTS.ts +23 -14
  542. package/src/synthesis/GoogleTranslateTTS.ts +19 -11
  543. package/src/synthesis/KokoroTTS.ts +37 -14
  544. package/src/synthesis/MicrosoftEdgeTTS.ts +71 -23
  545. package/src/synthesis/OpenAICloudTTS.ts +7 -6
  546. package/src/synthesis/SamTTS.ts +3 -2
  547. package/src/synthesis/SapiTTS.ts +3 -3
  548. package/src/synthesis/SvoxPicoTTS.ts +4 -5
  549. package/src/synthesis/VitsTTS.ts +43 -15
  550. package/src/text-translation/DeepLTextTranslation.ts +12 -10
  551. package/src/text-translation/GoogleTranslateTextTranslation.ts +35 -21
  552. package/src/text-translation/NLLBTextTranslation.ts +5 -9
  553. package/src/typings/Fillers.d.ts +0 -60
  554. package/src/typings/TypedArray.ts +12 -1
  555. package/src/utilities/Compression.ts +10 -9
  556. package/src/utilities/FileDownloader.ts +38 -23
  557. package/src/utilities/FileSystem.ts +1 -1
  558. package/src/utilities/Logger.ts +59 -42
  559. package/src/utilities/NpmUtilities.ts +4 -6
  560. package/src/utilities/OpenPromise.ts +1 -2
  561. package/src/utilities/PackageManager.ts +53 -26
  562. package/src/utilities/PathUtilities.ts +6 -2
  563. package/src/utilities/TarballMaker.ts +7 -7
  564. package/src/utilities/Utilities.ts +58 -39
  565. package/src/utilities/WebReader.ts +11 -6
  566. package/src/utilities/WikipediaReader.ts +2 -8
  567. package/src/voice-activity-detection/AdaptiveGateVAD.ts +13 -8
  568. package/src/voice-activity-detection/WebRtcVAD.ts +1 -2
  569. package/tsconfig.json +53 -94
  570. package/dist/audio/AudioRecorder.d.ts +0 -3
  571. package/dist/audio/AudioRecorder.js +0 -68
  572. package/dist/audio/AudioRecorder.js.map +0 -1
  573. package/dist/audio/SoxPath.d.ts +0 -1
  574. package/dist/audio/SoxPath.js +0 -24
  575. package/dist/audio/SoxPath.js.map +0 -1
  576. package/dist/recognition/SileroSTT.d.ts +0 -29
  577. package/dist/recognition/SileroSTT.js +0 -152
  578. package/dist/recognition/SileroSTT.js.map +0 -1
  579. package/dist/recognition/VoskSTT.d.ts +0 -10
  580. package/dist/recognition/VoskSTT.js +0 -72
  581. package/dist/recognition/VoskSTT.js.map +0 -1
  582. package/dist/recognition/WhisperCppSTT.js.map +0 -1
  583. package/dist/synthesis/StreamlabsPollyTTS.d.ts +0 -11
  584. package/dist/synthesis/StreamlabsPollyTTS.js +0 -88
  585. package/dist/synthesis/StreamlabsPollyTTS.js.map +0 -1
  586. package/dist/utilities/BinaryUtilities.d.ts +0 -13
  587. package/dist/utilities/BinaryUtilities.js +0 -113
  588. package/dist/utilities/BinaryUtilities.js.map +0 -1
  589. package/src/audio/AudioRecorder.ts +0 -91
  590. package/src/audio/SoxPath.ts +0 -31
  591. package/src/recognition/SileroSTT.ts +0 -222
  592. package/src/recognition/VoskSTT.ts +0 -112
  593. package/src/synthesis/StreamlabsPollyTTS.ts +0 -114
  594. package/src/utilities/BinaryUtilities.ts +0 -138
  595. /package/{LICENSE.md → LICENSE.GPLv3.md} +0 -0
@@ -1,21 +1,20 @@
1
1
  import * as API from '../api/API.js';
2
2
  import { MfccOptions } from '../dsp/MFCC.js';
3
- import { Timeline } from '../utilities/Timeline.js';
3
+ import { Timeline, TimelineEntry } from '../utilities/Timeline.js';
4
4
  import { RawAudio } from '../audio/AudioUtilities.js';
5
5
  import { EspeakEvent, EspeakOptions } from '../synthesis/EspeakTTS.js';
6
- export declare function alignUsingDtw(sourceRawAudio: RawAudio, referenceRawAudio: RawAudio, referenceTimeline: Timeline, granularities: DtwGranularity[], windowDurations: number[]): Promise<API.TimelineEntry[]>;
7
- export declare function alignUsingDtwWithRecognition(sourceRawAudio: RawAudio, referenceRawAudio: RawAudio, referenceTimeline: Timeline, recognitionTimeline: Timeline, granularities: DtwGranularity[], windowDurations: number[], espeakOptions: EspeakOptions, phoneAlignmentMethod?: API.PhoneAlignmentMethod): Promise<API.Timeline>;
8
- export declare function alignUsingDtwWithEmbeddings(sourceRawAudio: RawAudio, referenceRawAudio: RawAudio, referenceTimeline: Timeline, language: string, granularities: DtwGranularity[], windowDurations: number[]): Promise<API.TimelineEntry[]>;
9
- export declare function interpolatePhoneTimelines(sourceTimeline: Timeline, referenceTimeline: Timeline): Promise<API.Timeline>;
10
- export declare function alignPhoneTimelines(sourceRawAudio: RawAudio, sourceWordTimeline: Timeline, referenceRawAudio: RawAudio, referenceTimeline: Timeline, windowDuration: number): Promise<API.Timeline>;
11
- export declare function createAlignmentReferenceUsingEspeakForFragments(fragments: string[], espeakOptions: EspeakOptions): Promise<{
6
+ export declare function alignUsingDtw(sourceRawAudio: RawAudio, referenceRawAudio: RawAudio, referenceTimeline: Timeline, granularities: DtwGranularity[], windowDurations: number[], callbacks: API.AlignmentCallbacks): Promise<TimelineEntry[]>;
7
+ export declare function alignUsingDtwWithRecognition(sourceRawAudio: RawAudio, referenceRawAudio: RawAudio, referenceTimeline: Timeline, recognitionTimeline: Timeline, granularities: DtwGranularity[], windowDurations: number[], espeakOptions: EspeakOptions, phoneAlignmentMethod: API.PhoneAlignmentMethod | undefined, callbacks: API.AlignmentCallbacks): Promise<Timeline>;
8
+ export declare function interpolatePhoneTimelines(sourceTimeline: Timeline, referenceTimeline: Timeline): Promise<Timeline>;
9
+ export declare function alignPhoneTimelines(sourceRawAudio: RawAudio, sourceWordTimeline: Timeline, referenceRawAudio: RawAudio, referenceTimeline: Timeline, windowDuration: number, callbacks: API.AlignmentCallbacks): Promise<Timeline>;
10
+ export declare function createAlignmentReferenceUsingEspeakForFragments(fragments: string[], espeakOptions: EspeakOptions, callbacks: API.SynthesisCallbacks): Promise<{
12
11
  rawAudio: RawAudio;
13
12
  timeline: Timeline;
14
13
  events: EspeakEvent[];
15
14
  }>;
16
- export declare function createAlignmentReferenceUsingEspeak(transcript: string, language: string, plaintextOptions?: API.PlainTextOptions, customLexiconPaths?: string[], insertSeparators?: boolean, useKlatt?: boolean): Promise<{
17
- referenceRawAudio: API.RawAudio;
18
- referenceTimeline: API.TimelineEntry[];
15
+ export declare function createAlignmentReferenceUsingEspeak(transcript: string, language: string, plaintextOptions: API.PlainTextOptions, customLexiconPaths: string[], insertSeparators: boolean, useKlatt: boolean, callbacks: API.OperationCallbacks): Promise<{
16
+ referenceRawAudio: RawAudio;
17
+ referenceTimeline: TimelineEntry[];
19
18
  espeakVoice: string;
20
19
  }>;
21
20
  export declare function getMfccOptionsForGranularity(granularity: DtwGranularity): MfccOptions;
@@ -30,3 +29,4 @@ export type CompactedPathEntry = {
30
29
  last: number;
31
30
  };
32
31
  export type DtwGranularity = 'xx-low' | 'x-low' | 'low' | 'medium' | 'high' | 'x-high';
32
+ //# sourceMappingURL=SpeechAlignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpeechAlignment.d.ts","sourceRoot":"","sources":["../../src/alignment/SpeechAlignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAA;AAIpC,OAAO,EAA0C,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGpF,OAAO,EAA2B,QAAQ,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EAAmJ,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAKtM,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEtE,wBAAsB,aAAa,CAClC,cAAc,EAAE,QAAQ,EACxB,iBAAiB,EAAE,QAAQ,EAC3B,iBAAiB,EAAE,QAAQ,EAC3B,aAAa,EAAE,cAAc,EAAE,EAC/B,eAAe,EAAE,MAAM,EAAE,EACzB,SAAS,EAAE,GAAG,CAAC,kBAAkB,4BA4FjC;AAED,wBAAsB,4BAA4B,CACjD,cAAc,EAAE,QAAQ,EACxB,iBAAiB,EAAE,QAAQ,EAC3B,iBAAiB,EAAE,QAAQ,EAC3B,mBAAmB,EAAE,QAAQ,EAC7B,aAAa,EAAE,cAAc,EAAE,EAC/B,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,YAAkB,EAChE,SAAS,EAAE,GAAG,CAAC,kBAAkB,qBAuKjC;AAuDD,wBAAsB,yBAAyB,CAAC,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,qBA+CpG;AAED,wBAAsB,mBAAmB,CACxC,cAAc,EAAE,QAAQ,EACxB,kBAAkB,EAAE,QAAQ,EAC5B,iBAAiB,EAAE,QAAQ,EAC3B,iBAAiB,EAAE,QAAQ,EAC3B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,GAAG,CAAC,kBAAkB,qBA0EjC;AAED,wBAAsB,+CAA+C,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,CAAC,kBAAkB;cAIzF,QAAQ;cACvD,QAAQ;YACV,WAAW,EAAE;GAmD5B;AAED,wBAAsB,mCAAmC,CACxD,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EACtC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,gBAAgB,EAAE,OAAO,EACzB,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,GAAG,CAAC,kBAAkB;;;;GAgCjC;AAsCD,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,cAAc,eAoBvE;AAED,MAAM,MAAM,aAAa,GAAG,kBAAkB,EAAE,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,kBAAkB,EAAE,CAAA;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA"}
@@ -1,19 +1,16 @@
1
- import { clip, splitFloat32Array } from '../utilities/Utilities.js';
1
+ import chalk from 'chalk';
2
+ import { clip } from '../utilities/Utilities.js';
2
3
  import { computeMFCCs, extendDefaultMfccOptions } from '../dsp/MFCC.js';
3
4
  import { alignMFCC_DTW, getCostMatrixMemorySizeMB } from './DTWMfccSequenceAlignment.js';
4
5
  import { Logger } from '../utilities/Logger.js';
5
6
  import { addTimeOffsetToTimeline } from '../utilities/Timeline.js';
6
7
  import { concatAudioSegments, downmixToMonoAndNormalize, getEmptyRawAudio, getEndingSilentSampleCount, getRawAudioDuration, getStartingSilentSampleCount } from '../audio/AudioUtilities.js';
7
- import chalk from 'chalk';
8
8
  import { synthesize } from '../api/API.js';
9
9
  import { resampleAudioSpeex } from '../dsp/SpeexResampler.js';
10
10
  import { deepClone } from '../utilities/ObjectUtilities.js';
11
- import { cosineDistance, zeroIfNaN } from '../math/VectorMath.js';
12
- import { alignDTWWindowed } from './DTWSequenceAlignmentWindowed.js';
13
- import { loadPackage } from '../utilities/PackageManager.js';
14
- import { joinPath } from '../utilities/PathUtilities.js';
15
- export async function alignUsingDtw(sourceRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations) {
16
- const logger = new Logger();
11
+ import { zeroIfNaN } from '../math/VectorMath.js';
12
+ export async function alignUsingDtw(sourceRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations, callbacks) {
13
+ const logger = new Logger(callbacks.logLevel);
17
14
  if (windowDurations.length == 0) {
18
15
  throw new Error(`Window durations array has length 0.`);
19
16
  }
@@ -27,22 +24,22 @@ export async function alignUsingDtw(sourceRawAudio, referenceRawAudio, reference
27
24
  for (let passIndex = 0; passIndex < windowDurations.length; passIndex++) {
28
25
  const granularity = granularities[passIndex];
29
26
  const windowDuration = windowDurations[passIndex];
30
- logger.logTitledMessage(`\nStarting alignment pass ${passIndex + 1}/${windowDurations.length}`, `granularity: ${granularity}, max window duration: ${windowDuration}s (${(windowDuration / rawAudioDuration * 100).toFixed(1)}%)`, chalk.magentaBright);
27
+ logger.logTitledMessage(`\nStarting alignment pass ${passIndex + 1}/${windowDurations.length}`, `granularity: ${granularity}, max window duration: ${windowDuration}s (${(windowDuration / rawAudioDuration * 100).toFixed(1)}%)`, 'info', chalk.magentaBright);
31
28
  const mfccOptions = extendDefaultMfccOptions({ ...getMfccOptionsForGranularity(granularity), zeroFirstCoefficient: true });
32
29
  framesPerSecond = 1 / mfccOptions.hopDuration;
33
30
  // Compute reference MFCCs
34
31
  logger.start('Compute reference MFCC features');
35
- const referenceMfccs = await computeMFCCs(referenceRawAudio, mfccOptions);
32
+ const referenceMfccs = await computeMFCCs(referenceRawAudio, mfccOptions, { ...callbacks, logLevel: 'warning' });
36
33
  // Compute source MFCCs
37
34
  logger.start('Compute source MFCC features');
38
- const sourceMfccs = await computeMFCCs(sourceRawAudio, mfccOptions);
35
+ const sourceMfccs = await computeMFCCs(sourceRawAudio, mfccOptions, { ...callbacks, logLevel: 'warning' });
39
36
  logger.end();
40
37
  // Compute path
41
38
  logger.logTitledMessage(`DTW cost matrix memory size`, `${getCostMatrixMemorySizeMB(referenceMfccs.length, sourceMfccs.length, windowDuration * framesPerSecond).toFixed(1)}MB`);
42
39
  if (passIndex == 0) {
43
40
  const minRecommendedWindowDuration = 0.2 * rawAudioDuration;
44
41
  if (windowDuration < minRecommendedWindowDuration) {
45
- logger.logTitledMessage('Warning', `Maximum DTW window duration is set to ${windowDuration.toFixed(1)}s (${(windowDuration / rawAudioDuration * 100).toFixed(1)}%), which is less than 20% of the source audio duration (audio duration is ${rawAudioDuration.toFixed(1)}s and a 20% window would be ${(rawAudioDuration * 0.2).toFixed(1)}s). This may lead to suboptimal results in some cases. Consider increasing window duration if needed.`, chalk.yellowBright, 'warning');
42
+ logger.logTitledMessage('Warning', `Maximum DTW window duration is set to ${windowDuration.toFixed(1)}s (${(windowDuration / rawAudioDuration * 100).toFixed(1)}%), which is less than 20% of the source audio duration (audio duration is ${rawAudioDuration.toFixed(1)}s and a 20% window would be ${(rawAudioDuration * 0.2).toFixed(1)}s). This may lead to suboptimal results in some cases. Consider increasing window duration if needed.`, 'warning', chalk.yellowBright);
46
43
  }
47
44
  }
48
45
  logger.start('Align reference and source MFCC features using DTW');
@@ -68,8 +65,8 @@ export async function alignUsingDtw(sourceRawAudio, referenceRawAudio, reference
68
65
  logger.end();
69
66
  return mappedTimeline;
70
67
  }
71
- export async function alignUsingDtwWithRecognition(sourceRawAudio, referenceRawAudio, referenceTimeline, recognitionTimeline, granularities, windowDurations, espeakOptions, phoneAlignmentMethod = 'interpolation') {
72
- const logger = new Logger();
68
+ export async function alignUsingDtwWithRecognition(sourceRawAudio, referenceRawAudio, referenceTimeline, recognitionTimeline, granularities, windowDurations, espeakOptions, phoneAlignmentMethod = 'interpolation', callbacks) {
69
+ const logger = new Logger(callbacks.logLevel);
73
70
  if (recognitionTimeline.length == 0) {
74
71
  const sourceDuration = getRawAudioDuration(sourceRawAudio);
75
72
  const referenceDuration = getRawAudioDuration(referenceRawAudio);
@@ -88,7 +85,7 @@ export async function alignUsingDtwWithRecognition(sourceRawAudio, referenceRawA
88
85
  // Synthesize the recognized transcript and get its timeline
89
86
  logger.start("Synthesize recognized transcript with eSpeak");
90
87
  const recognizedWords = recognitionTimeline.map(entry => entry.text);
91
- const { rawAudio: synthesizedRecognizedTranscriptRawAudio, timeline: synthesizedRecognitionTimeline } = await createAlignmentReferenceUsingEspeakForFragments(recognizedWords, espeakOptions);
88
+ const { rawAudio: synthesizedRecognizedTranscriptRawAudio, timeline: synthesizedRecognitionTimeline } = await createAlignmentReferenceUsingEspeakForFragments(recognizedWords, espeakOptions, { ...callbacks, logLevel: 'warning' });
92
89
  let recognitionTimelineWithPhones;
93
90
  if (phoneAlignmentMethod == 'interpolation') {
94
91
  // Add phone timelines by interpolating from reference words
@@ -99,7 +96,7 @@ export async function alignUsingDtwWithRecognition(sourceRawAudio, referenceRawA
99
96
  logger.start('Align phone timing');
100
97
  // Add phone timelines by aligning each individual recognized word with the corresponding word
101
98
  // in the reference timeline
102
- recognitionTimelineWithPhones = await alignPhoneTimelines(sourceRawAudio, recognitionTimeline, synthesizedRecognizedTranscriptRawAudio, synthesizedRecognitionTimeline, 60);
99
+ recognitionTimelineWithPhones = await alignPhoneTimelines(sourceRawAudio, recognitionTimeline, synthesizedRecognizedTranscriptRawAudio, synthesizedRecognitionTimeline, 60, callbacks);
103
100
  }
104
101
  else {
105
102
  throw new Error(`Unknown phone alignment method: ${phoneAlignmentMethod}`);
@@ -135,7 +132,7 @@ export async function alignUsingDtwWithRecognition(sourceRawAudio, referenceRawA
135
132
  }
136
133
  // Align the synthesized recognized transcript to the synthesized reference transcript
137
134
  logger.start("Align the synthesized recognized transcript with the synthesized ground-truth transcript");
138
- const alignedSynthesizedRecognitionTimeline = await alignUsingDtw(synthesizedRecognizedTranscriptRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations);
135
+ const alignedSynthesizedRecognitionTimeline = await alignUsingDtw(synthesizedRecognizedTranscriptRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations, { ...callbacks, logLevel: 'warning' });
139
136
  let currentSynthesizedToRecognizedMappingIndex = 0;
140
137
  // Map from synthesized reference timestamps to the recognition timestamps
141
138
  function mapSynthesizedToRecognizedTimeAndAdvance(synthesizedTime) {
@@ -173,71 +170,6 @@ export async function alignUsingDtwWithRecognition(sourceRawAudio, referenceRawA
173
170
  logger.end();
174
171
  return result;
175
172
  }
176
- // This is experimental code. It doesn't work well enough to be usable for anything.
177
- // Just testing some alternative approaches.
178
- export async function alignUsingDtwWithEmbeddings(sourceRawAudio, referenceRawAudio, referenceTimeline, language, granularities, windowDurations) {
179
- const logger = new Logger();
180
- if (sourceRawAudio.sampleRate != 16000) {
181
- throw new Error('Source audio must have a sample rate of 16000 Hz');
182
- }
183
- if (referenceRawAudio.sampleRate != 16000) {
184
- throw new Error('Reference audio must have a sample rate of 16000 Hz');
185
- }
186
- const embeddingType = 'w2v-bert-2.0';
187
- let sourceEmbeddings;
188
- let referenceEmbeddings;
189
- let framesPerSecond;
190
- if (embeddingType === 'w2v-bert-2.0') {
191
- const packageName = 'w2v-bert-2.0-uint8';
192
- const modelDir = await loadPackage(packageName);
193
- const modelFilePath = joinPath(modelDir, `${packageName}.onnx`);
194
- const { Wav2Vec2BertFeatureEmbeddings } = await import('../speech-embeddings/WavToVec2BertFeatureEmbeddings.js');
195
- const wav2vecBert = new Wav2Vec2BertFeatureEmbeddings(modelFilePath, ['cpu']);
196
- logger.start(`Extract source audio embeddings using the W2V-BERT-2.0 model`);
197
- sourceEmbeddings = await wav2vecBert.computeEmbeddings(sourceRawAudio);
198
- logger.start(`Extract reference audio embeddings using the W2V-BERT-2.0 model`);
199
- referenceEmbeddings = await wav2vecBert.computeEmbeddings(referenceRawAudio);
200
- framesPerSecond = 1000 / 10 / 2;
201
- }
202
- else if (embeddingType === 'whisper') {
203
- const sourceSamples = sourceRawAudio.audioChannels[0];
204
- const referenceSamples = referenceRawAudio.audioChannels[0];
205
- const WhisperSTT = await import(`../recognition/WhisperSTT.js`);
206
- const { modelName, modelDir } = await WhisperSTT.loadPackagesAndGetPaths('base.en', language);
207
- const whisper = new WhisperSTT.Whisper(modelName, modelDir, ['dml', 'cpu'], ['cpu']);
208
- async function encodeToAudioFeatures(samples) {
209
- const featureVectors = [];
210
- for (let i = 0; i < samples.length; i += 16000 * 30) {
211
- const startSampleIndex = i;
212
- const endSampleIndex = Math.min(samples.length, i + 16000 * 30);
213
- const partSampleCount = endSampleIndex - startSampleIndex;
214
- const audioPart = samples.subarray(startSampleIndex, endSampleIndex);
215
- const rawAudioForPart = { audioChannels: [audioPart], sampleRate: 16000 };
216
- const resultTensor = await whisper.encodeAudio(rawAudioForPart);
217
- const vectorLength = resultTensor.dims[2];
218
- let featureVectorsForPart = splitFloat32Array(resultTensor.data, vectorLength);
219
- featureVectorsForPart = featureVectorsForPart.slice(0, Math.floor((partSampleCount / (16000 * 30)) * 1500));
220
- featureVectors.push(...featureVectorsForPart);
221
- }
222
- return featureVectors;
223
- }
224
- logger.start(`Extract source audio embeddings using the Whisper encoder model`);
225
- sourceEmbeddings = await encodeToAudioFeatures(sourceSamples);
226
- logger.start(`Extract reference audio embeddings using the Whisper encoder model`);
227
- referenceEmbeddings = await encodeToAudioFeatures(referenceSamples);
228
- framesPerSecond = 1500 / 30;
229
- }
230
- else {
231
- throw new Error(`Unknown embedding type: ${embeddingType}`);
232
- }
233
- logger.start(`Align source and reference audio embeddings using DTW`);
234
- const { path: alignmentPath } = alignDTWWindowed(referenceEmbeddings, sourceEmbeddings, cosineDistance, 1000 * 1000);
235
- const compactedPath = compactPath(alignmentPath);
236
- logger.start('\nConvert path to timeline');
237
- const mappedTimeline = referenceTimeline.map(entry => getMappedTimelineEntry(entry, sourceRawAudio, framesPerSecond, compactedPath));
238
- logger.end();
239
- return mappedTimeline;
240
- }
241
173
  function getMappedTimelineEntry(timelineEntry, sourceRawAudio, framesPerSecond, compactedPath, recurse = true) {
242
174
  const referenceStartFrameIndex = Math.floor(timelineEntry.startTime * framesPerSecond);
243
175
  const referenceEndFrameIndex = Math.floor(timelineEntry.endTime * framesPerSecond);
@@ -300,11 +232,11 @@ export async function interpolatePhoneTimelines(sourceTimeline, referenceTimelin
300
232
  }
301
233
  return interpolatedTimeline;
302
234
  }
303
- export async function alignPhoneTimelines(sourceRawAudio, sourceWordTimeline, referenceRawAudio, referenceTimeline, windowDuration) {
235
+ export async function alignPhoneTimelines(sourceRawAudio, sourceWordTimeline, referenceRawAudio, referenceTimeline, windowDuration, callbacks) {
304
236
  const mfccOptions = extendDefaultMfccOptions({ zeroFirstCoefficient: true });
305
237
  const framesPerSecond = 1 / mfccOptions.hopDuration;
306
- const referenceMfccs = await computeMFCCs(referenceRawAudio, mfccOptions);
307
- const sourceMfccs = await computeMFCCs(sourceRawAudio, mfccOptions);
238
+ const referenceMfccs = await computeMFCCs(referenceRawAudio, mfccOptions, { ...callbacks, logLevel: 'warning' });
239
+ const sourceMfccs = await computeMFCCs(sourceRawAudio, mfccOptions, { ...callbacks, logLevel: 'warning' });
308
240
  const alignedWordTimeline = [];
309
241
  for (let i = 0; i < referenceTimeline.length; i++) {
310
242
  const referenceWordEntry = referenceTimeline[i];
@@ -352,11 +284,8 @@ export async function alignPhoneTimelines(sourceRawAudio, sourceWordTimeline, re
352
284
  }
353
285
  return alignedWordTimeline;
354
286
  }
355
- export async function createAlignmentReferenceUsingEspeakForFragments(fragments, espeakOptions) {
356
- const progressLogger = new Logger();
357
- progressLogger.start("Load espeak module");
287
+ export async function createAlignmentReferenceUsingEspeakForFragments(fragments, espeakOptions, callbacks) {
358
288
  const Espeak = await import("../synthesis/EspeakTTS.js");
359
- progressLogger.start("Synthesize alignment reference using eSpeak");
360
289
  const result = {
361
290
  rawAudio: getEmptyRawAudio(1, await Espeak.getSampleRate()),
362
291
  timeline: [],
@@ -375,7 +304,7 @@ export async function createAlignmentReferenceUsingEspeakForFragments(fragments,
375
304
  currentChunkCharacterCount += fragment.length;
376
305
  if (currentChunkCharacterCount >= maxCharactersInChunk || fragmentIndex === fragments.length - 1) {
377
306
  // Process current chunk
378
- const chunkResult = await Espeak.synthesizeFragments(currentChunk, espeakOptions);
307
+ const chunkResult = await Espeak.synthesizeFragments(currentChunk, espeakOptions, callbacks);
379
308
  result.rawAudio = {
380
309
  sampleRate: result.rawAudio.sampleRate,
381
310
  audioChannels: concatAudioSegments([result.rawAudio.audioChannels, chunkResult.rawAudio.audioChannels])
@@ -393,12 +322,10 @@ export async function createAlignmentReferenceUsingEspeakForFragments(fragments,
393
322
  for (const wordEntry of result.timeline) {
394
323
  wordEntry.timeline = wordEntry.timeline.flatMap(tokenEntry => tokenEntry.timeline);
395
324
  }
396
- progressLogger.end();
397
325
  return result;
398
326
  }
399
- export async function createAlignmentReferenceUsingEspeak(transcript, language, plaintextOptions, customLexiconPaths, insertSeparators, useKlatt) {
400
- const logger = new Logger();
401
- logger.start('Synthesize alignment reference using eSpeak');
327
+ export async function createAlignmentReferenceUsingEspeak(transcript, language, plaintextOptions, customLexiconPaths, insertSeparators, useKlatt, callbacks) {
328
+ const logger = new Logger(callbacks.logLevel);
402
329
  const synthesisOptions = {
403
330
  engine: 'espeak',
404
331
  language,
@@ -407,9 +334,9 @@ export async function createAlignmentReferenceUsingEspeak(transcript, language,
407
334
  espeak: {
408
335
  useKlatt,
409
336
  insertSeparators,
410
- }
337
+ },
411
338
  };
412
- let { audio: referenceRawAudio, timeline: segmentTimeline, voice: espeakVoice } = await synthesize(transcript, synthesisOptions);
339
+ let { audio: referenceRawAudio, timeline: segmentTimeline, voice: espeakVoice, } = await synthesize(transcript, synthesisOptions, callbacks);
413
340
  const sentenceTimeline = segmentTimeline.flatMap(entry => entry.timeline);
414
341
  const wordTimeline = sentenceTimeline.flatMap(entry => entry.timeline);
415
342
  referenceRawAudio = await resampleAudioSpeex(referenceRawAudio, 16000);
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechAlignment.js","sourceRoot":"","sources":["../../src/alignment/SpeechAlignment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpeechAlignment.js","sourceRoot":"","sources":["../../src/alignment/SpeechAlignment.ts"],"names":[],"mappings":"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"}
package/dist/api/API.d.ts CHANGED
@@ -19,3 +19,4 @@ export * from '../server/Client.js';
19
19
  export { timelineToSubtitles, subtitlesToTimeline } from '../subtitles/Subtitles.js';
20
20
  export { type RawAudio, type AudioEncoding, type AudioSourceParam } from '../audio/AudioUtilities.js';
21
21
  export { type Timeline, type TimelineEntryType, type TimelineEntry } from '../utilities/Timeline.js';
22
+ //# sourceMappingURL=API.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"API.d.ts","sourceRoot":"","sources":["../../src/api/API.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAElC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,kBAAkB,CAAA;AAEhC,cAAc,gBAAgB,CAAA;AAE9B,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AAEpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,4BAA4B,CAAA;AAE1C,cAAc,6BAA6B,CAAA;AAE3C,cAAc,gBAAgB,CAAA;AAE9B,cAAc,uBAAuB,CAAA;AAErC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AAEnC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAEpF,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAErG,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA"}
@@ -13,10 +13,11 @@ export interface APIOptions {
13
13
  TextTranslationOptions: API.TextTranslationOptions;
14
14
  SpeechLanguageDetectionOptions: API.SpeechLanguageDetectionOptions;
15
15
  TextLanguageDetectionOptions: API.TextLanguageDetectionOptions;
16
- VADOptions: API.VADOptions;
16
+ VoiceActivityDetectionOptions: API.VoiceActivityDetectionOptions;
17
17
  DenoisingOptions: API.DenoisingOptions;
18
18
  SourceSeparationOptions: API.SourceSeparationOptions;
19
19
  ServerOptions: ServerOptions;
20
20
  GlobalOptions: API.GlobalOptions;
21
21
  CLIOptions: CLIOptions;
22
22
  }
23
+ //# sourceMappingURL=APIOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"APIOptions.d.ts","sourceRoot":"","sources":["../../src/api/APIOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEjD,MAAM,WAAW,UAAU;IAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAA;IACtC,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,CAAA;IAEpD,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,CAAA;IAE1C,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAA;IAEtC,2BAA2B,EAAE,GAAG,CAAC,2BAA2B,CAAA;IAC5D,wCAAwC,EAAE,GAAG,CAAC,wCAAwC,CAAA;IACtF,mCAAmC,EAAE,GAAG,CAAC,mCAAmC,CAAA;IAE5E,wBAAwB,EAAE,GAAG,CAAC,wBAAwB,CAAA;IACtD,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,CAAA;IAElD,8BAA8B,EAAE,GAAG,CAAC,8BAA8B,CAAA;IAClE,4BAA4B,EAAE,GAAG,CAAC,4BAA4B,CAAA;IAE9D,6BAA6B,EAAE,GAAG,CAAC,6BAA6B,CAAA;IAEhE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,CAAA;IAEtC,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,CAAA;IAEpD,aAAa,EAAE,aAAa,CAAA;IAE5B,aAAa,EAAE,GAAG,CAAC,aAAa,CAAA;IAChC,UAAU,EAAE,UAAU,CAAA;CACtB"}
@@ -1,11 +1,11 @@
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 { Timeline } from '../utilities/Timeline.js';
4
4
  import { type WhisperAlignmentOptions } from '../recognition/WhisperSTT.js';
5
5
  import { DtwGranularity } from '../alignment/SpeechAlignment.js';
6
6
  import { type SubtitlesConfig } from '../subtitles/Subtitles.js';
7
- export declare function align(input: AudioSourceParam, transcript: string, options: AlignmentOptions): Promise<AlignmentResult>;
8
- export declare function alignSegments(sourceRawAudio: RawAudio, segmentTimeline: Timeline, alignmentOptions: AlignmentOptions): Promise<API.Timeline>;
7
+ export declare function align(input: AudioSourceParam, transcript: string, options: AlignmentOptions, callbacks?: AlignmentCallbacks): Promise<AlignmentResult>;
8
+ export declare function alignSegments(sourceRawAudio: RawAudio, segmentTimeline: Timeline, alignmentOptions: AlignmentOptions, callbacks?: AlignmentCallbacks): Promise<Timeline>;
9
9
  export interface AlignmentResult {
10
10
  timeline: Timeline;
11
11
  wordTimeline: Timeline;
@@ -15,16 +15,16 @@ export interface AlignmentResult {
15
15
  isolatedRawAudio?: RawAudio;
16
16
  backgroundRawAudio?: RawAudio;
17
17
  }
18
- export type AlignmentEngine = 'dtw' | 'dtw-ra' | 'dtw-ea' | 'whisper';
18
+ export type AlignmentEngine = 'dtw' | 'dtw-ra' | 'whisper';
19
19
  export type PhoneAlignmentMethod = 'interpolation' | 'dtw';
20
- export interface AlignmentOptions {
20
+ export interface AlignmentOptions extends API.OperationOptions {
21
21
  engine?: AlignmentEngine;
22
22
  language?: string;
23
23
  isolate?: boolean;
24
24
  crop?: boolean;
25
25
  customLexiconPaths?: string[];
26
26
  languageDetection?: API.TextLanguageDetectionOptions;
27
- vad?: API.VADOptions;
27
+ vad?: API.VoiceActivityDetectionOptions;
28
28
  plainText?: API.PlainTextOptions;
29
29
  subtitles?: SubtitlesConfig;
30
30
  dtw?: {
@@ -37,4 +37,7 @@ export interface AlignmentOptions {
37
37
  whisper?: WhisperAlignmentOptions;
38
38
  }
39
39
  export declare const defaultAlignmentOptions: AlignmentOptions;
40
+ export interface AlignmentCallbacks extends API.RecognitionCallbacks {
41
+ }
40
42
  export declare const alignmentEngines: API.EngineMetadata[];
43
+ //# sourceMappingURL=Alignment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alignment.d.ts","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAK/B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAiF,MAAM,4BAA4B,CAAA;AAGtJ,OAAO,EAAE,QAAQ,EAAuG,MAAM,0BAA0B,CAAA;AAExJ,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAuC,MAAM,iCAAiC,CAAA;AACrG,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAMhE,wBAAsB,KAAK,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAyW5J;AAED,wBAAsB,aAAa,CAAC,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAE,kBAAkB,qBA0B1J;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,EAAE,QAAQ,CAAA;IAEtB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAEhB,aAAa,EAAE,QAAQ,CAAA;IACvB,gBAAgB,CAAC,EAAE,QAAQ,CAAA;IAC3B,kBAAkB,CAAC,EAAE,QAAQ,CAAA;CAC7B;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAA;AAC1D,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG,KAAK,CAAA;AAE1D,MAAM,WAAW,gBAAiB,SAAQ,GAAG,CAAC,gBAAgB;IAC7D,MAAM,CAAC,EAAE,eAAe,CAAA;IAExB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE7B,iBAAiB,CAAC,EAAE,GAAG,CAAC,4BAA4B,CAAA;IAEpD,GAAG,CAAC,EAAE,GAAG,CAAC,6BAA6B,CAAA;IAEvC,SAAS,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAA;IAEhC,SAAS,CAAC,EAAE,eAAe,CAAA;IAE3B,GAAG,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAA;QAC/C,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACtD,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAC3C,CAAA;IAED,WAAW,CAAC,EAAE,GAAG,CAAC,kBAAkB,CAAA;IAEpC,gBAAgB,CAAC,EAAE,GAAG,CAAC,uBAAuB,CAAA;IAE9C,OAAO,CAAC,EAAE,uBAAuB,CAAA;CACjC;AAED,eAAO,MAAM,uBAAuB,EAAE,gBAiDrC,CAAA;AAED,MAAM,WAAW,kBAAmB,SAAQ,GAAG,CAAC,oBAAoB;CACnE;AAED,eAAO,MAAM,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAmBhD,CAAA"}
@@ -1,40 +1,39 @@
1
+ import chalk from 'chalk';
2
+ import * as API from './API.js';
1
3
  import { extendDeep } from '../utilities/ObjectUtilities.js';
2
4
  import { logToStderr } from '../utilities/Utilities.js';
3
5
  import { ensureRawAudio, getRawAudioDuration, normalizeAudioLevelInPlace, trimAudioEnd } from '../audio/AudioUtilities.js';
4
6
  import { Logger } from '../utilities/Logger.js';
5
- import * as API from './API.js';
6
7
  import { addTimeOffsetToTimeline, addWordTextOffsetsToTimelineInPlace, wordTimelineToSegmentSentenceTimeline } from '../utilities/Timeline.js';
7
8
  import { formatLanguageCodeWithName, getDefaultDialectForLanguageCodeIfPossible, getShortLanguageCode, parseLangIdentifier } from '../utilities/Locale.js';
8
- import chalk from 'chalk';
9
- import { alignUsingDtwWithEmbeddings, createAlignmentReferenceUsingEspeak } from '../alignment/SpeechAlignment.js';
9
+ import { createAlignmentReferenceUsingEspeak } from '../alignment/SpeechAlignment.js';
10
10
  import { defaultEspeakOptions } from '../synthesis/EspeakTTS.js';
11
11
  import { isWord } from '../nlp/Segmentation.js';
12
12
  const log = logToStderr;
13
- export async function align(input, transcript, options) {
14
- const logger = new Logger();
15
- const startTimestamp = logger.getTimestamp();
13
+ export async function align(input, transcript, options, callbacks) {
16
14
  options = extendDeep(defaultAlignmentOptions, options);
17
- const inputRawAudio = await ensureRawAudio(input);
15
+ callbacks = { logLevel: API.getGlobalLogLevel(), ...callbacks };
16
+ const logger = new Logger(callbacks.logLevel);
17
+ const startTimestamp = logger.getTimestamp();
18
+ const inputRawAudio = await ensureRawAudio(input, undefined, undefined, callbacks);
18
19
  let sourceRawAudio;
19
20
  let isolatedRawAudio;
20
21
  let backgroundRawAudio;
21
22
  if (options.isolate) {
22
- logger.log(``);
23
- logger.end();
24
- ({ isolatedRawAudio, backgroundRawAudio } = await API.isolate(inputRawAudio, options.sourceSeparation));
23
+ logger.logTitledMessage(`Isolate vocals`, '');
24
+ ({ isolatedRawAudio, backgroundRawAudio } = await API.isolate(inputRawAudio, options.sourceSeparation, { ...callbacks, logLevel: logger.logLevel }));
25
25
  logger.end();
26
- logger.log(``);
27
26
  logger.start(`Resample audio to 16kHz mono`);
28
- sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1);
27
+ sourceRawAudio = await ensureRawAudio(isolatedRawAudio, 16000, 1, callbacks);
29
28
  }
30
29
  else {
31
30
  logger.start(`Resample audio to 16kHz mono`);
32
- sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
31
+ sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1, callbacks);
33
32
  }
34
33
  let sourceUncropTimeline;
35
34
  if (options.crop) {
36
35
  logger.start('Crop using voice activity detection');
37
- ({ timeline: sourceUncropTimeline, croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad));
36
+ ({ timeline: sourceUncropTimeline, croppedRawAudio: sourceRawAudio } = await API.detectVoiceActivity(sourceRawAudio, options.vad, { ...callbacks, logLevel: 'warning' }));
38
37
  logger.end();
39
38
  }
40
39
  logger.start('Normalize and trim audio');
@@ -49,7 +48,7 @@ export async function align(input, transcript, options) {
49
48
  }
50
49
  else {
51
50
  logger.start('No language specified. Detect language using reference text');
52
- const { detectedLanguage } = await API.detectTextLanguage(transcript, options.languageDetection || {});
51
+ const { detectedLanguage } = await API.detectTextLanguage(transcript, options.languageDetection, { abortSignal: callbacks.abortSignal, logLevel: 'warning' });
53
52
  language = detectedLanguage;
54
53
  logger.end();
55
54
  logger.logTitledMessage('Language detected', formatLanguageCodeWithName(language));
@@ -163,10 +162,10 @@ export async function align(input, transcript, options) {
163
162
  switch (options.engine) {
164
163
  case 'dtw': {
165
164
  const { windowDurations, granularities } = getDtwWindowGranularitiesAndDurations();
165
+ logger.start('Synthesize alignment reference using eSpeak');
166
+ const { referenceRawAudio, referenceTimeline } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths, false, false, { abortSignal: callbacks.abortSignal, logLevel: 'warning' });
166
167
  logger.end();
167
- const { referenceRawAudio, referenceTimeline } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths, false, false);
168
- logger.end();
169
- mappedTimeline = await alignUsingDtw(sourceRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations);
168
+ mappedTimeline = await alignUsingDtw(sourceRawAudio, referenceRawAudio, referenceTimeline, granularities, windowDurations, { abortSignal: callbacks.abortSignal, logLevel: callbacks.logLevel });
170
169
  break;
171
170
  }
172
171
  case 'dtw-ra': {
@@ -174,13 +173,13 @@ export async function align(input, transcript, options) {
174
173
  logger.end();
175
174
  const recognitionOptions = extendDeep({ crop: options.crop, language }, options.recognition);
176
175
  // Recognize source audio
177
- let { wordTimeline: recognitionTimeline } = await API.recognize(sourceRawAudio, recognitionOptions);
176
+ let { wordTimeline: recognitionTimeline } = await API.recognize(sourceRawAudio, recognitionOptions, callbacks);
178
177
  logger.log('');
179
178
  // Remove non-word entries from recognition timeline
180
179
  recognitionTimeline = recognitionTimeline.filter(entry => isWord(entry.text));
181
180
  // Synthesize the ground-truth transcript and get its timeline
182
181
  logger.start('Synthesize ground-truth transcript with eSpeak');
183
- const { referenceRawAudio, referenceTimeline, espeakVoice, } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths, false, false);
182
+ const { referenceRawAudio, referenceTimeline, espeakVoice, } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths, false, false, { ...callbacks, logLevel: 'warning' });
184
183
  logger.end();
185
184
  const phoneAlignmentMethod = options.dtw.phoneAlignmentMethod;
186
185
  const espeakOptions = {
@@ -190,26 +189,18 @@ export async function align(input, transcript, options) {
190
189
  insertSeparators: true
191
190
  };
192
191
  // Align the ground-truth transcript and the recognized transcript
193
- mappedTimeline = await alignUsingDtwWithRecognition(sourceRawAudio, referenceRawAudio, referenceTimeline, recognitionTimeline, granularities, windowDurations, espeakOptions, phoneAlignmentMethod);
194
- break;
195
- }
196
- case 'dtw-ea': {
197
- const { windowDurations, granularities } = getDtwWindowGranularitiesAndDurations();
198
- logger.end();
199
- logger.logTitledMessage(`Warning`, `The dtw-ea alignment engine is just an early experiment and doesn't currently perform as well as, or as efficiently as other alignment engines.`, chalk.yellow, 'warning');
200
- const { referenceRawAudio, referenceTimeline } = await createAlignmentReferenceUsingEspeak(transcript, language, options.plainText, options.customLexiconPaths, false, true);
201
- logger.end();
202
- const shortLanguageCode = getShortLanguageCode(language);
203
- mappedTimeline = await alignUsingDtwWithEmbeddings(sourceRawAudio, referenceRawAudio, referenceTimeline, shortLanguageCode, granularities, windowDurations);
192
+ mappedTimeline = await alignUsingDtwWithRecognition(sourceRawAudio, referenceRawAudio, referenceTimeline, recognitionTimeline, granularities, windowDurations, espeakOptions, phoneAlignmentMethod, callbacks);
204
193
  break;
205
194
  }
206
195
  case 'whisper': {
207
196
  const WhisperSTT = await import('../recognition/WhisperSTT.js');
208
- const whisperAlignmnentOptions = options.whisper;
197
+ const WhisperCommon = await import('../recognition/WhisperCommon.js');
198
+ const whisperAlignmnentOptions = extendDeep(WhisperSTT.defaultWhisperAlignmentOptions, options.whisper);
209
199
  const shortLanguageCode = getShortLanguageCode(language);
210
- const { modelName, modelDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperAlignmnentOptions.model, shortLanguageCode);
200
+ const { modelId, modelPath } = await WhisperCommon.loadModelPackage(whisperAlignmnentOptions.model, shortLanguageCode, callbacks);
201
+ const { libPath } = await WhisperSTT.loadLibraryPackages(whisperAlignmnentOptions.enableGPU, callbacks);
211
202
  logger.end();
212
- mappedTimeline = await WhisperSTT.align(sourceRawAudio, transcript, modelName, modelDir, shortLanguageCode, whisperAlignmnentOptions);
203
+ mappedTimeline = await WhisperSTT.align(sourceRawAudio, transcript, modelId, modelPath, libPath, shortLanguageCode, whisperAlignmnentOptions, callbacks);
213
204
  break;
214
205
  }
215
206
  default: {
@@ -226,7 +217,7 @@ export async function align(input, transcript, options) {
226
217
  // Make segment timeline
227
218
  const { segmentTimeline } = await wordTimelineToSegmentSentenceTimeline(mappedTimeline, transcript, language, options.plainText?.paragraphBreaks, options.plainText?.whitespace);
228
219
  logger.end();
229
- logger.logDuration(`Total alignment time`, startTimestamp, chalk.magentaBright);
220
+ logger.logDuration(`Total alignment time`, startTimestamp, 'info', chalk.magentaBright);
230
221
  return {
231
222
  timeline: segmentTimeline,
232
223
  wordTimeline: mappedTimeline,
@@ -237,7 +228,7 @@ export async function align(input, transcript, options) {
237
228
  backgroundRawAudio,
238
229
  };
239
230
  }
240
- export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOptions) {
231
+ export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOptions, callbacks) {
241
232
  const timeline = [];
242
233
  for (const segmentEntry of segmentTimeline) {
243
234
  const segmentText = segmentEntry.text;
@@ -250,7 +241,7 @@ export async function alignSegments(sourceRawAudio, segmentTimeline, alignmentOp
250
241
  audioChannels: [segmentAudioSamples],
251
242
  sampleRate: sourceRawAudio.sampleRate
252
243
  };
253
- const { wordTimeline: mappedTimeline } = await align(segmentRawAudio, segmentText, alignmentOptions);
244
+ const { wordTimeline: mappedTimeline } = await align(segmentRawAudio, segmentText, alignmentOptions, callbacks);
254
245
  const segmentTimelineWithOffset = addTimeOffsetToTimeline(mappedTimeline, segmentStartTime);
255
246
  timeline.push(...segmentTimelineWithOffset);
256
247
  }
@@ -261,7 +252,7 @@ export const defaultAlignmentOptions = {
261
252
  language: undefined,
262
253
  isolate: false,
263
254
  crop: true,
264
- customLexiconPaths: undefined,
255
+ customLexiconPaths: [],
265
256
  languageDetection: {},
266
257
  plainText: {
267
258
  paragraphBreaks: 'double',
@@ -285,10 +276,10 @@ export const defaultAlignmentOptions = {
285
276
  }
286
277
  },
287
278
  vad: {
288
- engine: 'adaptive-gate'
279
+ engine: 'adaptive-gate',
289
280
  },
290
281
  sourceSeparation: {},
291
- whisper: {}
282
+ whisper: {},
292
283
  };
293
284
  export const alignmentEngines = [
294
285
  {