echogarden 1.4.4 → 1.5.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.
- package/data/schemas/options.json +267 -19
- package/dist/alignment/{TextAlignment.d.ts → SemanticTextAlignment.d.ts} +4 -2
- package/dist/alignment/SemanticTextAlignment.js +336 -0
- package/dist/alignment/SemanticTextAlignment.js.map +1 -0
- package/dist/alignment/SpeechAlignment.d.ts +2 -1
- package/dist/alignment/SpeechAlignment.js +105 -37
- package/dist/alignment/SpeechAlignment.js.map +1 -1
- package/dist/api/API.d.ts +7 -2
- package/dist/api/API.js +7 -2
- package/dist/api/API.js.map +1 -1
- package/dist/api/APIOptions.d.ts +4 -1
- package/dist/api/Alignment.d.ts +1 -1
- package/dist/api/Alignment.js +13 -5
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/LanguageDetectionCommon.d.ts +6 -0
- package/dist/api/LanguageDetectionCommon.js +2 -0
- package/dist/api/LanguageDetectionCommon.js.map +1 -0
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/{LanguageDetection.d.ts → SpeechLanguageDetection.d.ts} +1 -25
- package/dist/api/{LanguageDetection.js → SpeechLanguageDetection.js} +1 -68
- package/dist/api/SpeechLanguageDetection.js.map +1 -0
- package/dist/api/{Translation.js → SpeechTranslation.js} +3 -3
- package/dist/api/SpeechTranslation.js.map +1 -0
- package/dist/api/Synthesis.js +4 -4
- package/dist/api/TextLanguageDetection.d.ts +21 -0
- package/dist/api/TextLanguageDetection.js +67 -0
- package/dist/api/TextLanguageDetection.js.map +1 -0
- package/dist/api/TextTranslation.d.ts +5 -0
- package/dist/api/TextTranslation.js +4 -0
- package/dist/api/TextTranslation.js.map +1 -0
- package/dist/api/TimelineTranslationAlignment.d.ts +23 -0
- package/dist/api/TimelineTranslationAlignment.js +92 -0
- package/dist/api/TimelineTranslationAlignment.js.map +1 -0
- package/dist/api/TranscriptAndTranslationAlignment.d.ts +35 -0
- package/dist/api/TranscriptAndTranslationAlignment.js +78 -0
- package/dist/api/TranscriptAndTranslationAlignment.js.map +1 -0
- package/dist/api/TranslationAlignment.d.ts +4 -3
- package/dist/api/TranslationAlignment.js +9 -8
- package/dist/api/TranslationAlignment.js.map +1 -1
- package/dist/api/VoiceActivityDetection.js +16 -1
- package/dist/api/VoiceActivityDetection.js.map +1 -1
- package/dist/cli/CLI.d.ts +27 -7
- package/dist/cli/CLI.js +205 -34
- package/dist/cli/CLI.js.map +1 -1
- package/dist/codecs/FFMpegTranscoder.js +7 -0
- package/dist/codecs/FFMpegTranscoder.js.map +1 -1
- package/dist/dsp/FFT.d.ts +1 -1
- package/dist/dsp/FFT.js +6 -0
- package/dist/dsp/FFT.js.map +1 -1
- package/dist/dsp/KWeightingFilter.js +1 -1
- package/dist/dsp/KWeightingFilter.js.map +1 -1
- package/dist/dsp/MelSpectogram.d.ts +3 -2
- package/dist/dsp/MelSpectogram.js +14 -8
- package/dist/dsp/MelSpectogram.js.map +1 -1
- package/dist/math/VectorMath.d.ts +5 -5
- package/dist/math/VectorMath.js +4 -4
- package/dist/math/VectorMath.js.map +1 -1
- package/dist/recognition/WhisperCppSTT.d.ts +1 -1
- package/dist/recognition/WhisperCppSTT.js +2 -2
- package/dist/recognition/WhisperCppSTT.js.map +1 -1
- package/dist/recognition/WhisperSTT.js +9 -6
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/server/Client.d.ts +3 -2
- package/dist/server/Client.js.map +1 -1
- package/dist/server/Worker.d.ts +3 -2
- package/dist/server/Worker.js +3 -2
- package/dist/server/Worker.js.map +1 -1
- package/dist/source-separation/MDXNetSourceSeparation.js +1 -1
- package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
- package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.d.ts +13 -0
- package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js +68 -0
- package/dist/speech-embeddings/WavToVec2BertFeatureEmbeddings.js.map +1 -0
- package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
- package/dist/speech-language-detection/SileroLanguageDetection.js +1 -1
- package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -1
- package/dist/tests/Test.js +0 -31
- package/dist/tests/Test.js.map +1 -1
- package/dist/text-language-detection/FastTextLanguageDetection.d.ts +1 -1
- package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -1
- package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +1 -1
- package/dist/text-language-detection/TinyLDLanguageDetection.js.map +1 -1
- package/dist/text-translation/NLLBTextTranslation.js +1 -1
- package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
- package/dist/utilities/Locale.d.ts +1 -1
- package/dist/utilities/Locale.js +1 -1
- package/dist/utilities/OnnxUtilities.d.ts +1 -1
- package/dist/utilities/PackageManager.js +6 -4
- package/dist/utilities/PackageManager.js.map +1 -1
- package/dist/utilities/Timeline.d.ts +1 -0
- package/dist/utilities/Timeline.js +12 -0
- package/dist/utilities/Timeline.js.map +1 -1
- package/docs/API.md +81 -3
- package/docs/CLI.md +51 -1
- package/docs/Engines.md +24 -0
- package/docs/Options.md +33 -1
- package/package.json +8 -8
- package/src/alignment/SemanticTextAlignment.ts +467 -0
- package/src/alignment/SpeechAlignment.ts +179 -52
- package/src/api/API.ts +18 -2
- package/src/api/APIOptions.ts +14 -1
- package/src/api/Alignment.ts +31 -9
- package/src/api/LanguageDetectionCommon.ts +7 -0
- package/src/api/Recognition.ts +2 -0
- package/src/api/{LanguageDetection.ts → SpeechLanguageDetection.ts} +1 -119
- package/src/api/{Translation.ts → SpeechTranslation.ts} +2 -2
- package/src/api/Synthesis.ts +4 -4
- package/src/api/TextLanguageDetection.ts +116 -0
- package/src/api/TextTranslation.ts +9 -0
- package/src/api/TimelineTranslationAlignment.ts +162 -0
- package/src/api/TranscriptAndTranslationAlignment.ts +164 -0
- package/src/api/TranslationAlignment.ts +12 -10
- package/src/api/VoiceActivityDetection.ts +24 -3
- package/src/cli/CLI.ts +276 -34
- package/src/codecs/FFMpegTranscoder.ts +6 -0
- package/src/dsp/FFT.ts +8 -2
- package/src/dsp/KWeightingFilter.ts +1 -1
- package/src/dsp/MelSpectogram.ts +17 -8
- package/src/math/VectorMath.ts +9 -9
- package/src/recognition/WhisperCppSTT.ts +2 -2
- package/src/recognition/WhisperSTT.ts +10 -6
- package/src/server/Client.ts +3 -2
- package/src/server/Worker.ts +3 -2
- package/src/source-separation/MDXNetSourceSeparation.ts +1 -1
- package/src/speech-embeddings/WavToVec2BertFeatureEmbeddings.ts +107 -0
- package/src/speech-language-detection/SileroLanguageDetection.ts +2 -1
- package/src/tests/Test.ts +1 -38
- package/src/text-language-detection/FastTextLanguageDetection.ts +1 -1
- package/src/text-language-detection/TinyLDLanguageDetection.ts +1 -1
- package/src/text-translation/NLLBTextTranslation.ts +1 -1
- package/src/utilities/Locale.ts +1 -1
- package/src/utilities/OnnxUtilities.ts +1 -1
- package/src/utilities/PackageManager.ts +7 -4
- package/src/utilities/Timeline.ts +14 -0
- package/dist/alignment/TextAlignment.js +0 -156
- package/dist/alignment/TextAlignment.js.map +0 -1
- package/dist/api/LanguageDetection.js.map +0 -1
- package/dist/api/Translation.js.map +0 -1
- package/src/alignment/TextAlignment.ts +0 -234
- /package/dist/api/{Translation.d.ts → SpeechTranslation.d.ts} +0 -0
|
@@ -13,7 +13,7 @@ import { splitToLines } from '../nlp/Segmentation.js'
|
|
|
13
13
|
import { extendDeep } from '../utilities/ObjectUtilities.js'
|
|
14
14
|
import { formatLanguageCodeWithName, getShortLanguageCode } from '../utilities/Locale.js'
|
|
15
15
|
import { loadPackage } from '../utilities/PackageManager.js'
|
|
16
|
-
import { detectSpeechLanguageByParts } from '../api/
|
|
16
|
+
import { detectSpeechLanguageByParts } from '../api/SpeechLanguageDetection.js'
|
|
17
17
|
|
|
18
18
|
export async function recognize(
|
|
19
19
|
sourceRawAudio: RawAudio,
|
|
@@ -201,7 +201,7 @@ export async function recognize(
|
|
|
201
201
|
|
|
202
202
|
export async function detectLanguage(sourceRawAudio: RawAudio, modelName: WhisperModelName, modelPath: string) {
|
|
203
203
|
if (sourceRawAudio.sampleRate != 16000) {
|
|
204
|
-
throw new Error('Source audio must have a
|
|
204
|
+
throw new Error('Source audio must have a sample rate of 16000')
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
async function detectLanguageForPart(partAudio: RawAudio) {
|
|
@@ -17,7 +17,7 @@ import { formatLanguageCodeWithName, getShortLanguageCode, languageCodeToName }
|
|
|
17
17
|
import { loadPackage } from '../utilities/PackageManager.js'
|
|
18
18
|
import chalk from 'chalk'
|
|
19
19
|
import { XorShift32RNG } from '../utilities/RandomGenerator.js'
|
|
20
|
-
import { detectSpeechLanguageByParts } from '../api/
|
|
20
|
+
import { detectSpeechLanguageByParts } from '../api/SpeechLanguageDetection.js'
|
|
21
21
|
import { type Tiktoken } from 'tiktoken/lite'
|
|
22
22
|
import { isPunctuation, isWhitespace, isWord, splitToSentences, splitToWords } from '../nlp/Segmentation.js'
|
|
23
23
|
import { medianOf5Filter } from '../math/MedianFilter.js'
|
|
@@ -35,7 +35,7 @@ export async function recognize(
|
|
|
35
35
|
options = extendDeep(defaultWhisperOptions, options)
|
|
36
36
|
|
|
37
37
|
if (sourceRawAudio.sampleRate != 16000) {
|
|
38
|
-
throw new Error('Source audio must have a
|
|
38
|
+
throw new Error('Source audio must have a sample rate of 16000 Hz')
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
sourceLanguage = getShortLanguageCode(sourceLanguage)
|
|
@@ -87,7 +87,7 @@ export async function align(
|
|
|
87
87
|
options = extendDeep(defaultWhisperAlignmentOptions, options)
|
|
88
88
|
|
|
89
89
|
if (sourceRawAudio.sampleRate != 16000) {
|
|
90
|
-
throw new Error('Source audio must have a
|
|
90
|
+
throw new Error('Source audio must have a sample rate of 16000 Hz')
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
sourceLanguage = getShortLanguageCode(sourceLanguage)
|
|
@@ -128,7 +128,7 @@ export async function alignEnglishTranslation(
|
|
|
128
128
|
options = extendDeep(defaultWhisperAlignmentOptions, options)
|
|
129
129
|
|
|
130
130
|
if (sourceRawAudio.sampleRate != 16000) {
|
|
131
|
-
throw new Error('Source audio must have a
|
|
131
|
+
throw new Error('Source audio must have a sample rate of 16000 Hz')
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
sourceLanguage = getShortLanguageCode(sourceLanguage)
|
|
@@ -167,7 +167,7 @@ export async function detectLanguage(
|
|
|
167
167
|
options = extendDeep(defaultWhisperLanguageDetectionOptions, options)
|
|
168
168
|
|
|
169
169
|
if (sourceRawAudio.sampleRate != 16000) {
|
|
170
|
-
throw new Error('Source audio must have a
|
|
170
|
+
throw new Error('Source audio must have a sample rate of 16000 Hz')
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
if (!isMultilingualModel(modelName)) {
|
|
@@ -213,7 +213,7 @@ export async function detectVoiceActivity(
|
|
|
213
213
|
options = extendDeep(defaultWhisperVADOptions, options)
|
|
214
214
|
|
|
215
215
|
if (sourceRawAudio.sampleRate != 16000) {
|
|
216
|
-
throw new Error('Source audio must have a
|
|
216
|
+
throw new Error('Source audio must have a sample rate of 16000 Hz')
|
|
217
217
|
}
|
|
218
218
|
|
|
219
219
|
if (options.temperature! < 0) {
|
|
@@ -1089,6 +1089,10 @@ export class Whisper {
|
|
|
1089
1089
|
const maxAudioSamples = sampleRate * 30
|
|
1090
1090
|
const maxAudioFrames = 3000
|
|
1091
1091
|
|
|
1092
|
+
if (sampleRate != 16000) {
|
|
1093
|
+
throw new Error('Audio must have a sample rate of 16000 Hz')
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1092
1096
|
if (audioSamples.length > maxAudioSamples) {
|
|
1093
1097
|
throw new Error(`Audio part is longer than 30 seconds`)
|
|
1094
1098
|
}
|
package/src/server/Client.ts
CHANGED
|
@@ -7,9 +7,10 @@ import { OpenPromise } from '../utilities/OpenPromise.js'
|
|
|
7
7
|
import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js'
|
|
8
8
|
import { AlignmentOptions, AlignmentResult } from '../api/Alignment.js'
|
|
9
9
|
import { RecognitionOptions, RecognitionResult } from '../api/Recognition.js'
|
|
10
|
-
import { SpeechTranslationOptions, SpeechTranslationResult } from '../api/
|
|
10
|
+
import { SpeechTranslationOptions, SpeechTranslationResult } from '../api/SpeechTranslation.js'
|
|
11
11
|
import { Worker as WorkerThread } from 'node:worker_threads'
|
|
12
|
-
import { SpeechLanguageDetectionOptions, SpeechLanguageDetectionResult
|
|
12
|
+
import { SpeechLanguageDetectionOptions, SpeechLanguageDetectionResult } from '../api/SpeechLanguageDetection.js'
|
|
13
|
+
import { TextLanguageDetectionOptions, TextLanguageDetectionResult } from '../api/TextLanguageDetection.js'
|
|
13
14
|
|
|
14
15
|
const log = logToStderr
|
|
15
16
|
|
package/src/server/Worker.ts
CHANGED
|
@@ -4,13 +4,14 @@ import { logToStderr, yieldToEventLoop } from '../utilities/Utilities.js'
|
|
|
4
4
|
import { AudioSourceParam } from '../audio/AudioUtilities.js'
|
|
5
5
|
import { RecognitionOptions, RecognitionResult, recognize } from '../api/Recognition.js'
|
|
6
6
|
import { AlignmentOptions, AlignmentResult, align } from '../api/Alignment.js'
|
|
7
|
-
import { SpeechTranslationOptions, SpeechTranslationResult, translateSpeech } from '../api/
|
|
7
|
+
import { SpeechTranslationOptions, SpeechTranslationResult, translateSpeech } from '../api/SpeechTranslation.js'
|
|
8
8
|
import { resetActiveLogger } from '../utilities/Logger.js'
|
|
9
9
|
import { writeToStderr } from '../utilities/Utilities.js'
|
|
10
10
|
import { Worker, SHARE_ENV } from 'node:worker_threads'
|
|
11
|
-
import { SpeechLanguageDetectionOptions, SpeechLanguageDetectionResult,
|
|
11
|
+
import { SpeechLanguageDetectionOptions, SpeechLanguageDetectionResult, detectSpeechLanguage } from '../api/SpeechLanguageDetection.js'
|
|
12
12
|
import chalk from 'chalk'
|
|
13
13
|
import { resolveToModuleRootDir } from '../utilities/PathUtilities.js'
|
|
14
|
+
import { TextLanguageDetectionOptions, TextLanguageDetectionResult, detectTextLanguage } from '../api/TextLanguageDetection.js'
|
|
14
15
|
|
|
15
16
|
const log = logToStderr
|
|
16
17
|
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type * as Onnx from 'onnxruntime-node'
|
|
2
|
+
import { OnnxExecutionProvider, getOnnxSessionOptions } from '../utilities/OnnxUtilities.js';
|
|
3
|
+
|
|
4
|
+
import { RawAudio } from "../audio/AudioUtilities.js";
|
|
5
|
+
import { computeMelSpectogram } from "../dsp/MelSpectogram.js";
|
|
6
|
+
import { Logger } from '../utilities/Logger.js';
|
|
7
|
+
import { concatFloat32Arrays, splitFloat32Array } from '../utilities/Utilities.js';
|
|
8
|
+
import { applyEmphasis } from '../dsp/MFCC.js';
|
|
9
|
+
|
|
10
|
+
export function computeEmbeddings(audioSamples: RawAudio, modelFilePath: string, executionProviders: OnnxExecutionProvider[]) {
|
|
11
|
+
const wav2vecBert = new Wav2Vec2BertFeatureEmbeddings(
|
|
12
|
+
modelFilePath,
|
|
13
|
+
executionProviders,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
const result = wav2vecBert.computeEmbeddings(audioSamples)
|
|
17
|
+
|
|
18
|
+
return result
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class Wav2Vec2BertFeatureEmbeddings {
|
|
22
|
+
session?: Onnx.InferenceSession
|
|
23
|
+
|
|
24
|
+
constructor(
|
|
25
|
+
public readonly modelFilePath: string,
|
|
26
|
+
public readonly executionProviders: OnnxExecutionProvider[]) {
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async computeEmbeddings(rawAudio: RawAudio) {
|
|
30
|
+
const logger = new Logger()
|
|
31
|
+
|
|
32
|
+
rawAudio.audioChannels[0] = applyEmphasis(rawAudio.audioChannels[0], 0.97)
|
|
33
|
+
|
|
34
|
+
const { melSpectogram } = await computeMelSpectogram(
|
|
35
|
+
rawAudio,
|
|
36
|
+
512,
|
|
37
|
+
400,
|
|
38
|
+
160,
|
|
39
|
+
80,
|
|
40
|
+
20,
|
|
41
|
+
8000,
|
|
42
|
+
'povey')
|
|
43
|
+
|
|
44
|
+
// Ensure even length
|
|
45
|
+
if (melSpectogram.length % 2 != 0) {
|
|
46
|
+
melSpectogram.push(new Float32Array(80))
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Normalize filterbanks
|
|
50
|
+
for (let filterbankIndex = 0; filterbankIndex < 80; filterbankIndex++) {
|
|
51
|
+
let sum = 0
|
|
52
|
+
let sumOfSquares = 0
|
|
53
|
+
|
|
54
|
+
for (let i = 0; i < melSpectogram.length; i++) {
|
|
55
|
+
const value = melSpectogram[i][filterbankIndex]
|
|
56
|
+
|
|
57
|
+
sum += value
|
|
58
|
+
sumOfSquares += value ** 2
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const mean = sum / melSpectogram.length
|
|
62
|
+
const normalizationFactor = 1 / (Math.sqrt(sumOfSquares / melSpectogram.length) + 1e-40)
|
|
63
|
+
|
|
64
|
+
for (let i = 0; i < melSpectogram.length; i++) {
|
|
65
|
+
melSpectogram[i][filterbankIndex] -= mean
|
|
66
|
+
melSpectogram[i][filterbankIndex] *= normalizationFactor
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Flatten
|
|
71
|
+
const flattenedMelSpectogram = concatFloat32Arrays(melSpectogram)
|
|
72
|
+
|
|
73
|
+
// Initialize session
|
|
74
|
+
await this.initializeSessionIfNeeded()
|
|
75
|
+
|
|
76
|
+
const session = this.session!
|
|
77
|
+
|
|
78
|
+
const Onnx = await import('onnxruntime-node')
|
|
79
|
+
|
|
80
|
+
const inputTensor = new Onnx.Tensor('float32', flattenedMelSpectogram, [1, melSpectogram.length / 2, 80 * 2])
|
|
81
|
+
|
|
82
|
+
const attentionMask = new Int32Array(melSpectogram.length / 2).fill(1)
|
|
83
|
+
const attentionMaskTensor = new Onnx.Tensor('int32', attentionMask, [1, attentionMask.length])
|
|
84
|
+
|
|
85
|
+
// Run inference
|
|
86
|
+
const outputs = await session.run({ 'input_features': inputTensor, 'attention_mask': attentionMaskTensor })
|
|
87
|
+
|
|
88
|
+
// Return output
|
|
89
|
+
const lastHiddenStateData = outputs['last_hidden_state'].data as Float32Array
|
|
90
|
+
|
|
91
|
+
const outputEmbeddings = splitFloat32Array(lastHiddenStateData, outputs['last_hidden_state'].dims[2])
|
|
92
|
+
|
|
93
|
+
return outputEmbeddings
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
private async initializeSessionIfNeeded() {
|
|
97
|
+
if (this.session) {
|
|
98
|
+
return
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const Onnx = await import('onnxruntime-node')
|
|
102
|
+
|
|
103
|
+
const onnxSessionOptions = getOnnxSessionOptions({ executionProviders: this.executionProviders })
|
|
104
|
+
|
|
105
|
+
this.session = await Onnx.InferenceSession.create(this.modelFilePath, onnxSessionOptions)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
@@ -3,9 +3,10 @@ import { softmax } from '../math/VectorMath.js'
|
|
|
3
3
|
import { Logger } from '../utilities/Logger.js'
|
|
4
4
|
import { RawAudio } from '../audio/AudioUtilities.js'
|
|
5
5
|
import { readAndParseJsonFile } from '../utilities/FileSystem.js'
|
|
6
|
-
import { detectSpeechLanguageByParts
|
|
6
|
+
import { detectSpeechLanguageByParts } from '../api/SpeechLanguageDetection.js'
|
|
7
7
|
import { languageCodeToName } from '../utilities/Locale.js'
|
|
8
8
|
import { OnnxExecutionProvider, getOnnxSessionOptions } from '../utilities/OnnxUtilities.js'
|
|
9
|
+
import { LanguageDetectionResults } from '../api/LanguageDetectionCommon.js'
|
|
9
10
|
|
|
10
11
|
export async function detectLanguage(
|
|
11
12
|
rawAudio: RawAudio,
|
package/src/tests/Test.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { getTokenRepetitionScore, logToStderr, setupProgramTerminationListeners, writeToStderr } from '../utilities/Utilities.js'
|
|
2
1
|
import { makeTarballsForInstalledPackages } from '../utilities/TarballMaker.js'
|
|
3
|
-
import {
|
|
4
|
-
import { getRawAudioDuration } from '../audio/AudioUtilities.js'
|
|
5
|
-
import { alignText } from '../alignment/TextAlignment.js'
|
|
2
|
+
import { logToStderr, setupProgramTerminationListeners } from '../utilities/Utilities.js'
|
|
6
3
|
|
|
7
4
|
const log = logToStderr
|
|
8
5
|
|
|
@@ -11,41 +8,7 @@ setupProgramTerminationListeners()
|
|
|
11
8
|
//process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'
|
|
12
9
|
//process.env.http_proxy = 'http://localhost:8080'
|
|
13
10
|
|
|
14
|
-
//const testText = `After a while, finding that nothing more happened, she decided on going into the garden at once; but, alas for poor Alice! when she got to the door, she found she had forgotten the little golden key, and when she went back to the table for it, she found she could not possibly reach it: she could see it quite plainly through the glass, and she tried her best to climb up one of the legs of the table, but it was too slippery; and when she had tired herself out with trying, the poor little thing sat down and cried.`
|
|
15
|
-
//await testKirshenbaumPhonemization(testText)
|
|
16
|
-
|
|
17
|
-
//getRepetitionScoreRelativeToFirstSubstring(['a', 'b', 'c', 'a', 'b', 'c'])
|
|
18
|
-
//getRepetitionScoreRelativeToFirstSubstring(['a', 'b', 'a', 'd', 'a', 'b', 'a', 'd'])
|
|
19
|
-
//getRepetitionScoreRelativeToFirstSubstring(['a', 'b', 'a', 'b', 'c', 'a', 'b', 'a', 'b'])
|
|
20
|
-
//getRepetitionScoreRelativeToFirstSubstring(['a', 'a', 'a', 'b', 'a', 'a', 'a', 'b'])
|
|
21
|
-
//getRepetitionScoreRelativeToFirstSubstring(['a', 'b', 'a', 'c', 'a', 'b', 'a', 'c', 'a'])
|
|
22
|
-
//getRepetitionScoreRelativeToFirstSubstring(['a', 'a', 'a', 'b', 'b', 'a', 'a', 'a', 'b'])
|
|
23
|
-
|
|
24
11
|
//await makeTarballsForInstalledPackages(true)
|
|
25
12
|
|
|
26
|
-
/*
|
|
27
|
-
const voices = await listVoices()
|
|
28
|
-
|
|
29
|
-
for (const voice of voices) {
|
|
30
|
-
const result = await synthesize('|', { ...defaultEspeakOptions, voice: voice.identifier })
|
|
31
|
-
|
|
32
|
-
if (getRawAudioDuration(result.rawAudio) > 0.25) {
|
|
33
|
-
log(voice.identifier)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
*/
|
|
37
|
-
/*
|
|
38
|
-
await alignText(
|
|
39
|
-
`
|
|
40
|
-
Una mañana de invierno, un coche tirado por tres caballos pasó por en medio de Uzquiano y sin detenerse, siguió camino de Peña Cerrada. El coche había salido de Vitoria horas antes y llevaba tres viajeros, una muchachita vestida de blanco, talle alto, gabán, esclavina, gran sombrero Pamela, de moda por los años treinta y cinco al cuarenta, una criada vieja, de aspecto de dueña, enlutada, con peluca rojiza y toca blanca, y un hombre joven, alto, elegante, vestido de negro, con pantalón estrecho, entravillado y sombrero de copa.
|
|
41
|
-
`,
|
|
42
|
-
'es',
|
|
43
|
-
`
|
|
44
|
-
One winter morning, a car drawn by three horses passed through the middle of Uzquiano and without stopping, continued on its way to Peña Cerrada. The car had left Vitoria hours before and was carrying three passengers, a little girl dressed in white, high-waisted, overcoat, cape, large Pamela hat, fashionable in the 1930s to 1940s, an old maid, with the appearance of a mistress, in mourning, with a reddish wig and a white cap, and a young, tall, elegant man, dressed in black, with narrow pants, a bow tie and a top hat.
|
|
45
|
-
`,
|
|
46
|
-
'en',
|
|
47
|
-
)
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
13
|
process.exit(0)
|
|
51
14
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import path from 'path'
|
|
2
|
-
import type { LanguageDetectionResults } from '../api/LanguageDetection.js'
|
|
3
2
|
import { languageCodeToName } from '../utilities/Locale.js'
|
|
4
3
|
import { OpenPromise } from '../utilities/OpenPromise.js'
|
|
5
4
|
import { resolveModuleMainPath, roundToDigits } from '../utilities/Utilities.js'
|
|
5
|
+
import { LanguageDetectionResults } from '../api/LanguageDetectionCommon.js'
|
|
6
6
|
|
|
7
7
|
let fastTextLanguageDetectionModel: any
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { LanguageDetectionResults } from '../api/LanguageDetection.js'
|
|
2
1
|
import { detectAll } from 'tinyld'
|
|
3
2
|
import { languageCodeToName } from '../utilities/Locale.js'
|
|
3
|
+
import { LanguageDetectionResults } from '../api/LanguageDetectionCommon.js'
|
|
4
4
|
|
|
5
5
|
export async function detectLanguage(text: string) {
|
|
6
6
|
const tinyldResults = detectAll(text)
|
|
@@ -6,7 +6,7 @@ export async function translateText(sourceText: string, sourceLanguage: string,
|
|
|
6
6
|
|
|
7
7
|
const { AutoTokenizer, M2M100ForConditionalGeneration } = await import('@echogarden/transformers-nodejs-lite')
|
|
8
8
|
|
|
9
|
-
const modelPath = await loadPackage(`xenova-nllb-200-distilled-600M-
|
|
9
|
+
const modelPath = await loadPackage(`xenova-nllb-200-distilled-600M-q8`)
|
|
10
10
|
|
|
11
11
|
const tokenizer = await AutoTokenizer.from_pretrained(modelPath)
|
|
12
12
|
const model = await M2M100ForConditionalGeneration.from_pretrained(modelPath)
|
package/src/utilities/Locale.ts
CHANGED
|
@@ -22,7 +22,7 @@ export function formatLanguageCodeWithName(languageCode: string, styleId: 1 | 2
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
export async function
|
|
25
|
+
export async function normalizeIdentifierToLanguageCode(langIdentifier: string) {
|
|
26
26
|
const result = await parseLangIdentifier(langIdentifier)
|
|
27
27
|
|
|
28
28
|
return result.Name
|
|
@@ -183,10 +183,13 @@ const packageVersionTagResolutionLookup: { [packageName: string]: string } = {
|
|
|
183
183
|
'whisper.cpp-binaries-windows-x64-cublas-12.4.0-latest-patched': '20240409',
|
|
184
184
|
'whisper.cpp-binaries-windows-x64-cublas-11.8.0-latest-patched': '20240409',
|
|
185
185
|
|
|
186
|
-
'xenova-multilingual-e5-small-
|
|
187
|
-
'xenova-nllb-200-distilled-600M-
|
|
186
|
+
'xenova-multilingual-e5-small-q8': '20240504',
|
|
187
|
+
'xenova-nllb-200-distilled-600M-q8': '20240505',
|
|
188
188
|
'xenova-multilingual-e5-small-fp16': '20240514',
|
|
189
189
|
'xenova-multilingual-e5-base-fp16': '20240514',
|
|
190
|
-
'xenova-multilingual-e5-base-
|
|
191
|
-
'xenova-multilingual-e5-large-
|
|
190
|
+
'xenova-multilingual-e5-base-q8': '20240514',
|
|
191
|
+
'xenova-multilingual-e5-large-q8': '20240514',
|
|
192
|
+
|
|
193
|
+
'w2v-bert-2.0-int8': '20240517',
|
|
194
|
+
'w2v-bert-2.0-uint8': '20240517',
|
|
192
195
|
}
|
|
@@ -207,6 +207,20 @@ export function addWordTextOffsetsToTimeline(timeline: Timeline, text: string, c
|
|
|
207
207
|
return currentOffset
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
export function extractEntries(timeline: Timeline, predicate: (entry: TimelineEntry) => boolean): TimelineEntry[] {
|
|
211
|
+
const timelineWordEntries: TimelineEntry[] = []
|
|
212
|
+
|
|
213
|
+
for (const entry of timeline) {
|
|
214
|
+
if (predicate(entry)) {
|
|
215
|
+
timelineWordEntries.push(entry)
|
|
216
|
+
} else if (entry.timeline) {
|
|
217
|
+
timelineWordEntries.push(...extractEntries(entry.timeline, predicate))
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return timelineWordEntries
|
|
222
|
+
}
|
|
223
|
+
|
|
210
224
|
export type TimelineEntryType = 'segment' | 'paragraph' | 'sentence' | 'clause' | 'phrase' | 'word' | 'token' | 'letter' | 'phone' | 'subphone'
|
|
211
225
|
|
|
212
226
|
export type TimelineEntry = {
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { Logger } from '../utilities/Logger.js';
|
|
2
|
-
import { loadPackage } from '../utilities/PackageManager.js';
|
|
3
|
-
import { alignDTWWindowed } from './DTWSequenceAlignmentWindowed.js';
|
|
4
|
-
import { cosineDistance } from '../math/VectorMath.js';
|
|
5
|
-
import { isPunctuation, splitToWords } from '../nlp/Segmentation.js';
|
|
6
|
-
export async function alignText(text1, langCode1, text2, langCode2) {
|
|
7
|
-
const logger = new Logger();
|
|
8
|
-
text1 = text1.replaceAll(/\s+/g, ' ');
|
|
9
|
-
text2 = text2.replaceAll(/\s+/g, ' ');
|
|
10
|
-
const words1 = await splitToWords(text1, langCode1);
|
|
11
|
-
const words2 = await splitToWords(text2, langCode2);
|
|
12
|
-
const wordAlignment = await alignWords(words1, words2);
|
|
13
|
-
const x = 0;
|
|
14
|
-
}
|
|
15
|
-
export async function alignWords(words1, words2) {
|
|
16
|
-
const logger = new Logger();
|
|
17
|
-
// Join words and get offsets
|
|
18
|
-
const { joinedText: text1, offsets: text1Offsets } = joinAndGetOffsets(words1);
|
|
19
|
-
const { joinedText: text2, offsets: text2Offsets } = joinAndGetOffsets(words2);
|
|
20
|
-
// Load embedding model
|
|
21
|
-
const modelPath = await loadPackage(`xenova-multilingual-e5-base-quantized`);
|
|
22
|
-
const embeddingModel = new E5TextEmbedding(modelPath);
|
|
23
|
-
// Process text 1:
|
|
24
|
-
logger.start(`Initialize E5 embedding model`);
|
|
25
|
-
await embeddingModel.initializeIfNeeded();
|
|
26
|
-
logger.start(`Tokenize text 1`);
|
|
27
|
-
const inputs1 = await embeddingModel.tokenizeToModelInputs(text1);
|
|
28
|
-
logger.start(`Infer embeddings for text 1`);
|
|
29
|
-
const embeddings1 = await embeddingModel.inferTokenEmbeddings(inputs1);
|
|
30
|
-
logger.start(`Compute token to word mapping for text 1`);
|
|
31
|
-
const filteredEmbeddings1 = embeddings1.filter((embedding) => embedding.text !== '▁' && embedding.text !== '<s>' && embedding.text !== '</s>');
|
|
32
|
-
const tokenToWordIndexMapping1 = mapTokenEmbeddingsToWordIndexes(filteredEmbeddings1, text1, text1Offsets);
|
|
33
|
-
// Process text 2:
|
|
34
|
-
logger.start(`Tokenize text 2`);
|
|
35
|
-
const inputs2 = await embeddingModel.tokenizeToModelInputs(text2);
|
|
36
|
-
logger.start(`Infer embeddings for text 2`);
|
|
37
|
-
const embeddings2 = await embeddingModel.inferTokenEmbeddings(inputs2);
|
|
38
|
-
logger.start(`Compute token to word mapping for text 2`);
|
|
39
|
-
const filteredEmbeddings2 = embeddings2.filter((embedding) => embedding.text !== '▁' && embedding.text !== '<s>' && embedding.text !== '</s>');
|
|
40
|
-
const tokenToWordIndexMapping2 = mapTokenEmbeddingsToWordIndexes(filteredEmbeddings2, text2, text2Offsets);
|
|
41
|
-
logger.end();
|
|
42
|
-
// Align
|
|
43
|
-
function costFunction(a, b) {
|
|
44
|
-
const aIsPunctuation = isPunctuation(a.text);
|
|
45
|
-
const bIsPunctuation = isPunctuation(b.text);
|
|
46
|
-
if (aIsPunctuation === bIsPunctuation) {
|
|
47
|
-
return cosineDistance(a.embeddingVector, b.embeddingVector);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
return 1.0;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const { path } = alignDTWWindowed(filteredEmbeddings1, filteredEmbeddings2, costFunction, 1000 * 1000);
|
|
54
|
-
// Use alignment path to words to words
|
|
55
|
-
const wordMapping = [];
|
|
56
|
-
for (let i = 0; i < path.length; i++) {
|
|
57
|
-
const pathEntry = path[i];
|
|
58
|
-
const sourceTokenIndex = pathEntry.source;
|
|
59
|
-
const destTokenIndex = pathEntry.dest;
|
|
60
|
-
const mappedWordIndex1 = tokenToWordIndexMapping1[sourceTokenIndex];
|
|
61
|
-
const mappedWordIndex2 = tokenToWordIndexMapping2[destTokenIndex];
|
|
62
|
-
wordMapping.push({
|
|
63
|
-
wordIndex1: mappedWordIndex1,
|
|
64
|
-
word1: words1[mappedWordIndex1],
|
|
65
|
-
wordIndex2: mappedWordIndex2,
|
|
66
|
-
word2: words2[mappedWordIndex2],
|
|
67
|
-
});
|
|
68
|
-
const embedding1 = filteredEmbeddings1[sourceTokenIndex];
|
|
69
|
-
const embedding2 = filteredEmbeddings2[destTokenIndex];
|
|
70
|
-
logger.log(`${embedding1.text} -> ${embedding2.text}`);
|
|
71
|
-
}
|
|
72
|
-
return wordMapping;
|
|
73
|
-
}
|
|
74
|
-
function mapTokenEmbeddingsToWordIndexes(embeddings, text, textWordOffsets) {
|
|
75
|
-
const tokenToWordIndex = [];
|
|
76
|
-
let currentTextOffset = 0;
|
|
77
|
-
for (let i = 0; i < embeddings.length; i++) {
|
|
78
|
-
const embedding = embeddings[i];
|
|
79
|
-
let tokenText = embedding.text;
|
|
80
|
-
if (tokenText === '<s>' || tokenText === '</s>') {
|
|
81
|
-
tokenToWordIndex.push(-1);
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
if (tokenText.startsWith('▁')) {
|
|
85
|
-
tokenText = tokenText.substring(1);
|
|
86
|
-
}
|
|
87
|
-
const matchPosition = text.indexOf(tokenText, currentTextOffset);
|
|
88
|
-
if (matchPosition === -1) {
|
|
89
|
-
throw new Error(`Token '${tokenText}' not found in text`);
|
|
90
|
-
}
|
|
91
|
-
currentTextOffset = matchPosition + tokenText.length;
|
|
92
|
-
let tokenMatchingWordIndex = textWordOffsets.findIndex((index) => index > matchPosition);
|
|
93
|
-
if (tokenMatchingWordIndex === -1) {
|
|
94
|
-
throw new Error(`Token '${tokenText}' not found in text`);
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
tokenMatchingWordIndex = Math.max(tokenMatchingWordIndex - 1, 0);
|
|
98
|
-
}
|
|
99
|
-
tokenToWordIndex.push(tokenMatchingWordIndex);
|
|
100
|
-
}
|
|
101
|
-
return tokenToWordIndex;
|
|
102
|
-
}
|
|
103
|
-
function joinAndGetOffsets(words) {
|
|
104
|
-
let joinedText = '';
|
|
105
|
-
const offsets = [];
|
|
106
|
-
let offset = 0;
|
|
107
|
-
for (const word of words) {
|
|
108
|
-
joinedText += word;
|
|
109
|
-
offsets.push(offset);
|
|
110
|
-
offset += word.length;
|
|
111
|
-
}
|
|
112
|
-
offsets.push(joinedText.length);
|
|
113
|
-
return { joinedText, offsets };
|
|
114
|
-
}
|
|
115
|
-
export class E5TextEmbedding {
|
|
116
|
-
modelPath;
|
|
117
|
-
tokenizer;
|
|
118
|
-
model;
|
|
119
|
-
constructor(modelPath) {
|
|
120
|
-
this.modelPath = modelPath;
|
|
121
|
-
}
|
|
122
|
-
async tokenizeToModelInputs(text) {
|
|
123
|
-
await this.initializeIfNeeded();
|
|
124
|
-
const inputs = await this.tokenizer(text);
|
|
125
|
-
return inputs;
|
|
126
|
-
}
|
|
127
|
-
async inferTokenEmbeddings(inputs) {
|
|
128
|
-
await this.initializeIfNeeded();
|
|
129
|
-
const tokensText = this.tokenizer.model.convert_ids_to_tokens(Array.from(inputs.input_ids.data));
|
|
130
|
-
const result = await this.model(inputs);
|
|
131
|
-
const lastHiddenState = result.last_hidden_state;
|
|
132
|
-
const tokenCount = lastHiddenState.dims[1];
|
|
133
|
-
const embeddingSize = lastHiddenState.dims[2];
|
|
134
|
-
const tokenEmbeddings = [];
|
|
135
|
-
for (let i = 0; i < tokenCount; i++) {
|
|
136
|
-
const tokenEmbeddingVector = lastHiddenState.data.slice(i * embeddingSize, (i + 1) * embeddingSize);
|
|
137
|
-
const tokenId = Number(inputs.input_ids.data[i]);
|
|
138
|
-
const tokenText = tokensText[i];
|
|
139
|
-
tokenEmbeddings.push({
|
|
140
|
-
id: tokenId,
|
|
141
|
-
text: tokenText,
|
|
142
|
-
embeddingVector: tokenEmbeddingVector
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
return tokenEmbeddings;
|
|
146
|
-
}
|
|
147
|
-
async initializeIfNeeded() {
|
|
148
|
-
if (this.tokenizer && this.model) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
const { AutoTokenizer, AutoModel } = await import('@echogarden/transformers-nodejs-lite');
|
|
152
|
-
this.tokenizer = await AutoTokenizer.from_pretrained(this.modelPath);
|
|
153
|
-
this.model = await AutoModel.from_pretrained(this.modelPath);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=TextAlignment.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextAlignment.js","sourceRoot":"","sources":["../../src/alignment/TextAlignment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LanguageDetection.js","sourceRoot":"","sources":["../../src/api/LanguageDetection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Translation.js","sourceRoot":"","sources":["../../src/api/Translation.ts"],"names":[],"mappings":"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"}
|