echogarden 0.11.11 → 0.11.13
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 +16 -0
- package/dist/alignment/DTWMfccSequenceAlignment.js +2 -2
- package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -1
- package/dist/alignment/SpeechAlignment.d.ts +1 -1
- package/dist/alignment/SpeechAlignment.js +15 -3
- package/dist/alignment/SpeechAlignment.js.map +1 -1
- package/dist/api/Alignment.js +3 -3
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/LanguageDetection.js +1 -1
- package/dist/api/LanguageDetection.js.map +1 -1
- package/dist/api/Recognition.js +3 -3
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/Synthesis.js +7 -6
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/Translation.js +3 -3
- package/dist/api/Translation.js.map +1 -1
- package/dist/audio/AudioUtilities.d.ts +5 -2
- package/dist/audio/AudioUtilities.js +50 -22
- package/dist/audio/AudioUtilities.js.map +1 -1
- package/dist/cli/CLI.js +2 -2
- package/dist/cli/CLI.js.map +1 -1
- package/dist/dsp/SpeexResampler.js +1 -1
- package/dist/recognition/WhisperSTT.js +2 -2
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/subtitles/Subtitles.d.ts +10 -7
- package/dist/subtitles/Subtitles.js +268 -207
- package/dist/subtitles/Subtitles.js.map +1 -1
- package/docs/Options.md +4 -2
- package/package.json +12 -11
- package/src/alignment/DTWMfccSequenceAlignment.ts +43 -0
- package/src/alignment/DTWSequenceAlignment.ts +121 -0
- package/src/alignment/DTWSequenceAlignmentWindowed.ts +210 -0
- package/src/alignment/LevenshteinSequenceAlignment.ts +126 -0
- package/src/alignment/SpeechAlignment.ts +488 -0
- package/src/api/API.ts +12 -0
- package/src/api/APIOptions.ts +15 -0
- package/src/api/Alignment.ts +329 -0
- package/src/api/Common.ts +16 -0
- package/src/api/Denoising.ts +120 -0
- package/src/api/LanguageDetection.ts +286 -0
- package/src/api/Recognition.ts +344 -0
- package/src/api/Synthesis.ts +1735 -0
- package/src/api/Translation.ts +143 -0
- package/src/api/Vad.ts +172 -0
- package/src/audio/AudioBufferConversion.ts +248 -0
- package/src/audio/AudioPlayer.ts +358 -0
- package/src/audio/AudioRecorder.ts +91 -0
- package/src/audio/AudioUtilities.ts +392 -0
- package/src/audio/SoxPath.ts +24 -0
- package/src/cli/CLI.ts +1360 -0
- package/src/cli/CLIConfigFile.ts +91 -0
- package/src/cli/CLILauncher.ts +26 -0
- package/src/cli/CLIOptionsSchema.ts +54 -0
- package/src/cli/CLIParser.ts +41 -0
- package/src/cli/CLIStarter.ts +40 -0
- package/src/codecs/FFMpegTranscoder.ts +214 -0
- package/src/codecs/TIMITCodec.ts +17 -0
- package/src/codecs/WaveCodec.ts +260 -0
- package/src/denoising/RNNoise.ts +95 -0
- package/src/dsp/BiquadFilter.ts +488 -0
- package/src/dsp/FFT.ts +187 -0
- package/src/dsp/MFCC.ts +227 -0
- package/src/dsp/MelSpectogram.ts +145 -0
- package/src/dsp/Rubberband.ts +249 -0
- package/src/dsp/Sonic.ts +59 -0
- package/src/dsp/SpeexResampler.ts +79 -0
- package/src/math/VectorMath.ts +812 -0
- package/src/nlp/ChineseSegmentation.ts +68 -0
- package/src/nlp/CompromiseNLP.ts +113 -0
- package/src/nlp/EspeakPhonemizer.ts +168 -0
- package/src/nlp/IPA.ts +139 -0
- package/src/nlp/JapaneseSegmentation.ts +53 -0
- package/src/nlp/Lexicon.ts +119 -0
- package/src/nlp/PhoneConversion.ts +508 -0
- package/src/nlp/Segmentation.ts +237 -0
- package/src/nlp/TextNormalizer.ts +160 -0
- package/src/recognition/AmazonTranscribeSTT.ts +112 -0
- package/src/recognition/AzureCognitiveServicesSTT.ts +76 -0
- package/src/recognition/GoogleCloudSTT.ts +92 -0
- package/src/recognition/SileroSTT.ts +173 -0
- package/src/recognition/VoskSTT.ts +112 -0
- package/src/recognition/WhisperSTT.ts +1518 -0
- package/src/server/Client.ts +297 -0
- package/src/server/Server.ts +178 -0
- package/src/server/ServerStarter.ts +12 -0
- package/src/server/Worker.ts +400 -0
- package/src/server/WorkerStarter.ts +38 -0
- package/src/speech-language-detection/SileroLanguageDetection.ts +105 -0
- package/src/subtitles/Subtitles.ts +478 -0
- package/src/synthesis/AwsPollyTTS.ts +78 -0
- package/src/synthesis/AzureCognitiveServicesTTS.ts +146 -0
- package/src/synthesis/CoquiServerTTS.ts +29 -0
- package/src/synthesis/ElevenLabsTTS.ts +104 -0
- package/src/synthesis/EspeakTTS.ts +552 -0
- package/src/synthesis/FliteTTS.ts +387 -0
- package/src/synthesis/GoogleCloudTTS.ts +112 -0
- package/src/synthesis/GoogleTranslateTTS.ts +210 -0
- package/src/synthesis/MicrosoftEdgeTTS.ts +298 -0
- package/src/synthesis/SamTTS.ts +30 -0
- package/src/synthesis/SapiTTS.ts +222 -0
- package/src/synthesis/StreamlabsPollyTTS.ts +114 -0
- package/src/synthesis/SvoxPicoTTS.ts +318 -0
- package/src/synthesis/VitsTTS.ts +734 -0
- package/src/tests/Test.ts +24 -0
- package/src/text-language-detection/FastTextLanguageDetection.ts +53 -0
- package/src/text-language-detection/TinyLDLanguageDetection.ts +16 -0
- package/src/typings/Fillers.d.ts +41 -0
- package/src/utilities/BinaryArrayConversion.ts +159 -0
- package/src/utilities/Compression.ts +91 -0
- package/src/utilities/FileDownloader.ts +201 -0
- package/src/utilities/FileSystem.ts +265 -0
- package/src/utilities/Hashing.ts +230 -0
- package/src/utilities/Locale.ts +119 -0
- package/src/utilities/Logger.ts +72 -0
- package/src/utilities/NdArrayUtilities.ts +31 -0
- package/src/utilities/ObjectUtilities.ts +169 -0
- package/src/utilities/OpenPromise.ts +13 -0
- package/src/utilities/PackageManager.ts +97 -0
- package/src/utilities/Queue.ts +17 -0
- package/src/utilities/RandomGenerator.ts +237 -0
- package/src/utilities/SignalChannel.ts +22 -0
- package/src/utilities/TarballMaker.ts +68 -0
- package/src/utilities/Timeline.ts +231 -0
- package/src/utilities/Timer.ts +93 -0
- package/src/utilities/Utilities.ts +574 -0
- package/src/utilities/WasmMemoryManager.ts +516 -0
- package/src/utilities/WebReader.ts +55 -0
- package/src/utilities/WikipediaReader.ts +41 -0
- package/src/voice-activity-detection/SileroVAD.ts +86 -0
- package/src/voice-activity-detection/WebRtcVAD.ts +76 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import * as AudioBufferConversion from "../audio/AudioBufferConversion.js"
|
|
2
|
+
import { RawAudio } from "../audio/AudioUtilities.js"
|
|
3
|
+
import { WasmMemoryManager } from "../utilities/WasmMemoryManager.js"
|
|
4
|
+
|
|
5
|
+
export async function detectVoiceActivity(rawAudio: RawAudio, frameDuration: 10 | 20 | 30 = 10, mode: 0 | 1 | 2 | 3 = 0) {
|
|
6
|
+
if (rawAudio.sampleRate != 16000) {
|
|
7
|
+
throw new Error("Audio sample rate must be 16KHz")
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const frameClassifications: (0 | 1)[] = await fvad(AudioBufferConversion.float32ToInt16Pcm(rawAudio.audioChannels[0]), rawAudio.sampleRate, frameDuration, mode)
|
|
11
|
+
|
|
12
|
+
return frameClassifications
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function fvad(samples: Int16Array, sampleRate: number, frameDuration: 10 | 20 | 30, mode: 0 | 1 | 2 | 3) {
|
|
16
|
+
const m = await getFvadInstance()
|
|
17
|
+
|
|
18
|
+
const wasmMemory = new WasmMemoryManager(m)
|
|
19
|
+
|
|
20
|
+
const fvad_new = m._fvad_new
|
|
21
|
+
const fvad_free = m._fvad_free
|
|
22
|
+
const fvad_reset = m._fvad_reset
|
|
23
|
+
const fvad_set_mode = m._fvad_set_mode
|
|
24
|
+
const fvad_set_sample_rate = m._fvad_set_sample_rate
|
|
25
|
+
const fvad_process = m._fvad_process
|
|
26
|
+
|
|
27
|
+
const instancePtr = fvad_new()
|
|
28
|
+
|
|
29
|
+
const sampleRateValid = fvad_set_sample_rate(instancePtr, sampleRate)
|
|
30
|
+
|
|
31
|
+
if (sampleRateValid != 0) {
|
|
32
|
+
throw new Error(`fvad_set_sample_rate failed for value ${sampleRate}`)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const modeValid = fvad_set_mode(instancePtr, mode)
|
|
36
|
+
|
|
37
|
+
if (modeValid != 0) {
|
|
38
|
+
throw new Error(`fvad_set_mode failed for mode ${mode}`)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const frameSampleCount = Math.floor(sampleRate * (frameDuration / 1000))
|
|
42
|
+
const frameSamplesRef = wasmMemory.allocInt16Array(frameSampleCount)
|
|
43
|
+
|
|
44
|
+
const result = []
|
|
45
|
+
|
|
46
|
+
for (let sampleOffset = 0; sampleOffset < samples.length; sampleOffset += frameSampleCount) {
|
|
47
|
+
const frame = samples.subarray(sampleOffset, sampleOffset + frameSampleCount)
|
|
48
|
+
|
|
49
|
+
frameSamplesRef.clear()
|
|
50
|
+
frameSamplesRef.view.set(frame)
|
|
51
|
+
|
|
52
|
+
const fvadResult = fvad_process(instancePtr, frameSamplesRef.address, frameSampleCount)
|
|
53
|
+
|
|
54
|
+
if (fvadResult == -1) {
|
|
55
|
+
throw new Error("fvad_process failed")
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
result.push(fvadResult)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
fvad_free(instancePtr)
|
|
62
|
+
wasmMemory.freeAll()
|
|
63
|
+
|
|
64
|
+
return result
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let fvadInstance: any
|
|
68
|
+
async function getFvadInstance() {
|
|
69
|
+
if (!fvadInstance) {
|
|
70
|
+
const { default: fvadInitializer } = await import('@echogarden/fvad-wasm')
|
|
71
|
+
|
|
72
|
+
fvadInstance = await fvadInitializer()
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return fvadInstance
|
|
76
|
+
}
|