echogarden 2.3.2 → 2.3.4

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.
@@ -1916,7 +1916,7 @@
1916
1916
  ],
1917
1917
 
1918
1918
  "precededBy": [
1919
- "a", "his", "her", "my", "their", "your", "our", "whose", "long", "short", "great", "lengthy", "impressive", "incredible", "professional"
1919
+ "a", "the", "his", "her", "my", "their", "your", "our", "whose", "long", "short", "great", "lengthy", "impressive", "incredible", "professional", "for"
1920
1920
  ],
1921
1921
 
1922
1922
  "notPrecededBy": [
@@ -1943,7 +1943,46 @@
1943
1943
  "example": "Wait until they resume the game."
1944
1944
  }
1945
1945
  ],
1946
- "resumes [placeholder]": [
1946
+ "resumes": [
1947
+ {
1948
+ "pronunciation": {
1949
+ "espeak": {
1950
+ "en-us": "ɹ ˈɛ z uː m ˌeɪ z",
1951
+ "en-gb-x-rp": "ɹ ˈɛ z j uː m ˌeɪ z"
1952
+ }
1953
+ },
1954
+
1955
+ "pos": [
1956
+ "NN"
1957
+ ],
1958
+
1959
+ "precededBy": [
1960
+ "the", "from", "these", "their", "our", "whose", "long", "short", "great", "lengthy", "impressive", "incredible", "professional"
1961
+ ],
1962
+
1963
+ "notPrecededBy": [
1964
+ "he", "she", "it"
1965
+ ],
1966
+
1967
+ "followedBy": [
1968
+ "to", "with"
1969
+ ],
1970
+
1971
+ "notFollowedBy":[
1972
+ ],
1973
+
1974
+ "example": "Here are all the resumes."
1975
+ },
1976
+ {
1977
+ "pronunciation": {
1978
+ "espeak": {
1979
+ "en-us": "ɹ ə z ˈu m z",
1980
+ "en-gb-x-rp": "ɹ ɪ z j ˈuː m z"
1981
+ }
1982
+ },
1983
+
1984
+ "example": "Wait until the game resumes."
1985
+ }
1947
1986
  ],
1948
1987
  "entrance": [
1949
1988
  {
@@ -320,6 +320,16 @@
320
320
  }
321
321
  }
322
322
  ],
323
+ "data": [
324
+ {
325
+ "pronunciation": {
326
+ "espeak": {
327
+ "en-us": "d ˈeɪ d ə",
328
+ "en-gb-x-rp": "d ˈeɪ t ə"
329
+ }
330
+ }
331
+ }
332
+ ],
323
333
  "dataset": [
324
334
  {
325
335
  "pronunciation": {
@@ -420,19 +430,356 @@
420
430
  }
421
431
  }
422
432
  ],
