echogarden 0.12.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +15 -14
  2. package/data/schemas/options.json +398 -111
  3. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  4. package/dist/alignment/DTWMfccSequenceAlignment.js +8 -8
  5. package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
  6. package/dist/alignment/DTWSequenceAlignment.js +1 -1
  7. package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
  8. package/dist/alignment/DTWSequenceAlignmentWindowed.js +2 -2
  9. package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -1
  10. package/dist/alignment/LevenshteinSequenceAlignment.js +1 -1
  11. package/dist/alignment/SpeechAlignment.d.ts +9 -10
  12. package/dist/alignment/SpeechAlignment.js +136 -105
  13. package/dist/alignment/SpeechAlignment.js.map +1 -1
  14. package/dist/api/API.d.ts +13 -12
  15. package/dist/api/API.js +14 -13
  16. package/dist/api/API.js.map +1 -1
  17. package/dist/api/APIOptions.d.ts +5 -4
  18. package/dist/api/Alignment.d.ts +15 -9
  19. package/dist/api/Alignment.js +88 -74
  20. package/dist/api/Alignment.js.map +1 -1
  21. package/dist/api/Common.js +1 -1
  22. package/dist/api/Denoising.d.ts +6 -6
  23. package/dist/api/Denoising.js +23 -23
  24. package/dist/api/Denoising.js.map +1 -1
  25. package/dist/api/LanguageDetection.d.ts +19 -12
  26. package/dist/api/LanguageDetection.js +88 -38
  27. package/dist/api/LanguageDetection.js.map +1 -1
  28. package/dist/api/Recognition.d.ts +16 -6
  29. package/dist/api/Recognition.js +129 -55
  30. package/dist/api/Recognition.js.map +1 -1
  31. package/dist/api/SourceSeparation.d.ts +17 -0
  32. package/dist/api/SourceSeparation.js +61 -0
  33. package/dist/api/SourceSeparation.js.map +1 -0
  34. package/dist/api/Synthesis.d.ts +18 -18
  35. package/dist/api/Synthesis.js +191 -164
  36. package/dist/api/Synthesis.js.map +1 -1
  37. package/dist/api/Translation.d.ts +19 -8
  38. package/dist/api/Translation.js +132 -35
  39. package/dist/api/Translation.js.map +1 -1
  40. package/dist/api/Vad.d.ts +10 -5
  41. package/dist/api/Vad.js +76 -38
  42. package/dist/api/Vad.js.map +1 -1
  43. package/dist/audio/AudioBufferConversion.d.ts +1 -1
  44. package/dist/audio/AudioBufferConversion.js +4 -4
  45. package/dist/audio/AudioPlayer.d.ts +1 -1
  46. package/dist/audio/AudioPlayer.js +26 -26
  47. package/dist/audio/AudioPlayer.js.map +1 -1
  48. package/dist/audio/AudioRecorder.d.ts +1 -1
  49. package/dist/audio/AudioRecorder.js +5 -5
  50. package/dist/audio/AudioUtilities.d.ts +13 -9
  51. package/dist/audio/AudioUtilities.js +86 -24
  52. package/dist/audio/AudioUtilities.js.map +1 -1
  53. package/dist/cli/CLI.d.ts +3 -3
  54. package/dist/cli/CLI.js +271 -162
  55. package/dist/cli/CLI.js.map +1 -1
  56. package/dist/cli/CLIConfigFile.js +8 -8
  57. package/dist/cli/CLILauncher.js +6 -6
  58. package/dist/cli/CLIOptionsSchema.js +2 -2
  59. package/dist/cli/CLIParser.js +5 -5
  60. package/dist/cli/CLIStarter.js +4 -4
  61. package/dist/codecs/FFMpegTranscoder.d.ts +2 -2
  62. package/dist/codecs/FFMpegTranscoder.js +37 -37
  63. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  64. package/dist/codecs/TIMITCodec.js +5 -5
  65. package/dist/codecs/WaveCodec.d.ts +1 -1
  66. package/dist/codecs/WaveCodec.js +22 -22
  67. package/dist/denoising/RNNoise.d.ts +1 -1
  68. package/dist/denoising/RNNoise.js +9 -9
  69. package/dist/dsp/BiquadFilter.d.ts +3 -2
  70. package/dist/dsp/BiquadFilter.js +18 -11
  71. package/dist/dsp/BiquadFilter.js.map +1 -1
  72. package/dist/dsp/DecayingPeakEstimator.d.ts +16 -0
  73. package/dist/dsp/DecayingPeakEstimator.js +23 -0
  74. package/dist/dsp/DecayingPeakEstimator.js.map +1 -0
  75. package/dist/dsp/FFT.d.ts +8 -4
  76. package/dist/dsp/FFT.js +76 -30
  77. package/dist/dsp/FFT.js.map +1 -1
  78. package/dist/dsp/KWeightingFilter.d.ts +9 -0
  79. package/dist/dsp/KWeightingFilter.js +40 -0
  80. package/dist/dsp/KWeightingFilter.js.map +1 -0
  81. package/dist/dsp/LoudnessEstimator.d.ts +21 -0
  82. package/dist/dsp/LoudnessEstimator.js +47 -0
  83. package/dist/dsp/LoudnessEstimator.js.map +1 -0
  84. package/dist/dsp/MFCC.d.ts +2 -2
  85. package/dist/dsp/MFCC.js +15 -15
  86. package/dist/dsp/MelSpectogram.d.ts +1 -1
  87. package/dist/dsp/MelSpectogram.js +6 -6
  88. package/dist/dsp/Rubberband.d.ts +11 -11
  89. package/dist/dsp/Rubberband.js +27 -27
  90. package/dist/dsp/Sonic.d.ts +1 -1
  91. package/dist/dsp/Sonic.js +3 -3
  92. package/dist/dsp/SpeexResampler.d.ts +1 -1
  93. package/dist/dsp/SpeexResampler.js +2 -2
  94. package/dist/math/VectorMath.d.ts +12 -8
  95. package/dist/math/VectorMath.js +35 -32
  96. package/dist/math/VectorMath.js.map +1 -1
  97. package/dist/nlp/ChineseSegmentation.js +2 -2
  98. package/dist/nlp/CompromiseNLP.js +3 -3
  99. package/dist/nlp/EspeakPhonemizer.js +30 -30
  100. package/dist/nlp/IPA.js +20 -20
  101. package/dist/nlp/JapaneseSegmentation.js +6 -6
  102. package/dist/nlp/Lexicon.d.ts +1 -1
  103. package/dist/nlp/Lexicon.js +7 -7
  104. package/dist/nlp/Segmentation.d.ts +3 -0
  105. package/dist/nlp/Segmentation.js +21 -14
  106. package/dist/nlp/Segmentation.js.map +1 -1
  107. package/dist/nlp/TextNormalizer.js +16 -16
  108. package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -2
  109. package/dist/recognition/AmazonTranscribeSTT.js +13 -14
  110. package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
  111. package/dist/recognition/AzureCognitiveServicesSTT.js +5 -6
  112. package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
  113. package/dist/recognition/GoogleCloudSTT.d.ts +3 -3
  114. package/dist/recognition/GoogleCloudSTT.js +18 -18
  115. package/dist/recognition/OpenAICloudSTT.d.ts +19 -0
  116. package/dist/recognition/OpenAICloudSTT.js +81 -0
  117. package/dist/recognition/OpenAICloudSTT.js.map +1 -0
  118. package/dist/recognition/SileroSTT.d.ts +2 -2
  119. package/dist/recognition/SileroSTT.js +25 -25
  120. package/dist/recognition/VoskSTT.d.ts +2 -2
  121. package/dist/recognition/VoskSTT.js +8 -8
  122. package/dist/recognition/WhisperCppSTT.d.ts +88 -0
  123. package/dist/recognition/WhisperCppSTT.js +332 -0
  124. package/dist/recognition/WhisperCppSTT.js.map +1 -0
  125. package/dist/recognition/WhisperSTT.d.ts +49 -25
  126. package/dist/recognition/WhisperSTT.js +626 -481
  127. package/dist/recognition/WhisperSTT.js.map +1 -1
  128. package/dist/server/Client.d.ts +1 -1
  129. package/dist/server/Client.js +22 -22
  130. package/dist/server/Server.js +9 -9
  131. package/dist/server/Server.js.map +1 -1
  132. package/dist/server/Worker.d.ts +22 -22
  133. package/dist/server/Worker.js +36 -36
  134. package/dist/server/Worker.js.map +1 -1
  135. package/dist/server/WorkerStarter.js +2 -2
  136. package/dist/source-separation/MDXNetSourceSeparation.d.ts +11 -0
  137. package/dist/source-separation/MDXNetSourceSeparation.js +161 -0
  138. package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -0
  139. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
  140. package/dist/speech-language-detection/SileroLanguageDetection.js +7 -7
  141. package/dist/subtitles/Subtitles.d.ts +10 -0
  142. package/dist/subtitles/Subtitles.js +2 -2
  143. package/dist/subtitles/Subtitles.js.map +1 -1
  144. package/dist/synthesis/AwsPollyTTS.d.ts +1 -1
  145. package/dist/synthesis/AwsPollyTTS.js +12 -12
  146. package/dist/synthesis/AzureCognitiveServicesTTS.js +7 -7
  147. package/dist/synthesis/CoquiServerTTS.js +10 -10
  148. package/dist/synthesis/CoquiServerTTS.js.map +1 -1
  149. package/dist/synthesis/ElevenlabsTTS.d.ts +23 -0
  150. package/dist/synthesis/ElevenlabsTTS.js +103 -0
  151. package/dist/synthesis/ElevenlabsTTS.js.map +1 -0
  152. package/dist/synthesis/EspeakTTS.d.ts +6 -5
  153. package/dist/synthesis/EspeakTTS.js +81 -69
  154. package/dist/synthesis/EspeakTTS.js.map +1 -1
  155. package/dist/synthesis/FliteTTS.d.ts +3 -3
  156. package/dist/synthesis/FliteTTS.js +154 -154
  157. package/dist/synthesis/FliteTTS.js.map +1 -1
  158. package/dist/synthesis/GoogleCloudTTS.d.ts +3 -3
  159. package/dist/synthesis/GoogleCloudTTS.js +17 -17
  160. package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
  161. package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
  162. package/dist/synthesis/GoogleTranslateTTS.js +103 -103
  163. package/dist/synthesis/MicrosoftEdgeTTS.d.ts +2 -2
  164. package/dist/synthesis/MicrosoftEdgeTTS.js +74 -74
  165. package/dist/synthesis/OpenAICloudTTS.d.ts +13 -0
  166. package/dist/synthesis/OpenAICloudTTS.js +169 -0
  167. package/dist/synthesis/OpenAICloudTTS.js.map +1 -0
  168. package/dist/synthesis/SamTTS.js +3 -3
  169. package/dist/synthesis/SapiTTS.d.ts +3 -3
  170. package/dist/synthesis/SapiTTS.js +26 -26
  171. package/dist/synthesis/StreamlabsPollyTTS.d.ts +2 -2
  172. package/dist/synthesis/StreamlabsPollyTTS.js +27 -27
  173. package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
  174. package/dist/synthesis/SvoxPicoTTS.js +65 -65
  175. package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
  176. package/dist/synthesis/VitsTTS.d.ts +3 -3
  177. package/dist/synthesis/VitsTTS.js +378 -378
  178. package/dist/synthesis/VitsTTS.js.map +1 -1
  179. package/dist/tests/Test.js +2 -2
  180. package/dist/utilities/Compression.d.ts +5 -0
  181. package/dist/utilities/Compression.js +29 -13
  182. package/dist/utilities/Compression.js.map +1 -1
  183. package/dist/utilities/FileDownloader.d.ts +1 -1
  184. package/dist/utilities/FileDownloader.js +16 -16
  185. package/dist/utilities/FileSystem.js +7 -7
  186. package/dist/utilities/Locale.d.ts +7 -7
  187. package/dist/utilities/Locale.js +15 -15
  188. package/dist/utilities/Logger.js +3 -3
  189. package/dist/utilities/ObjectUtilities.js +19 -19
  190. package/dist/utilities/OpenPromise.js +2 -2
  191. package/dist/utilities/OpenPromise.js.map +1 -1
  192. package/dist/utilities/PackageManager.js +31 -0
  193. package/dist/utilities/PackageManager.js.map +1 -1
  194. package/dist/utilities/PathUtilities.js +8 -8
  195. package/dist/utilities/RandomGenerator.js +2 -2
  196. package/dist/utilities/SmoothEstimator.d.ts +8 -0
  197. package/dist/utilities/SmoothEstimator.js +25 -0
  198. package/dist/utilities/SmoothEstimator.js.map +1 -0
  199. package/dist/utilities/TarballMaker.js +8 -8
  200. package/dist/utilities/Timeline.d.ts +3 -2
  201. package/dist/utilities/Timeline.js +11 -11
  202. package/dist/utilities/Timeline.js.map +1 -1
  203. package/dist/utilities/Timer.js +4 -4
  204. package/dist/utilities/Utilities.d.ts +4 -0
  205. package/dist/utilities/Utilities.js +38 -15
  206. package/dist/utilities/Utilities.js.map +1 -1
  207. package/dist/utilities/WasmMemoryManager.js +7 -7
  208. package/dist/utilities/WebReader.js +23 -23
  209. package/dist/utilities/WikipediaReader.js +2 -2
  210. package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +28 -0
  211. package/dist/voice-activity-detection/AdaptiveGateVAD.js +138 -0
  212. package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -0
  213. package/dist/voice-activity-detection/SileroVAD.d.ts +1 -1
  214. package/dist/voice-activity-detection/SileroVAD.js +5 -5
  215. package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
  216. package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -1
  217. package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
  218. package/docs/API.md +29 -11
  219. package/docs/CLI.md +31 -7
  220. package/docs/Contributing.md +38 -0
  221. package/docs/Development.md +93 -19
  222. package/docs/Engines.md +28 -16
  223. package/docs/Licenses.md +4 -1
  224. package/docs/Options.md +158 -78
  225. package/docs/Releases.md +262 -0
  226. package/docs/Server.md +7 -7
  227. package/docs/Tasklist.md +95 -76
  228. package/docs/Technical.md +4 -4
  229. package/package.json +13 -14
  230. package/src/alignment/DTWMfccSequenceAlignment.ts +9 -9
  231. package/src/alignment/DTWSequenceAlignment.ts +2 -2
  232. package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
  233. package/src/alignment/LevenshteinSequenceAlignment.ts +2 -2
  234. package/src/alignment/SpeechAlignment.ts +204 -119
  235. package/src/api/API.ts +14 -13
  236. package/src/api/APIOptions.ts +12 -11
  237. package/src/api/Alignment.ts +147 -90
  238. package/src/api/Common.ts +1 -1
  239. package/src/api/Denoising.ts +28 -28
  240. package/src/api/LanguageDetection.ts +135 -48
  241. package/src/api/Recognition.ts +198 -59
  242. package/src/api/SourceSeparation.ts +99 -0
  243. package/src/api/Synthesis.ts +217 -181
  244. package/src/api/Translation.ts +193 -40
  245. package/src/api/Vad.ts +110 -41
  246. package/src/audio/AudioBufferConversion.ts +4 -4
  247. package/src/audio/AudioPlayer.ts +27 -27
  248. package/src/audio/AudioRecorder.ts +5 -5
  249. package/src/audio/AudioUtilities.ts +107 -24
  250. package/src/cli/CLI.ts +313 -164
  251. package/src/cli/CLIConfigFile.ts +8 -8
  252. package/src/cli/CLILauncher.ts +6 -6
  253. package/src/cli/CLIOptionsSchema.ts +2 -2
  254. package/src/cli/CLIParser.ts +5 -5
  255. package/src/cli/CLIStarter.ts +4 -4
  256. package/src/codecs/FFMpegTranscoder.ts +38 -38
  257. package/src/codecs/TIMITCodec.ts +5 -5
  258. package/src/codecs/WaveCodec.ts +22 -22
  259. package/src/denoising/RNNoise.ts +9 -9
  260. package/src/dsp/BiquadFilter.ts +19 -11
  261. package/src/dsp/DecayingPeakEstimator.ts +35 -0
  262. package/src/dsp/FFT.ts +103 -35
  263. package/src/dsp/KWeightingFilter.ts +43 -0
  264. package/src/dsp/LoudnessEstimator.ts +74 -0
  265. package/src/dsp/MFCC.ts +15 -15
  266. package/src/dsp/MelSpectogram.ts +7 -7
  267. package/src/dsp/Rubberband.ts +38 -38
  268. package/src/dsp/Sonic.ts +4 -4
  269. package/src/dsp/SpeexResampler.ts +2 -2
  270. package/src/math/VectorMath.ts +42 -33
  271. package/src/nlp/ChineseSegmentation.ts +3 -3
  272. package/src/nlp/CompromiseNLP.ts +3 -3
  273. package/src/nlp/EspeakPhonemizer.ts +30 -30
  274. package/src/nlp/IPA.ts +20 -20
  275. package/src/nlp/JapaneseSegmentation.ts +6 -6
  276. package/src/nlp/Lexicon.ts +8 -8
  277. package/src/nlp/Segmentation.ts +23 -14
  278. package/src/nlp/TextNormalizer.ts +16 -16
  279. package/src/recognition/AmazonTranscribeSTT.ts +16 -17
  280. package/src/recognition/AzureCognitiveServicesSTT.ts +8 -6
  281. package/src/recognition/GoogleCloudSTT.ts +21 -21
  282. package/src/recognition/OpenAICloudSTT.ts +142 -0
  283. package/src/recognition/SileroSTT.ts +26 -26
  284. package/src/recognition/VoskSTT.ts +10 -10
  285. package/src/recognition/WhisperCppSTT.ts +555 -0
  286. package/src/recognition/WhisperSTT.ts +760 -507
  287. package/src/server/Client.ts +23 -23
  288. package/src/server/Server.ts +9 -9
  289. package/src/server/Worker.ts +53 -53
  290. package/src/server/WorkerStarter.ts +2 -2
  291. package/src/source-separation/MDXNetSourceSeparation.ts +228 -0
  292. package/src/speech-language-detection/SileroLanguageDetection.ts +8 -8
  293. package/src/subtitles/Subtitles.ts +3 -3
  294. package/src/synthesis/AwsPollyTTS.ts +14 -14
  295. package/src/synthesis/AzureCognitiveServicesTTS.ts +10 -10
  296. package/src/synthesis/CoquiServerTTS.ts +10 -10
  297. package/src/synthesis/ElevenlabsTTS.ts +137 -0
  298. package/src/synthesis/EspeakTTS.ts +90 -71
  299. package/src/synthesis/FliteTTS.ts +157 -157
  300. package/src/synthesis/GoogleCloudTTS.ts +19 -19
  301. package/src/synthesis/GoogleTranslateTTS.ts +104 -104
  302. package/src/synthesis/MicrosoftEdgeTTS.ts +80 -80
  303. package/src/synthesis/OpenAICloudTTS.ts +196 -0
  304. package/src/synthesis/SamTTS.ts +3 -3
  305. package/src/synthesis/SapiTTS.ts +29 -29
  306. package/src/synthesis/StreamlabsPollyTTS.ts +29 -29
  307. package/src/synthesis/SvoxPicoTTS.ts +67 -67
  308. package/src/synthesis/VitsTTS.ts +380 -380
  309. package/src/tests/Test.ts +4 -4
  310. package/src/utilities/Compression.ts +34 -13
  311. package/src/utilities/FileDownloader.ts +19 -19
  312. package/src/utilities/FileSystem.ts +7 -7
  313. package/src/utilities/Locale.ts +22 -22
  314. package/src/utilities/Logger.ts +4 -4
  315. package/src/utilities/ObjectUtilities.ts +19 -19
  316. package/src/utilities/OpenPromise.ts +2 -2
  317. package/src/utilities/PackageManager.ts +40 -0
  318. package/src/utilities/PathUtilities.ts +8 -8
  319. package/src/utilities/RandomGenerator.ts +3 -3
  320. package/src/utilities/SmoothEstimator.ts +35 -0
  321. package/src/utilities/TarballMaker.ts +9 -9
  322. package/src/utilities/Timeline.ts +15 -13
  323. package/src/utilities/Timer.ts +4 -4
  324. package/src/utilities/Utilities.ts +49 -15
  325. package/src/utilities/WasmMemoryManager.ts +7 -7
  326. package/src/utilities/WebReader.ts +23 -23
  327. package/src/utilities/WikipediaReader.ts +2 -2
  328. package/src/voice-activity-detection/AdaptiveGateVAD.ts +202 -0
  329. package/src/voice-activity-detection/SileroVAD.ts +5 -5
  330. package/src/voice-activity-detection/WebRtcVAD.ts +5 -5
  331. package/dist/synthesis/ElevenLabsTTS.d.ts +0 -8
  332. package/dist/synthesis/ElevenLabsTTS.js +0 -82
  333. package/dist/synthesis/ElevenLabsTTS.js.map +0 -1
  334. package/src/synthesis/ElevenLabsTTS.ts +0 -104
