echogarden 1.5.0 → 1.6.1

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 (151) hide show
  1. package/data/schemas/options.json +43 -6
  2. package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
  3. package/dist/alignment/DTWMfccSequenceAlignment.js +5 -5
  4. package/dist/alignment/DTWSequenceAlignmentWindowed.js +1 -3
  5. package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -1
  6. package/dist/alignment/SemanticTextAlignment.js +1 -1
  7. package/dist/alignment/SemanticTextAlignment.js.map +1 -1
  8. package/dist/alignment/SpeechAlignment.d.ts +2 -2
  9. package/dist/alignment/SpeechAlignment.js +26 -3
  10. package/dist/alignment/SpeechAlignment.js.map +1 -1
  11. package/dist/api/API.d.ts +0 -1
  12. package/dist/api/Synthesis.d.ts +0 -1
  13. package/dist/api/TextTranslation.d.ts +21 -1
  14. package/dist/api/TextTranslation.js +101 -2
  15. package/dist/api/TextTranslation.js.map +1 -1
  16. package/dist/api/TimelineTranslationAlignment.js +1 -1
  17. package/dist/api/TimelineTranslationAlignment.js.map +1 -1
  18. package/dist/audio/AudioBufferConversion.d.ts +0 -1
  19. package/dist/audio/AudioPlayer.d.ts +0 -1
  20. package/dist/audio/AudioPlayer.js +62 -41
  21. package/dist/audio/AudioPlayer.js.map +1 -1
  22. package/dist/audio/AudioUtilities.d.ts +0 -1
  23. package/dist/cli/CLI.d.ts +1 -0
  24. package/dist/cli/CLI.js +61 -4
  25. package/dist/cli/CLI.js.map +1 -1
  26. package/dist/codecs/FFMpegTranscoder.d.ts +0 -1
  27. package/dist/codecs/TIMITCodec.d.ts +0 -1
  28. package/dist/codecs/WaveCodec.d.ts +0 -1
  29. package/dist/math/VectorMath.d.ts +4 -4
  30. package/dist/math/VectorMath.js +6 -6
  31. package/dist/nlp/ChineseSegmentation.js +4 -4
  32. package/dist/nlp/ChineseSegmentation.js.map +1 -1
  33. package/dist/nlp/IPA.d.ts +3 -3
  34. package/dist/nlp/Segmentation.d.ts +2 -2
  35. package/dist/nlp/Segmentation.js +20 -13
  36. package/dist/nlp/Segmentation.js.map +1 -1
  37. package/dist/recognition/OpenAICloudSTT.d.ts +2 -1
  38. package/dist/recognition/OpenAICloudSTT.js +30 -19
  39. package/dist/recognition/OpenAICloudSTT.js.map +1 -1
  40. package/dist/recognition/SileroSTT.d.ts +0 -1
  41. package/dist/recognition/WhisperCppSTT.d.ts +2 -2
  42. package/dist/recognition/WhisperCppSTT.js +19 -7
  43. package/dist/recognition/WhisperCppSTT.js.map +1 -1
  44. package/dist/recognition/WhisperSTT.d.ts +9 -6
  45. package/dist/recognition/WhisperSTT.js +224 -44
  46. package/dist/recognition/WhisperSTT.js.map +1 -1
  47. package/dist/server/Client.d.ts +0 -2
  48. package/dist/server/Worker.d.ts +0 -1
  49. package/dist/source-separation/MDXNetSourceSeparation.d.ts +0 -1
  50. package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts +0 -1
  51. package/dist/speech-language-detection/SileroLanguageDetection.d.ts +0 -1
  52. package/dist/subtitles/Subtitles.js +2 -2
  53. package/dist/subtitles/Subtitles.js.map +1 -1
  54. package/dist/synthesis/GoogleCloudTTS.d.ts +0 -1
  55. package/dist/synthesis/GoogleTranslateTTS.d.ts +0 -1
  56. package/dist/synthesis/GoogleTranslateTTS.js +6 -21
  57. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  58. package/dist/synthesis/StreamlabsPollyTTS.d.ts +0 -1
  59. package/dist/synthesis/VitsTTS.d.ts +0 -1
  60. package/dist/synthesis/VitsTTS.js +30 -0
  61. package/dist/synthesis/VitsTTS.js.map +1 -1
  62. package/dist/text-translation/DeepLTextTranslation.d.ts +2 -0
  63. package/dist/text-translation/DeepLTextTranslation.js +67 -0
  64. package/dist/text-translation/DeepLTextTranslation.js.map +1 -0
  65. package/dist/text-translation/GoogleTranslateTextTranslation.d.ts +13 -0
  66. package/dist/text-translation/GoogleTranslateTextTranslation.js +556 -0
  67. package/dist/text-translation/GoogleTranslateTextTranslation.js.map +1 -0
  68. package/dist/text-translation/NLLBTextTranslation.d.ts +2 -1
  69. package/dist/text-translation/NLLBTextTranslation.js +248 -18
  70. package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
  71. package/dist/utilities/BinaryArrayConversion.d.ts +0 -1
  72. package/dist/utilities/BrowserRequestHeaders.d.ts +6 -0
  73. package/dist/utilities/BrowserRequestHeaders.js +52 -0
  74. package/dist/utilities/BrowserRequestHeaders.js.map +1 -0
  75. package/dist/utilities/BufferFileReadStream.d.ts +20 -0
  76. package/dist/utilities/BufferFileReadStream.js +81 -0
  77. package/dist/utilities/BufferFileReadStream.js.map +1 -0
  78. package/dist/utilities/DynamicUint8Array.d.ts +9 -0
  79. package/dist/utilities/DynamicUint8Array.js +31 -0
  80. package/dist/utilities/DynamicUint8Array.js.map +1 -0
  81. package/dist/utilities/FileSystem.d.ts +0 -2
  82. package/dist/utilities/Hashing.d.ts +3 -10
  83. package/dist/utilities/Hashing.js +10 -127
  84. package/dist/utilities/Hashing.js.map +1 -1
  85. package/dist/utilities/LEB128.d.ts +15 -5
  86. package/dist/utilities/LEB128.js +199 -119
  87. package/dist/utilities/LEB128.js.map +1 -1
  88. package/dist/utilities/LPVarInt.d.ts +11 -0
  89. package/dist/utilities/LPVarInt.js +187 -0
  90. package/dist/utilities/LPVarInt.js.map +1 -0
  91. package/dist/utilities/OnnxUtilities.d.ts +0 -1
  92. package/dist/utilities/PVarInt.d.ts +4 -0
  93. package/dist/utilities/PVarInt.js +166 -0
  94. package/dist/utilities/PVarInt.js.map +1 -0
  95. package/dist/utilities/PackageManager.js +43 -22
  96. package/dist/utilities/PackageManager.js.map +1 -1
  97. package/dist/utilities/RandomGenerator.d.ts +3 -17
  98. package/dist/utilities/RandomGenerator.js +12 -81
  99. package/dist/utilities/RandomGenerator.js.map +1 -1
  100. package/dist/utilities/Timeline.d.ts +1 -0
  101. package/dist/utilities/Timeline.js +117 -20
  102. package/dist/utilities/Timeline.js.map +1 -1
  103. package/dist/utilities/Utilities.d.ts +1 -3
  104. package/dist/utilities/Utilities.js +30 -3
  105. package/dist/utilities/Utilities.js.map +1 -1
  106. package/dist/utilities/VarInt.d.ts +4 -0
  107. package/dist/utilities/VarInt.js +166 -0
  108. package/dist/utilities/VarInt.js.map +1 -0
  109. package/dist/utilities/VirtualFileReadStream.d.ts +20 -0
  110. package/dist/utilities/VirtualFileReadStream.js +79 -0
  111. package/dist/utilities/VirtualFileReadStream.js.map +1 -0
  112. package/dist/utilities/WebReader.js +7 -23
  113. package/dist/utilities/WebReader.js.map +1 -1
  114. package/dist/voice-activity-detection/SileroVAD.d.ts +0 -1
  115. package/docs/API.md +24 -0
  116. package/docs/Engines.md +8 -3
  117. package/docs/Options.md +21 -12
  118. package/docs/Tasklist.md +1 -13
  119. package/package.json +20 -24
  120. package/src/alignment/DTWMfccSequenceAlignment.ts +5 -5
  121. package/src/alignment/DTWSequenceAlignmentWindowed.ts +1 -3
  122. package/src/alignment/SemanticTextAlignment.ts +1 -1
  123. package/src/alignment/SpeechAlignment.ts +37 -6
  124. package/src/api/TextTranslation.ts +173 -2
  125. package/src/api/TimelineTranslationAlignment.ts +1 -1
  126. package/src/audio/AudioPlayer.ts +2 -0
  127. package/src/cli/CLI.ts +101 -7
  128. package/src/math/VectorMath.ts +6 -6
  129. package/src/nlp/ChineseSegmentation.ts +6 -4
  130. package/src/nlp/Segmentation.ts +18 -13
  131. package/src/recognition/OpenAICloudSTT.ts +47 -29
  132. package/src/recognition/WhisperCppSTT.ts +24 -9
  133. package/src/recognition/WhisperSTT.ts +364 -49
  134. package/src/subtitles/Subtitles.ts +2 -2
  135. package/src/synthesis/GoogleTranslateTTS.ts +7 -21
  136. package/src/synthesis/VitsTTS.ts +31 -3
  137. package/src/text-translation/DeepLTextTranslation.ts +88 -0
  138. package/src/text-translation/GoogleTranslateTextTranslation.ts +670 -0
  139. package/src/text-translation/NLLBTextTranslation.ts +260 -20
  140. package/src/typings/Fillers.d.ts +25 -2
  141. package/src/utilities/BrowserRequestHeaders.ts +59 -0
  142. package/src/utilities/DynamicUint8Array.ts +39 -0
  143. package/src/utilities/Hashing.ts +14 -167
  144. package/src/utilities/LEB128.ts +273 -148
  145. package/src/utilities/LPVarInt.ts +292 -0
  146. package/src/utilities/PackageManager.ts +45 -27
  147. package/src/utilities/RandomGenerator.ts +12 -113
  148. package/src/utilities/Timeline.ts +148 -23
  149. package/src/utilities/Utilities.ts +40 -3
  150. package/src/utilities/VirtualFileReadStream.ts +109 -0
  151. package/src/utilities/WebReader.ts +9 -23
