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.
- package/README.md +15 -14
- package/data/schemas/options.json +398 -111
- package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
- package/dist/alignment/DTWMfccSequenceAlignment.js +8 -8
- package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
- package/dist/alignment/DTWSequenceAlignment.js +1 -1
- package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
- package/dist/alignment/DTWSequenceAlignmentWindowed.js +2 -2
- package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -1
- package/dist/alignment/LevenshteinSequenceAlignment.js +1 -1
- package/dist/alignment/SpeechAlignment.d.ts +9 -10
- package/dist/alignment/SpeechAlignment.js +136 -105
- package/dist/alignment/SpeechAlignment.js.map +1 -1
- package/dist/api/API.d.ts +13 -12
- package/dist/api/API.js +14 -13
- package/dist/api/API.js.map +1 -1
- package/dist/api/APIOptions.d.ts +5 -4
- package/dist/api/Alignment.d.ts +15 -9
- package/dist/api/Alignment.js +88 -74
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Common.js +1 -1
- package/dist/api/Denoising.d.ts +6 -6
- package/dist/api/Denoising.js +23 -23
- package/dist/api/Denoising.js.map +1 -1
- package/dist/api/LanguageDetection.d.ts +19 -12
- package/dist/api/LanguageDetection.js +88 -38
- package/dist/api/LanguageDetection.js.map +1 -1
- package/dist/api/Recognition.d.ts +16 -6
- package/dist/api/Recognition.js +129 -55
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/SourceSeparation.d.ts +17 -0
- package/dist/api/SourceSeparation.js +61 -0
- package/dist/api/SourceSeparation.js.map +1 -0
- package/dist/api/Synthesis.d.ts +18 -18
- package/dist/api/Synthesis.js +191 -164
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/Translation.d.ts +19 -8
- package/dist/api/Translation.js +132 -35
- package/dist/api/Translation.js.map +1 -1
- package/dist/api/Vad.d.ts +10 -5
- package/dist/api/Vad.js +76 -38
- package/dist/api/Vad.js.map +1 -1
- package/dist/audio/AudioBufferConversion.d.ts +1 -1
- package/dist/audio/AudioBufferConversion.js +4 -4
- package/dist/audio/AudioPlayer.d.ts +1 -1
- package/dist/audio/AudioPlayer.js +26 -26
- package/dist/audio/AudioPlayer.js.map +1 -1
- package/dist/audio/AudioRecorder.d.ts +1 -1
- package/dist/audio/AudioRecorder.js +5 -5
- package/dist/audio/AudioUtilities.d.ts +13 -9
- package/dist/audio/AudioUtilities.js +86 -24
- package/dist/audio/AudioUtilities.js.map +1 -1
- package/dist/cli/CLI.d.ts +3 -3
- package/dist/cli/CLI.js +271 -162
- package/dist/cli/CLI.js.map +1 -1
- package/dist/cli/CLIConfigFile.js +8 -8
- package/dist/cli/CLILauncher.js +6 -6
- package/dist/cli/CLIOptionsSchema.js +2 -2
- package/dist/cli/CLIParser.js +5 -5
- package/dist/cli/CLIStarter.js +4 -4
- package/dist/codecs/FFMpegTranscoder.d.ts +2 -2
- package/dist/codecs/FFMpegTranscoder.js +37 -37
- package/dist/codecs/FFMpegTranscoder.js.map +1 -1
- package/dist/codecs/TIMITCodec.js +5 -5
- package/dist/codecs/WaveCodec.d.ts +1 -1
- package/dist/codecs/WaveCodec.js +22 -22
- package/dist/denoising/RNNoise.d.ts +1 -1
- package/dist/denoising/RNNoise.js +9 -9
- package/dist/dsp/BiquadFilter.d.ts +3 -2
- package/dist/dsp/BiquadFilter.js +18 -11
- package/dist/dsp/BiquadFilter.js.map +1 -1
- package/dist/dsp/DecayingPeakEstimator.d.ts +16 -0
- package/dist/dsp/DecayingPeakEstimator.js +23 -0
- package/dist/dsp/DecayingPeakEstimator.js.map +1 -0
- package/dist/dsp/FFT.d.ts +8 -4
- package/dist/dsp/FFT.js +76 -30
- package/dist/dsp/FFT.js.map +1 -1
- package/dist/dsp/KWeightingFilter.d.ts +9 -0
- package/dist/dsp/KWeightingFilter.js +40 -0
- package/dist/dsp/KWeightingFilter.js.map +1 -0
- package/dist/dsp/LoudnessEstimator.d.ts +21 -0
- package/dist/dsp/LoudnessEstimator.js +47 -0
- package/dist/dsp/LoudnessEstimator.js.map +1 -0
- package/dist/dsp/MFCC.d.ts +2 -2
- package/dist/dsp/MFCC.js +15 -15
- package/dist/dsp/MelSpectogram.d.ts +1 -1
- package/dist/dsp/MelSpectogram.js +6 -6
- package/dist/dsp/Rubberband.d.ts +11 -11
- package/dist/dsp/Rubberband.js +27 -27
- package/dist/dsp/Sonic.d.ts +1 -1
- package/dist/dsp/Sonic.js +3 -3
- package/dist/dsp/SpeexResampler.d.ts +1 -1
- package/dist/dsp/SpeexResampler.js +2 -2
- package/dist/math/VectorMath.d.ts +12 -8
- package/dist/math/VectorMath.js +35 -32
- package/dist/math/VectorMath.js.map +1 -1
- package/dist/nlp/ChineseSegmentation.js +2 -2
- package/dist/nlp/CompromiseNLP.js +3 -3
- package/dist/nlp/EspeakPhonemizer.js +30 -30
- package/dist/nlp/IPA.js +20 -20
- package/dist/nlp/JapaneseSegmentation.js +6 -6
- package/dist/nlp/Lexicon.d.ts +1 -1
- package/dist/nlp/Lexicon.js +7 -7
- package/dist/nlp/Segmentation.d.ts +3 -0
- package/dist/nlp/Segmentation.js +21 -14
- package/dist/nlp/Segmentation.js.map +1 -1
- package/dist/nlp/TextNormalizer.js +16 -16
- package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -2
- package/dist/recognition/AmazonTranscribeSTT.js +13 -14
- package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
- package/dist/recognition/AzureCognitiveServicesSTT.js +5 -6
- package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
- package/dist/recognition/GoogleCloudSTT.d.ts +3 -3
- package/dist/recognition/GoogleCloudSTT.js +18 -18
- package/dist/recognition/OpenAICloudSTT.d.ts +19 -0
- package/dist/recognition/OpenAICloudSTT.js +81 -0
- package/dist/recognition/OpenAICloudSTT.js.map +1 -0
- package/dist/recognition/SileroSTT.d.ts +2 -2
- package/dist/recognition/SileroSTT.js +25 -25
- package/dist/recognition/VoskSTT.d.ts +2 -2
- package/dist/recognition/VoskSTT.js +8 -8
- package/dist/recognition/WhisperCppSTT.d.ts +88 -0
- package/dist/recognition/WhisperCppSTT.js +332 -0
- package/dist/recognition/WhisperCppSTT.js.map +1 -0
- package/dist/recognition/WhisperSTT.d.ts +49 -25
- package/dist/recognition/WhisperSTT.js +626 -481
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/server/Client.d.ts +1 -1
- package/dist/server/Client.js +22 -22
- package/dist/server/Server.js +9 -9
- package/dist/server/Server.js.map +1 -1
- package/dist/server/Worker.d.ts +22 -22
- package/dist/server/Worker.js +36 -36
- package/dist/server/Worker.js.map +1 -1
- package/dist/server/WorkerStarter.js +2 -2
- package/dist/source-separation/MDXNetSourceSeparation.d.ts +11 -0
- package/dist/source-separation/MDXNetSourceSeparation.js +161 -0
- package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -0
- package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
- package/dist/speech-language-detection/SileroLanguageDetection.js +7 -7
- package/dist/subtitles/Subtitles.d.ts +10 -0
- package/dist/subtitles/Subtitles.js +2 -2
- package/dist/subtitles/Subtitles.js.map +1 -1
- package/dist/synthesis/AwsPollyTTS.d.ts +1 -1
- package/dist/synthesis/AwsPollyTTS.js +12 -12
- package/dist/synthesis/AzureCognitiveServicesTTS.js +7 -7
- package/dist/synthesis/CoquiServerTTS.js +10 -10
- package/dist/synthesis/CoquiServerTTS.js.map +1 -1
- package/dist/synthesis/ElevenlabsTTS.d.ts +23 -0
- package/dist/synthesis/ElevenlabsTTS.js +103 -0
- package/dist/synthesis/ElevenlabsTTS.js.map +1 -0
- package/dist/synthesis/EspeakTTS.d.ts +6 -5
- package/dist/synthesis/EspeakTTS.js +81 -69
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/FliteTTS.d.ts +3 -3
- package/dist/synthesis/FliteTTS.js +154 -154
- package/dist/synthesis/FliteTTS.js.map +1 -1
- package/dist/synthesis/GoogleCloudTTS.d.ts +3 -3
- package/dist/synthesis/GoogleCloudTTS.js +17 -17
- package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
- package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
- package/dist/synthesis/GoogleTranslateTTS.js +103 -103
- package/dist/synthesis/MicrosoftEdgeTTS.d.ts +2 -2
- package/dist/synthesis/MicrosoftEdgeTTS.js +74 -74
- package/dist/synthesis/OpenAICloudTTS.d.ts +13 -0
- package/dist/synthesis/OpenAICloudTTS.js +169 -0
- package/dist/synthesis/OpenAICloudTTS.js.map +1 -0
- package/dist/synthesis/SamTTS.js +3 -3
- package/dist/synthesis/SapiTTS.d.ts +3 -3
- package/dist/synthesis/SapiTTS.js +26 -26
- package/dist/synthesis/StreamlabsPollyTTS.d.ts +2 -2
- package/dist/synthesis/StreamlabsPollyTTS.js +27 -27
- package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
- package/dist/synthesis/SvoxPicoTTS.js +65 -65
- package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
- package/dist/synthesis/VitsTTS.d.ts +3 -3
- package/dist/synthesis/VitsTTS.js +378 -378
- package/dist/synthesis/VitsTTS.js.map +1 -1
- package/dist/tests/Test.js +2 -2
- package/dist/utilities/Compression.d.ts +5 -0
- package/dist/utilities/Compression.js +29 -13
- package/dist/utilities/Compression.js.map +1 -1
- package/dist/utilities/FileDownloader.d.ts +1 -1
- package/dist/utilities/FileDownloader.js +16 -16
- package/dist/utilities/FileSystem.js +7 -7
- package/dist/utilities/Locale.d.ts +7 -7
- package/dist/utilities/Locale.js +15 -15
- package/dist/utilities/Logger.js +3 -3
- package/dist/utilities/ObjectUtilities.js +19 -19
- package/dist/utilities/OpenPromise.js +2 -2
- package/dist/utilities/OpenPromise.js.map +1 -1
- package/dist/utilities/PackageManager.js +31 -0
- package/dist/utilities/PackageManager.js.map +1 -1
- package/dist/utilities/PathUtilities.js +8 -8
- package/dist/utilities/RandomGenerator.js +2 -2
- package/dist/utilities/SmoothEstimator.d.ts +8 -0
- package/dist/utilities/SmoothEstimator.js +25 -0
- package/dist/utilities/SmoothEstimator.js.map +1 -0
- package/dist/utilities/TarballMaker.js +8 -8
- package/dist/utilities/Timeline.d.ts +3 -2
- package/dist/utilities/Timeline.js +11 -11
- package/dist/utilities/Timeline.js.map +1 -1
- package/dist/utilities/Timer.js +4 -4
- package/dist/utilities/Utilities.d.ts +4 -0
- package/dist/utilities/Utilities.js +38 -15
- package/dist/utilities/Utilities.js.map +1 -1
- package/dist/utilities/WasmMemoryManager.js +7 -7
- package/dist/utilities/WebReader.js +23 -23
- package/dist/utilities/WikipediaReader.js +2 -2
- package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +28 -0
- package/dist/voice-activity-detection/AdaptiveGateVAD.js +138 -0
- package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -0
- package/dist/voice-activity-detection/SileroVAD.d.ts +1 -1
- package/dist/voice-activity-detection/SileroVAD.js +5 -5
- package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
- package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -1
- package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
- package/docs/API.md +29 -11
- package/docs/CLI.md +31 -7
- package/docs/Contributing.md +38 -0
- package/docs/Development.md +93 -19
- package/docs/Engines.md +28 -16
- package/docs/Licenses.md +4 -1
- package/docs/Options.md +158 -78
- package/docs/Releases.md +262 -0
- package/docs/Server.md +7 -7
- package/docs/Tasklist.md +95 -76
- package/docs/Technical.md +4 -4
- package/package.json +13 -14
- package/src/alignment/DTWMfccSequenceAlignment.ts +9 -9
- package/src/alignment/DTWSequenceAlignment.ts +2 -2
- package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
- package/src/alignment/LevenshteinSequenceAlignment.ts +2 -2
- package/src/alignment/SpeechAlignment.ts +204 -119
- package/src/api/API.ts +14 -13
- package/src/api/APIOptions.ts +12 -11
- package/src/api/Alignment.ts +147 -90
- package/src/api/Common.ts +1 -1
- package/src/api/Denoising.ts +28 -28
- package/src/api/LanguageDetection.ts +135 -48
- package/src/api/Recognition.ts +198 -59
- package/src/api/SourceSeparation.ts +99 -0
- package/src/api/Synthesis.ts +217 -181
- package/src/api/Translation.ts +193 -40
- package/src/api/Vad.ts +110 -41
- package/src/audio/AudioBufferConversion.ts +4 -4
- package/src/audio/AudioPlayer.ts +27 -27
- package/src/audio/AudioRecorder.ts +5 -5
- package/src/audio/AudioUtilities.ts +107 -24
- package/src/cli/CLI.ts +313 -164
- package/src/cli/CLIConfigFile.ts +8 -8
- package/src/cli/CLILauncher.ts +6 -6
- package/src/cli/CLIOptionsSchema.ts +2 -2
- package/src/cli/CLIParser.ts +5 -5
- package/src/cli/CLIStarter.ts +4 -4
- package/src/codecs/FFMpegTranscoder.ts +38 -38
- package/src/codecs/TIMITCodec.ts +5 -5
- package/src/codecs/WaveCodec.ts +22 -22
- package/src/denoising/RNNoise.ts +9 -9
- package/src/dsp/BiquadFilter.ts +19 -11
- package/src/dsp/DecayingPeakEstimator.ts +35 -0
- package/src/dsp/FFT.ts +103 -35
- package/src/dsp/KWeightingFilter.ts +43 -0
- package/src/dsp/LoudnessEstimator.ts +74 -0
- package/src/dsp/MFCC.ts +15 -15
- package/src/dsp/MelSpectogram.ts +7 -7
- package/src/dsp/Rubberband.ts +38 -38
- package/src/dsp/Sonic.ts +4 -4
- package/src/dsp/SpeexResampler.ts +2 -2
- package/src/math/VectorMath.ts +42 -33
- package/src/nlp/ChineseSegmentation.ts +3 -3
- package/src/nlp/CompromiseNLP.ts +3 -3
- package/src/nlp/EspeakPhonemizer.ts +30 -30
- package/src/nlp/IPA.ts +20 -20
- package/src/nlp/JapaneseSegmentation.ts +6 -6
- package/src/nlp/Lexicon.ts +8 -8
- package/src/nlp/Segmentation.ts +23 -14
- package/src/nlp/TextNormalizer.ts +16 -16
- package/src/recognition/AmazonTranscribeSTT.ts +16 -17
- package/src/recognition/AzureCognitiveServicesSTT.ts +8 -6
- package/src/recognition/GoogleCloudSTT.ts +21 -21
- package/src/recognition/OpenAICloudSTT.ts +142 -0
- package/src/recognition/SileroSTT.ts +26 -26
- package/src/recognition/VoskSTT.ts +10 -10
- package/src/recognition/WhisperCppSTT.ts +555 -0
- package/src/recognition/WhisperSTT.ts +760 -507
- package/src/server/Client.ts +23 -23
- package/src/server/Server.ts +9 -9
- package/src/server/Worker.ts +53 -53
- package/src/server/WorkerStarter.ts +2 -2
- package/src/source-separation/MDXNetSourceSeparation.ts +228 -0
- package/src/speech-language-detection/SileroLanguageDetection.ts +8 -8
- package/src/subtitles/Subtitles.ts +3 -3
- package/src/synthesis/AwsPollyTTS.ts +14 -14
- package/src/synthesis/AzureCognitiveServicesTTS.ts +10 -10
- package/src/synthesis/CoquiServerTTS.ts +10 -10
- package/src/synthesis/ElevenlabsTTS.ts +137 -0
- package/src/synthesis/EspeakTTS.ts +90 -71
- package/src/synthesis/FliteTTS.ts +157 -157
- package/src/synthesis/GoogleCloudTTS.ts +19 -19
- package/src/synthesis/GoogleTranslateTTS.ts +104 -104
- package/src/synthesis/MicrosoftEdgeTTS.ts +80 -80
- package/src/synthesis/OpenAICloudTTS.ts +196 -0
- package/src/synthesis/SamTTS.ts +3 -3
- package/src/synthesis/SapiTTS.ts +29 -29
- package/src/synthesis/StreamlabsPollyTTS.ts +29 -29
- package/src/synthesis/SvoxPicoTTS.ts +67 -67
- package/src/synthesis/VitsTTS.ts +380 -380
- package/src/tests/Test.ts +4 -4
- package/src/utilities/Compression.ts +34 -13
- package/src/utilities/FileDownloader.ts +19 -19
- package/src/utilities/FileSystem.ts +7 -7
- package/src/utilities/Locale.ts +22 -22
- package/src/utilities/Logger.ts +4 -4
- package/src/utilities/ObjectUtilities.ts +19 -19
- package/src/utilities/OpenPromise.ts +2 -2
- package/src/utilities/PackageManager.ts +40 -0
- package/src/utilities/PathUtilities.ts +8 -8
- package/src/utilities/RandomGenerator.ts +3 -3
- package/src/utilities/SmoothEstimator.ts +35 -0
- package/src/utilities/TarballMaker.ts +9 -9
- package/src/utilities/Timeline.ts +15 -13
- package/src/utilities/Timer.ts +4 -4
- package/src/utilities/Utilities.ts +49 -15
- package/src/utilities/WasmMemoryManager.ts +7 -7
- package/src/utilities/WebReader.ts +23 -23
- package/src/utilities/WikipediaReader.ts +2 -2
- package/src/voice-activity-detection/AdaptiveGateVAD.ts +202 -0
- package/src/voice-activity-detection/SileroVAD.ts +5 -5
- package/src/voice-activity-detection/WebRtcVAD.ts +5 -5
- package/dist/synthesis/ElevenLabsTTS.d.ts +0 -8
- package/dist/synthesis/ElevenLabsTTS.js +0 -82
- package/dist/synthesis/ElevenLabsTTS.js.map +0 -1
- package/src/synthesis/ElevenLabsTTS.ts +0 -104
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Logger } from
|
|
3
|
-
import { getRandomHexString, logToStderr, resolveModuleMainPath } from
|
|
4
|
-
import { readFile, open, close, remove, ensureDir } from
|
|
5
|
-
import path from
|
|
6
|
-
import { getAppTempDir } from
|
|
1
|
+
import { decodeWaveToRawAudio } from '../audio/AudioUtilities.js';
|
|
2
|
+
import { Logger } from '../utilities/Logger.js';
|
|
3
|
+
import { getRandomHexString, logToStderr, resolveModuleMainPath } from '../utilities/Utilities.js';
|
|
4
|
+
import { readFile, open, close, remove, ensureDir } from '../utilities/FileSystem.js';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { getAppTempDir } from '../utilities/PathUtilities.js';
|
|
7
7
|
const log = logToStderr;
|
|
8
8
|
let fliteModuleObject;
|
|
9
9
|
export async function synthesize(text, voice, voiceDir, rate, pitchMeanHz, pitchStdDev) {
|
|
10
10
|
const logger = new Logger();
|
|
11
|
-
logger.start(
|
|
11
|
+
logger.start('Get Flite WASI instance');
|
|
12
12
|
const randomId = getRandomHexString(16);
|
|
13
13
|
const outFileName = `${randomId}.out.wav`;
|
|
14
14
|
const stdOutFileName = `${randomId}.stdout`;
|
|
15
|
-
const tempDir = getAppTempDir(
|
|
15
|
+
const tempDir = getAppTempDir('flite');
|
|
16
16
|
await ensureDir(tempDir);
|
|
17
17
|
const tempAudioFilePath = path.join(tempDir, outFileName);
|
|
18
18
|
const tempStdOutFilePath = path.join(tempDir, stdOutFileName);
|
|
19
|
-
const stdOutFileFd = await open(tempStdOutFilePath,
|
|
19
|
+
const stdOutFileFd = await open(tempStdOutFilePath, 'w+');
|
|
20
20
|
if (voiceDir) {
|
|
21
21
|
voice = `voices/${voice}.flitevox`;
|
|
22
22
|
}
|
|
@@ -56,7 +56,7 @@ export async function synthesize(text, voice, voiceDir, rate, pitchMeanHz, pitch
|
|
|
56
56
|
const importObject = { wasi_snapshot_preview1: wasi.wasiImport };
|
|
57
57
|
const moduleObject = await getModuleObject();
|
|
58
58
|
const instance = await WebAssembly.instantiate(moduleObject, importObject);
|
|
59
|
-
logger.start(
|
|
59
|
+
logger.start('Synthesize with flite');
|
|
60
60
|
const exitCode = wasi.start(instance);
|
|
61
61
|
await close(stdOutFileFd);
|
|
62
62
|
async function cleanup() {
|
|
@@ -68,10 +68,10 @@ export async function synthesize(text, voice, voiceDir, rate, pitchMeanHz, pitch
|
|
|
68
68
|
throw new Error(`Flite failed with exit code ${exitCode}`);
|
|
69
69
|
}
|
|
70
70
|
const waveData = await readFile(tempAudioFilePath);
|
|
71
|
-
const stdOutString = await readFile(tempStdOutFilePath,
|
|
71
|
+
const stdOutString = await readFile(tempStdOutFilePath, 'utf8');
|
|
72
72
|
await cleanup();
|
|
73
73
|
const events = parseEventsFromTrace(stdOutString);
|
|
74
|
-
const { rawAudio } =
|
|
74
|
+
const { rawAudio } = decodeWaveToRawAudio(waveData);
|
|
75
75
|
logger.end();
|
|
76
76
|
return { rawAudio, events };
|
|
77
77
|
}
|
|
@@ -84,25 +84,25 @@ async function getModuleObject() {
|
|
|
84
84
|
}
|
|
85
85
|
function parseEventsFromTrace(eventTrace) {
|
|
86
86
|
//log(eventTrace)
|
|
87
|
-
const eventStrings = eventTrace.trim().split(
|
|
87
|
+
const eventStrings = eventTrace.trim().split(' ');
|
|
88
88
|
const eventCount = eventStrings.length;
|
|
89
89
|
const events = [];
|
|
90
90
|
let phraseStartOffset = 0;
|
|
91
91
|
for (let i = 0; i < eventCount; i++) {
|
|
92
92
|
const eventString = eventStrings[i];
|
|
93
|
-
const splitPoint = eventString.lastIndexOf(
|
|
93
|
+
const splitPoint = eventString.lastIndexOf(':');
|
|
94
94
|
const id = eventString.substring(0, splitPoint);
|
|
95
95
|
const startTime = events.length > 0 ? events[events.length - 1].endTime : 0;
|
|
96
96
|
let eventType;
|
|
97
|
-
if (id ==
|
|
98
|
-
eventType =
|
|
97
|
+
if (id == 'pau') {
|
|
98
|
+
eventType = 'pause';
|
|
99
99
|
}
|
|
100
|
-
else if (id ==
|
|
101
|
-
eventType =
|
|
100
|
+
else if (id == '\npau') {
|
|
101
|
+
eventType = 'phrasePause';
|
|
102
102
|
phraseStartOffset = startTime;
|
|
103
103
|
}
|
|
104
104
|
else {
|
|
105
|
-
eventType =
|
|
105
|
+
eventType = 'phone';
|
|
106
106
|
}
|
|
107
107
|
const endTime = phraseStartOffset + parseFloat(eventString.substring(splitPoint + 1));
|
|
108
108
|
events.push({
|
|
@@ -117,212 +117,212 @@ function parseEventsFromTrace(eventTrace) {
|
|
|
117
117
|
export const voiceList = [
|
|
118
118
|
// Built-in voices
|
|
119
119
|
{
|
|
120
|
-
name:
|
|
121
|
-
languages: [
|
|
122
|
-
gender:
|
|
120
|
+
name: 'slt',
|
|
121
|
+
languages: ['en-US', 'en'],
|
|
122
|
+
gender: 'female'
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
|
-
name:
|
|
126
|
-
languages: [
|
|
127
|
-
gender:
|
|
125
|
+
name: 'kal16',
|
|
126
|
+
languages: ['en-US', 'en'],
|
|
127
|
+
gender: 'male'
|
|
128
128
|
},
|
|
129
129
|
{
|
|
130
|
-
name:
|
|
131
|
-
languages: [
|
|
132
|
-
gender:
|
|
130
|
+
name: 'rms',
|
|
131
|
+
languages: ['en-US', 'en'],
|
|
132
|
+
gender: 'male'
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
|
-
name:
|
|
136
|
-
languages: [
|
|
137
|
-
gender:
|
|
135
|
+
name: 'awb',
|
|
136
|
+
languages: ['en-GB-SCOTLAND', 'en-GB', 'en'],
|
|
137
|
+
gender: 'male'
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
|
-
name:
|
|
141
|
-
languages: [
|
|
142
|
-
gender:
|
|
140
|
+
name: 'kal',
|
|
141
|
+
languages: ['en-US', 'en'],
|
|
142
|
+
gender: 'male'
|
|
143
143
|
},
|
|
144
144
|
// Voices loaded from packages
|
|
145
145
|
// US English voices
|
|
146
146
|
{
|
|
147
|
-
name:
|
|
148
|
-
languages: [
|
|
149
|
-
gender:
|
|
150
|
-
packageName:
|
|
147
|
+
name: 'cmu_us_aew',
|
|
148
|
+
languages: ['en-US', 'en'],
|
|
149
|
+
gender: 'male',
|
|
150
|
+
packageName: 'flite-cmu_us_aew'
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
|
-
name:
|
|
154
|
-
languages: [
|
|
155
|
-
gender:
|
|
156
|
-
packageName:
|
|
153
|
+
name: 'cmu_us_ahw',
|
|
154
|
+
languages: ['en-US', 'en'],
|
|
155
|
+
gender: 'male',
|
|
156
|
+
packageName: 'flite-cmu_us_ahw'
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
|
-
name:
|
|
160
|
-
languages: [
|
|
161
|
-
gender:
|
|
162
|
-
packageName:
|
|
159
|
+
name: 'cmu_us_aup',
|
|
160
|
+
languages: ['en-US', 'en'],
|
|
161
|
+
gender: 'male',
|
|
162
|
+
packageName: 'flite-cmu_us_aup'
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
|
-
name:
|
|
166
|
-
languages: [
|
|
167
|
-
gender:
|
|
168
|
-
packageName:
|
|
165
|
+
name: 'cmu_us_awb',
|
|
166
|
+
languages: ['en-US', 'en'],
|
|
167
|
+
gender: 'male',
|
|
168
|
+
packageName: 'flite-cmu_us_awb'
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
|
-
name:
|
|
172
|
-
languages: [
|
|
173
|
-
gender:
|
|
174
|
-
packageName:
|
|
171
|
+
name: 'cmu_us_axb',
|
|
172
|
+
languages: ['en-US', 'en'],
|
|
173
|
+
gender: 'female',
|
|
174
|
+
packageName: 'flite-cmu_us_axb'
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
|
-
name:
|
|
178
|
-
languages: [
|
|
179
|
-
gender:
|
|
180
|
-
packageName:
|
|
177
|
+
name: 'cmu_us_bdl',
|
|
178
|
+
languages: ['en-US', 'en'],
|
|
179
|
+
gender: 'male',
|
|
180
|
+
packageName: 'flite-cmu_us_bdl'
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
|
-
name:
|
|
184
|
-
languages: [
|
|
185
|
-
gender:
|
|
186
|
-
packageName:
|
|
183
|
+
name: 'cmu_us_clb',
|
|
184
|
+
languages: ['en-US', 'en'],
|
|
185
|
+
gender: 'female',
|
|
186
|
+
packageName: 'flite-cmu_us_clb'
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
|
-
name:
|
|
190
|
-
languages: [
|
|
191
|
-
gender:
|
|
192
|
-
packageName:
|
|
189
|
+
name: 'cmu_us_eey',
|
|
190
|
+
languages: ['en-US', 'en'],
|
|
191
|
+
gender: 'female',
|
|
192
|
+
packageName: 'flite-cmu_us_eey'
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
|
-
name:
|
|
196
|
-
languages: [
|
|
197
|
-
gender:
|
|
198
|
-
packageName:
|
|
195
|
+
name: 'cmu_us_fem',
|
|
196
|
+
languages: ['en-US', 'en'],
|
|
197
|
+
gender: 'male',
|
|
198
|
+
packageName: 'flite-cmu_us_fem'
|
|
199
199
|
},
|
|
200
200
|
{
|
|
201
|
-
name:
|
|
202
|
-
languages: [
|
|
203
|
-
gender:
|
|
204
|
-
packageName:
|
|
201
|
+
name: 'cmu_us_gka',
|
|
202
|
+
languages: ['en-US', 'en'],
|
|
203
|
+
gender: 'male',
|
|
204
|
+
packageName: 'flite-cmu_us_gka'
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
|
-
name:
|
|
208
|
-
languages: [
|
|
209
|
-
gender:
|
|
210
|
-
packageName:
|
|
207
|
+
name: 'cmu_us_jmk',
|
|
208
|
+
languages: ['en-US', 'en'],
|
|
209
|
+
gender: 'male',
|
|
210
|
+
packageName: 'flite-cmu_us_jmk'
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
|
-
name:
|
|
214
|
-
languages: [
|
|
215
|
-
gender:
|
|
216
|
-
packageName:
|
|
213
|
+
name: 'cmu_us_ksp',
|
|
214
|
+
languages: ['en-US', 'en'],
|
|
215
|
+
gender: 'male',
|
|
216
|
+
packageName: 'flite-cmu_us_ksp'
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
|
-
name:
|
|
220
|
-
languages: [
|
|
221
|
-
gender:
|
|
222
|
-
packageName:
|
|
219
|
+
name: 'cmu_us_ljm',
|
|
220
|
+
languages: ['en-US', 'en'],
|
|
221
|
+
gender: 'female',
|
|
222
|
+
packageName: 'flite-cmu_us_ljm'
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
|
-
name:
|
|
226
|
-
languages: [
|
|
227
|
-
gender:
|
|
228
|
-
packageName:
|
|
225
|
+
name: 'cmu_us_lnh',
|
|
226
|
+
languages: ['en-US', 'en'],
|
|
227
|
+
gender: 'female',
|
|
228
|
+
packageName: 'flite-cmu_us_lnh'
|
|
229
229
|
},
|
|
230
230
|
{
|
|
231
|
-
name:
|
|
232
|
-
languages: [
|
|
233
|
-
gender:
|
|
234
|
-
packageName:
|
|
231
|
+
name: 'cmu_us_rms',
|
|
232
|
+
languages: ['en-US', 'en'],
|
|
233
|
+
gender: 'male',
|
|
234
|
+
packageName: 'flite-cmu_us_rms'
|
|
235
235
|
},
|
|
236
236
|
{
|
|
237
|
-
name:
|
|
238
|
-
languages: [
|
|
239
|
-
gender:
|
|
240
|
-
packageName:
|
|
237
|
+
name: 'cmu_us_rxr',
|
|
238
|
+
languages: ['en-US', 'en'],
|
|
239
|
+
gender: 'male',
|
|
240
|
+
packageName: 'flite-cmu_us_rxr'
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
|
-
name:
|
|
244
|
-
languages: [
|
|
245
|
-
gender:
|
|
246
|
-
packageName:
|
|
243
|
+
name: 'cmu_us_slp',
|
|
244
|
+
languages: ['en-US', 'en'],
|
|
245
|
+
gender: 'female',
|
|
246
|
+
packageName: 'flite-cmu_us_slp'
|
|
247
247
|
},
|
|
248
248
|
{
|
|
249
|
-
name:
|
|
250
|
-
languages: [
|
|
251
|
-
gender:
|
|
252
|
-
packageName:
|
|
249
|
+
name: 'cmu_us_slt',
|
|
250
|
+
languages: ['en-US', 'en'],
|
|
251
|
+
gender: 'female',
|
|
252
|
+
packageName: 'flite-cmu_us_slt'
|
|
253
253
|
},
|
|
254
254
|
// Indic voices
|
|
255
255
|
{
|
|
256
|
-
name:
|
|
257
|
-
languages: [
|
|
258
|
-
gender:
|
|
259
|
-
packageName:
|
|
256
|
+
name: 'cmu_indic_ben_rm',
|
|
257
|
+
languages: ['be', 'bn'], // Bengali
|
|
258
|
+
gender: 'female',
|
|
259
|
+
packageName: 'flite-cmu_indic_ben_rm'
|
|
260
260
|
},
|
|
261
261
|
{
|
|
262
|
-
name:
|
|
263
|
-
languages: [
|
|
264
|
-
gender:
|
|
265
|
-
packageName:
|
|
262
|
+
name: 'cmu_indic_guj_ad',
|
|
263
|
+
languages: ['gu'], // Gujarati
|
|
264
|
+
gender: 'male',
|
|
265
|
+
packageName: 'flite-cmu_indic_guj_ad'
|
|
266
266
|
},
|
|
267
267
|
{
|
|
268
|
-
name:
|
|
269
|
-
languages: [
|
|
270
|
-
gender:
|
|
271
|
-
packageName:
|
|
268
|
+
name: 'cmu_indic_guj_dp',
|
|
269
|
+
languages: ['gu'], // Gujarati
|
|
270
|
+
gender: 'female',
|
|
271
|
+
packageName: 'flite-cmu_indic_guj_dp'
|
|
272
272
|
},
|
|
273
273
|
{
|
|
274
|
-
name:
|
|
275
|
-
languages: [
|
|
276
|
-
gender:
|
|
277
|
-
packageName:
|
|
274
|
+
name: 'cmu_indic_guj_kt',
|
|
275
|
+
languages: ['gu'], // Gujarati
|
|
276
|
+
gender: 'female',
|
|
277
|
+
packageName: 'flite-cmu_indic_guj_kt'
|
|
278
278
|
},
|
|
279
279
|
{
|
|
280
|
-
name:
|
|
281
|
-
languages: [
|
|
282
|
-
gender:
|
|
283
|
-
packageName:
|
|
280
|
+
name: 'cmu_indic_hin_ab',
|
|
281
|
+
languages: ['hi'], // Hindi
|
|
282
|
+
gender: 'female',
|
|
283
|
+
packageName: 'flite-cmu_indic_hin_ab'
|
|
284
284
|
},
|
|
285
285
|
{
|
|
286
|
-
name:
|
|
287
|
-
languages: [
|
|
288
|
-
gender:
|
|
289
|
-
packageName:
|
|
286
|
+
name: 'cmu_indic_kan_plv',
|
|
287
|
+
languages: ['ka'], // Kannada
|
|
288
|
+
gender: 'female',
|
|
289
|
+
packageName: 'flite-cmu_indic_kan_plv'
|
|
290
290
|
},
|
|
291
291
|
{
|
|
292
|
-
name:
|
|
293
|
-
languages: [
|
|
294
|
-
gender:
|
|
295
|
-
packageName:
|
|
292
|
+
name: 'cmu_indic_mar_aup',
|
|
293
|
+
languages: ['mr'], // Marathi
|
|
294
|
+
gender: 'male',
|
|
295
|
+
packageName: 'flite-cmu_indic_mar_aup'
|
|
296
296
|
},
|
|
297
297
|
{
|
|
298
|
-
name:
|
|
299
|
-
languages: [
|
|
300
|
-
gender:
|
|
301
|
-
packageName:
|
|
298
|
+
name: 'cmu_indic_mar_slp',
|
|
299
|
+
languages: ['mr'], // Marathi
|
|
300
|
+
gender: 'female',
|
|
301
|
+
packageName: 'flite-cmu_indic_mar_slp'
|
|
302
302
|
},
|
|
303
303
|
{
|
|
304
|
-
name:
|
|
305
|
-
languages: [
|
|
306
|
-
gender:
|
|
307
|
-
packageName:
|
|
304
|
+
name: 'cmu_indic_pan_amp',
|
|
305
|
+
languages: ['pa'], // Punjabi
|
|
306
|
+
gender: 'female',
|
|
307
|
+
packageName: 'flite-cmu_indic_pan_amp'
|
|
308
308
|
},
|
|
309
309
|
{
|
|
310
|
-
name:
|
|
311
|
-
languages: [
|
|
312
|
-
gender:
|
|
313
|
-
packageName:
|
|
310
|
+
name: 'cmu_indic_tel_kpn',
|
|
311
|
+
languages: ['te'], // Telugu
|
|
312
|
+
gender: 'female',
|
|
313
|
+
packageName: 'flite-cmu_indic_tel_kpn'
|
|
314
314
|
},
|
|
315
315
|
{
|
|
316
|
-
name:
|
|
317
|
-
languages: [
|
|
318
|
-
gender:
|
|
319
|
-
packageName:
|
|
316
|
+
name: 'cmu_indic_tel_sk',
|
|
317
|
+
languages: ['te'], // Telugu
|
|
318
|
+
gender: 'male',
|
|
319
|
+
packageName: 'flite-cmu_indic_tel_sk'
|
|
320
320
|
},
|
|
321
321
|
{
|
|
322
|
-
name:
|
|
323
|
-
languages: [
|
|
324
|
-
gender:
|
|
325
|
-
packageName:
|
|
322
|
+
name: 'cmu_indic_tel_ss',
|
|
323
|
+
languages: ['te'], // Telugu
|
|
324
|
+
gender: 'female',
|
|
325
|
+
packageName: 'flite-cmu_indic_tel_ss'
|
|
326
326
|
},
|
|
327
327
|
];
|
|
328
328
|
//# sourceMappingURL=FliteTTS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FliteTTS.js","sourceRoot":"","sources":["../../src/synthesis/FliteTTS.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"FliteTTS.js","sourceRoot":"","sources":["../../src/synthesis/FliteTTS.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
export declare function synthesize(text: string, apiKey: string, languageCode?: string, voice?: string, speakingRate?: number, pitchDeltaSemitones?: number,
|
|
2
|
+
export declare function synthesize(text: string, apiKey: string, languageCode?: string, voice?: string, speakingRate?: number, pitchDeltaSemitones?: number, volumeGainDecibels?: number, ssml?: boolean, audioEncoding?: AudioEncoding, sampleRate?: number): Promise<{
|
|
3
3
|
audioData: Buffer;
|
|
4
4
|
timepoints: timePoint[];
|
|
5
5
|
}>;
|
|
@@ -7,10 +7,10 @@ export declare function getVoiceList(apiKey: string): Promise<GoogleCloudVoice[]
|
|
|
7
7
|
export type GoogleCloudVoice = {
|
|
8
8
|
name: string;
|
|
9
9
|
languageCodes: string[];
|
|
10
|
-
ssmlGender:
|
|
10
|
+
ssmlGender: 'MALE' | 'FEMALE';
|
|
11
11
|
naturalSampleRateHertz: number;
|
|
12
12
|
};
|
|
13
|
-
export type AudioEncoding =
|
|
13
|
+
export type AudioEncoding = 'LINEAR16' | 'MP3' | 'MP3_64_KBPS' | 'OGG_OPUS' | 'MULAW' | 'ALAW';
|
|
14
14
|
export type timePoint = {
|
|
15
15
|
markName: string;
|
|
16
16
|
timeSeconds: number;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { request } from
|
|
2
|
-
import { Logger } from
|
|
3
|
-
import { logToStderr } from
|
|
1
|
+
import { request } from 'gaxios';
|
|
2
|
+
import { Logger } from '../utilities/Logger.js';
|
|
3
|
+
import { logToStderr } from '../utilities/Utilities.js';
|
|
4
4
|
const log = logToStderr;
|
|
5
|
-
export async function synthesize(text, apiKey, languageCode =
|
|
5
|
+
export async function synthesize(text, apiKey, languageCode = 'en-US', voice = 'en-US-Wavenet-C', speakingRate = 1.0, pitchDeltaSemitones = 0.0, volumeGainDecibels = 0.0, ssml = false, audioEncoding = 'MP3_64_KBPS', sampleRate = 24000) {
|
|
6
6
|
const logger = new Logger();
|
|
7
|
-
logger.start(
|
|
7
|
+
logger.start('Request synthesis from Google Cloud');
|
|
8
8
|
const requestBody = {
|
|
9
9
|
input: {
|
|
10
10
|
text: undefined,
|
|
@@ -18,10 +18,10 @@ export async function synthesize(text, apiKey, languageCode = "en-US", voice = "
|
|
|
18
18
|
audioEncoding,
|
|
19
19
|
speakingRate,
|
|
20
20
|
pitch: pitchDeltaSemitones,
|
|
21
|
-
volumeGainDb,
|
|
21
|
+
volumeGainDb: volumeGainDecibels,
|
|
22
22
|
sampleRateHertz: sampleRate
|
|
23
23
|
},
|
|
24
|
-
enableTimePointing: [
|
|
24
|
+
enableTimePointing: ['SSML_MARK']
|
|
25
25
|
};
|
|
26
26
|
if (ssml) {
|
|
27
27
|
requestBody.input.ssml = text;
|
|
@@ -30,24 +30,24 @@ export async function synthesize(text, apiKey, languageCode = "en-US", voice = "
|
|
|
30
30
|
requestBody.input.text = text;
|
|
31
31
|
}
|
|
32
32
|
const response = await request({
|
|
33
|
-
method:
|
|
33
|
+
method: 'POST',
|
|
34
34
|
url: `https://texttospeech.googleapis.com/v1beta1/text:synthesize`,
|
|
35
35
|
params: {
|
|
36
|
-
|
|
36
|
+
'key': apiKey
|
|
37
37
|
},
|
|
38
38
|
headers: {
|
|
39
|
-
|
|
39
|
+
'User-Agent': ''
|
|
40
40
|
},
|
|
41
41
|
data: requestBody,
|
|
42
|
-
responseType:
|
|
42
|
+
responseType: 'json'
|
|
43
43
|
});
|
|
44
|
-
logger.start(
|
|
44
|
+
logger.start('Parse result');
|
|
45
45
|
const result = parseResponseBody(response.data);
|
|
46
46
|
logger.end();
|
|
47
47
|
return result;
|
|
48
48
|
}
|
|
49
49
|
function parseResponseBody(responseBody) {
|
|
50
|
-
const audioData = Buffer.from(responseBody.audioContent,
|
|
50
|
+
const audioData = Buffer.from(responseBody.audioContent, 'base64');
|
|
51
51
|
const timepoints = responseBody.timepoints;
|
|
52
52
|
return { audioData, timepoints };
|
|
53
53
|
}
|
|
@@ -55,15 +55,15 @@ function parseResponseBody(responseBody) {
|
|
|
55
55
|
export async function getVoiceList(apiKey) {
|
|
56
56
|
const requestURL = `https://texttospeech.googleapis.com/v1beta1/voices`;
|
|
57
57
|
const response = await request({
|
|
58
|
-
method:
|
|
58
|
+
method: 'GET',
|
|
59
59
|
url: requestURL,
|
|
60
60
|
params: {
|
|
61
|
-
|
|
61
|
+
'key': apiKey
|
|
62
62
|
},
|
|
63
63
|
headers: {
|
|
64
|
-
|
|
64
|
+
'User-Agent': ''
|
|
65
65
|
},
|
|
66
|
-
responseType:
|
|
66
|
+
responseType: 'json'
|
|
67
67
|
});
|
|
68
68
|
const responseData = response.data;
|
|
69
69
|
const voices = responseData.voices;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GoogleCloudTTS.js","sourceRoot":"","sources":["../../src/synthesis/GoogleCloudTTS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,MAAM,GAAG,GAAG,WAAW,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,YAAY,GAAG,OAAO,EAAE,KAAK,GAAG,iBAAiB,EAAE,YAAY,GAAG,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"GoogleCloudTTS.js","sourceRoot":"","sources":["../../src/synthesis/GoogleCloudTTS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvD,MAAM,GAAG,GAAG,WAAW,CAAA;AAEvB,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,MAAc,EAAE,YAAY,GAAG,OAAO,EAAE,KAAK,GAAG,iBAAiB,EAAE,YAAY,GAAG,GAAG,EAAE,mBAAmB,GAAG,GAAG,EAAE,kBAAkB,GAAG,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,gBAA+B,aAAa,EAAE,UAAU,GAAG,KAAK;IACxQ,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;IAEnD,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE;YACN,IAAI,EAAE,SAAiC;YACvC,IAAI,EAAE,SAAiC;SACvC;QAED,KAAK,EAAE;YACN,YAAY;YACZ,IAAI,EAAE,KAAK;SACX;QAED,WAAW,EAAE;YACZ,aAAa;YACb,YAAY;YACZ,KAAK,EAAE,mBAAmB;YAC1B,YAAY,EAAE,kBAAkB;YAChC,eAAe,EAAE,UAAU;SAC3B;QAED,kBAAkB,EAAE,CAAC,WAAW,CAAC;KACjC,CAAA;IAED,IAAI,IAAI,EAAE,CAAC;QACV,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;IAC9B,CAAC;SAAM,CAAC;QACP,WAAW,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAM;QACnC,MAAM,EAAE,MAAM;QAEd,GAAG,EAAE,6DAA6D;QAElE,MAAM,EAAE;YACP,KAAK,EAAE,MAAM;SACb;QAED,OAAO,EAAE;YACR,YAAY,EAAE,EAAE;SAChB;QAED,IAAI,EAAE,WAAW;QAEjB,YAAY,EAAE,MAAM;KACpB,CAAC,CAAA;IAEF,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAE5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE/C,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,OAAO,MAAM,CAAA;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAiB;IAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAA;IAClE,MAAM,UAAU,GAAgB,YAAY,CAAC,UAAU,CAAA;IAEvD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAA;AACjC,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAc;IAChD,MAAM,UAAU,GAAG,oDAAoD,CAAA;IAEvE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAM;QACnC,MAAM,EAAE,KAAK;QAEb,GAAG,EAAE,UAAU;QAEf,MAAM,EAAE;YACP,KAAK,EAAE,MAAM;SACb;QAED,OAAO,EAAE;YACR,YAAY,EAAE,EAAE;SAChB;QAED,YAAY,EAAE,MAAM;KACpB,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAA;IAElC,MAAM,MAAM,GAAuB,YAAY,CAAC,MAAM,CAAA;IAEtD,OAAO,MAAM,CAAA;AACd,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { Timeline } from
|
|
2
|
+
import { Timeline } from '../utilities/Timeline.js';
|
|
3
3
|
export declare function synthesizeLongText(text: string, languageCode?: string, tld?: string, sentenceEndPause?: number, segmentEndPause?: number): Promise<{
|
|
4
4
|
rawAudio: {
|
|
5
5
|
audioChannels: Float32Array[];
|