@@ -1,10 +1,10 @@
1
1
  import type { InferenceSession } from 'onnxruntime-node'
2
2
  import { SynthesisVoice } from '../api/API.js'
3
- import { Logger } from "../utilities/Logger.js"
4
- import { RawAudio, getEmptyRawAudio, getRawAudioDuration } from "../audio/AudioUtilities.js"
5
- import { Lexicon } from "../nlp/Lexicon.js"
6
- import { Timeline } from "../utilities/Timeline.js"
7
- import { readAndParseJsonFile, readdir } from "../utilities/FileSystem.js"
3
+ import { Logger } from '../utilities/Logger.js'
4
+ import { RawAudio, getEmptyRawAudio, getRawAudioDuration } from '../audio/AudioUtilities.js'
5
+ import { Lexicon } from '../nlp/Lexicon.js'
6
+ import { Timeline } from '../utilities/Timeline.js'
7
+ import { readAndParseJsonFile, readdir } from '../utilities/FileSystem.js'
8
8
  import path from 'node:path'
9
9
  import { EspeakOptions, defaultEspeakOptions } from '../synthesis/EspeakTTS.js'
10
10
 
@@ -43,7 +43,7 @@ export class VitsTTS {
43
43
 
44
44
  async initialize() {
45
45
  const logger = new Logger()
46
- await logger.startAsync("Initialize VITS ONNX synthesis model")
46
+ await logger.startAsync('Initialize VITS ONNX synthesis model')
47
47
 
48
48
  const onnxOptions: InferenceSession.SessionOptions = {
49
49
  logSeverityLevel: 3
@@ -52,7 +52,7 @@ export class VitsTTS {
52
52
  const { default: Onnx } = await import('onnxruntime-node')
53
53
 
54
54
  const filesInModelPath = await readdir(this.modelPath)
55
- const onnxModelFilename = filesInModelPath.find(filename => filename.endsWith(".onnx"))
55
+ const onnxModelFilename = filesInModelPath.find(filename => filename.endsWith('.onnx'))
56
56
 
57
57
  if (!onnxModelFilename) {
58
58
  throw new Error(`Couldn't file any ONNX model file in ${this.modelPath}`)
@@ -76,10 +76,10 @@ export class VitsTTS {
76
76
  const logger = new Logger()
77
77
 
78
78
  if (!this.modelSession) {
79
- throw new Error("Model has not been initialized")
79
+ throw new Error('Model has not been initialized')
80
80
  }
81
81
 
82
- await logger.startAsync("Prepare for synthesis")
82
+ await logger.startAsync('Prepare for synthesis')
83
83
 
84
84
  const metadata = this.metadata
85
85
  const phonemeMap = this.phonemeMap!
@@ -92,11 +92,11 @@ export class VitsTTS {
92
92
 
93
93
  sentence = //simplifyPunctuationCharacters(sentence.trim())
94
94
  sentence
95
- .replaceAll("(", ", ")
96
- .replaceAll(")", ", ")
97
- .replaceAll("—", ", ")
95
+ .replaceAll('(', ', ')
96
+ .replaceAll(')', ', ')
97
+ .replaceAll('—', ', ')
98
98
 
99
- const Espeak = await import("../synthesis/EspeakTTS.js")
99
+ const Espeak = await import('../synthesis/EspeakTTS.js')
100
100
 
101
101
  logger.end()
102
102
 
@@ -114,21 +114,21 @@ export class VitsTTS {
114
114
  }
115
115
  }
116
116
 
117
- await logger.startAsync("Encode phonemes to identifiers")
117
+ await logger.startAsync('Encode phonemes to identifiers')
118
118
 
119
- const clauseEndBreaker = ","
120
- let sentenceEndBreaker = "."
119
+ const clauseEndBreaker = ','
120
+ let sentenceEndBreaker = '.'
121
121
 
122
- if (sentence.endsWith("?") || sentence.endsWith("?\"")) {
123
- sentenceEndBreaker = "?"
124
- } else if (sentence.endsWith("!") || sentence.endsWith("!\"")) {
125
- sentenceEndBreaker = "!"
122
+ if (sentence.endsWith('?') || sentence.endsWith(`?"`)) {
123
+ sentenceEndBreaker = '?'
124
+ } else if (sentence.endsWith('!') || sentence.endsWith(`!"`)) {
125
+ sentenceEndBreaker = '!'
126
126
  }
127
127
 
128
- const phonemeCharacterSeparatorId = phonemeMap.get("_")!
129
- const wordSeparatorId = phonemeMap.get(" ")!
130
- const startId = phonemeMap.get("^")!
131
- const endId = phonemeMap.get("$")!
128
+ const phonemeCharacterSeparatorId = phonemeMap.get('_')!
129
+ const wordSeparatorId = phonemeMap.get(' ')!
130
+ const startId = phonemeMap.get('^')!
131
+ const endId = phonemeMap.get('$')!
132
132
 
133
133
  const clauseEndBreakerId = phonemeMap.get(clauseEndBreaker)!
134
134
  const sentenceEndBreakerId = phonemeMap.get(sentenceEndBreaker)!
@@ -144,7 +144,7 @@ export class VitsTTS {
144
144
  const id = phonemeMap.get(phonemeCharacter)
145
145
 
146
146
  if (id == null) {
147
- //logger.log(`No id found for subphoneme "${char}"`)
147
+ //logger.log(`No id found for subphoneme '${char}'`)
148
148
  continue
149
149
  }
150
150
 
@@ -169,7 +169,7 @@ export class VitsTTS {
169
169
  const bigIntIds = new BigInt64Array(ids.map(id => BigInt(id)))
170
170
  const idLengths = new BigInt64Array([BigInt(bigIntIds.length)])
171
171
 
172
- await logger.startAsync("Generate audio using synthesis model")
172
+ await logger.startAsync('Generate audio using synthesis model')
173
173
 
174
174
  const { default: Onnx } = await import('onnxruntime-node')
175
175
 
@@ -181,15 +181,15 @@ export class VitsTTS {
181
181
  const modelInputs = { input: inputTensor, input_lengths: inputLengthsTensor, scales: scalesTensor, sid: speakerIdTensor }
182
182
 
183
183
  const modelResults = await this.modelSession.run(modelInputs)
184
- const modelOutput = modelResults["output"]
184
+ const modelOutput = modelResults['output']
185
185
 
186
186
  const modelOutputAudioSamples = modelOutput['data'] as Float32Array
187
187
 
188
188
  const synthesizedAudio: RawAudio = { audioChannels: [modelOutputAudioSamples], sampleRate: outputSampleRate }
189
189
 
190
- await logger.startAsync("Align with reference synthesized audio")
190
+ await logger.startAsync('Align with reference synthesized audio')
191
191
 
192
- const { alignUsingDtw } = await import("../alignment/SpeechAlignment.js")
192
+ const { alignUsingDtw } = await import('../alignment/SpeechAlignment.js')
193
193
 
194
194
  const referenceWordTimeline = referenceTimeline.flatMap(clause => clause.timeline!)
195
195
 
@@ -204,645 +204,645 @@ export class VitsTTS {
204
204
 
205
205
  export const voiceList: SynthesisVoice[] = [
206
206
  {
207
- name: "ar_JO-kareem-low",
208
- languages: ["ar-JO", "ar"],
209
- gender: "male",
207
+ name: 'ar_JO-kareem-low',
208
+ languages: ['ar-JO', 'ar'],
209
+ gender: 'male',
210
210
  },
211
211
  {
212
- name: "ar_JO-kareem-medium",
213
- languages: ["ar-JO", "ar"],
214
- gender: "male",
212
+ name: 'ar_JO-kareem-medium',
213
+ languages: ['ar-JO', 'ar'],
214
+ gender: 'male',
215
215
  },
216
216
 
217
217
  {
218
- name: "ca_ES-upc_ona-x_low",
219
- languages: ["ca-ES", "ca"],
220
- gender: "female",
218
+ name: 'ca_ES-upc_ona-x_low',
219
+ languages: ['ca-ES', 'ca'],
220
+ gender: 'female',
221
221
  },
222
222
  {
223
- name: "ca_ES-upc_ona-medium",
224
- languages: ["ca-ES", "ca"],
225
- gender: "female",
223
+ name: 'ca_ES-upc_ona-medium',
224
+ languages: ['ca-ES', 'ca'],
225
+ gender: 'female',
226
226
  },
227
227
  {
228
- name: "ca_ES-upc_pau-x_low",
229
- languages: ["ca-ES", "ca"],
230
- gender: "male",
228
+ name: 'ca_ES-upc_pau-x_low',
229
+ languages: ['ca-ES', 'ca'],
230
+ gender: 'male',
231
231
  },
232
232
 
233
233
  {
234
- name: "cs_CZ-jirka-low",
235
- languages: ["cs-CZ", "cs"],
236
- gender: "male",
234
+ name: 'cs_CZ-jirka-low',
235
+ languages: ['cs-CZ', 'cs'],
236
+ gender: 'male',
237
237
  },
238
238
  {
239
- name: "cs_CZ-jirka-medium",
240
- languages: ["cs-CZ", "cs"],
241
- gender: "male",
239
+ name: 'cs_CZ-jirka-medium',
240
+ languages: ['cs-CZ', 'cs'],
241
+ gender: 'male',
242
242
  },
243
243
 
244
244
  {
245
- name: "da_DK-nst_talesyntese-medium",
246
- languages: ["da-DK", "da"],
247
- gender: "male",
245
+ name: 'da_DK-nst_talesyntese-medium',
246
+ languages: ['da-DK', 'da'],
247
+ gender: 'male',
248
248
  },
249
249
 
250
250
  {
251
- name: "de_DE-thorsten-low",
252
- languages: ["de-DE", "de"],
253
- gender: "male",
251
+ name: 'de_DE-thorsten-low',
252
+ languages: ['de-DE', 'de'],
253
+ gender: 'male',
254
254
  },
255
255
  {
256
- name: "de_DE-thorsten-medium",
257
- languages: ["de-DE", "de"],
258
- gender: "male",
256
+ name: 'de_DE-thorsten-medium',
257
+ languages: ['de-DE', 'de'],
258
+ gender: 'male',
259
259
  },
260
260
  {
261
- name: "de_DE-thorsten_emotional-medium",
262
- languages: ["de-DE", "de"],
263
- gender: "male",
261
+ name: 'de_DE-thorsten_emotional-medium',
262
+ languages: ['de-DE', 'de'],
263
+ gender: 'male',
264
264
  speakerCount: 8
265
265
  },
266
266
  {
267
- name: "de_DE-thorsten-high",
268
- languages: ["de-DE", "de"],
269
- gender: "male",
267
+ name: 'de_DE-thorsten-high',
268
+ languages: ['de-DE', 'de'],
269
+ gender: 'male',
270
270
  },
271
271
  {
272
- name: "de_DE-eva_k-x_low",
273
- languages: ["de-DE", "de"],
274
- gender: "female",
272
+ name: 'de_DE-eva_k-x_low',
273
+ languages: ['de-DE', 'de'],
274
+ gender: 'female',
275
275
  },
276
276
  {
277
- name: "de_DE-ramona-low",
278
- languages: ["de-DE", "de"],
279
- gender: "female",
277
+ name: 'de_DE-ramona-low',
278
+ languages: ['de-DE', 'de'],
279
+ gender: 'female',
280
280
  },
281
281
  {
282
- name: "de_DE-pavoque-low",
283
- languages: ["de-DE", "de"],
284
- gender: "male",
282
+ name: 'de_DE-pavoque-low',
283
+ languages: ['de-DE', 'de'],
284
+ gender: 'male',
285
285
  },
286
286
  {
287
- name: "de_DE-kerstin-low",
288
- languages: ["de-DE", "de"],
289
- gender: "female",
287
+ name: 'de_DE-kerstin-low',
288
+ languages: ['de-DE', 'de'],
289
+ gender: 'female',
290
290
  },
291
291
  {
292
- name: "de_DE-karlsson-low",
293
- languages: ["de-DE", "de"],
294
- gender: "male",
292
+ name: 'de_DE-karlsson-low',
293
+ languages: ['de-DE', 'de'],
294
+ gender: 'male',
295
295
  },
296
296
  {
297
- name: "de_DE-mls-medium",
298
- languages: ["de-DE", "de"],
299
- gender: "unknown",
297
+ name: 'de_DE-mls-medium',
298
+ languages: ['de-DE', 'de'],
299
+ gender: 'unknown',
300
300
  speakerCount: 236
301
301
  },
302
302
 
303
303
  {
304
- name: "el_GR-rapunzelina-low",
305
- languages: ["el-GR", "el"],
306
- gender: "female",
304
+ name: 'el_GR-rapunzelina-low',
305
+ languages: ['el-GR', 'el'],
306
+ gender: 'female',
307
307
  },
308
308
 
309
309
  {
310
- name: "en_GB-alan-low",
311
- languages: ["en-GB", "en"],
312
- gender: "male",
310
+ name: 'en_GB-alan-low',
311
+ languages: ['en-GB', 'en'],
312
+ gender: 'male',
313
313
  },
314
314
  {
315
- name: "en_GB-alan-medium",
316
- languages: ["en-GB", "en"],
317
- gender: "male",
315
+ name: 'en_GB-alan-medium',
316
+ languages: ['en-GB', 'en'],
317
+ gender: 'male',
318
318
  },
319
319
  {
320
- name: "en_GB-semaine-medium",
321
- languages: ["en-GB", "en"],
322
- gender: "unknown",
320
+ name: 'en_GB-semaine-medium',
321
+ languages: ['en-GB', 'en'],
322
+ gender: 'unknown',
323
323
  speakerCount: 4
324
324
  },
325
325
  {
326
- name: "en_GB-danny-low",
327
- languages: ["en-GB", "en"],
328
- gender: "male",
326
+ name: 'en_GB-danny-low',
327
+ languages: ['en-GB', 'en'],
328
+ gender: 'male',
329
329
  },
330
330
  {
331
- name: "en_GB-alba-medium",
332
- languages: ["en-GB", "en"],
333
- gender: "female",
331
+ name: 'en_GB-alba-medium',
332
+ languages: ['en-GB', 'en'],
333
+ gender: 'female',
334
334
  },
335
335
  {
336
- name: "en_GB-aru-medium",
337
- languages: ["en-GB", "en"],
338
- gender: "unknown",
336
+ name: 'en_GB-aru-medium',
337
+ languages: ['en-GB', 'en'],
338
+ gender: 'unknown',
339
339
  speakerCount: 12,
340
340
  },
341
341
  {
342
- name: "en_GB-southern_english_female-low",
343
- languages: ["en-GB", "en"],
344
- gender: "female",
342
+ name: 'en_GB-southern_english_female-low',
343
+ languages: ['en-GB', 'en'],
344
+ gender: 'female',
345
345
  },
346
346
  {
347
- name: "en_GB-northern_english_male-medium",
348
- languages: ["en-GB", "en"],
349
- gender: "male",
347
+ name: 'en_GB-northern_english_male-medium',
348
+ languages: ['en-GB', 'en'],
349
+ gender: 'male',
350
350
  },
351
351
  {
352
- name: "en_GB-vctk-medium",
353
- languages: ["en-GB", "en"],
354
- gender: "unknown",
352
+ name: 'en_GB-vctk-medium',
353
+ languages: ['en-GB', 'en'],
354
+ gender: 'unknown',
355
355
  speakerCount: 109,
356
356
  },
357
357
  {
358
- name: "en_GB-jenny_dioco-medium",
359
- languages: ["en-GB", "en"],
360
- gender: "female",
358
+ name: 'en_GB-jenny_dioco-medium',
359
+ languages: ['en-GB', 'en'],
360
+ gender: 'female',
361
361
  },
362
362
  {
363
- name: "en_GB-cori-high",
364
- languages: ["en-GB", "en"],
365
- gender: "female",
363
+ name: 'en_GB-cori-high',
364
+ languages: ['en-GB', 'en'],
365
+ gender: 'female',
366
366
  },
367
367
 
368
368
 
369
369
  {
370
- name: "en_US-amy-low",
371
- languages: ["en-US", "en"],
372
- gender: "female",
370
+ name: 'en_US-amy-low',
371
+ languages: ['en-US', 'en'],
372
+ gender: 'female',
373
373
  },
374
374
  {
375
- name: "en_US-amy-medium",
376
- languages: ["en-US", "en"],
377
- gender: "female",
375
+ name: 'en_US-amy-medium',
376
+ languages: ['en-US', 'en'],
377
+ gender: 'female',
378
378
  },
379
379
  {
380
- name: "en_US-kathleen-low",
381
- languages: ["en-US", "en"],
382
- gender: "female",
380
+ name: 'en_US-kathleen-low',
381
+ languages: ['en-US', 'en'],
382
+ gender: 'female',
383
383
  },
384
384
  {
385
- name: "en_US-lessac-low",
386
- languages: ["en-US", "en"],
387
- gender: "female",
385
+ name: 'en_US-lessac-low',
386
+ languages: ['en-US', 'en'],
387
+ gender: 'female',
388
388
  },
389
389
  {
390
- name: "en_US-lessac-medium",
391
- languages: ["en-US", "en"],
392
- gender: "female",
390
+ name: 'en_US-lessac-medium',
391
+ languages: ['en-US', 'en'],
392
+ gender: 'female',
393
393
  },
394
394
  {
395
- name: "en_US-lessac-high",
396
- languages: ["en-US", "en"],
397
- gender: "female",
395
+ name: 'en_US-lessac-high',
396
+ languages: ['en-US', 'en'],
397
+ gender: 'female',
398
398
  },
399
399
  {
400
- name: "en_US-libritts-high",
401
- languages: ["en-US", "en"],
402
- gender: "unknown",
400
+ name: 'en_US-libritts-high',
401
+ languages: ['en-US', 'en'],
402
+ gender: 'unknown',
403
403
  speakerCount: 904,
404
404
  },
405
405
  {
406
- name: "en_US-libritts_r-medium",
407
- languages: ["en-US", "en"],
408
- gender: "unknown",
406
+ name: 'en_US-libritts_r-medium',
407
+ languages: ['en-US', 'en'],
408
+ gender: 'unknown',
409
409
  speakerCount: 904,
410
410
  },
411
411
  {
412
- name: "en_US-ryan-low",
413
- languages: ["en-US", "en"],
414
- gender: "male",
412
+ name: 'en_US-ryan-low',
413
+ languages: ['en-US', 'en'],
414
+ gender: 'male',
415
415
  },
416
416
  {
417
- name: "en_US-ryan-medium",
418
- languages: ["en-US", "en"],
419
- gender: "male",
417
+ name: 'en_US-ryan-medium',
418
+ languages: ['en-US', 'en'],
419
+ gender: 'male',
420
420
  },
421
421
  {
422
- name: "en_US-ryan-high",
423
- languages: ["en-US", "en"],
424
- gender: "male",
422
+ name: 'en_US-ryan-high',
423
+ languages: ['en-US', 'en'],
424
+ gender: 'male',
425
425
  },
426
426
  {
427
- name: "en_US-joe-medium",
428
- languages: ["en-US", "en"],
429
- gender: "male",
427
+ name: 'en_US-joe-medium',
428
+ languages: ['en-US', 'en'],
429
+ gender: 'male',
430
430
  },
431
431
  {
432
- name: "en_US-kusal-medium",
433
- languages: ["en-US", "en"],
434
- gender: "male",
432
+ name: 'en_US-kusal-medium',
433
+ languages: ['en-US', 'en'],
434
+ gender: 'male',
435
435
  },
436
436
  {
437
- name: "en_US-arctic-medium",
438
- languages: ["en-US", "en"],
439
- gender: "unknown",
437
+ name: 'en_US-arctic-medium',
438
+ languages: ['en-US', 'en'],
439
+ gender: 'unknown',
440
440
  speakerCount: 18
441
441
  },
442
442
  {
443
- name: "en_US-l2arctic-medium",
444
- languages: ["en-US", "en"],
445
- gender: "unknown",
443
+ name: 'en_US-l2arctic-medium',
444
+ languages: ['en-US', 'en'],
445
+ gender: 'unknown',
446
446
  speakerCount: 24
447
447
  },
448
448
  {
449
- name: "en_US-hfc_male-medium",
450
- languages: ["en-US", "en"],
451
- gender: "male",
449
+ name: 'en_US-hfc_male-medium',
450
+ languages: ['en-US', 'en'],
451
+ gender: 'male',
452
452
  },
453
453
  {
454
- name: "en_US-hfc_female-medium",
455
- languages: ["en-US", "en"],
456
- gender: "female",
454
+ name: 'en_US-hfc_female-medium',
455
+ languages: ['en-US', 'en'],
456
+ gender: 'female',
457
457
  },
458
458
  {
459
- name: "en_US-kristin-medium",
460
- languages: ["en-US", "en"],
461
- gender: "female",
459
+ name: 'en_US-kristin-medium',
460
+ languages: ['en-US', 'en'],
461
+ gender: 'female',
462
462
  },
463
463
  {
464
- name: "en_US-ljspeech-high",
465
- languages: ["en-US", "en"],
466
- gender: "female",
464
+ name: 'en_US-ljspeech-high',
465
+ languages: ['en-US', 'en'],
466
+ gender: 'female',
467
467
  },
468
468
  {
469
- name: "en_US-ljspeech-medium",
470
- languages: ["en-US", "en"],
471
- gender: "female",
469
+ name: 'en_US-ljspeech-medium',
470
+ languages: ['en-US', 'en'],
471
+ gender: 'female',
472
472
  },
473
473
 
474
474
  {
475
- name: "es_ES-carlfm-x_low",
476
- languages: ["es-ES", "es"],
477
- gender: "male",
475
+ name: 'es_ES-carlfm-x_low',
476
+ languages: ['es-ES', 'es'],
477
+ gender: 'male',
478
478
  },
479
479
  {
480
- name: "es_ES-sharvard-medium",
481
- languages: ["es-ES", "es"],
482
- gender: "unknown",
480
+ name: 'es_ES-sharvard-medium',
481
+ languages: ['es-ES', 'es'],
482
+ gender: 'unknown',
483
483
  speakerCount: 2
484
484
  },
485
485
  {
486
- name: "es_ES-davefx-medium",
487
- languages: ["es-ES", "es"],
488
- gender: "male",
486
+ name: 'es_ES-davefx-medium',
487
+ languages: ['es-ES', 'es'],
488
+ gender: 'male',
489
489
  },
490
490
  {
491
- name: "es_ES-mls_9972-low",
492
- languages: ["es-ES", "es"],
493
- gender: "male",
491
+ name: 'es_ES-mls_9972-low',
492
+ languages: ['es-ES', 'es'],
493
+ gender: 'male',
494
494
  },
495
495
  {
496
- name: "es_ES-mls_10246-low",
497
- languages: ["es-ES", "es"],
498
- gender: "male",
496
+ name: 'es_ES-mls_10246-low',
497
+ languages: ['es-ES', 'es'],
498
+ gender: 'male',
499
499
  },
500
500
 
501
501
  {
502
- name: "es_MX-ald-medium",
503
- languages: ["es-MX", "es"],
504
- gender: "male",
502
+ name: 'es_MX-ald-medium',
503
+ languages: ['es-MX', 'es'],
504
+ gender: 'male',
505
505
  },
506
506
  {
507
- name: "es_MX-claude-high",
508
- languages: ["es-MX", "es"],
509
- gender: "female",
507
+ name: 'es_MX-claude-high',
508
+ languages: ['es-MX', 'es'],
509
+ gender: 'female',
510
510
  },
511
511
 
512
512
  {
513
- name: "fa_IR-amir-medium",
514
- languages: ["fa_IR", "fa"],
515
- gender: "male",
513
+ name: 'fa_IR-amir-medium',
514
+ languages: ['fa_IR', 'fa'],
515
+ gender: 'male',
516
516
  },
517
517
  {
518
- name: "fa_IR-gyro-medium",
519
- languages: ["fa_IR", "fa"],
520
- gender: "male",
518
+ name: 'fa_IR-gyro-medium',
519
+ languages: ['fa_IR', 'fa'],
520
+ gender: 'male',
521
521
  },
522
522
 
523
523
 
524
524
  {
525
- name: "fi_FI-harri-low",
526
- languages: ["fi-FI", "fi"],
527
- gender: "female",
525
+ name: 'fi_FI-harri-low',
526
+ languages: ['fi-FI', 'fi'],
527
+ gender: 'female',
528
528
  },
529
529
  {
530
- name: "fi_FI-harri-medium",
531
- languages: ["fi-FI", "fi"],
532
- gender: "female",
530
+ name: 'fi_FI-harri-medium',
531
+ languages: ['fi-FI', 'fi'],
532
+ gender: 'female',
533
533
  },
534
534
 
535
535
  {
536
- name: "fr_FR-siwis-low",
537
- languages: ["fr-FR", "fr"],
538
- gender: "female",
536
+ name: 'fr_FR-siwis-low',
537
+ languages: ['fr-FR', 'fr'],
538
+ gender: 'female',
539
539
  },
540
540
  {
541
- name: "fr_FR-siwis-medium",
542
- languages: ["fr-FR", "fr"],
543
- gender: "female",
541
+ name: 'fr_FR-siwis-medium',
542
+ languages: ['fr-FR', 'fr'],
543
+ gender: 'female',
544
544
  },
545
545
  {
546
- name: "fr_FR-mls_1840-low",
547
- languages: ["fr-FR", "fr"],
548
- gender: "male",
546
+ name: 'fr_FR-mls_1840-low',
547
+ languages: ['fr-FR', 'fr'],
548
+ gender: 'male',
549
549
  },
550
550
  {
551
- name: "fr_FR-gilles-low",
552
- languages: ["fr-FR", "fr"],
553
- gender: "male",
551
+ name: 'fr_FR-gilles-low',
552
+ languages: ['fr-FR', 'fr'],
553
+ gender: 'male',
554
554
  },
555
555
  {
556
- name: "fr_FR-upmc-medium",
557
- languages: ["fr-FR", "fr"],
558
- gender: "unknown",
556
+ name: 'fr_FR-upmc-medium',
557
+ languages: ['fr-FR', 'fr'],
558
+ gender: 'unknown',
559
559
  speakerCount: 2
560
560
  },
561
561
  {
562
- name: "fr_FR-mls-medium",
563
- languages: ["fr-FR", "fr"],
564
- gender: "unknown",
562
+ name: 'fr_FR-mls-medium',
563
+ languages: ['fr-FR', 'fr'],
564
+ gender: 'unknown',
565
565
  speakerCount: 125
566
566
  },
567
567
  {
568
- name: "fr_FR-tom-medium",
569
- languages: ["fr-FR", "fr"],
570
- gender: "male",
568
+ name: 'fr_FR-tom-medium',
569
+ languages: ['fr-FR', 'fr'],
570
+ gender: 'male',
571
571
  },
572
572
 
573
573
  {
574
- name: "hu_HU-anna-medium",
575
- languages: ["hu-HU", "hu"],
576
- gender: "female",
574
+ name: 'hu_HU-anna-medium',
575
+ languages: ['hu-HU', 'hu'],
576
+ gender: 'female',
577
577
  },
578
578
  {
579
- name: "hu_HU-imre-medium",
580
- languages: ["hu-HU", "hu"],
581
- gender: "male",
579
+ name: 'hu_HU-imre-medium',
580
+ languages: ['hu-HU', 'hu'],
581
+ gender: 'male',
582
582
  },
583
583
 
584
584
  {
585
- name: "is_IS-ugla-medium",
586
- languages: ["is-IS", "is"],
587
- gender: "female",
585
+ name: 'is_IS-ugla-medium',
586
+ languages: ['is-IS', 'is'],
587
+ gender: 'female',
588
588
  },
589
589
  {
590
- name: "is_IS-steinn-medium",
591
- languages: ["is-IS", "is"],
592
- gender: "male",
590
+ name: 'is_IS-steinn-medium',
591
+ languages: ['is-IS', 'is'],
592
+ gender: 'male',
593
593
  },
594
594
  {
595
- name: "is_IS-salka-medium",
596
- languages: ["is-IS", "is"],
597
- gender: "female",
595
+ name: 'is_IS-salka-medium',
596
+ languages: ['is-IS', 'is'],
597
+ gender: 'female',
598
598
  },
599
599
  {
600
- name: "is_IS-bui-medium",
601
- languages: ["is-IS", "is"],
602
- gender: "male",
600
+ name: 'is_IS-bui-medium',
601
+ languages: ['is-IS', 'is'],
602
+ gender: 'male',
603
603
  },
604
604
 
605
605
  {
606
- name: "it_IT-riccardo-x_low",
607
- languages: ["it-IT", "it"],
608
- gender: "male",
606
+ name: 'it_IT-riccardo-x_low',
607
+ languages: ['it-IT', 'it'],
608
+ gender: 'male',
609
609
  },
610
610
 
611
611
  {
612
- name: "ka_GE-natia-medium",
613
- languages: ["ka-GE", "ka"],
614
- gender: "female",
612
+ name: 'ka_GE-natia-medium',
613
+ languages: ['ka-GE', 'ka'],
614
+ gender: 'female',
615
615
  },
616
616
 
617
617
  {
618
- name: "kk_KZ-iseke-x_low",
619
- languages: ["kk-KZ", "kk"],
620
- gender: "male",
618
+ name: 'kk_KZ-iseke-x_low',
619
+ languages: ['kk-KZ', 'kk'],
620
+ gender: 'male',
621
621
  },
622
622
  {
623
- name: "kk_KZ-raya-x_low",
624
- languages: ["kk-KZ", "kk"],
625
- gender: "male",
623
+ name: 'kk_KZ-raya-x_low',
624
+ languages: ['kk-KZ', 'kk'],
625
+ gender: 'male',
626
626
  },
627
627
  {
628
- name: "kk_KZ-issai-high",
629
- languages: ["kk-KZ", "kk"],
630
- gender: "unknown",
628
+ name: 'kk_KZ-issai-high',
629
+ languages: ['kk-KZ', 'kk'],
630
+ gender: 'unknown',
631
631
  speakerCount: 6,
632
632
  },
633
633
 
634
634
  {
635
- name: "lb_LU-marylux-medium",
636
- languages: ["lb-LU", "lb"],
637
- gender: "female",
635
+ name: 'lb_LU-marylux-medium',
636
+ languages: ['lb-LU', 'lb'],
637
+ gender: 'female',
638
638
  },
639
639
 
640
640
  {
641
- name: "ne_NP-google-medium",
642
- languages: ["ne-NP", "ne"],
643
- gender: "female",
641
+ name: 'ne_NP-google-medium',
642
+ languages: ['ne-NP', 'ne'],
643
+ gender: 'female',
644
644
  speakerCount: 18,
645
645
  },
646
646
  {
647
- name: "ne_NP-google-x_low",
648
- languages: ["ne-NP", "ne"],
649
- gender: "female",
647
+ name: 'ne_NP-google-x_low',
648
+ languages: ['ne-NP', 'ne'],
649
+ gender: 'female',
650
650
  speakerCount: 18,
651
651
  },
652
652
 
653
653
  {
654
- name: "nl_NL-mls_5809-low",
655
- languages: ["nl-NL", "nl"],
656
- gender: "female",
654
+ name: 'nl_NL-mls_5809-low',
655
+ languages: ['nl-NL', 'nl'],
656
+ gender: 'female',
657
657
  },
658
658
  {
659
- name: "nl_NL-mls_7432-low",
660
- languages: ["nl-NL", "nl"],
661
- gender: "female",
659
+ name: 'nl_NL-mls_7432-low',
660
+ languages: ['nl-NL', 'nl'],
661
+ gender: 'female',
662
662
  },
663
663
  {
664
- name: "nl_NL-mls-medium",
665
- languages: ["nl-NL", "nl"],
666
- gender: "unknown",
664
+ name: 'nl_NL-mls-medium',
665
+ languages: ['nl-NL', 'nl'],
666
+ gender: 'unknown',
667
667
  speakerCount: 52,
668
668
  },
669
669
 
670
670
  {
671
- name: "nl_BE-nathalie-x_low",
672
- languages: ["nl-BE", "nl"],
673
- gender: "female",
671
+ name: 'nl_BE-nathalie-x_low',
672
+ languages: ['nl-BE', 'nl'],
673
+ gender: 'female',
674
674
  },
675
675
  {
676
- name: "nl_BE-nathalie-medium",
677
- languages: ["nl-BE", "nl"],
678
- gender: "female",
676
+ name: 'nl_BE-nathalie-medium',
677
+ languages: ['nl-BE', 'nl'],
678
+ gender: 'female',
679
679
  },
680
680
  {
681
- name: "nl_BE-rdh-medium",
682
- languages: ["nl-BE", "nl"],
683
- gender: "male",
681
+ name: 'nl_BE-rdh-medium',
682
+ languages: ['nl-BE', 'nl'],
683
+ gender: 'male',
684
684
  },
685
685
  {
686
- name: "nl_BE-rdh-x_low",
687
- languages: ["nl-BE", "nl"],
688
- gender: "male",
686
+ name: 'nl_BE-rdh-x_low',
687
+ languages: ['nl-BE', 'nl'],
688
+ gender: 'male',
689
689
  },
690
690
 
691
691
 
692
692
  {
693
- name: "no_NO-talesyntese-medium",
694
- languages: ["no-NO", "no"],
695
- gender: "male",
693
+ name: 'no_NO-talesyntese-medium',
694
+ languages: ['no-NO', 'no'],
695
+ gender: 'male',
696
696
  },
697
697
 
698
698
  {
699
- name: "pl_PL-mls_6892-low",
700
- languages: ["pl-PL", "pl"],
701
- gender: "male",
699
+ name: 'pl_PL-mls_6892-low',
700
+ languages: ['pl-PL', 'pl'],
701
+ gender: 'male',
702
702
  },
703
703
  {
704
- name: "pl_PL-darkman-medium",
705
- languages: ["pl-PL", "pl"],
706
- gender: "male",
704
+ name: 'pl_PL-darkman-medium',
705
+ languages: ['pl-PL', 'pl'],
706
+ gender: 'male',
707
707
  },
708
708
  {
709
- name: "pl_PL-gosia-medium",
710
- languages: ["pl-PL", "pl"],
711
- gender: "female",
709
+ name: 'pl_PL-gosia-medium',
710
+ languages: ['pl-PL', 'pl'],
711
+ gender: 'female',
712
712
  },
713
713
  {
714
- name: "pl_PL-mc_speech-medium",
715
- languages: ["pl-PL", "pl"],
716
- gender: "male",
714
+ name: 'pl_PL-mc_speech-medium',
715
+ languages: ['pl-PL', 'pl'],
716
+ gender: 'male',
717
717
  },
718
718
 
719
719
  {
720
- name: "pt_BR-edresson-low",
721
- languages: ["pt-BR", "pt"],
722
- gender: "male",
720
+ name: 'pt_BR-edresson-low',
721
+ languages: ['pt-BR', 'pt'],
722
+ gender: 'male',
723
723
  },
724
724
  {
725
- name: "pt_BR-faber-medium",
726
- languages: ["pt-BR", "pt"],
727
- gender: "male",
725
+ name: 'pt_BR-faber-medium',
726
+ languages: ['pt-BR', 'pt'],
727
+ gender: 'male',
728
728
  },
729
729
 
730
730
  {
731
- name: "pt_PT-tugao-medium",
732
- languages: ["pt-PT", "pt"],
733
- gender: "male",
731
+ name: 'pt_PT-tugao-medium',
732
+ languages: ['pt-PT', 'pt'],
733
+ gender: 'male',
734
734
  },
735
735
 
736
736
  {
737
- name: "ro_RO-mihai-medium",
738
- languages: ["ro-RO", "ro"],
739
- gender: "male",
737
+ name: 'ro_RO-mihai-medium',
738
+ languages: ['ro-RO', 'ro'],
739
+ gender: 'male',
740
740
  },
741
741
 
742
742
  {
743
- name: "ru_RU-ruslan-medium",
744
- languages: ["ru-RU", "ru"],
745
- gender: "male",
743
+ name: 'ru_RU-ruslan-medium',
744
+ languages: ['ru-RU', 'ru'],
745
+ gender: 'male',
746
746
  },
747
747
  {
748
- name: "ru_RU-irinia-medium",
749
- languages: ["ru-RU", "ru"],
750
- gender: "female",
748
+ name: 'ru_RU-irinia-medium',
749
+ languages: ['ru-RU', 'ru'],
750
+ gender: 'female',
751
751
  },
752
752
  {
753
- name: "ru_RU-denis-medium",
754
- languages: ["ru-RU", "ru"],
755
- gender: "male",
753
+ name: 'ru_RU-denis-medium',
754
+ languages: ['ru-RU', 'ru'],
755
+ gender: 'male',
756
756
  },
757
757
  {
758
- name: "ru_RU-dmitri-medium",
759
- languages: ["ru-RU", "ru"],
760
- gender: "male",
758
+ name: 'ru_RU-dmitri-medium',
759
+ languages: ['ru-RU', 'ru'],
760
+ gender: 'male',
761
761
  },
762
762
 
763
763
  {
764
- name: "sk_SK-lili-medium",
765
- languages: ["sk-SK", "sk"],
766
- gender: "female",
764
+ name: 'sk_SK-lili-medium',
765
+ languages: ['sk-SK', 'sk'],
766
+ gender: 'female',
767
767
  },
768
768
 
769
769
  {
770
- name: "sl_SI-artur-medium",
771
- languages: ["sl_SI", "sl"],
772
- gender: "male",
770
+ name: 'sl_SI-artur-medium',
771
+ languages: ['sl_SI', 'sl'],
772
+ gender: 'male',
773
773
  },
774
774
 
775
775
  {
776
- name: "sr_RS-serbski_institut-medium",
777
- languages: ["sr-RS", "sr"],
778
- gender: "male",
776
+ name: 'sr_RS-serbski_institut-medium',
777
+ languages: ['sr-RS', 'sr'],
778
+ gender: 'male',
779
779
  speakerCount: 2
780
780
  },
781
781
 
782
782
  {
783
- name: "sv_SE-nst-medium",
784
- languages: ["sv-SE", "sv"],
785
- gender: "male",
783
+ name: 'sv_SE-nst-medium',
784
+ languages: ['sv-SE', 'sv'],
785
+ gender: 'male',
786
786
  },
787
787
 
788
788
  {
789
- name: "sw_CD-lanfrica-medium",
790
- languages: ["sw-CD", "sw"],
791
- gender: "male",
789
+ name: 'sw_CD-lanfrica-medium',
790
+ languages: ['sw-CD', 'sw'],
791
+ gender: 'male',
792
792
  },
793
793
 
794
794
  {
795
- name: "tr_TR-dfki-medium",
796
- languages: ["tr-TR", "tr"],
797
- gender: "male",
795
+ name: 'tr_TR-dfki-medium',
796
+ languages: ['tr-TR', 'tr'],
797
+ gender: 'male',
798
798
  },
799
799
  {
800
- name: "tr_TR-fahrettin-medium",
801
- languages: ["tr-TR", "tr"],
802
- gender: "male",
800
+ name: 'tr_TR-fahrettin-medium',
801
+ languages: ['tr-TR', 'tr'],
802
+ gender: 'male',
803
803
  },
804
804
  {
805
- name: "tr_TR-fettah-medium",
806
- languages: ["tr-TR", "tr"],
807
- gender: "male",
805
+ name: 'tr_TR-fettah-medium',
806
+ languages: ['tr-TR', 'tr'],
807
+ gender: 'male',
808
808
  },
809
809
 
810
810
  {
811
- name: "uk_UA-lada-x_low",
812
- languages: ["uk-UA", "uk"],
813
- gender: "female",
811
+ name: 'uk_UA-lada-x_low',
812
+ languages: ['uk-UA', 'uk'],
813
+ gender: 'female',
814
814
  },
815
815
  {
816
- name: "uk_UA-ukrainian_tts-medium",
817
- languages: ["uk-UA", "uk"],
818
- gender: "unknown",
816
+ name: 'uk_UA-ukrainian_tts-medium',
817
+ languages: ['uk-UA', 'uk'],
818
+ gender: 'unknown',
819
819
  speakerCount: 3,
820
820
  },
821
821
  {
822
- name: "vi_VN-vivos-x_low",
823
- languages: ["vi-VN", "vi"],
824
- gender: "unknown",
822
+ name: 'vi_VN-vivos-x_low',
823
+ languages: ['vi-VN', 'vi'],
824
+ gender: 'unknown',
825
825
  speakerCount: 65,
826
826
  },
827
827
  {
828
- name: "vi_VN-25hours-single-low",
829
- languages: ["vi-VN", "vi"],
830
- gender: "female",
828
+ name: 'vi_VN-25hours-single-low',
829
+ languages: ['vi-VN', 'vi'],
830
+ gender: 'female',
831
831
  },
832
832
  {
833
- name: "vi_VN-vais1000-medium",
834
- languages: ["vi-VN", "vi"],
835
- gender: "female",
833
+ name: 'vi_VN-vais1000-medium',
834
+ languages: ['vi-VN', 'vi'],
835
+ gender: 'female',
836
836
  },
837
837
 
838
838
  {
839
- name: "zh_CN-huayan-x_low",
840
- languages: ["zh-CN", "zh"],
841
- gender: "female",
839
+ name: 'zh_CN-huayan-x_low',
840
+ languages: ['zh-CN', 'zh'],
841
+ gender: 'female',
842
842
  },
843
843
  {
844
- name: "zh_CN-huayan-medium",
845
- languages: ["zh-CN", "zh"],
846
- gender: "female",
844
+ name: 'zh_CN-huayan-medium',
845
+ languages: ['zh-CN', 'zh'],
846
+ gender: 'female',
847
847
  },
848
848
  ]