echogarden 2.7.0 → 2.8.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/lexicons/heteronyms.en.json +6 -2
- package/data/lexicons/words.en.json +379 -19
- package/dist/alignment/SemanticTextAlignment.js +6 -7
- package/dist/alignment/SemanticTextAlignment.js.map +1 -1
- package/dist/api/Alignment.js +2 -2
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Recognition.js +2 -2
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/SpeechTranslation.js +2 -2
- package/dist/api/SpeechTranslation.js.map +1 -1
- package/dist/api/Synthesis.js +7 -7
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/TimelineTranslationAlignment.js +2 -2
- package/dist/api/TimelineTranslationAlignment.js.map +1 -1
- package/dist/api/TranslationAlignment.js +2 -2
- package/dist/api/TranslationAlignment.js.map +1 -1
- package/dist/audio/AudioPlayer.js +2 -2
- package/dist/audio/AudioPlayer.js.map +1 -1
- package/dist/audio/AudioUtilities.d.ts +1 -1
- package/dist/cli/CLI.js +4 -4
- package/dist/cli/CLI.js.map +1 -1
- package/dist/denoising/RNNoise.js +5 -5
- package/dist/denoising/RNNoise.js.map +1 -1
- package/dist/dsp/FFT.js +13 -19
- package/dist/dsp/FFT.js.map +1 -1
- package/dist/dsp/Rubberband.js +5 -5
- package/dist/dsp/Rubberband.js.map +1 -1
- package/dist/dsp/Sonic.js +6 -6
- package/dist/dsp/Sonic.js.map +1 -1
- package/dist/dsp/SpeexResampler.js +11 -11
- package/dist/dsp/SpeexResampler.js.map +1 -1
- package/dist/nlp/EspeakPhonemizer.js +1 -1
- package/dist/nlp/EspeakPhonemizer.js.map +1 -1
- package/dist/nlp/Segmentation.d.ts +13 -10
- package/dist/nlp/Segmentation.js +129 -106
- package/dist/nlp/Segmentation.js.map +1 -1
- package/dist/nlp/TextNormalizer.js +74 -42
- package/dist/nlp/TextNormalizer.js.map +1 -1
- package/dist/recognition/AmazonTranscribeSTT.js +2 -2
- package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
- package/dist/recognition/SileroSTT.js +2 -2
- package/dist/recognition/SileroSTT.js.map +1 -1
- package/dist/recognition/WhisperSTT.js +4 -16
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/subtitles/Subtitles.js +52 -7
- package/dist/subtitles/Subtitles.js.map +1 -1
- package/dist/synthesis/ElevenLabsTTS.js +11 -10
- package/dist/synthesis/ElevenLabsTTS.js.map +1 -1
- package/dist/synthesis/EspeakTTS.js +8 -8
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/KokoroTTS.js +21 -10
- package/dist/synthesis/KokoroTTS.js.map +1 -1
- package/dist/synthesis/SvoxPicoTTS.js +24 -23
- package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
- package/dist/text-translation/DeepLTextTranslation.js +4 -3
- package/dist/text-translation/DeepLTextTranslation.js.map +1 -1
- package/dist/text-translation/NLLBTextTranslation.js +7 -6
- package/dist/text-translation/NLLBTextTranslation.js.map +1 -1
- package/dist/utilities/StringUtilities.d.ts +1 -1
- package/dist/utilities/StringUtilities.js +5 -5
- package/dist/utilities/StringUtilities.js.map +1 -1
- package/dist/utilities/Timeline.d.ts +2 -3
- package/dist/utilities/Timeline.js +96 -147
- package/dist/utilities/Timeline.js.map +1 -1
- package/dist/utilities/WikipediaReader.js +3 -3
- package/dist/utilities/WikipediaReader.js.map +1 -1
- package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
- package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -1
- package/docs/Tasklist.md +1 -6
- package/package.json +13 -11
- package/src/alignment/SemanticTextAlignment.ts +6 -7
- package/src/api/Alignment.ts +2 -2
- package/src/api/Recognition.ts +2 -2
- package/src/api/SpeechTranslation.ts +2 -2
- package/src/api/Synthesis.ts +7 -7
- package/src/api/TimelineTranslationAlignment.ts +2 -2
- package/src/api/TranslationAlignment.ts +2 -2
- package/src/audio/AudioPlayer.ts +2 -2
- package/src/cli/CLI.ts +4 -4
- package/src/denoising/RNNoise.ts +5 -5
- package/src/dsp/FFT.ts +22 -19
- package/src/dsp/Rubberband.ts +5 -5
- package/src/dsp/Sonic.ts +6 -6
- package/src/dsp/SpeexResampler.ts +11 -11
- package/src/nlp/EspeakPhonemizer.ts +1 -1
- package/src/nlp/Segmentation.ts +146 -111
- package/src/nlp/TextNormalizer.ts +94 -52
- package/src/recognition/AmazonTranscribeSTT.ts +2 -2
- package/src/recognition/SileroSTT.ts +2 -2
- package/src/recognition/WhisperSTT.ts +4 -18
- package/src/subtitles/Subtitles.ts +69 -8
- package/src/synthesis/ElevenLabsTTS.ts +12 -11
- package/src/synthesis/EspeakTTS.ts +9 -8
- package/src/synthesis/KokoroTTS.ts +24 -12
- package/src/synthesis/SvoxPicoTTS.ts +26 -23
- package/src/text-translation/DeepLTextTranslation.ts +4 -3
- package/src/text-translation/NLLBTextTranslation.ts +8 -6
- package/src/typings/Fillers.d.ts +0 -16
- package/src/utilities/StringUtilities.ts +5 -6
- package/src/utilities/Timeline.ts +100 -170
- package/src/utilities/WikipediaReader.ts +3 -3
- package/src/voice-activity-detection/WebRtcVAD.ts +5 -4
- package/dist/nlp/CompromiseNLP.d.ts +0 -15
- package/dist/nlp/CompromiseNLP.js +0 -79
- package/dist/nlp/CompromiseNLP.js.map +0 -1
- package/dist/utilities/WasmMemoryManager.d.ts +0 -153
- package/dist/utilities/WasmMemoryManager.js +0 -440
- package/dist/utilities/WasmMemoryManager.js.map +0 -1
- package/src/nlp/CompromiseNLP.ts +0 -119
- package/src/utilities/WasmMemoryManager.ts +0 -566
|
@@ -1,32 +1,11 @@
|
|
|
1
1
|
import { getShortLanguageCode } from '../utilities/Locale.js';
|
|
2
2
|
import { substituteCharactersUsingLookup } from '../utilities/StringUtilities.js';
|
|
3
|
+
import { anyOf, buildRegExp, charRange, inputEnd, inputStart, repeated, zeroOrMore } from 'regexp-composer';
|
|
3
4
|
export function getNormalizedFragmentsForSpeech(words, nonWhitespaceWords, nonWhitespaceWordOriginalIndex, language) {
|
|
4
5
|
language = getShortLanguageCode(language);
|
|
5
6
|
if (language != 'en') {
|
|
6
7
|
return { normalizedFragments: [...nonWhitespaceWords], referenceFragments: [...nonWhitespaceWords] };
|
|
7
8
|
}
|
|
8
|
-
const numberPattern = /^[0-9][0-9\,\.]*$/;
|
|
9
|
-
const fourDigitYearPattern = /^[0-9][0-9][0-9][0-9]$/;
|
|
10
|
-
const fourDigitDecadePattern = /^[0-9][0-9][0-9]0s$/;
|
|
11
|
-
const fourDigitYearRangePattern = /^[0-9][0-9][0-9][0-9][\-\–][0-9][0-9][0-9][0-9]$/;
|
|
12
|
-
const wordsPrecedingAYear = [
|
|
13
|
-
'in', 'the', 'a', 'to', 'of', 'since', 'from', 'between', 'by', 'until', 'around', 'before', 'after',
|
|
14
|
-
'his', 'her', 'year', 'years', 'during', 'copyright', '©', 'early', 'mid', 'late',
|
|
15
|
-
'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december',
|
|
16
|
-
'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'
|
|
17
|
-
];
|
|
18
|
-
const wordsPrecedingADecade = [
|
|
19
|
-
'the', 'in', 'early', 'mid', 'late', 'a'
|
|
20
|
-
];
|
|
21
|
-
const symbolsPrecedingACurrency = [
|
|
22
|
-
'$', '€', '£', '¥'
|
|
23
|
-
];
|
|
24
|
-
const symbolsPrecedingACurrencyAsWords = [
|
|
25
|
-
'dollars', 'euros', 'pounds', 'yen'
|
|
26
|
-
];
|
|
27
|
-
const wordsSucceedingACurrency = [
|
|
28
|
-
'million', 'billion', 'trillion'
|
|
29
|
-
];
|
|
30
9
|
const normalizedFragments = [];
|
|
31
10
|
const referenceFragments = [];
|
|
32
11
|
for (let wordIndex = 0; wordIndex < nonWhitespaceWords.length; wordIndex++) {
|
|
@@ -36,10 +15,10 @@ export function getNormalizedFragmentsForSpeech(words, nonWhitespaceWords, nonWh
|
|
|
36
15
|
const nextNonWhitespaceWord = nextNonWhitespaceWords[0];
|
|
37
16
|
const originalWordIndex = nonWhitespaceWordOriginalIndex[wordIndex];
|
|
38
17
|
const isFollowedByWhitespace = words[originalWordIndex + 1]?.trim().length === 0;
|
|
39
|
-
if (
|
|
40
|
-
wordsPrecedingAYear.includes(lowerCaseWord) &&
|
|
18
|
+
if (wordsPrecedingAYear.includes(lowerCaseWord) &&
|
|
41
19
|
isFollowedByWhitespace &&
|
|
42
|
-
|
|
20
|
+
fourDigitYearPatternRegExp.test(nextNonWhitespaceWord)) {
|
|
21
|
+
// Normalize a four digit year pattern, e.g. 'in 1995'.
|
|
43
22
|
const normalizedString = normalizeFourDigitYearString(nextNonWhitespaceWord);
|
|
44
23
|
normalizedFragments.push(word);
|
|
45
24
|
referenceFragments.push(word);
|
|
@@ -47,10 +26,10 @@ export function getNormalizedFragmentsForSpeech(words, nonWhitespaceWords, nonWh
|
|
|
47
26
|
referenceFragments.push(nextNonWhitespaceWord);
|
|
48
27
|
wordIndex += 1;
|
|
49
28
|
}
|
|
50
|
-
else if (
|
|
51
|
-
wordsPrecedingADecade.includes(lowerCaseWord) &&
|
|
29
|
+
else if (wordsPrecedingADecade.includes(lowerCaseWord) &&
|
|
52
30
|
isFollowedByWhitespace &&
|
|
53
|
-
|
|
31
|
+
fourDigitDecadePatternRegExp.test(nextNonWhitespaceWord)) {
|
|
32
|
+
// Normalize a four digit decade pattern, e.g. 'the 1980s'.
|
|
54
33
|
const normalizedString = normalizeFourDigitDecadeString(nextNonWhitespaceWord);
|
|
55
34
|
normalizedFragments.push(word);
|
|
56
35
|
referenceFragments.push(word);
|
|
@@ -58,8 +37,8 @@ export function getNormalizedFragmentsForSpeech(words, nonWhitespaceWords, nonWh
|
|
|
58
37
|
referenceFragments.push(nextNonWhitespaceWord);
|
|
59
38
|
wordIndex += 1;
|
|
60
39
|
}
|
|
61
|
-
else if (
|
|
62
|
-
|
|
40
|
+
else if (fourDigitYearRangePatternRegExp.test(words.slice(originalWordIndex, originalWordIndex + 3).join(''))) {
|
|
41
|
+
// Normalize a year range pattern, e.g. '1835-1896', ensure there are no spaces between words
|
|
63
42
|
normalizedFragments.push(normalizeFourDigitYearString(nonWhitespaceWords[wordIndex]));
|
|
64
43
|
referenceFragments.push(nonWhitespaceWords[wordIndex]);
|
|
65
44
|
normalizedFragments.push('to');
|
|
@@ -68,26 +47,30 @@ export function getNormalizedFragmentsForSpeech(words, nonWhitespaceWords, nonWh
|
|
|
68
47
|
referenceFragments.push(nonWhitespaceWords[wordIndex + 2]);
|
|
69
48
|
wordIndex += 2;
|
|
70
49
|
}
|
|
71
|
-
else if (
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (wordsSucceedingACurrency.includes(nextNonWhitespaceWords[1]?.toLowerCase())) {
|
|
77
|
-
const normalizedString = `${nextNonWhitespaceWord} ${nextNonWhitespaceWords[1]} ${currencyWord}`;
|
|
50
|
+
else if (precedingCurrencyPatternRegExp.test(lowerCaseWord)) {
|
|
51
|
+
// Normalize a currency pattern with preceding currency symbol, e.g. '€3.53', '$53.1 million',
|
|
52
|
+
const currencyWord = currencySymbolsAsWords[currencySymbols.indexOf(lowerCaseWord[0])];
|
|
53
|
+
if (wordsFollowingACurrency.includes(nextNonWhitespaceWord?.toLowerCase())) {
|
|
54
|
+
const normalizedString = `${word.substring(1)} ${nextNonWhitespaceWord} ${currencyWord}`;
|
|
78
55
|
normalizedFragments.push(normalizedString);
|
|
79
|
-
const referenceString = `${word}${nextNonWhitespaceWord}
|
|
56
|
+
const referenceString = `${word} ${nextNonWhitespaceWord}`;
|
|
80
57
|
referenceFragments.push(referenceString);
|
|
81
|
-
wordIndex +=
|
|
58
|
+
wordIndex += 1;
|
|
82
59
|
}
|
|
83
60
|
else {
|
|
84
|
-
const normalizedString = `${
|
|
61
|
+
const normalizedString = `${word.substring(1)} ${currencyWord}`;
|
|
85
62
|
normalizedFragments.push(normalizedString);
|
|
86
|
-
const referenceString =
|
|
63
|
+
const referenceString = word;
|
|
87
64
|
referenceFragments.push(referenceString);
|
|
88
|
-
wordIndex += 1;
|
|
89
65
|
}
|
|
90
66
|
}
|
|
67
|
+
else if (followingCurrencyPatternRegExp.test(lowerCaseWord)) {
|
|
68
|
+
const currencyWord = currencySymbolsAsWords[currencySymbols.indexOf(lowerCaseWord[lowerCaseWord.length - 1])];
|
|
69
|
+
const normalizedString = `${word.substring(0, word.length - 1)} ${currencyWord}`;
|
|
70
|
+
normalizedFragments.push(normalizedString);
|
|
71
|
+
const referenceString = word;
|
|
72
|
+
referenceFragments.push(referenceString);
|
|
73
|
+
}
|
|
91
74
|
else {
|
|
92
75
|
normalizedFragments.push(word);
|
|
93
76
|
referenceFragments.push(word);
|
|
@@ -179,4 +162,53 @@ export const punctuationSubstitutionLookup = {
|
|
|
179
162
|
'!': `!`,
|
|
180
163
|
'¡': `!`,
|
|
181
164
|
};
|
|
165
|
+
const wordsPrecedingAYear = [
|
|
166
|
+
'in', 'the', 'a', 'to', 'of', 'since', 'from', 'between', 'by', 'until', 'around', 'before', 'after',
|
|
167
|
+
'his', 'her', 'year', 'years', 'during', 'copyright', '©', 'early', 'mid', 'late',
|
|
168
|
+
'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december',
|
|
169
|
+
'jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec',
|
|
170
|
+
'winter', 'spring', 'summer', 'fall', 'autumn'
|
|
171
|
+
];
|
|
172
|
+
const wordsPrecedingADecade = [
|
|
173
|
+
'the', 'in', 'early', 'mid', 'late', 'a'
|
|
174
|
+
];
|
|
175
|
+
const currencySymbols = [
|
|
176
|
+
'$', '¥', '€', '£', '₩', '₭', '₽', '₫', '฿', '¢', '₮', '؋', '₦', '₱', '₴', '₪'
|
|
177
|
+
];
|
|
178
|
+
const currencySymbolsAsWords = [
|
|
179
|
+
'dollars', 'yen', 'euros', 'pounds', 'won', 'kip', 'rubles', 'dong', 'baht', 'cents', 'tögrög', 'afghanis', 'naira', 'pesos', 'hryvnia', 'shekels'
|
|
180
|
+
];
|
|
181
|
+
const wordsFollowingACurrency = [
|
|
182
|
+
'million', 'billion', 'trillion'
|
|
183
|
+
];
|
|
184
|
+
const arabicNumeralPattern = charRange('0', '9');
|
|
185
|
+
const numberPattern = [
|
|
186
|
+
inputStart,
|
|
187
|
+
arabicNumeralPattern,
|
|
188
|
+
zeroOrMore(anyOf(arabicNumeralPattern, ',', '.')),
|
|
189
|
+
inputEnd
|
|
190
|
+
];
|
|
191
|
+
const numberPatternRegExp = buildRegExp(numberPattern);
|
|
192
|
+
const precedingCurrencyPattern = [
|
|
193
|
+
inputStart,
|
|
194
|
+
anyOf(...currencySymbols),
|
|
195
|
+
arabicNumeralPattern,
|
|
196
|
+
zeroOrMore(anyOf(arabicNumeralPattern, ',', '.')),
|
|
197
|
+
inputEnd
|
|
198
|
+
];
|
|
199
|
+
const precedingCurrencyPatternRegExp = buildRegExp(precedingCurrencyPattern);
|
|
200
|
+
const followingCurrencyPattern = [
|
|
201
|
+
inputStart,
|
|
202
|
+
arabicNumeralPattern,
|
|
203
|
+
zeroOrMore(anyOf(arabicNumeralPattern, ',', '.')),
|
|
204
|
+
anyOf(...currencySymbols),
|
|
205
|
+
inputEnd
|
|
206
|
+
];
|
|
207
|
+
const followingCurrencyPatternRegExp = buildRegExp(followingCurrencyPattern);
|
|
208
|
+
const fourDigitYearPattern = [inputStart, repeated(4, arabicNumeralPattern), inputEnd];
|
|
209
|
+
const fourDigitYearPatternRegExp = buildRegExp(fourDigitYearPattern);
|
|
210
|
+
const fourDigitDecadePattern = [inputStart, repeated(3, arabicNumeralPattern), '0s', inputEnd];
|
|
211
|
+
const fourDigitDecadePatternRegExp = buildRegExp(fourDigitDecadePattern);
|
|
212
|
+
const fourDigitYearRangePattern = [inputStart, repeated(4, arabicNumeralPattern), anyOf('-', '–'), repeated(4, arabicNumeralPattern), inputEnd];
|
|
213
|
+
const fourDigitYearRangePatternRegExp = buildRegExp(fourDigitYearRangePattern);
|
|
182
214
|
//# sourceMappingURL=TextNormalizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextNormalizer.js","sourceRoot":"","sources":["../../src/nlp/TextNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"TextNormalizer.js","sourceRoot":"","sources":["../../src/nlp/TextNormalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LanguageCode } from '@aws-sdk/client-transcribe-streaming';
|
|
2
|
-
import {
|
|
2
|
+
import { wordCharacterRegExp } from '../nlp/Segmentation.js';
|
|
3
3
|
import * as FFMpegTranscoder from '../codecs/FFMpegTranscoder.js';
|
|
4
4
|
import { Logger } from '../utilities/Logger.js';
|
|
5
5
|
export async function recgonize(rawAudio, languageCode, region, accessKeyId, secretAccessKey) {
|
|
@@ -71,7 +71,7 @@ export async function recgonize(rawAudio, languageCode, region, accessKeyId, sec
|
|
|
71
71
|
const timeline = [];
|
|
72
72
|
for (const event of events) {
|
|
73
73
|
const text = event.Content;
|
|
74
|
-
if (!
|
|
74
|
+
if (!wordCharacterRegExp.test(text)) {
|
|
75
75
|
continue;
|
|
76
76
|
}
|
|
77
77
|
const startTime = event.StartTime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonTranscribeSTT.js","sourceRoot":"","sources":["../../src/recognition/AmazonTranscribeSTT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,YAAY,EAAwC,MAAM,sCAAsC,CAAA;AAC/G,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AmazonTranscribeSTT.js","sourceRoot":"","sources":["../../src/recognition/AmazonTranscribeSTT.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { indexOfMax } from '../math/VectorMath.js';
|
|
2
|
-
import {
|
|
2
|
+
import { wordCharacterRegExp } from '../nlp/Segmentation.js';
|
|
3
3
|
import { Logger } from '../utilities/Logger.js';
|
|
4
4
|
import { logToStderr } from '../utilities/Utilities.js';
|
|
5
5
|
import { getRawAudioDuration } from '../audio/AudioUtilities.js';
|
|
@@ -122,7 +122,7 @@ export class SileroSTT {
|
|
|
122
122
|
const timeline = [];
|
|
123
123
|
for (let i = 0; i < words.length; i++) {
|
|
124
124
|
const text = words[i];
|
|
125
|
-
if (!
|
|
125
|
+
if (!wordCharacterRegExp.test(text)) {
|
|
126
126
|
continue;
|
|
127
127
|
}
|
|
128
128
|
const group = tokenGroupIndexes[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SileroSTT.js","sourceRoot":"","sources":["../../src/recognition/SileroSTT.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SileroSTT.js","sourceRoot":"","sources":["../../src/recognition/SileroSTT.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { loadPackage } from '../utilities/PackageManager.js';
|
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import { XorShift32PRNG } from '../utilities/RandomGenerator.js';
|
|
13
13
|
import { detectSpeechLanguageByParts } from '../api/SpeechLanguageDetection.js';
|
|
14
|
-
import {
|
|
14
|
+
import { includesPunctuation, isWhitespace, splitToWords } from '../nlp/Segmentation.js';
|
|
15
15
|
import { medianOf5Filter } from '../math/MedianFilter.js';
|
|
16
16
|
import { getDeflateCompressionMetricsForString } from '../utilities/Compression.js';
|
|
17
17
|
import { dmlProviderAvailable, getOnnxSessionOptions, makeOnnxLikeFloat32Tensor } from '../utilities/OnnxUtilities.js';
|
|
@@ -310,21 +310,9 @@ export class Whisper {
|
|
|
310
310
|
whisperAlignmentOptions.timestampAccuracy = this.defaultTimestampAccuracy;
|
|
311
311
|
}
|
|
312
312
|
const targetLanguage = task === 'transcribe' ? sourceLanguage : 'en';
|
|
313
|
-
const shouldSplitToSentences = false;
|
|
314
313
|
let simplifiedTranscript = '';
|
|
315
|
-
|
|
316
|
-
const
|
|
317
|
-
for (const sentence of sentences) {
|
|
318
|
-
let sentenceWords = await splitToWords(sentence, targetLanguage);
|
|
319
|
-
sentenceWords = sentenceWords.filter(word => isWord(word));
|
|
320
|
-
simplifiedTranscript += sentenceWords.join(' ');
|
|
321
|
-
simplifiedTranscript += ' ';
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
let words = await splitToWords(transcript, targetLanguage);
|
|
326
|
-
words = words.map(word => word.trim());
|
|
327
|
-
words = words.filter(word => isWord(word));
|
|
314
|
+
{
|
|
315
|
+
const words = (await splitToWords(transcript, targetLanguage)).nonPunctuationWords;
|
|
328
316
|
simplifiedTranscript = words.join(' ');
|
|
329
317
|
}
|
|
330
318
|
// Tokenize the transcript
|
|
@@ -842,7 +830,7 @@ export class Whisper {
|
|
|
842
830
|
if (nonSeparatingPunctuation.includes(char)) {
|
|
843
831
|
return false;
|
|
844
832
|
}
|
|
845
|
-
return isWhitespace(char) ||
|
|
833
|
+
return isWhitespace(char) || includesPunctuation(char);
|
|
846
834
|
}
|
|
847
835
|
function startsWithSeparatorCharacter(text) {
|
|
848
836
|
return isSeparatorCharacter(text[0]);
|