@@ -6,6 +6,7 @@ import { trimAudioEnd } from '../audio/AudioUtilities.js'
6
6
  import { Logger } from '../utilities/Logger.js'
7
7
  import { Timeline } from '../utilities/Timeline.js'
8
8
  import { getShortLanguageCode } from '../utilities/Locale.js'
9
+ import { getChromeOnWindowsHeaders } from '../utilities/BrowserRequestHeaders.js'
9
10
 
10
11
  const log = logToStderr
11
12
 
@@ -98,27 +99,11 @@ export async function synthesizeShortText(text: string, languageCode = 'en', tld
98
99
  },
99
100
 
100
101
  headers: {
101
- 'sec-ch-ua': `".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"`,
102
- 'x-same-domain': '1',
103
- 'dnt': '1',
104
- 'content-type': 'application/x-www-form-urlencoded;charset=UTF-8',
105
- 'sec-ch-ua-mobile': '?0',
106
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
107
- 'sec-ch-ua-arch': 'x86',
108
- 'sec-ch-ua-full-version': '103.0.5060.114',
109
- 'sec-ch-ua-platform-version': '10.0.0',
110
- 'sec-ch-ua-full-version-list': `".Not/A)Brand";v="99.0.0.0", "Google Chrome";v="103.0.5060.114", "Chromium";v="103.0.5060.114"`,
111
- 'sec-ch-ua-bitness': '64',
112
- 'sec-ch-ua-model': '',
113
- 'sec-ch-ua-platform': 'Windows',
114
- 'accept': '*/*',
115
- 'origin': 'https://translate.google.com',
116
- 'sec-fetch-site': 'same-origin',
117
- 'sec-fetch-mode': 'cors',
118
- 'sec-fetch-dest': 'empty',
119
- 'referer': 'https://translate.google.com/',
120
- 'accept-encoding': 'gzip, deflate, br',
121
- 'accept-language': 'en-US,en;q=0.9',
102
+ ...getChromeOnWindowsHeaders({
103
+ origin: 'https://translate.google.${tld}',
104
+ referrer: `https://translate.google.${tld}/`
105
+ }),
106
+ 'Content-Type': 'application/x-www-form-urlencoded',
122
107
  },
