echogarden 0.9.2 → 0.10.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.
Files changed (74) hide show
  1. package/README.md +3 -7
  2. package/data/schemas/options.json +57 -26
  3. package/dist/api/Alignment.d.ts +4 -4
  4. package/dist/api/Alignment.js +31 -31
  5. package/dist/api/Alignment.js.map +1 -1
  6. package/dist/api/Denoising.d.ts +9 -3
  7. package/dist/api/Denoising.js +9 -9
  8. package/dist/api/Denoising.js.map +1 -1
  9. package/dist/api/LanguageDetection.d.ts +13 -17
  10. package/dist/api/LanguageDetection.js +13 -17
  11. package/dist/api/LanguageDetection.js.map +1 -1
  12. package/dist/api/Recognition.d.ts +4 -4
  13. package/dist/api/Recognition.js +10 -12
  14. package/dist/api/Recognition.js.map +1 -1
  15. package/dist/api/Synthesis.d.ts +10 -6
  16. package/dist/api/Synthesis.js +61 -25
  17. package/dist/api/Synthesis.js.map +1 -1
  18. package/dist/api/Translation.d.ts +4 -4
  19. package/dist/api/Translation.js +11 -12
  20. package/dist/api/Translation.js.map +1 -1
  21. package/dist/api/Vad.d.ts +5 -8
  22. package/dist/api/Vad.js +12 -14
  23. package/dist/api/Vad.js.map +1 -1
  24. package/dist/audio/AudioPlayer.d.ts +1 -1
  25. package/dist/audio/AudioPlayer.js +12 -14
  26. package/dist/audio/AudioPlayer.js.map +1 -1
  27. package/dist/audio/AudioUtilities.d.ts +2 -0
  28. package/dist/audio/AudioUtilities.js +28 -0
  29. package/dist/audio/AudioUtilities.js.map +1 -1
  30. package/dist/audio/SoxPath.js +4 -0
  31. package/dist/audio/SoxPath.js.map +1 -1
  32. package/dist/cli/CLI.js +84 -120
  33. package/dist/cli/CLI.js.map +1 -1
  34. package/dist/codecs/FFMpegTranscoder.d.ts +1 -0
  35. package/dist/codecs/FFMpegTranscoder.js +48 -2
  36. package/dist/codecs/FFMpegTranscoder.js.map +1 -1
  37. package/dist/denoising/RNNoise.js.map +1 -1
  38. package/dist/dsp/MFCC.js.map +1 -1
  39. package/dist/nlp/JapaneseSegmentation.js +3 -2
  40. package/dist/nlp/JapaneseSegmentation.js.map +1 -1
  41. package/dist/recognition/WhisperSTT.js +2 -2
  42. package/dist/recognition/WhisperSTT.js.map +1 -1
  43. package/dist/server/Client.d.ts +10 -8
  44. package/dist/server/Client.js +56 -59
  45. package/dist/server/Client.js.map +1 -1
  46. package/dist/server/Server.js +23 -12
  47. package/dist/server/Server.js.map +1 -1
  48. package/dist/server/Worker.d.ts +28 -11
  49. package/dist/server/Worker.js +44 -11
  50. package/dist/server/Worker.js.map +1 -1
  51. package/dist/speech-language-detection/SileroLanguageDetection.js +2 -2
  52. package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -1
  53. package/dist/synthesis/EspeakTTS.js +2 -3
  54. package/dist/synthesis/EspeakTTS.js.map +1 -1
  55. package/dist/synthesis/GoogleTranslateTTS.js.map +1 -1
  56. package/dist/synthesis/MicrosoftEdgeTTS.js +1 -1
  57. package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -1
  58. package/dist/synthesis/VitsTTS.js.map +1 -1
  59. package/dist/utilities/Logger.d.ts +2 -2
  60. package/dist/utilities/Logger.js +7 -9
  61. package/dist/utilities/Logger.js.map +1 -1
  62. package/dist/utilities/ObjectUtilities.js +4 -1
  63. package/dist/utilities/ObjectUtilities.js.map +1 -1
  64. package/dist/utilities/PackageManager.js +3 -1
  65. package/dist/utilities/PackageManager.js.map +1 -1
  66. package/dist/utilities/Timeline.js.map +1 -1
  67. package/dist/utilities/Utilities.d.ts +1 -0
  68. package/dist/utilities/Utilities.js +6 -0
  69. package/dist/utilities/Utilities.js.map +1 -1
  70. package/docs/API.md +188 -0
  71. package/docs/Options.md +30 -23
  72. package/docs/Server.md +110 -0
  73. package/docs/Tasklist.md +4 -8
  74. package/package.json +7 -7