423
- "diphones": [],
424
- "triphones": [],
425
- "digraph": [],
426
- "trigraph": [],
427
- "viterbi": [],
428
- "preprocess": [],
429
- "ethereum": [],
430
- "succinctly": [],
431
- "amortize": [],
432
- "stochastic": [],
433
- "industry": [],
434
- "industries": [],
435
- "compact": [],
433
+ "overemphasis": [
434
+ {
435
+ "pronunciation": {
436
+ "espeak": {
437
+ "en-us": "ˌoː v ə r ˈɛ m f ˌə s ɪ s",
438
+ "en-gb-x-rp": "ˌoː v ə r ˈɛ m f ˌə s ɪ s"
439
+ }
440
+ }
441
+ }
442
+ ],
443
+ "underemphasis": [
444
+ {
445
+ "pronunciation": {
446
+ "espeak": {
447
+ "en-us": "ˌʌ n d ɚ ˈɛ m f ˌə s ɪ s",
448
+ "en-gb-x-rp": "ˌʌ n d ɚ ˈɛ m f ˌə s ɪ s"
449
+ }
450
+ }
451
+ }
452
+ ],
453
+ "stochastic": [
454
+ {
455
+ "pronunciation": {
456
+ "espeak": {
457
+ "en-us": "s t o k ˈæ s t ɪ k",
458
+ "en-gb-x-rp": "s t oʊ k ˈæ s t ɪ k"
459
+ }
460
+ }
461
+ }
462
+ ],
463
+ "stochastically": [
464
+ {
465
+ "pronunciation": {
466
+ "espeak": {
467
+ "en-us": "s t o k ˈæ s t ɪ k l i",
468
+ "en-gb-x-rp": "s t oʊ k ˈæ s t ɪ k l i"
469
+ }
470
+ }
471
+ }
472
+ ],
473
+ "industry": [
474
+ {
475
+ "pronunciation": {
476
+ "espeak": {
477
+ "en-us": "ˈɪ n d ə s t ɹ ɪ",
478
+ "en-gb-x-rp": "ˈɪ n d ə s t ɹ ɪ"
479
+ }
480
+ }
481
+ }
482
+ ],
483
+ "industries": [
484
+ {
485
+ "pronunciation": {
486
+ "espeak": {
487
+ "en-us": "ˈɪ n d ə s t ɹ i z",
488
+ "en-gb-x-rp": "ˈɪ n d ə s t ɹ i z"
489
+ }
490
+ }
491
+ }
492
+ ],
493
+ "industrial": [
494
+ {
495
+ "pronunciation": {
496
+ "espeak": {
497
+ "en-us": "ɪ n d ˈʌ s t ɹ ɪ ə l",
498
+ "en-gb-x-rp": "ɪ n d ˈʌ s t ɹ ɪ ə l"
499
+ }
500
+ }
501
+ }
502
+ ],
503
+ "preprocess": [
504
+ {
505
+ "pronunciation": {
506
+ "espeak": {
507
+ "en-us": "p ɹ ˈi p ɹ ˌɑː s ɛ s",
508
+ "en-gb-x-rp": "p ɹ ˌi p ɹ əʊ s ˈɛ s"
509
+ }
510
+ }
511
+ }
512
+ ],
513
+ "preprocessed": [
514
+ {
515
+ "pronunciation": {
516
+ "espeak": {
517
+ "en-us": "p ɹ ˈi p ɹ ˌɑː s ɛ s t",
518
+ "en-gb-x-rp": "p ɹ ˌi p ɹ əʊ s ˈɛ s t"
519
+ }
520
+ }
521
+ }
522
+ ],
523
+ "viterbi": [
524
+ {
525
+ "pronunciation": {
526
+ "espeak": {
527
+ "en-us": "v ɪ t ˈə r b i",
528
+ "en-gb-x-rp": "v ɪ t ˈə r b i"
529
+ }
530
+ }
531
+ }
532
+ ],
533
+ "ethereum": [
534
+ {
535
+ "pronunciation": {
536
+ "espeak": {
537
+ "en-us": "ɪ θ ˈɪ ə r ɪ ə m",
538
+ "en-gb-x-rp": "ɪ θ ˈɪ ə r ɪ ə m"
539
+ }
540
+ }
541
+ }
542
+ ],
543
+ "amortize": [
544
+ {
545
+ "pronunciation": {
546
+ "espeak": {
547
+ "en-us": "ˈæ m ɔːɹ t aɪ z",
548
+ "en-gb-x-rp": "ˈə m ɔː t aɪ z"
549
+ }
550
+ }
551
+ }
552
+ ],
553
+ "amortized": [
554
+ {
555
+ "pronunciation": {
556
+ "espeak": {
557
+ "en-us": "ˈæ m ɔːɹ t aɪ z t",
558
+ "en-gb-x-rp": "ˈə m ɔː t aɪ z t"
559
+ }
560
+ }
561
+ }
562
+ ],
563
+ "amortizes": [
564
+ {
565
+ "pronunciation": {
566
+ "espeak": {
567
+ "en-us": "ˈæ m ɔːɹ t aɪ z ɪ s",
568
+ "en-gb-x-rp": "ˈə m ɔː t aɪ z ɪ s"
569
+ }
570
+ }
571
+ }
572
+ ],
573
+ "sergey": [
574
+ {
575
+ "pronunciation": {
576
+ "espeak": {
577
+ "en-us": "s ˈɜː ɡ eɪ",
578
+ "en-gb-x-rp": "s ˈɜː ɡ eɪ"
579
+ }
580
+ }
581
+ }
582
+ ],
583
+ "diphone": [
584
+ {
585
+ "pronunciation": {
586
+ "espeak": {
587
+ "en-us": "d ˈaɪ f oʊ n",
588
+ "en-gb-x-rp": "d ˈaɪ f oʊ n"
589
+ }
590
+ }
591
+ }
592
+ ],
593
+ "diphones": [
594
+ {
595
+ "pronunciation": {
596
+ "espeak": {
597
+ "en-us": "d ˈaɪ f oʊ n z",
598
+ "en-gb-x-rp": "d ˈaɪ f oʊ n z"
599
+ }
600
+ }
601
+ }
602
+ ],
603
+ "triphone": [
604
+ {
605
+ "pronunciation": {
606
+ "espeak": {
607
+ "en-us": "t ɹ ˈaɪ f oʊ n",
608
+ "en-gb-x-rp": "t ɹ ˈaɪ f oʊ n"
609
+ }
610
+ }
611
+ }
612
+ ],
613
+ "triphones": [
614
+ {
615
+ "pronunciation": {
616
+ "espeak": {
617
+ "en-us": "t ɹ ˈaɪ f oʊ n z",
618
+ "en-gb-x-rp": "t ɹ ˈaɪ f oʊ n z"
619
+ }
620
+ }
621
+ }
622
+ ],
623
+ "digraph": [
624
+ {
625
+ "pronunciation": {
626
+ "espeak": {
627
+ "en-us": "d ˈaɪ ɡ ɹ æ f",
628
+ "en-gb-x-rp": "d ˈaɪ ɡ ɹ æ f"
629
+ }
630
+ }
631
+ }
632
+ ],
633
+ "digraphs": [
634
+ {
635
+ "pronunciation": {
636
+ "espeak": {
637
+ "en-us": "d ˈaɪ ɡ ɹ æ f z",
638
+ "en-gb-x-rp": "d ˈaɪ ɡ ɹ æ f z"
639
+ }
640
+ }
641
+ }
642
+ ],
643
+ "trigraph": [
644
+ {
645
+ "pronunciation": {
646
+ "espeak": {
647
+ "en-us": "t ɹ ˈaɪ ɡ ɹ æ f",
648
+ "en-gb-x-rp": "t ɹ ˈaɪ ɡ ɹ æ f"
649
+ }
650
+ }
651
+ }
652
+ ],
653
+ "trigraphs": [
654
+ {
655
+ "pronunciation": {
656
+ "espeak": {
657
+ "en-us": "t ɹ ˈaɪ ɡ ɹ æ f z",
658
+ "en-gb-x-rp": "t ɹ ˈaɪ ɡ ɹ æ f z"
659
+ }
660
+ }
661
+ }
662
+ ],
663
+ "backend": [
664
+ {
665
+ "pronunciation": {
666
+ "espeak": {
667
+ "en-us": "b ˈæ k ɛ n d",
668
+ "en-gb-x-rp": "b ˈæ k ɛ n d"
669
+ }
670
+ }
671
+ }
672
+ ],
673
+ "subgenre": [
674
+ {
675
+ "pronunciation": {
676
+ "espeak": {
677
+ "en-us": "s ˈʌ b ʒ ˈɑː n ɹ ə",
678
+ "en-gb-x-rp": "s ˈʌ b ʒ ˈɒ n ɹ ɐ"
679
+ }
680
+ }
681
+ }
682
+ ],
683
+ "subgenres": [
684
+ {
685
+ "pronunciation": {
686
+ "espeak": {
687
+ "en-us": "s ˈʌ b ʒ ˈɑː n ɹ ə z",
688
+ "en-gb-x-rp": "s ˈʌ b ʒ ˈɒ n ɹ ɐ z"
689
+ }
690
+ }
691
+ }
692
+ ],
693
+ "individuality": [
694
+ {
695
+ "pronunciation": {
696
+ "espeak": {
697
+ "en-us": "ˌɪ n d ᵻ v ˌɪ dʒ uː ˈæ l ᵻ ɾ i",
698
+ "en-gb-x-rp": "ˌɪ n d ɪ v ˌɪ d j uː ˈæ l ɪ t ɪ"
699
+ }
700
+ }
701
+ }
702
+ ],
703
+ "transition": [
704
+ {
705
+ "pronunciation": {
706
+ "espeak": {
707
+ "en-us": "t ɹ æ n z ˈɪ ʃ ə n",
708
+ "en-gb-x-rp": "t ɹ æ n z ˈɪ ʃ ə n"
709
+ }
710
+ }
711
+ }
712
+ ],
713
+ "transitions": [
714
+ {
715
+ "pronunciation": {
716
+ "espeak": {
717
+ "en-us": "t ɹ æ n z ˈɪ ʃ ə n z",
718
+ "en-gb-x-rp": "t ɹ æ n z ˈɪ ʃ ə n z"
719
+ }
720
+ }
721
+ }
722
+ ],
723
+ "pokemon": [
724
+ {
725
+ "pronunciation": {
726
+ "espeak": {
727
+ "en-us": "p ˈoʊ k iː m ˌɑː n",
728
+ "en-gb-x-rp": "p ˈoʊ k ə m ˌɒ n"
729
+ }
730
+ }
731
+ }
732
+ ],
733
+ "pokémon": [
734
+ {
735
+ "pronunciation": {
736
+ "espeak": {
737
+ "en-us": "p ˈoʊ k iː m ˌɑː n",
738
+ "en-gb-x-rp": "p ˈoʊ k ə m ˌɒ n"
739
+ }
740
+ }
741
+ }
742
+ ],
743
+ "ram": [
744
+ {
745
+ "pronunciation": {
746
+ "espeak": {
747
+ "en-us": "ɹ ˈæ m",
748
+ "en-gb-x-rp": "ɹ ˈæ m"
749
+ }
750
+ }
751
+ }
752
+ ],
753
+ "vram": [
754
+ {
755
+ "pronunciation": {
756
+ "espeak": {
757
+ "en-us": "v ˈiː ɹ ˌæ m",
758
+ "en-gb-x-rp": "v ˈiː ɹ ˌæ m"
759
+ }
760
+ }
761
+ }
762
+ ],
763
+ "acyclic": [
764
+ {
765
+ "pronunciation": {
766
+ "espeak": {
767
+ "en-us": "ˌeɪ s ˈaɪ k l ɪ k",
768
+ "en-gb-x-rp": "ˌeɪ s ˈaɪ k l ɪ k"
769
+ }
770
+ }
771
+ }
772
+ ],
773
+ "cuda": [
774
+ {
775
+ "pronunciation": {
776
+ "espeak": {
777
+ "en-us": "k ˈuː d ɑː",
778
+ "en-gb-x-rp": "k ˈuː d ɑː"
779
+ }
780
+ }
781
+ }
782
+ ],
436
783
  "aka [disabled]": [
437
784
  {
438
785
  "pronunciation": {
@@ -7,6 +7,7 @@ import { defaultEspeakOptions } from '../synthesis/EspeakTTS.js';
7
7
  import { indexOfLastMatchingNumberInRange } from '../utilities/Utilities.js';
8
8
  import { simplifyPunctuationCharacters } from '../nlp/TextNormalizer.js';
9
9
  import { getShortLanguageCode } from '../utilities/Locale.js';
10
+ import { substituteStringUsingLookup } from '../utilities/StringUtilities.js';
10
11
  const cachedInstanceLookup = new Map();
11
12
  export async function synthesizeSentence(text, voice, speed, lexicons, modelPath, voicesPath, executionProviders) {
12
13
  const cacheLookupKey = `${modelPath} ${voicesPath}`;
@@ -37,6 +38,8 @@ export class KokoroTTS {
37
38
  if (!voiceEntry) {
38
39
  throw new Error(`Kokoro voice '${voice.name}' was not found.`);
39
40
  }
41
+ const voicePrimaryLanguage = voice.languages[0];
42
+ const voicePrimaryLanguageShort = getShortLanguageCode(voicePrimaryLanguage);
40
43
  sentenceText = //simplifyPunctuationCharacters(sentence.trim())
41
44
  sentenceText
42
45
  .replaceAll('(', ', ')
@@ -90,13 +93,36 @@ export class KokoroTTS {
90
93
  const word = phrase[wordIndex];
91
94
  for (const phoneme of word) {
92
95
  let processedPhoneme = phoneme;
93
- if (getShortLanguageCode(voice.languages[0]) === 'en') {
94
- processedPhoneme = processedPhoneme
95
- .replace(/ʲ/g, "j")
96
- .replace(/r/g, "ɹ")
97
- .replace(/x/g, "k")
98
- .replace(/ɬ/g, "l");
96
+ if (voicePrimaryLanguageShort === 'en') {
97
+ // Extract stress mark if needed
98
+ let stressMark;
99
+ if (phoneme[0] === 'ˈ' || phoneme[0] === 'ˌ') {
100
+ stressMark = phoneme[0];
101
+ processedPhoneme = phoneme.substring(1);
102
+ }
103
+ // Apply English dialect specific substitutions
104
+ if (voicePrimaryLanguage === 'en-GB') {
105
+ processedPhoneme = substituteStringUsingLookup(processedPhoneme, britishEnglishESpeakToMisakiSubstitutions);
106
+ }
107
+ else {
108
+ processedPhoneme = substituteStringUsingLookup(processedPhoneme, americanEnglishESpeakToMisakiSubstitutions);
109
+ processedPhoneme = processedPhoneme.replaceAll('ː', '');
110
+ }
111
+ // Apply English specific substitutions
112
+ processedPhoneme = substituteStringUsingLookup(processedPhoneme, englishESpeakToMisakiSubstitutions);
113
+ // Bring back stress mark if needed
114
+ if (stressMark !== undefined) {
115
+ processedPhoneme = stressMark + processedPhoneme;
116
+ }
117
+ if (false) {
118
+ // Workaround a word having only 'I' not being pronounced at some cases
119
+ if (processedPhoneme === 'I' && word.length === 1) {
120
+ processedPhoneme = 'aɪ';
121
+ //processedPhoneme = 'ˌI'
122
+ }
123
+ }
99
124
  }
125
+ // Perform tokenization
100
126
  for (const phonemeCharacter of processedPhoneme) {
101
127
  const id = charToTokenIDLookup[phonemeCharacter];
102
128
  if (id !== undefined) {
@@ -315,6 +341,44 @@ const charToTokenIDLookup = {
315
341
  '↘': 173,
316
342
  'ᵻ': 177
317
343
  };
344
+ const englishESpeakToMisakiSubstitutions = {
345
+ //'aɪ': 'I', // Disable since model doesn't seem to work well with this mapping in some cases, like "I am"
346
+ 'aɪə': 'Iə',
347
+ 'aɪɚ': 'Iəɹ',
348
+ 'aʊ': 'W',
349
+ 'dʒ': 'ʤ',
350
+ 'e': 'A',
351
+ 'eɪ': 'A',
352
+ 'r': 'ɹ',
353
+ 'tʃ': 'ʧ',
354
+ 'x': 'k',
355
+ 'ç': 'k',
356
+ 'ɐ': 'ə',
357
+ 'ɔɪ': 'Y',
358
+ 'əl': 'ᵊl',
359
+ 'ɚ': 'əɹ',
360
+ 'ɬ': 'l',
361
+ 'ʔ': 't',
362
+ 'ʔn': 'tᵊn',
363
+ 'ʔˌn\u0329': 'tᵊn',
364
+ 'ʲ': '',
365
+ 'ʲO': 'jO',
366
+ 'ʲQ': 'jQ',
367
+ // Make these substitutions regardless of dialect:
368
+ 'əʊ': 'Q',
369
+ 'oʊ': 'O',
370
+ };
371
+ const britishEnglishESpeakToMisakiSubstitutions = {
372
+ 'eə': 'ɛː',
373
+ 'iə': 'ɪə',
374
+ //'əʊ': 'Q',
375
+ };
376
+ const americanEnglishESpeakToMisakiSubstitutions = {
377
+ //'oʊ': 'O',
378
+ 'ɜːɹ': 'ɜɹ',
379
+ 'ɜː': 'ɜɹ',
380
+ 'ɪə': 'iə',
381
+ };
318
382
  const filenameLanguagePrefixLookup = {
319
383
  'en-US': 'a',
320
384
  'en-GB': 'b',
@@ -1 +1 @@
1
- {"version":3,"file":"KokoroTTS.js","sourceRoot":"","sources":["../../src/synthesis/KokoroTTS.ts"],"names":[],"mappings":"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EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,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"}
1
+ {"version":3,"file":"KokoroTTS.js","sourceRoot":"","sources":["../../src/synthesis/KokoroTTS.ts"],"names":[],"mappings":"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IAAI,EAAE,EAAE;IACR,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,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"}
@@ -26,3 +26,4 @@ export declare function getTokenRepetitionScore(tokens: string[] | number[]): {
26
26
  };
27
27
  export declare function convertHtmlToText(html: string): Promise<any>;
28
28
  export declare function substituteCharactersUsingLookup(text: string, substitutionLookup: Record<string, string>): string;
29
+ export declare function substituteStringUsingLookup(text: string, substitutionLookup: Record<string, string>): string;
@@ -147,4 +147,13 @@ export function substituteCharactersUsingLookup(text, substitutionLookup) {
147
147
  }
148
148
  return resultText;
149
149
  }
150
+ export function substituteStringUsingLookup(text, substitutionLookup) {
151
+ const substitution = substitutionLookup[text];
152
+ if (substitution !== undefined) {
153
+ return substitution;
154
+ }
155
+ else {
156
+ return text;
157
+ }
158
+ }
150
159
  //# sourceMappingURL=StringUtilities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StringUtilities.js","sourceRoot":"","sources":["../../src/utilities/StringUtilities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StringUtilities.js","sourceRoot":"","sources":["../../src/utilities/StringUtilities.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,UAAoB;IAC9D,OAAO,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,UAAoB;IAC7D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEpC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAChB,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;IAED,OAAO,CAAC,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,QAAkB;IAC9D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAkF,EAAE,gBAAgB,GAAG,GAAG;IACnI,OAAO,GAAG,6BAA6B,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,6BAA6B,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,6BAA6B,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,gBAAgB,GAAG,6BAA6B,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAA;AAClP,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAkE,EAAE,gBAAgB,GAAG,GAAG;IAClH,OAAO,GAAG,6BAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,6BAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,gBAAgB,GAAG,6BAA6B,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAA;AAC5L,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,GAAW,EAAE,aAAqB;IAC/E,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAErB,IAAI,WAAW,GAAG,GAAG,GAAG,EAAE,CAAA;IAE1B,OAAO,WAAW,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;QAC3C,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;IAChC,CAAC;IAED,OAAO,WAAW,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,OAAiB,EAAE,WAAW,GAAG,GAAG;IAChF,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACxC,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,MAAM,SAAS,IAAI,GAAG,EAAE,CAAC;QAC7B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzB,CAAC;QAED,UAAU,IAAI,CAAC,CAAA;IAChB,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAExB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAW;IACnD,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACnC,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC;AAGD,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,cAAsB;IAC9E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACzC,CAAC;IAED,8DAA8D;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAE1C,8EAA8E;IAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,gCAAgC;IAChC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,8BAA8B;IAC9B,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACvB,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAEjD,iFAAiF;QACjF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,CAAA;QAE1D,wDAAwD;QACxD,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM,CAAA;IACtC,CAAC,CAAC,CAAA;IAEF,iEAAiE;IACjE,CAAC;QACA,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAE/C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAA2B;IAClE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEpD,MAAM,yBAAyB,GAAa,CAAC,CAAC,CAAC,CAAA;IAE/C,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,IAAI,cAAc,EAAE,WAAW,EAAE,EAAE,CAAC;QACxE,IAAI,UAAU,GAAG,CAAC,CAAA;QAElB,KAAK,IAAI,SAAS,GAAG,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YAC1E,MAAM,cAAc,GAAG,SAAS,GAAG,WAAW,CAAA;YAE9C,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClD,MAAK;YACN,CAAC;YAED,UAAU,IAAI,CAAC,CAAA;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAA;QAExB,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,QAAQ,CAAA;IAC5B,IAAI,sBAAsB,GAAG,CAAC,QAAQ,CAAA;IAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,yBAAyB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAA;QAEhD,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;YAChC,YAAY,GAAG,WAAW,CAAA;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;QAExC,IAAI,UAAU,GAAG,sBAAsB,EAAE,CAAC;YACzC,sBAAsB,GAAG,UAAU,CAAA;QACpC,CAAC;IACF,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,CAAA;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IACnD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;IAEnD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE;QAC7B,QAAQ,EAAE,KAAK;QAEf,SAAS,EAAE;YACV,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE;YAChD,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;YACnC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YACjD,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YACjD,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YACjD,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YACjD,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,oBAAoB,EAAE,KAAK,EAAE,EAAE;SAC/D;KACD,CAAC,CAAA;IAEF,OAAO,IAAI,IAAI,EAAE,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAAY,EAAE,kBAA0C;IACvG,IAAI,UAAU,GAAG,EAAE,CAAA;IAEnB,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAE7C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAChC,UAAU,IAAI,YAAY,CAAA;QAC3B,CAAC;aAAM,CAAC;YACP,UAAU,IAAI,IAAI,CAAA;QACnB,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY,EAAE,kBAA0C;IACnG,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAE7C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,YAAY,CAAA;IACpB,CAAC;SAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACZ,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "echogarden",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "An easy-to-use speech toolset. Includes tools for synthesis, recognition, alignment, speech translation, language detection, source separation and more.",
5
5
  "author": "Rotem Dan",
6
6
  "license": "GPL-3.0",
@@ -52,8 +52,8 @@
52
52
  "echogarden": "./dist/cli/CLILauncher.js"
53
53
  },
54
54
  "dependencies": {
55
- "@aws-sdk/client-polly": "^3.750.0",
56
- "@aws-sdk/client-transcribe-streaming": "^3.750.0",
55
+ "@aws-sdk/client-polly": "^3.758.0",
56
+ "@aws-sdk/client-transcribe-streaming": "^3.758.0",
57
57
  "@echogarden/audio-io": "^0.3.0",
58
58
  "@echogarden/espeak-ng-emscripten": "^0.3.3",
59
59
  "@echogarden/fasttext-wasm": "^0.1.0",
@@ -85,7 +85,7 @@
85
85
  "microsoft-cognitiveservices-speech-sdk": "^1.42.0",
86
86
  "msgpack-lite": "^0.1.26",
87
87
  "onnxruntime-node": "^1.20.1",
88
- "openai": "^4.85.4",
88
+ "openai": "^4.86.1",
89
89
  "sam-js": "^0.3.1",
90
90
  "strip-ansi": "^7.1.0",
91
91
  "tar": "^7.4.3",
@@ -112,11 +112,11 @@
112
112
  "@types/graceful-fs": "^4.1.9",
113
113
  "@types/jsdom": "^21.1.7",
114
114
  "@types/msgpack-lite": "^0.1.11",
115
- "@types/node": "^22.13.5",
115
+ "@types/node": "^22.13.9",
116
116
  "@types/tar": "^6.1.13",
117
117
  "@types/ws": "^8.5.14",
118
118
  "ts-json-schema-generator": "^2.3.0",
119
- "typescript": "^5.7.3"
119
+ "typescript": "^5.8.2"
120
120
  },
121
121
  "overrides": {
122
122
  "whatwg-url": "^14.0.0"
@@ -10,6 +10,7 @@ import { Lexicon } from '../nlp/Lexicon.js'
10
10
  import { indexOfLastMatchingNumberInRange } from '../utilities/Utilities.js'
11
11
  import { simplifyPunctuationCharacters } from '../nlp/TextNormalizer.js'
12
12
  import { getShortLanguageCode } from '../utilities/Locale.js'
13
+ import { substituteStringUsingLookup } from '../utilities/StringUtilities.js'
13
14
 
14
15
  const cachedInstanceLookup = new Map<string, KokoroTTS>()
15
16
 
@@ -61,6 +62,9 @@ export class KokoroTTS {
61
62
  throw new Error(`Kokoro voice '${voice.name}' was not found.`)
62
63
  }
63
64
 
65
+ const voicePrimaryLanguage = voice.languages[0]
66
+ const voicePrimaryLanguageShort = getShortLanguageCode(voicePrimaryLanguage)
67
+
64
68
  sentenceText = //simplifyPunctuationCharacters(sentence.trim())
65
69
  sentenceText
66
70
  .replaceAll('(', ', ')
@@ -137,14 +141,52 @@ export class KokoroTTS {
137
141
  for (const phoneme of word) {
138
142
  let processedPhoneme = phoneme
139
143
 
140
- if (getShortLanguageCode(voice.languages[0]) === 'en') {
141
- processedPhoneme = processedPhoneme
142
- .replace(/ʲ/g, "j")
143
- .replace(/r/g, "ɹ")
144
- .replace(/x/g, "k")
145
- .replace(/ɬ/g, "l")
144
+ if (voicePrimaryLanguageShort === 'en') {
145
+ // Extract stress mark if needed
146
+ let stressMark: string | undefined
147
+
148
+ if (phoneme[0] === 'ˈ' || phoneme[0] === 'ˌ') {
149
+ stressMark = phoneme[0]
150
+
151
+ processedPhoneme = phoneme.substring(1)
152
+ }
153
+
154
+ // Apply English dialect specific substitutions
155
+ if (voicePrimaryLanguage === 'en-GB') {
156
+ processedPhoneme = substituteStringUsingLookup(
157
+ processedPhoneme,
158
+ britishEnglishESpeakToMisakiSubstitutions
159
+ )
160
+ } else {
161
+ processedPhoneme = substituteStringUsingLookup(
162
+ processedPhoneme,
163
+ americanEnglishESpeakToMisakiSubstitutions
164
+ )
165
+
166
+ processedPhoneme = processedPhoneme.replaceAll('ː', '')
167
+ }
168
+
169
+ // Apply English specific substitutions
170
+ processedPhoneme = substituteStringUsingLookup(
171
+ processedPhoneme,
172
+ englishESpeakToMisakiSubstitutions
173
+ )
174
+
175
+ // Bring back stress mark if needed
176
+ if (stressMark !== undefined) {
177
+ processedPhoneme = stressMark + processedPhoneme
178
+ }
179
+
180
+ if (false) {
181
+ // Workaround a word having only 'I' not being pronounced at some cases
182
+ if (processedPhoneme === 'I' && word.length === 1) {
183
+ processedPhoneme = 'aɪ'
184
+ //processedPhoneme = 'ˌI'
185
+ }
186
+ }
146
187
  }
147
188
 
189
+ // Perform tokenization
148
190
  for (const phonemeCharacter of processedPhoneme) {
149
191
  const id = charToTokenIDLookup[phonemeCharacter]
150
192
 
@@ -405,6 +447,48 @@ const charToTokenIDLookup: Record<string, number> = {
405
447
  'ᵻ': 177
406
448
  }
407
449
 
450
+ const englishESpeakToMisakiSubstitutions = {
451
+ //'aɪ': 'I', // Disable since model doesn't seem to work well with this mapping in some cases, like "I am"
452
+ 'aɪə': 'Iə',
453
+ 'aɪɚ': 'Iəɹ',
454
+ 'aʊ': 'W',
455
+ 'dʒ': 'ʤ',
456
+ 'e': 'A',
457
+ 'eɪ': 'A',
458
+ 'r': 'ɹ',
459
+ 'tʃ': 'ʧ',
460
+ 'x': 'k',
461
+ 'ç': 'k',
462
+ 'ɐ': 'ə',
463
+ 'ɔɪ': 'Y',
464
+ 'əl': 'ᵊl',
465
+ 'ɚ': 'əɹ',
466
+ 'ɬ': 'l',
467
+ 'ʔ': 't',
468
+ 'ʔn': 'tᵊn',
469
+ 'ʔˌn\u0329': 'tᵊn',
470
+ 'ʲ': '',
471
+ 'ʲO': 'jO',
472
+ 'ʲQ': 'jQ',
473
+
474
+ // Make these substitutions regardless of dialect:
475
+ 'əʊ': 'Q',
476
+ 'oʊ': 'O',
477
+ }
478
+
479
+ const britishEnglishESpeakToMisakiSubstitutions = {
480
+ 'eə': 'ɛː',
481
+ 'iə': 'ɪə',
482
+ //'əʊ': 'Q',
483
+ }
484
+
485
+ const americanEnglishESpeakToMisakiSubstitutions = {
486
+ //'oʊ': 'O',
487
+ 'ɜːɹ': 'ɜɹ',
488
+ 'ɜː': 'ɜɹ',
489
+ 'ɪə': 'iə',
490
+ }
491
+
408
492
  const filenameLanguagePrefixLookup: Record<string, string> = {
409
493
  'en-US': 'a',
410
494
  'en-GB': 'b',
@@ -203,3 +203,13 @@ export function substituteCharactersUsingLookup(text: string, substitutionLookup
203
203
 
204
204
  return resultText
205
205
  }
206
+
207
+ export function substituteStringUsingLookup(text: string, substitutionLookup: Record<string, string>) {
208
+ const substitution = substitutionLookup[text]
209
+
210
+ if (substitution !== undefined) {
211
+ return substitution
212
+ } else {
213
+ return text
214
+ }
215
+ }