123
108
 
124
109
  body: requestBody,
@@ -140,6 +125,7 @@ export async function synthesizeShortText(text: string, languageCode = 'en', tld
140
125
  }
141
126
 
142
127
  const resultMp3Stream = Buffer.concat(audioChunks)
128
+
143
129
  return resultMp3Stream
144
130
  }
145
131
 
@@ -252,6 +252,12 @@ export const voiceList: SynthesisVoice[] = [
252
252
  gender: 'male',
253
253
  },
254
254
 
255
+ {
256
+ name: 'cy_GB-gwryw_gogleddol-medium',
257
+ languages: ['cy-GB', 'cy'],
258
+ gender: 'male',
259
+ },
260
+
255
261
  {
256
262
  name: 'da_DK-nst_talesyntese-medium',
257
263
  languages: ['da-DK', 'da'],
@@ -375,7 +381,11 @@ export const voiceList: SynthesisVoice[] = [
375
381
  languages: ['en-GB', 'en'],
376
382
  gender: 'female',
377
383
  },
378
-
384
+ {
385
+ name: 'en_GB-cori-medium',
386
+ languages: ['en-GB', 'en'],
387
+ gender: 'female',
388
+ },
379
389
 
380
390
  {
381
391
  name: 'en_US-amy-low',
@@ -481,6 +491,21 @@ export const voiceList: SynthesisVoice[] = [
481
491
  languages: ['en-US', 'en'],
482
492
  gender: 'female',
483
493
  },
494
+ {
495
+ name: 'en_US-norman-medium',
496
+ languages: ['en-US', 'en'],
497
+ gender: 'male',
498
+ },
499
+ {
500
+ name: 'en_US-john-medium',
501
+ languages: ['en-US', 'en'],
502
+ gender: 'male',
503
+ },
504
+ {
505
+ name: 'en_US-bryce-medium',
506
+ languages: ['en-US', 'en'],
507
+ gender: 'male',
508
+ },
484
509
 
485
510
  {
486
511
  name: 'es_ES-carlfm-x_low',
@@ -531,7 +556,6 @@ export const voiceList: SynthesisVoice[] = [
531
556
  gender: 'male',
532
557
  },
533
558
 
534
-
535
559
  {
536
560
  name: 'fi_FI-harri-low',
537
561
  languages: ['fi-FI', 'fi'],
@@ -618,6 +642,11 @@ export const voiceList: SynthesisVoice[] = [
618
642
  languages: ['it-IT', 'it'],
619
643
  gender: 'male',
620
644
  },
645
+ {
646
+ name: 'it_IT-paola-medium',
647
+ languages: ['it-IT', 'it'],
648
+ gender: 'female',
649
+ },
621
650
 
622
651
  {
623
652
  name: 'ka_GE-natia-medium',
@@ -699,7 +728,6 @@ export const voiceList: SynthesisVoice[] = [
699
728
  gender: 'male',
700
729
  },
701
730
 
702
-
703
731
  {
704
732
  name: 'no_NO-talesyntese-medium',
705
733
  languages: ['no-NO', 'no'],
@@ -0,0 +1,88 @@
1
+ import { request } from "gaxios"
2
+ import { Logger } from "../utilities/Logger.js"
3
+ import { splitToSentences } from "../nlp/Segmentation.js"
4
+ import { TranslationPair } from "../api/TextTranslation.js"
5
+ import { getChromeOnWindowsHeaders } from "../utilities/BrowserRequestHeaders.js"
6
+
7
+ export async function translateText(text: string, sourceLanguage: string, targetLanguage: string): Promise<TranslationPair[]> {
8
+ const logger = new Logger()
9
+
10
+ logger.start(`Prepare request`)
11
+
12
+ const textSentences = splitToSentences(text, sourceLanguage)
13
+
14
+ const requestBodyObject = {
15
+ jsonrpc: '2.0',
16
+ method: 'LMT_handle_jobs',
17
+ params: {
18
+ jobs: [
19
+ {
20
+ kind: 'default',
21
+ sentences: [
22
+ {
23
+ text: textSentences[0],
24
+ id: 1,
25
+ prefix: '',
26
+ }
27
+ ],
28
+ raw_en_context_before: [],
29
+ raw_en_context_after: [],
30
+ preferred_num_beams: 4,
31
+ quality: 'fast',
32
+ }
33
+ ],
34
+
35
+ lang: {
36
+ target_lang: targetLanguage.toUpperCase(),
37
+
38
+ preference: {
39
+ weight: {},
40
+ default: 'default',
41
+ },
42
+
43
+ source_lang_computed: sourceLanguage.toUpperCase(),
44
+ },
45
+
46
+ priority: -1,
47
+
48
+ commonJobParams: {
49
+ mode: 'translate',
50
+ browserType: 1,
51
+ textType: 'plaintext',
52
+ },
53
+
54
+ timestamp: Date.now(),
55
+ },
56
+
57
+ id: 756456347,
58
+ }
59
+
60
+ const response = await request<any>({
61
+ method: 'POST',
62
+
63
+ url: `https://www2.deepl.com/jsonrpc`,
64
+
65
+ params: {
66
+ 'method': 'LMT_handle_jobs',
67
+ },
68
+
69
+ headers: {
70
+ ...getChromeOnWindowsHeaders({
71
+ origin: 'https://www.deepl.com',
72
+ referrer: `https://www.deepl.com/`
73
+ }),
74
+
75
+ 'Content-Type': 'application/json',
76
+ },
77
+
78
+ body: JSON.stringify(requestBodyObject),
79
+
80
+ responseType: 'json'
81
+ })
82
+
83
+ logger.start('Parse response')
84
+
85
+ logger.end()
86
+
87
+ return []
88
+ }