@@ -1,29 +1,25 @@
1
1
  import { extendDeep } from "../utilities/ObjectUtilities.js";
2
- import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
3
2
  import { logToStderr } from "../utilities/Utilities.js";
4
- import { downmixToMonoAndNormalize, trimAudioEnd } from "../audio/AudioUtilities.js";
3
+ import { ensureRawAudio, normalizeAudioLevel, trimAudioEnd } from "../audio/AudioUtilities.js";
5
4
  import { Logger } from "../utilities/Logger.js";
6
- import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
7
5
  import * as API from "./API.js";
6
+ import { addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from "../utilities/Timeline.js";
8
7
  import { whisperOptionsDefaults } from "../recognition/WhisperSTT.js";
9
8
  import { formatLanguageCodeWithName, getShortLanguageCode, normalizeLanguageCode } from "../utilities/Locale.js";
10
9
  import { loadPackage } from "../utilities/PackageManager.js";
11
10
  import chalk from "chalk";
12
11
  import { defaultSubtitlesConfig } from "../subtitles/Subtitles.js";
13
12
  const log = logToStderr;
14
- export async function recognizeFile(filename, options) {
15
- const rawAudio = await FFMpegTranscoder.decodeToChannels(filename);
16
- return recognize(rawAudio, options);
17
- }
18
- export async function recognize(inputRawAudio, options) {
13
+ export async function recognize(input, options) {
19
14
  const logger = new Logger();
20
15
  const startTimestamp = logger.getTimestamp();
21
16
  logger.start("Prepare for recognition");
17
+ const inputRawAudio = await ensureRawAudio(input);
18
+ let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
19
+ sourceRawAudio = normalizeAudioLevel(sourceRawAudio);
20
+ sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
22
21
  options = extendDeep(defaultRecognitionOptions, options);
23
22
  const engine = options.engine;
24
- let sourceRawAudio = await resampleAudioSpeex(inputRawAudio, 16000);
25
- sourceRawAudio = downmixToMonoAndNormalize(sourceRawAudio);
26
- sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
27
23
  if (!options.language) { // && options.engine != "whisper") {
28
24
  logger.start("No language specified. Detecting speech language");
29
25
  const { detectedLanguage } = await API.detectSpeechLanguage(inputRawAudio, options.languageDetection || {});
@@ -134,9 +130,11 @@ export async function recognize(inputRawAudio, options) {
134
130
  const { wordTimeline } = await API.align(sourceRawAudio, transcript, alignmentOptions);
135
131
  timeline = wordTimeline;
136
132
  }
133
+ addWordTextOffsetsToTimeline(timeline, transcript);
134
+ const { segmentTimeline } = await wordTimelineToSegmentSentenceTimeline(timeline, transcript, language, 'single', 'preserve');
137
135
  logger.end();
138
136
  logger.logDuration('Total recognition time', startTimestamp, chalk.magentaBright);
139
- return { transcript, timeline, rawAudio: inputRawAudio, language };
137
+ return { transcript, timeline: segmentTimeline, wordTimeline: timeline, inputRawAudio, language };
140
138
  }
141
139
  export const defaultRecognitionOptions = {
142
140
  engine: "whisper",
@@ -1 +1 @@
1
- {"version":3,"file":"Recognition.js","sourceRoot":"","sources":["../../src/api/Recognition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Recognition.js","sourceRoot":"","sources":["../../src/api/Recognition.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
+ /// <reference types="node" resolution-mode="require"/>
1
2
  import { RawAudio } from "../audio/AudioUtilities.js";
2
3
  import { type RubberbandOptions } from "../dsp/Rubberband.js";
3
4
  import * as API from "./API.js";
4
5
  import { Timeline } from "../utilities/Timeline.js";
5
6
  import { EngineMetadata } from "./Common.js";
6
7
  import { SubtitlesConfig } from "../subtitles/Subtitles.js";
7
- export declare function synthesizeSegments(segments: string[], options: SynthesisOptions, onSegment?: SynthesisSegmentEvent, onSentence?: SynthesisSegmentEvent): Promise<SynthesizeSegmentsResult>;
8
- export interface SynthesizeSegmentsResult {
9
- synthesizedAudio: RawAudio;
8
+ export declare function synthesize(input: string | string[], options: SynthesisOptions, onSegment?: SynthesisSegmentEvent, onSentence?: SynthesisSegmentEvent): Promise<SynthesisResult>;
9
+ export interface SynthesisResult {
10
+ audio: RawAudio | Buffer;
10
11
  timeline: Timeline;
11
- segmentsAudio: RawAudio[];
12
- segmentsTimelines: Timeline[];
12
+ language: string;
13
13
  }
14
14
  export type SynthesisEngine = "vits" | "pico" | "flite" | "espeak" | "sam" | "sapi" | "msspeech" | "coqui-server" | "google-cloud" | "microsoft-azure" | "amazon-polly" | "elevenlabs" | "google-translate" | "microsoft-edge" | "streamlabs-polly";
15
15
  export type TimePitchShiftingMethod = "sonic" | "rubberband";
@@ -37,6 +37,10 @@ export interface SynthesisOptions {
37
37
  timePitchShiftingMethod?: TimePitchShiftingMethod;
38
38
  rubberband?: RubberbandOptions;
39
39
  };
40
+ outputAudioFormat?: {
41
+ codec?: "wav" | "mp3" | "opus" | "m4a" | "ogg" | "flac";
42
+ bitrate?: number;
43
+ };
40
44
  languageDetection?: API.TextLanguageDetectionOptions;
41
45
  subtitles?: SubtitlesConfig;
42
46
  vits?: {
@@ -117,7 +121,7 @@ export declare const defaultVoiceListRequestOptions: VoiceListRequestOptions;
117
121
  export interface SynthesisSegmentEventData {
118
122
  index: number;
119
123
  total: number;
120
- audio: RawAudio;
124
+ audio: RawAudio | Buffer;
121
125
  timeline: Timeline;
122
126
  transcript: string;
123
127
  language: string;
@@ -2,9 +2,9 @@ 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, convertHtmlToText, sha256AsHex, simplifyPunctuationCharacters, stringifyAndFormatJson, logToStderr, yieldToEventLoop } from "../utilities/Utilities.js";
5
- import { concatAudioSegments, downmixToMono, getAudioPeakDecibels, getEmptyRawAudio, normalizeAudioLevel, trimAudioEnd, trimAudioStart } from "../audio/AudioUtilities.js";
5
+ import { concatAudioSegments, downmixToMono, encodeWaveBuffer, getAudioPeakDecibels, getEmptyRawAudio, normalizeAudioLevel, trimAudioEnd, trimAudioStart } from "../audio/AudioUtilities.js";
6
6
  import { Logger } from "../utilities/Logger.js";
7
- import { isWordOrSymbolWord, splitToSentences } from "../nlp/Segmentation.js";
7
+ import { isWordOrSymbolWord, splitToParagraphs, splitToSentences } from "../nlp/Segmentation.js";
8
8
  import { loadLexiconsForLanguage } from "../nlp/Lexicon.js";
9
9
  import * as API from "./API.js";
10
10
  import { addTimeOffsetToTimeline, multiplyTimelineByFactor } from "../utilities/Timeline.js";
@@ -19,7 +19,22 @@ const log = logToStderr;
19
19
  /////////////////////////////////////////////////////////////////////////////////////////////
20
20
  // Synthesis
21
21
  /////////////////////////////////////////////////////////////////////////////////////////////
22
- export async function synthesizeSegments(segments, options, onSegment, onSentence) {
22
+ export async function synthesize(input, options, onSegment, onSentence) {
23
+ options = extendDeep(defaultSynthesisOptions, options);
24
+ let segments;
25
+ if (Array.isArray(input)) {
26
+ segments = input;
27
+ }
28
+ else if (options.ssml) {
29
+ segments = [input];
30
+ }
31
+ else {
32
+ const plainTextOptions = options.plainText;
33
+ segments = splitToParagraphs(input, plainTextOptions.paragraphBreaks, plainTextOptions.whitespace);
34
+ }
35
+ return synthesizeSegments(segments, options, onSegment, onSentence);
36
+ }
37
+ async function synthesizeSegments(segments, options, onSegment, onSentence) {
23
38
  const logger = new Logger();
24
39
  options = extendDeep(defaultSynthesisOptions, options);
25
40
  if (!options.language && !options.voice) {
@@ -54,7 +69,7 @@ export async function synthesizeSegments(segments, options, onSegment, onSentenc
54
69
  }
55
70
  logger.end();
56
71
  logger.logTitledMessage('Selected voice', `'${options.voice}' (${formatLanguageCodeWithName(bestMatchingVoice.languages[0], 2)})`);
57
- const segmentsAudio = [];
72
+ const segmentsRawAudio = [];
58
73
  const segmentsTimelines = [];
59
74
  const timeline = [];
60
75
  let peakDecibelsSoFar = -100;
@@ -81,7 +96,7 @@ export async function synthesizeSegments(segments, options, onSegment, onSentenc
81
96
  else {
82
97
  sentences = [segmentText];
83
98
  }
84
- const sentencesAudio = [];
99
+ const sentencesRawAudio = [];
85
100
  const sentencesTimelines = [];
86
101
  for (let sentenceIndex = 0; sentenceIndex < sentences.length; sentenceIndex++) {
87
102
  await yieldToEventLoop();
@@ -94,14 +109,14 @@ export async function synthesizeSegments(segments, options, onSegment, onSentenc
94
109
  const sentenceStartTime = timeOffset;
95
110
  let sentencetSynthesisOptions = { postProcessing: { normalizeAudio: false } };
96
111
  sentencetSynthesisOptions = extendDeep(options, sentencetSynthesisOptions);
97
- const { synthesizedAudio: sentenceAudio, timeline: sentenceTimeline } = await synthesizeSegment(sentenceText, sentencetSynthesisOptions);
112
+ const { synthesizedAudio: sentenceRawAudio, timeline: sentenceTimeline } = await synthesizeSegment(sentenceText, sentencetSynthesisOptions);
98
113
  const endPause = sentenceIndex == sentences.length - 1 ? options.segmentEndPause : options.sentenceEndPause;
99
- sentenceAudio.audioChannels[0] = trimAudioEnd(sentenceAudio.audioChannels[0], endPause * sentenceAudio.sampleRate, -40);
100
- sentencesAudio.push(sentenceAudio);
114
+ sentenceRawAudio.audioChannels[0] = trimAudioEnd(sentenceRawAudio.audioChannels[0], endPause * sentenceRawAudio.sampleRate, -40);
115
+ sentencesRawAudio.push(sentenceRawAudio);
101
116
  if (sentenceTimeline.length > 0) {
102
117
  sentencesTimelines.push(sentenceTimeline);
103
118
  }
104
- const sentenceAudioLength = sentenceAudio.audioChannels[0].length / sentenceAudio.sampleRate;
119
+ const sentenceAudioLength = sentenceRawAudio.audioChannels[0].length / sentenceRawAudio.sampleRate;
105
120
  timeOffset += sentenceAudioLength;
106
121
  const sentenceTimelineWithOffset = addTimeOffsetToTimeline(sentenceTimeline, sentenceStartTime);
107
122
  segmentEntry.timeline.push({
@@ -111,7 +126,8 @@ export async function synthesizeSegments(segments, options, onSegment, onSentenc
111
126
  endTime: timeOffset,
112
127
  timeline: sentenceTimelineWithOffset
113
128
  });
114
- peakDecibelsSoFar = Math.max(peakDecibelsSoFar, getAudioPeakDecibels(sentenceAudio.audioChannels));
129
+ peakDecibelsSoFar = Math.max(peakDecibelsSoFar, getAudioPeakDecibels(sentenceRawAudio.audioChannels));
130
+ const sentenceAudio = await convertToTargetCodecIfNeeded(sentenceRawAudio);
115
131
  if (onSentence) {
116
132
  await onSentence({
117
133
  index: sentenceIndex,
@@ -127,18 +143,19 @@ export async function synthesizeSegments(segments, options, onSegment, onSentenc
127
143
  segmentEntry.endTime = timeOffset;
128
144
  logger.end();
129
145
  logger.start(`Merge and postprocess sentences`);
130
- let segmentAudio;
131
- if (sentencesAudio.length > 0) {
132
- const joinedAudioBuffers = concatAudioSegments(sentencesAudio.map(part => part.audioChannels));
133
- segmentAudio = { audioChannels: joinedAudioBuffers, sampleRate: sentencesAudio[0].sampleRate };
146
+ let segmentRawAudio;
147
+ if (sentencesRawAudio.length > 0) {
148
+ const joinedAudioBuffers = concatAudioSegments(sentencesRawAudio.map(part => part.audioChannels));
149
+ segmentRawAudio = { audioChannels: joinedAudioBuffers, sampleRate: sentencesRawAudio[0].sampleRate };
134
150
  }
135
151
  else {
136
- segmentAudio = getEmptyRawAudio(1, 24000);
152
+ segmentRawAudio = getEmptyRawAudio(1, 24000);
137
153
  }
138
- segmentsAudio.push(segmentAudio);
154
+ segmentsRawAudio.push(segmentRawAudio);
139
155
  timeline.push(segmentEntry);
140
156
  const segmentTimelineWithoutOffset = addTimeOffsetToTimeline(segmentEntry.timeline, -segmentStartTime);
141
157
  segmentsTimelines.push(segmentTimelineWithoutOffset);
158
+ const segmentAudio = await convertToTargetCodecIfNeeded(segmentRawAudio);
142
159
  logger.end();
143
160
  if (onSegment) {
144
161
  await onSegment({
@@ -153,23 +170,41 @@ export async function synthesizeSegments(segments, options, onSegment, onSentenc
153
170
  }
154
171
  }
155
172
  logger.start(`\nMerge and postprocess segments`);
156
- let resultAudio;
157
- if (segmentsAudio.length > 0) {
158
- const joinedAudioBuffers = concatAudioSegments(segmentsAudio.map(part => part.audioChannels));
159
- resultAudio = { audioChannels: joinedAudioBuffers, sampleRate: segmentsAudio[0].sampleRate };
173
+ let resultRawAudio;
174
+ if (segmentsRawAudio.length > 0) {
175
+ const joinedAudioBuffers = concatAudioSegments(segmentsRawAudio.map(part => part.audioChannels));
176
+ resultRawAudio = { audioChannels: joinedAudioBuffers, sampleRate: segmentsRawAudio[0].sampleRate };
160
177
  if (options.postProcessing.normalizeAudio) {
161
- resultAudio = normalizeAudioLevel(resultAudio, options.postProcessing.targetPeakDb, options.postProcessing.maxIncreaseDb);
178
+ resultRawAudio = normalizeAudioLevel(resultRawAudio, options.postProcessing.targetPeakDb, options.postProcessing.maxIncreaseDb);
162
179
  }
163
180
  }
164
181
  else {
165
- resultAudio = getEmptyRawAudio(1, 24000);
182
+ resultRawAudio = getEmptyRawAudio(1, 24000);
183
+ }
184
+ async function convertToTargetCodecIfNeeded(rawAudio) {
185
+ const targetCodec = options.outputAudioFormat?.codec;
186
+ let output;
187
+ if (targetCodec) {
188
+ logger.start(`Convert to ${targetCodec} codec`);
189
+ if (targetCodec == "wav") {
190
+ output = encodeWaveBuffer(rawAudio);
191
+ }
192
+ else {
193
+ const ffmpegOptions = FFMpegTranscoder.getDefaultFFMpegOptionsForSpeech(targetCodec, options.outputAudioFormat?.bitrate);
194
+ output = await FFMpegTranscoder.encodeFromChannels(rawAudio, ffmpegOptions);
195
+ }
196
+ }
197
+ else {
198
+ output = rawAudio;
199
+ }
200
+ return output;
166
201
  }
202
+ const resultAudio = await convertToTargetCodecIfNeeded(resultRawAudio);
167
203
  logger.end();
168
204
  return {
169
- synthesizedAudio: resultAudio,
205
+ audio: resultAudio,
170
206
  timeline,
171
- segmentsAudio,
172
- segmentsTimelines,
207
+ language: options.language
173
208
  };
174
209
  }
175
210
  async function synthesizeSegment(text, options) {
@@ -641,6 +676,7 @@ export const defaultSynthesisOptions = {
641
676
  timePitchShiftingMethod: "sonic",
642
677
  rubberband: {}
643
678
  },
679
+ outputAudioFormat: undefined,
644
680
  languageDetection: undefined,
645
681
  subtitles: defaultSubtitlesConfig,
646
682
  vits: {
@@ -1 +1 @@
1
- {"version":3,"file":"Synthesis.js","sourceRoot":"","sources":["../../src/api/Synthesis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Synthesis.js","sourceRoot":"","sources":["../../src/api/Synthesis.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
2
  import { Timeline } from "../utilities/Timeline.js";
3
3
  import { type WhisperOptions } from "../recognition/WhisperSTT.js";
4
4
  import { EngineMetadata } from "./Common.js";
5
5
  import { SpeechLanguageDetectionOptions } from "./API.js";
6
6
  import { SubtitlesConfig } from "../subtitles/Subtitles.js";
7
- export declare function translateSpeechFile(filename: string, options: SpeechTranslationOptions): Promise<SpeechTranslationResult>;
8
- export declare function translateSpeech(inputRawAudio: RawAudio, options: SpeechTranslationOptions): Promise<SpeechTranslationResult>;
7
+ export declare function translateSpeech(input: AudioSourceParam, options: SpeechTranslationOptions): Promise<SpeechTranslationResult>;
9
8
  export interface SpeechTranslationResult {
10
9
  transcript: string;
11
10
  timeline: Timeline;
12
- rawAudio: RawAudio;
11
+ wordTimeline: Timeline;
13
12
  sourceLanguage: string;
14
13
  targetLanguage: string;
14
+ inputRawAudio: RawAudio;
15
15
  }
16
16
  export type SpeechTranslationEngine = "whisper";
17
17
  export interface SpeechTranslationOptions {
@@ -1,9 +1,8 @@
1
1
  import { extendDeep } from "../utilities/ObjectUtilities.js";
2
- import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
3
2
  import { logToStderr } from "../utilities/Utilities.js";
4
- import { downmixToMonoAndNormalize, trimAudioEnd } from "../audio/AudioUtilities.js";
3
+ import { ensureRawAudio, normalizeAudioLevel, trimAudioEnd } from "../audio/AudioUtilities.js";
5
4
  import { Logger } from "../utilities/Logger.js";
6
- import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
5
+ import { addWordTextOffsetsToTimeline, wordTimelineToSegmentSentenceTimeline } from "../utilities/Timeline.js";
7
6
  import { whisperOptionsDefaults } from "../recognition/WhisperSTT.js";
8
7
  import { formatLanguageCodeWithName, getShortLanguageCode, normalizeLanguageCode } from "../utilities/Locale.js";
9
8
  import { detectSpeechLanguage } from "./API.js";
@@ -13,13 +12,14 @@ const log = logToStderr;
13
12
  /////////////////////////////////////////////////////////////////////////////////////////////
14
13
  // Speech translation
15
14
  /////////////////////////////////////////////////////////////////////////////////////////////
16
- export async function translateSpeechFile(filename, options) {
17
- const rawAudio = await FFMpegTranscoder.decodeToChannels(filename);
18
- return translateSpeech(rawAudio, options);
19
- }
20
- export async function translateSpeech(inputRawAudio, options) {
15
+ export async function translateSpeech(input, options) {
21
16
  const logger = new Logger();
22
17
  const startTimestamp = logger.getTimestamp();
18
+ logger.start("Prepare for speech translation");
19
+ const inputRawAudio = await ensureRawAudio(input);
20
+ let sourceRawAudio = await ensureRawAudio(inputRawAudio, 16000, 1);
21
+ sourceRawAudio = normalizeAudioLevel(sourceRawAudio);
22
+ sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
23
23
  options = extendDeep(defaultSpeechTranslationOptions, options);
24
24
  if (!options.sourceLanguage) {
25
25
  logger.start("No language specified. Detecting speech language");
@@ -34,9 +34,6 @@ export async function translateSpeech(inputRawAudio, options) {
34
34
  const targetLanguage = options.targetLanguage;
35
35
  let transcript;
36
36
  let timeline;
37
- let sourceRawAudio = await resampleAudioSpeex(inputRawAudio, 16000);
38
- sourceRawAudio = downmixToMonoAndNormalize(sourceRawAudio);
39
- sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
40
37
  logger.start(`Load ${engine} module`);
41
38
  switch (engine) {
42
39
  case "whisper": {
@@ -62,10 +59,12 @@ export async function translateSpeech(inputRawAudio, options) {
62
59
  throw new Error(`Engine '${options.engine}' is not supported`);
63
60
  }
64
61
  }
62
+ addWordTextOffsetsToTimeline(timeline, transcript);
63
+ const { segmentTimeline } = await wordTimelineToSegmentSentenceTimeline(timeline, transcript, targetLanguage, 'single', 'preserve');
65
64
  logger.end();
66
65
  logger.log('');
67
66
  logger.logDuration(`Total speech translation time`, startTimestamp, chalk.magentaBright);
68
- return { transcript, timeline, rawAudio: inputRawAudio, sourceLanguage, targetLanguage };
67
+ return { transcript, timeline: segmentTimeline, wordTimeline: timeline, sourceLanguage, targetLanguage, inputRawAudio };
69
68
  }
70
69
  export const defaultSpeechTranslationOptions = {
71
70
  engine: "whisper",
@@ -1 +1 @@
1
- {"version":3,"file":"Translation.js","sourceRoot":"","sources":["../../src/api/Translation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Translation.js","sourceRoot":"","sources":["../../src/api/Translation.ts"],"names":[],"mappings":"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"}
package/dist/api/Vad.d.ts CHANGED
@@ -1,14 +1,11 @@
1
- import { RawAudio } from "../audio/AudioUtilities.js";
1
+ import { AudioSourceParam, RawAudio } from "../audio/AudioUtilities.js";
2
2
  import { Timeline } from "../utilities/Timeline.js";
3
3
  import { EngineMetadata } from "./Common.js";
4
- export declare function detectFileVoiceActivity(filename: string, options: VADOptions): Promise<{
4
+ export declare function detectVoiceActivity(input: AudioSourceParam, options: VADOptions): Promise<VADResult>;
5
+ export interface VADResult {
5
6
  timeline: Timeline;
6
- rawAudio: RawAudio;
7
- }>;
8
- export declare function detectVoiceActivity(rawAudio: RawAudio, options: VADOptions): Promise<{
9
- timeline: Timeline;
10
- rawAudio: RawAudio;
11
- }>;
7
+ inputRawAudio: RawAudio;
8
+ }
12
9
  export type VADEngine = "webrtc" | "silero" | "rnnoise";
13
10
  export interface VADOptions {
14
11
  engine?: VADEngine;