echogarden 1.7.0 → 1.8.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.
- package/data/schemas/options.json +22 -10
- package/dist/api/Alignment.js +2 -2
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Denoising.js +5 -4
- package/dist/api/Denoising.js.map +1 -1
- package/dist/api/Recognition.js +2 -2
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/SourceSeparation.d.ts +2 -6
- package/dist/api/SourceSeparation.js +8 -9
- package/dist/api/SourceSeparation.js.map +1 -1
- package/dist/api/SpeechLanguageDetection.js +2 -2
- package/dist/api/SpeechLanguageDetection.js.map +1 -1
- package/dist/api/SpeechTranslation.js +2 -2
- package/dist/api/SpeechTranslation.js.map +1 -1
- package/dist/api/Synthesis.js +5 -5
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/TranslationAlignment.js +2 -2
- package/dist/api/TranslationAlignment.js.map +1 -1
- package/dist/audio/AudioUtilities.d.ts +5 -3
- package/dist/audio/AudioUtilities.js +39 -25
- package/dist/audio/AudioUtilities.js.map +1 -1
- package/dist/dsp/FFT.d.ts +2 -1
- package/dist/dsp/FFT.js +37 -18
- package/dist/dsp/FFT.js.map +1 -1
- package/dist/nlp/IPA.d.ts +3 -3
- package/dist/recognition/WhisperSTT.d.ts +5 -0
- package/dist/recognition/WhisperSTT.js +47 -7
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/source-separation/MDXNetSourceSeparation.d.ts +8 -3
- package/dist/source-separation/MDXNetSourceSeparation.js +35 -13
- package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -1
- package/dist/utilities/PackageManager.js +3 -6
- package/dist/utilities/PackageManager.js.map +1 -1
- package/dist/utilities/WasmMemoryManager.d.ts +9 -1
- package/dist/utilities/WasmMemoryManager.js +24 -3
- package/dist/utilities/WasmMemoryManager.js.map +1 -1
- package/docs/Options.md +9 -9
- package/package.json +6 -5
- package/src/alignment/SpeechAlignment.ts +1 -1
- package/src/api/Alignment.ts +2 -2
- package/src/api/Denoising.ts +5 -4
- package/src/api/Recognition.ts +3 -3
- package/src/api/SourceSeparation.ts +12 -16
- package/src/api/SpeechLanguageDetection.ts +2 -2
- package/src/api/SpeechTranslation.ts +2 -2
- package/src/api/Synthesis.ts +5 -5
- package/src/api/TranslationAlignment.ts +2 -2
- package/src/audio/AudioUtilities.ts +53 -33
- package/src/dsp/FFT.ts +45 -19
- package/src/recognition/WhisperSTT.ts +66 -8
- package/src/source-separation/MDXNetSourceSeparation.ts +44 -12
- package/src/typings/Fillers.d.ts +2 -0
- package/src/utilities/PackageManager.ts +3 -7
- package/src/utilities/WasmMemoryManager.ts +38 -4
|
@@ -1043,16 +1043,7 @@
|
|
|
1043
1043
|
"$ref": "#/definitions/SourceSeparationEngine"
|
|
1044
1044
|
},
|
|
1045
1045
|
"mdxNet": {
|
|
1046
|
-
"
|
|
1047
|
-
"properties": {
|
|
1048
|
-
"model": {
|
|
1049
|
-
"$ref": "#/definitions/MDXNetModelName"
|
|
1050
|
-
},
|
|
1051
|
-
"provider": {
|
|
1052
|
-
"$ref": "#/definitions/OnnxExecutionProvider"
|
|
1053
|
-
}
|
|
1054
|
-
},
|
|
1055
|
-
"additionalProperties": false
|
|
1046
|
+
"$ref": "#/definitions/MDXNetOptions"
|
|
1056
1047
|
}
|
|
1057
1048
|
},
|
|
1058
1049
|
"additionalProperties": false
|
|
@@ -1061,6 +1052,18 @@
|
|
|
1061
1052
|
"type": "string",
|
|
1062
1053
|
"const": "mdx-net"
|
|
1063
1054
|
},
|
|
1055
|
+
"MDXNetOptions": {
|
|
1056
|
+
"type": "object",
|
|
1057
|
+
"properties": {
|
|
1058
|
+
"model": {
|
|
1059
|
+
"$ref": "#/definitions/MDXNetModelName"
|
|
1060
|
+
},
|
|
1061
|
+
"provider": {
|
|
1062
|
+
"$ref": "#/definitions/OnnxExecutionProvider"
|
|
1063
|
+
}
|
|
1064
|
+
},
|
|
1065
|
+
"additionalProperties": false
|
|
1066
|
+
},
|
|
1064
1067
|
"MDXNetModelName": {
|
|
1065
1068
|
"type": "string",
|
|
1066
1069
|
"enum": [
|
|
@@ -1112,6 +1115,9 @@
|
|
|
1112
1115
|
"includeEndTokenInCandidates": {
|
|
1113
1116
|
"type": "boolean"
|
|
1114
1117
|
},
|
|
1118
|
+
"useOptimizedAlignmentHeads": {
|
|
1119
|
+
"type": "boolean"
|
|
1120
|
+
},
|
|
1115
1121
|
"encoderProvider": {
|
|
1116
1122
|
"$ref": "#/definitions/OnnxExecutionProvider"
|
|
1117
1123
|
},
|
|
@@ -1178,6 +1184,12 @@
|
|
|
1178
1184
|
"endTokenThreshold": {
|
|
1179
1185
|
"type": "number"
|
|
1180
1186
|
},
|
|
1187
|
+
"maxTokensPerPart": {
|
|
1188
|
+
"type": "number"
|
|
1189
|
+
},
|
|
1190
|
+
"useOptimizedAlignmentHeads": {
|
|
1191
|
+
"type": "boolean"
|
|
1192
|
+
},
|
|
1181
1193
|
"encoderProvider": {
|
|
1182
1194
|
"$ref": "#/definitions/OnnxExecutionProvider"
|
|
1183
1195
|
},
|
package/dist/api/Alignment.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extendDeep } from '../utilities/ObjectUtilities.js';
|
|
2
2
|
import { logToStderr } from '../utilities/Utilities.js';
|
|
3
|
-
import { ensureRawAudio, getRawAudioDuration,
|
|
3
|
+
import { ensureRawAudio, getRawAudioDuration, normalizeAudioLevelInPlace, trimAudioEnd } from '../audio/AudioUtilities.js';
|
|
4
4
|
import { Logger } from '../utilities/Logger.js';
|
|
5
5
|
import * as API from './API.js';
|
|
6
6
|
import { addTimeOffsetToTimeline, addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from '../utilities/Timeline.js';
|
|
@@ -38,7 +38,7 @@ export async function align(input, transcript, options) {
|
|
|
38
38
|
logger.end();
|
|
39
39
|
}
|
|
40
40
|
logger.start('Normalize and trim audio');
|
|
41
|
-
|
|
41
|
+
normalizeAudioLevelInPlace(sourceRawAudio);
|
|
42
42
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0]);
|
|
43
43
|
logger.end();
|
|
44
44
|
let language;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alignment.js","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAA8B,cAAc,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"Alignment.js","sourceRoot":"","sources":["../../src/api/Alignment.ts"],"names":[],"mappings":"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"}
|
package/dist/api/Denoising.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { extendDeep } from '../utilities/ObjectUtilities.js';
|
|
2
|
-
import {
|
|
2
|
+
import { applyGainDecibelsInPlace, ensureRawAudio, getSamplePeakDecibels, mixAudio, normalizeAudioLevelInPlace } from '../audio/AudioUtilities.js';
|
|
3
3
|
import { Logger } from '../utilities/Logger.js';
|
|
4
4
|
import { logToStderr } from '../utilities/Utilities.js';
|
|
5
5
|
import { resampleAudioSpeex } from '../dsp/SpeexResampler.js';
|
|
@@ -38,13 +38,14 @@ export async function denoise(input, options) {
|
|
|
38
38
|
const maxGainIncreaseDecibels = options.postProcessing.maxGainIncrease;
|
|
39
39
|
const dryMixGainDecibels = options.postProcessing.dryMixGain;
|
|
40
40
|
const preMixPeakDecibels = getSamplePeakDecibels(denoisedAudio.audioChannels);
|
|
41
|
-
|
|
41
|
+
applyGainDecibelsInPlace(resampledRawAudio, dryMixGainDecibels);
|
|
42
|
+
denoisedAudio = mixAudio(denoisedAudio, resampledRawAudio);
|
|
42
43
|
const postMixPeakDecibels = getSamplePeakDecibels(denoisedAudio.audioChannels);
|
|
43
44
|
if (shouldNormalize) {
|
|
44
|
-
|
|
45
|
+
normalizeAudioLevelInPlace(denoisedAudio, targetPeakDecibels, maxGainIncreaseDecibels);
|
|
45
46
|
}
|
|
46
47
|
else {
|
|
47
|
-
|
|
48
|
+
applyGainDecibelsInPlace(denoisedAudio, preMixPeakDecibels - postMixPeakDecibels);
|
|
48
49
|
}
|
|
49
50
|
logger.end();
|
|
50
51
|
logger.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Denoising.js","sourceRoot":"","sources":["../../src/api/Denoising.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,OAAO,EAA8B,
|
|
1
|
+
{"version":3,"file":"Denoising.js","sourceRoot":"","sources":["../../src/api/Denoising.ts"],"names":[],"mappings":"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"}
|
package/dist/api/Recognition.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extendDeep } from '../utilities/ObjectUtilities.js';
|
|
2
2
|
import { logToStderr } from '../utilities/Utilities.js';
|
|
3
|
-
import { ensureRawAudio,
|
|
3
|
+
import { ensureRawAudio, normalizeAudioLevelInPlace, trimAudioEnd } from '../audio/AudioUtilities.js';
|
|
4
4
|
import { Logger } from '../utilities/Logger.js';
|
|
5
5
|
import * as API from './API.js';
|
|
6
6
|
import { addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from '../utilities/Timeline.js';
|
|
@@ -36,7 +36,7 @@ export async function recognize(input, options) {
|
|
|
36
36
|
logger.end();
|
|
37
37
|
}
|
|
38
38
|
logger.start('Normalize and trim audio');
|
|
39
|
-
|
|
39
|
+
normalizeAudioLevelInPlace(sourceRawAudio);
|
|
40
40
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0]);
|
|
41
41
|
const engine = options.engine;
|
|
42
42
|
if (options.language) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recognition.js","sourceRoot":"","sources":["../../src/api/Recognition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAA8B,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"Recognition.js","sourceRoot":"","sources":["../../src/api/Recognition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import { AudioSourceParam, RawAudio } from '../audio/AudioUtilities.js';
|
|
2
2
|
import { EngineMetadata } from './Common.js';
|
|
3
|
-
import {
|
|
4
|
-
import { MDXNetModelName } from '../source-separation/MDXNetSourceSeparation.js';
|
|
3
|
+
import { MDXNetOptions } from '../source-separation/MDXNetSourceSeparation.js';
|
|
5
4
|
export declare function isolate(input: AudioSourceParam, options: SourceSeparationOptions): Promise<SourceSeparationResult>;
|
|
6
5
|
export type SourceSeparationEngine = 'mdx-net';
|
|
7
6
|
export interface SourceSeparationOptions {
|
|
8
7
|
engine?: SourceSeparationEngine;
|
|
9
|
-
mdxNet?:
|
|
10
|
-
model?: MDXNetModelName;
|
|
11
|
-
provider?: OnnxExecutionProvider;
|
|
12
|
-
};
|
|
8
|
+
mdxNet?: MDXNetOptions;
|
|
13
9
|
}
|
|
14
10
|
export declare const defaultSourceSeparationOptions: SourceSeparationOptions;
|
|
15
11
|
export interface SourceSeparationResult {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ensureRawAudio, subtractAudio } from '../audio/AudioUtilities.js';
|
|
1
|
+
import { attenuateIfClippingInPlace, ensureRawAudio, subtractAudio } from '../audio/AudioUtilities.js';
|
|
2
2
|
import { Logger } from '../utilities/Logger.js';
|
|
3
3
|
import { extendDeep } from '../utilities/ObjectUtilities.js';
|
|
4
4
|
import { loadPackage } from '../utilities/PackageManager.js';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { readdir } from '../utilities/FileSystem.js';
|
|
7
7
|
import path from 'node:path';
|
|
8
|
-
import { getProfileForMDXNetModelName } from '../source-separation/MDXNetSourceSeparation.js';
|
|
8
|
+
import { defaultMDXNetOptions, getProfileForMDXNetModelName } from '../source-separation/MDXNetSourceSeparation.js';
|
|
9
9
|
export async function isolate(input, options) {
|
|
10
10
|
const logger = new Logger();
|
|
11
11
|
const startTimestamp = logger.getTimestamp();
|
|
@@ -18,7 +18,6 @@ export async function isolate(input, options) {
|
|
|
18
18
|
case 'mdx-net': {
|
|
19
19
|
const MDXNetSourceSeparation = await import('../source-separation/MDXNetSourceSeparation.js');
|
|
20
20
|
const mdxNetOptions = options.mdxNet;
|
|
21
|
-
const executionProviders = mdxNetOptions.provider ? [mdxNetOptions.provider] : MDXNetSourceSeparation.getDefaultMDXNetProviders();
|
|
22
21
|
const packageDir = await loadPackage(`mdxnet-${mdxNetOptions.model}`);
|
|
23
22
|
const modelFilename = (await readdir(packageDir)).filter(name => name.endsWith('onnx'))[0];
|
|
24
23
|
if (!modelFilename) {
|
|
@@ -29,7 +28,7 @@ export async function isolate(input, options) {
|
|
|
29
28
|
const inputRawAudio44100Stereo = await ensureRawAudio(inputRawAudio, 44100, 2);
|
|
30
29
|
logger.end();
|
|
31
30
|
const modelProfile = getProfileForMDXNetModelName(mdxNetOptions.model);
|
|
32
|
-
isolatedRawAudio = await MDXNetSourceSeparation.isolate(inputRawAudio44100Stereo, modelPath, modelProfile,
|
|
31
|
+
isolatedRawAudio = await MDXNetSourceSeparation.isolate(inputRawAudio44100Stereo, modelPath, modelProfile, mdxNetOptions);
|
|
33
32
|
logger.end();
|
|
34
33
|
await logger.startAsync(`Subtract from original waveform to extract background audio`);
|
|
35
34
|
backgroundRawAudio = subtractAudio(inputRawAudio44100Stereo, isolatedRawAudio);
|
|
@@ -39,6 +38,9 @@ export async function isolate(input, options) {
|
|
|
39
38
|
throw new Error(`Engine '${options.engine}' is not supported`);
|
|
40
39
|
}
|
|
41
40
|
}
|
|
41
|
+
await logger.startAsync(`Postprocess audio`);
|
|
42
|
+
attenuateIfClippingInPlace(isolatedRawAudio);
|
|
43
|
+
attenuateIfClippingInPlace(backgroundRawAudio);
|
|
42
44
|
logger.end();
|
|
43
45
|
logger.logDuration(`Total source separation time`, startTimestamp, chalk.magentaBright);
|
|
44
46
|
return {
|
|
@@ -49,16 +51,13 @@ export async function isolate(input, options) {
|
|
|
49
51
|
}
|
|
50
52
|
export const defaultSourceSeparationOptions = {
|
|
51
53
|
engine: 'mdx-net',
|
|
52
|
-
mdxNet:
|
|
53
|
-
model: 'UVR_MDXNET_1_9703',
|
|
54
|
-
provider: undefined,
|
|
55
|
-
}
|
|
54
|
+
mdxNet: defaultMDXNetOptions,
|
|
56
55
|
};
|
|
57
56
|
export const sourceSeparationEngines = [
|
|
58
57
|
{
|
|
59
58
|
id: 'mdx-net',
|
|
60
59
|
name: 'MDX-NET',
|
|
61
|
-
description: 'Deep learning source separation architecture by KUIELAB (Korea University).',
|
|
60
|
+
description: 'Deep learning audio source separation architecture by KUIELAB (Korea University).',
|
|
62
61
|
type: 'local'
|
|
63
62
|
},
|
|
64
63
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SourceSeparation.js","sourceRoot":"","sources":["../../src/api/SourceSeparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"SourceSeparation.js","sourceRoot":"","sources":["../../src/api/SourceSeparation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { deepClone, extendDeep } from '../utilities/ObjectUtilities.js';
|
|
2
|
-
import { ensureRawAudio, getRawAudioDuration,
|
|
2
|
+
import { ensureRawAudio, getRawAudioDuration, normalizeAudioLevelInPlace, sliceRawAudioByTime, trimAudioEnd } from '../audio/AudioUtilities.js';
|
|
3
3
|
import { Logger } from '../utilities/Logger.js';
|
|
4
4
|
import * as API from './API.js';
|
|
5
5
|
import { logToStderr } from '../utilities/Utilities.js';
|
|
@@ -15,7 +15,7 @@ export async function detectSpeechLanguage(input, options) {
|
|
|
15
15
|
const inputRawAudio = await ensureRawAudio(input);
|
|
16
16
|
logger.start(`Resample audio to 16kHz mono`);
|
|
17
17
|
let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
|
|
18
|
-
|
|
18
|
+
normalizeAudioLevelInPlace(sourceRawAudio);
|
|
19
19
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0]);
|
|
20
20
|
if (options.crop) {
|
|
21
21
|
logger.start('Crop using voice activity detection');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeechLanguageDetection.js","sourceRoot":"","sources":["../../src/api/SpeechLanguageDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAEvE,OAAO,EAA8B,cAAc,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"SpeechLanguageDetection.js","sourceRoot":"","sources":["../../src/api/SpeechLanguageDetection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extendDeep } from '../utilities/ObjectUtilities.js';
|
|
2
2
|
import { logToStderr } from '../utilities/Utilities.js';
|
|
3
|
-
import { ensureRawAudio,
|
|
3
|
+
import { ensureRawAudio, normalizeAudioLevelInPlace, trimAudioEnd } from '../audio/AudioUtilities.js';
|
|
4
4
|
import { Logger } from '../utilities/Logger.js';
|
|
5
5
|
import { addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from '../utilities/Timeline.js';
|
|
6
6
|
import { formatLanguageCodeWithName, getShortLanguageCode, normalizeIdentifierToLanguageCode, parseLangIdentifier } from '../utilities/Locale.js';
|
|
@@ -39,7 +39,7 @@ export async function translateSpeech(input, options) {
|
|
|
39
39
|
logger.end();
|
|
40
40
|
}
|
|
41
41
|
logger.start('Normalize and trim audio');
|
|
42
|
-
|
|
42
|
+
normalizeAudioLevelInPlace(sourceRawAudio);
|
|
43
43
|
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0]);
|
|
44
44
|
if (options.sourceLanguage) {
|
|
45
45
|
const languageData = await parseLangIdentifier(options.sourceLanguage);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpeechTranslation.js","sourceRoot":"","sources":["../../src/api/SpeechTranslation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAA8B,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"SpeechTranslation.js","sourceRoot":"","sources":["../../src/api/SpeechTranslation.ts"],"names":[],"mappings":"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"}
|
package/dist/api/Synthesis.js
CHANGED
|
@@ -2,7 +2,7 @@ import path from 'node:path';
|
|
|
2
2
|
import { deepClone, extendDeep } from '../utilities/ObjectUtilities.js';
|
|
3
3
|
import * as FFMpegTranscoder from '../codecs/FFMpegTranscoder.js';
|
|
4
4
|
import { clip, sha256AsHex, stringifyAndFormatJson, logToStderr, yieldToEventLoop, runOperationWithRetries } from '../utilities/Utilities.js';
|
|
5
|
-
import {
|
|
5
|
+
import { concatAudioSegments, downmixToMono, encodeRawAudioToWave, getSamplePeakDecibels, getEmptyRawAudio, getRawAudioDuration, trimAudioEnd, trimAudioStart, attenuateIfClippingInPlace, normalizeAudioLevelInPlace } from '../audio/AudioUtilities.js';
|
|
6
6
|
import { Logger } from '../utilities/Logger.js';
|
|
7
7
|
import { isWordOrSymbolWord, splitToParagraphs, splitToSentences } from '../nlp/Segmentation.js';
|
|
8
8
|
import { loadLexiconsForLanguage } from '../nlp/Lexicon.js';
|
|
@@ -177,10 +177,10 @@ async function synthesizeSegments(segments, options, onSegment, onSentence) {
|
|
|
177
177
|
const joinedAudioBuffers = concatAudioSegments(segmentsRawAudio.map(part => part.audioChannels));
|
|
178
178
|
resultRawAudio = { audioChannels: joinedAudioBuffers, sampleRate: segmentsRawAudio[0].sampleRate };
|
|
179
179
|
if (options.postProcessing.normalizeAudio) {
|
|
180
|
-
|
|
180
|
+
normalizeAudioLevelInPlace(resultRawAudio, options.postProcessing.targetPeak, options.postProcessing.maxGainIncrease);
|
|
181
181
|
}
|
|
182
182
|
else {
|
|
183
|
-
|
|
183
|
+
attenuateIfClippingInPlace(resultRawAudio);
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
186
|
else {
|
|
@@ -585,10 +585,10 @@ async function synthesizeSegment(text, options) {
|
|
|
585
585
|
logger.start('Postprocess synthesized audio');
|
|
586
586
|
synthesizedAudio = downmixToMono(synthesizedAudio);
|
|
587
587
|
if (options.postProcessing.normalizeAudio) {
|
|
588
|
-
|
|
588
|
+
normalizeAudioLevelInPlace(synthesizedAudio, options.postProcessing.targetPeak, options.postProcessing.maxGainIncrease);
|
|
589
589
|
}
|
|
590
590
|
else {
|
|
591
|
-
|
|
591
|
+
attenuateIfClippingInPlace(synthesizedAudio);
|
|
592
592
|
}
|
|
593
593
|
const preTrimSampleCount = synthesizedAudio.audioChannels[0].length;
|
|
594
594
|
synthesizedAudio.audioChannels[0] = trimAudioStart(synthesizedAudio.audioChannels[0]);
|