@readium/speech 0.1.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/LICENSE +28 -0
- package/README.md +144 -0
- package/build/WebSpeech/TmpNavigator.d.ts +39 -0
- package/build/WebSpeech/WebSpeechVoiceManager.d.ts +232 -0
- package/build/WebSpeech/index.d.ts +4 -0
- package/build/WebSpeech/webSpeechEngine.d.ts +67 -0
- package/build/WebSpeech/webSpeechEngineProvider.d.ts +11 -0
- package/build/ar-BYWkyZgW.cjs +1 -0
- package/build/ar-CJhBAgKq.js +13 -0
- package/build/bg-D7xe9YTl.cjs +1 -0
- package/build/bg-JvP4LoOT.js +13 -0
- package/build/bho-CpuLBMN3.js +13 -0
- package/build/bho-UB6aO8oz.cjs +1 -0
- package/build/bn-84u93pMd.js +13 -0
- package/build/bn-boRZ2pl5.cjs +1 -0
- package/build/ca-DdScTbex.js +13 -0
- package/build/ca-DkC8kSJ8.cjs +1 -0
- package/build/cmn-BsNLjyA4.cjs +1 -0
- package/build/cmn-Dd1zrvTE.js +13 -0
- package/build/cs-CDMne0uc.js +13 -0
- package/build/cs-p05r08p7.cjs +1 -0
- package/build/da-crefCup9.cjs +1 -0
- package/build/da-oFf4cHgj.js +13 -0
- package/build/de-Bjgc3bVq.js +13 -0
- package/build/de-xoW-RuhZ.cjs +1 -0
- package/build/el-C025sTug.cjs +1 -0
- package/build/el-FkKIcghI.js +13 -0
- package/build/en-DCQHxNny.js +13 -0
- package/build/en-Gmh32VcD.cjs +1 -0
- package/build/engine.d.ts +25 -0
- package/build/es-CDjjngpC.js +13 -0
- package/build/es-tgHiWsyf.cjs +1 -0
- package/build/eu-DxWirHU-.js +13 -0
- package/build/eu-uq15ZgwW.cjs +1 -0
- package/build/fa-CHOnwiFr.cjs +1 -0
- package/build/fa-CTVUniYi.js +13 -0
- package/build/fi-Bxlno6Zi.cjs +1 -0
- package/build/fi-Do6QFzRv.js +13 -0
- package/build/fr-B5-P9o29.js +13 -0
- package/build/fr-yAth5-FC.cjs +1 -0
- package/build/generated/language-metadata.d.ts +7 -0
- package/build/gl-BEgzCAO0.cjs +1 -0
- package/build/gl-DqSXeC_F.js +13 -0
- package/build/he-B-CTHJPL.cjs +1 -0
- package/build/he-CpyNwgaH.js +13 -0
- package/build/hi-C0yUjV1-.cjs +1 -0
- package/build/hi-CeOBacbl.js +13 -0
- package/build/hr-CSpU18l6.js +13 -0
- package/build/hr-CZvFOcdo.cjs +1 -0
- package/build/hu-_2PInItj.cjs +1 -0
- package/build/hu-oONHmpR6.js +13 -0
- package/build/id-BROcb7-t.cjs +1 -0
- package/build/id-BpZuB5Iw.js +13 -0
- package/build/index.cjs +27 -0
- package/build/index.d.ts +7 -0
- package/build/index.js +2801 -0
- package/build/it-Bmc8Ycff.cjs +1 -0
- package/build/it-CM4X84UA.js +13 -0
- package/build/ja-B8t6WOeg.cjs +1 -0
- package/build/ja-e-iw3c4_.js +13 -0
- package/build/kk-BdLCAb2s.js +13 -0
- package/build/kk-DskO1CW8.cjs +1 -0
- package/build/kn-BYRvouO5.js +13 -0
- package/build/kn-Cy3NH6na.cjs +1 -0
- package/build/ko-CZdQzppZ.cjs +1 -0
- package/build/ko-EIouMDK1.js +13 -0
- package/build/mr-9hGqBYlV.cjs +1 -0
- package/build/mr-DN-hwEV1.js +13 -0
- package/build/ms-B5E3oaWE.js +13 -0
- package/build/ms-DzpBxNFZ.cjs +1 -0
- package/build/navigator.d.ts +30 -0
- package/build/nb-BQfw9EEH.cjs +1 -0
- package/build/nb-DOw05HBh.js +13 -0
- package/build/nl-CEydw4A9.js +13 -0
- package/build/nl-CyM0R4Gr.cjs +1 -0
- package/build/pl-Da8XOMa1.cjs +1 -0
- package/build/pl-Ivj_eAP7.js +13 -0
- package/build/provider.d.ts +9 -0
- package/build/pt-BPEGqRmW.js +13 -0
- package/build/pt-tubyvYaM.cjs +1 -0
- package/build/ro-BQ617SOx.js +13 -0
- package/build/ro-C-rXDfuM.cjs +1 -0
- package/build/ru-DJocRaDd.cjs +1 -0
- package/build/ru-Dieeph4H.js +13 -0
- package/build/sk-BvpojIXp.cjs +1 -0
- package/build/sk-pEiOt4GQ.js +13 -0
- package/build/sl-D0X3JKvQ.cjs +1 -0
- package/build/sl-Z6jWAR8J.js +13 -0
- package/build/sv-4lEgrHda.cjs +1 -0
- package/build/sv-BT09piiZ.js +13 -0
- package/build/ta-B0YMGW5q.js +13 -0
- package/build/ta-CyeVPdIs.cjs +1 -0
- package/build/te-DqWIZZxL.cjs +1 -0
- package/build/te-ax-HNsAY.js +13 -0
- package/build/th-BcoSVZAp.cjs +1 -0
- package/build/th-C7Dbxwoz.js +13 -0
- package/build/tr-BuafNhfw.cjs +1 -0
- package/build/tr-mipEichO.js +13 -0
- package/build/uk-CHdx7DHz.js +13 -0
- package/build/uk-DkXNxnD9.cjs +1 -0
- package/build/utils/features.d.ts +23 -0
- package/build/utils/language.d.ts +6 -0
- package/build/utils/patches.d.ts +11 -0
- package/build/utterance.d.ts +6 -0
- package/build/vi-Ct2avSE6.cjs +1 -0
- package/build/vi-DrlcEwAD.js +13 -0
- package/build/voices/filters.d.ts +5 -0
- package/build/voices/languages.d.ts +44 -0
- package/build/voices/localized.d.ts +20 -0
- package/build/voices/packages.d.ts +2 -0
- package/build/voices/sorting.d.ts +7 -0
- package/build/voices/types.d.ts +87 -0
- package/build/voices/voiceDuplicates.d.ts +19 -0
- package/build/wuu-C6uQvT6g.js +13 -0
- package/build/wuu-DnwGQ6c-.cjs +1 -0
- package/build/yue-CFroa59o.js +13 -0
- package/build/yue-j9Y48sR-.cjs +1 -0
- package/package.json +59 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const t = "ta", a = "ta-IN", e = "வணக்கம், என் பெயர் {name} மற்றும் நான் ஒரு தமிழ் குரல்", l = [{ label: "Pallavi", name: "Microsoft Pallavi Online (Natural) - Tamil (India)", language: "ta-IN", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Valluvar", name: "Microsoft Valluvar Online (Natural) - Tamil (India)", language: "ta-IN", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Saranya", name: "Microsoft Saranya Online (Natural) - Tamil (Sri Lanka)", language: "ta-LK", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Kumar", name: "Microsoft Kumar Online (Natural) - Tamil (Sri Lanka)", language: "ta-LK", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Kani", name: "Microsoft Kani Online (Natural) - Tamil (Malaysia)", language: "ta-MY", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Surya", name: "Microsoft Surya Online (Natural) - Tamil (Malaysia)", language: "ta-MY", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Venba", name: "Microsoft Venba Online (Natural) - Tamil (Singapore)", language: "ta-SG", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Anbu", name: "Microsoft Anbu Online (Natural) - Tamil (Singapore)", language: "ta-SG", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Vani", name: "Vani", localizedName: "apple", language: "ta-IN", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "Valluvar", name: "Microsoft Valluvar - Tamil (India)", language: "ta-IN", gender: "male", quality: ["normal"], rate: 1, pitch: 1, os: ["Windows"], preloaded: !0 }, { label: "பெண் குரல்", name: "Android Speech Recognition and Synthesis from Google ta-in-x-tac-network", altNames: ["Android Speech Recognition and Synthesis from Google ta-in-x-tac-local", "Android Speech Recognition and Synthesis from Google ta-IN-language"], nativeID: ["ta-in-x-tac-network", "ta-in-x-tac-local"], language: "ta-IN", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "ஆண் குரல்", name: "Android Speech Recognition and Synthesis from Google ta-in-x-tad-network", altNames: ["Android Speech Recognition and Synthesis from Google ta-in-x-tad-local"], nativeID: ["ta-in-x-tad-network", "ta-in-x-tad-local"], language: "ta-IN", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], r = {
|
|
2
|
+
language: "ta",
|
|
3
|
+
defaultRegion: a,
|
|
4
|
+
testUtterance: e,
|
|
5
|
+
voices: l
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
r as default,
|
|
9
|
+
a as defaultRegion,
|
|
10
|
+
t as language,
|
|
11
|
+
e as testUtterance,
|
|
12
|
+
l as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a="ta",e="ta-IN",l="வணக்கம், என் பெயர் {name} மற்றும் நான் ஒரு தமிழ் குரல்",t=[{label:"Pallavi",name:"Microsoft Pallavi Online (Natural) - Tamil (India)",language:"ta-IN",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Valluvar",name:"Microsoft Valluvar Online (Natural) - Tamil (India)",language:"ta-IN",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Saranya",name:"Microsoft Saranya Online (Natural) - Tamil (Sri Lanka)",language:"ta-LK",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Kumar",name:"Microsoft Kumar Online (Natural) - Tamil (Sri Lanka)",language:"ta-LK",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Kani",name:"Microsoft Kani Online (Natural) - Tamil (Malaysia)",language:"ta-MY",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Surya",name:"Microsoft Surya Online (Natural) - Tamil (Malaysia)",language:"ta-MY",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Venba",name:"Microsoft Venba Online (Natural) - Tamil (Singapore)",language:"ta-SG",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Anbu",name:"Microsoft Anbu Online (Natural) - Tamil (Singapore)",language:"ta-SG",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Vani",name:"Vani",localizedName:"apple",language:"ta-IN",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"Valluvar",name:"Microsoft Valluvar - Tamil (India)",language:"ta-IN",gender:"male",quality:["normal"],rate:1,pitch:1,os:["Windows"],preloaded:!0},{label:"பெண் குரல்",name:"Android Speech Recognition and Synthesis from Google ta-in-x-tac-network",altNames:["Android Speech Recognition and Synthesis from Google ta-in-x-tac-local","Android Speech Recognition and Synthesis from Google ta-IN-language"],nativeID:["ta-in-x-tac-network","ta-in-x-tac-local"],language:"ta-IN",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"ஆண் குரல்",name:"Android Speech Recognition and Synthesis from Google ta-in-x-tad-network",altNames:["Android Speech Recognition and Synthesis from Google ta-in-x-tad-local"],nativeID:["ta-in-x-tad-network","ta-in-x-tad-local"],language:"ta-IN",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],r={language:a,defaultRegion:e,testUtterance:l,voices:t};exports.default=r;exports.defaultRegion=e;exports.language=a;exports.testUtterance=l;exports.voices=t;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="te",t="te-IN",a="హలో, నా పేరు {name} మరియు నేను తెలుగు వాణిని.",n=[{label:"Shruti",name:"Microsoft Shruti Online (Natural) - Telugu (India)",language:"te-IN",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Mohan",name:"Microsoft Mohan Online (Natural) - Telugu (India)",language:"te-IN",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Geeta",name:"Geeta",localizedName:"apple",language:"te-IN",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"స్త్రీ స్వరం",name:"Android Speech Recognition and Synthesis from Google te-in-x-tef-network",altNames:["Android Speech Recognition and Synthesis from Google te-in-x-tef-local","Android Speech Recognition and Synthesis from Google te-IN-language"],nativeID:["te-in-x-tef-network","te-in-x-tef-local"],language:"te-IN",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"పురుష స్వరం",name:"Android Speech Recognition and Synthesis from Google te-in-x-tem-network",altNames:["Android Speech Recognition and Synthesis from Google te-in-x-tem-local"],nativeID:["te-in-x-tem-network","te-in-x-tem-local"],language:"te-IN",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],o={language:e,defaultRegion:t,testUtterance:a,voices:n};exports.default=o;exports.defaultRegion=t;exports.language=e;exports.testUtterance=a;exports.voices=n;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const n = "te", e = "te-IN", t = "హలో, నా పేరు {name} మరియు నేను తెలుగు వాణిని.", a = [{ label: "Shruti", name: "Microsoft Shruti Online (Natural) - Telugu (India)", language: "te-IN", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Mohan", name: "Microsoft Mohan Online (Natural) - Telugu (India)", language: "te-IN", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Geeta", name: "Geeta", localizedName: "apple", language: "te-IN", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "స్త్రీ స్వరం", name: "Android Speech Recognition and Synthesis from Google te-in-x-tef-network", altNames: ["Android Speech Recognition and Synthesis from Google te-in-x-tef-local", "Android Speech Recognition and Synthesis from Google te-IN-language"], nativeID: ["te-in-x-tef-network", "te-in-x-tef-local"], language: "te-IN", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "పురుష స్వరం", name: "Android Speech Recognition and Synthesis from Google te-in-x-tem-network", altNames: ["Android Speech Recognition and Synthesis from Google te-in-x-tem-local"], nativeID: ["te-in-x-tem-network", "te-in-x-tem-local"], language: "te-IN", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], o = {
|
|
2
|
+
language: "te",
|
|
3
|
+
defaultRegion: e,
|
|
4
|
+
testUtterance: t,
|
|
5
|
+
voices: a
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
o as default,
|
|
9
|
+
e as defaultRegion,
|
|
10
|
+
n as language,
|
|
11
|
+
t as testUtterance,
|
|
12
|
+
a as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="th",a="th-TH",t="สวัสดีค่ะ ฉันชื่อ {name} และฉันเป็นคนมีเสียงภาษาไทย",l=[{label:"Premwadee",name:"Microsoft Premwadee Online (Natural) - Thai (Thailand)",language:"th-TH",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Niwat",name:"Microsoft Niwat Online (Natural) - Thai (Thailand)",language:"th-TH",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Narisa",name:"Narisa",localizedName:"apple",language:"th-TH",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"]},{label:"Kanya",name:"Kanya",localizedName:"apple",language:"th-TH",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"Pattara",name:"Microsoft Pattara - Thai (Thailand)",language:"th-TH",gender:"male",quality:["normal"],rate:1,pitch:1,os:["Windows"],preloaded:!0},{label:"เสียงผู้หญิง",name:"Google ไทย (Natural)",altNames:["Android Speech Recognition and Synthesis from Google th-th-x-mol-network","Chrome OS ไทย","Android Speech Recognition and Synthesis from Google th-th-x-mol-local","Android Speech Recognition and Synthesis from Google th-TH-language"],nativeID:["th-th-x-mol-network","th-th-x-mol-local"],language:"th-TH",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],o={language:e,defaultRegion:a,testUtterance:t,voices:l};exports.default=o;exports.defaultRegion=a;exports.language=e;exports.testUtterance=t;exports.voices=l;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const l = "th", e = "th-TH", a = "สวัสดีค่ะ ฉันชื่อ {name} และฉันเป็นคนมีเสียงภาษาไทย", t = [{ label: "Premwadee", name: "Microsoft Premwadee Online (Natural) - Thai (Thailand)", language: "th-TH", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Niwat", name: "Microsoft Niwat Online (Natural) - Thai (Thailand)", language: "th-TH", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Narisa", name: "Narisa", localizedName: "apple", language: "th-TH", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"] }, { label: "Kanya", name: "Kanya", localizedName: "apple", language: "th-TH", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "Pattara", name: "Microsoft Pattara - Thai (Thailand)", language: "th-TH", gender: "male", quality: ["normal"], rate: 1, pitch: 1, os: ["Windows"], preloaded: !0 }, { label: "เสียงผู้หญิง", name: "Google ไทย (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google th-th-x-mol-network", "Chrome OS ไทย", "Android Speech Recognition and Synthesis from Google th-th-x-mol-local", "Android Speech Recognition and Synthesis from Google th-TH-language"], nativeID: ["th-th-x-mol-network", "th-th-x-mol-local"], language: "th-TH", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], o = {
|
|
2
|
+
language: "th",
|
|
3
|
+
defaultRegion: e,
|
|
4
|
+
testUtterance: a,
|
|
5
|
+
voices: t
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
o as default,
|
|
9
|
+
e as defaultRegion,
|
|
10
|
+
l as language,
|
|
11
|
+
a as testUtterance,
|
|
12
|
+
t as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="tr",r="tr-TR",a="Merhaba, adım {name} ve Türk sesiyim.",t=[{label:"Emel",name:"Microsoft Emel Online (Natural) - Turkish (Turkey)",language:"tr-TR",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Ahmet",name:"Microsoft Ahmet Online (Natural) - Turkish (Türkiye)",language:"tr-TR",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Yelda",name:"Yelda",localizedName:"apple",altNames:["Yelda (Geliştirilmiş)","Yelda (Türkçe (Türkiye))"],language:"tr-TR",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"Cem",name:"Cem",localizedName:"apple",language:"tr-TR",gender:"male",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"]},{label:"Tolga",name:"Microsoft Tolga - Turkish (Turkey)",language:"tr-TR",gender:"male",quality:["normal"],rate:1,pitch:1,os:["Windows"],preloaded:!0},{label:"Kadın sesi 1",name:"Google Türkçe 3 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google tr-tr-x-cfs-network","Chrome OS Türkçe 3","Android Speech Recognition and Synthesis from Google tr-tr-x-cfs-local","Android Speech Recognition and Synthesis from Google tr-TR-language"],nativeID:["tr-tr-x-cfs-network","tr-tr-x-cfs-local"],language:"tr-TR",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Kadın sesi 2",name:"Google Türkçe 4 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google tr-tr-x-efu-network","Chrome OS Türkçe 4","Android Speech Recognition and Synthesis from Google tr-tr-x-efu-local"],nativeID:["tr-tr-x-efu-network","tr-tr-x-efu-local"],language:"tr-TR",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Kadın sesi 3",name:"Google Türkçe 1 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google tr-tr-x-mfm-network","Chrome OS Türkçe 1","Android Speech Recognition and Synthesis from Google tr-tr-x-mfm-local"],nativeID:["tr-tr-x-mfm-network","tr-tr-x-mfm-local"],language:"tr-TR",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Erkek sesi 1",name:"Google Türkçe 2 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google tr-tr-x-ama-network","Chrome OS Türkçe 2","Android Speech Recognition and Synthesis from Google tr-tr-x-ama-local"],nativeID:["tr-tr-x-ama-network","tr-tr-x-ama-local"],language:"tr-TR",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Erkek sesi 2",name:"Google Türkçe 5 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google tr-tr-x-tmc-network","Chrome OS Türkçe 5","Android Speech Recognition and Synthesis from Google tr-tr-x-tmc-local"],nativeID:["tr-tr-x-tmc-network","tr-tr-x-tmc-local"],language:"tr-TR",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],o={language:e,defaultRegion:r,testUtterance:a,voices:t};exports.default=o;exports.defaultRegion=r;exports.language=e;exports.testUtterance=a;exports.voices=t;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const t = "tr", e = "tr-TR", r = "Merhaba, adım {name} ve Türk sesiyim.", a = [{ label: "Emel", name: "Microsoft Emel Online (Natural) - Turkish (Turkey)", language: "tr-TR", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Ahmet", name: "Microsoft Ahmet Online (Natural) - Turkish (Türkiye)", language: "tr-TR", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Yelda", name: "Yelda", localizedName: "apple", altNames: ["Yelda (Geliştirilmiş)", "Yelda (Türkçe (Türkiye))"], language: "tr-TR", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "Cem", name: "Cem", localizedName: "apple", language: "tr-TR", gender: "male", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"] }, { label: "Tolga", name: "Microsoft Tolga - Turkish (Turkey)", language: "tr-TR", gender: "male", quality: ["normal"], rate: 1, pitch: 1, os: ["Windows"], preloaded: !0 }, { label: "Kadın sesi 1", name: "Google Türkçe 3 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google tr-tr-x-cfs-network", "Chrome OS Türkçe 3", "Android Speech Recognition and Synthesis from Google tr-tr-x-cfs-local", "Android Speech Recognition and Synthesis from Google tr-TR-language"], nativeID: ["tr-tr-x-cfs-network", "tr-tr-x-cfs-local"], language: "tr-TR", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Kadın sesi 2", name: "Google Türkçe 4 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google tr-tr-x-efu-network", "Chrome OS Türkçe 4", "Android Speech Recognition and Synthesis from Google tr-tr-x-efu-local"], nativeID: ["tr-tr-x-efu-network", "tr-tr-x-efu-local"], language: "tr-TR", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Kadın sesi 3", name: "Google Türkçe 1 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google tr-tr-x-mfm-network", "Chrome OS Türkçe 1", "Android Speech Recognition and Synthesis from Google tr-tr-x-mfm-local"], nativeID: ["tr-tr-x-mfm-network", "tr-tr-x-mfm-local"], language: "tr-TR", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Erkek sesi 1", name: "Google Türkçe 2 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google tr-tr-x-ama-network", "Chrome OS Türkçe 2", "Android Speech Recognition and Synthesis from Google tr-tr-x-ama-local"], nativeID: ["tr-tr-x-ama-network", "tr-tr-x-ama-local"], language: "tr-TR", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Erkek sesi 2", name: "Google Türkçe 5 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google tr-tr-x-tmc-network", "Chrome OS Türkçe 5", "Android Speech Recognition and Synthesis from Google tr-tr-x-tmc-local"], nativeID: ["tr-tr-x-tmc-network", "tr-tr-x-tmc-local"], language: "tr-TR", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], o = {
|
|
2
|
+
language: "tr",
|
|
3
|
+
defaultRegion: e,
|
|
4
|
+
testUtterance: r,
|
|
5
|
+
voices: a
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
o as default,
|
|
9
|
+
e as defaultRegion,
|
|
10
|
+
t as language,
|
|
11
|
+
r as testUtterance,
|
|
12
|
+
a as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const o = "uk", e = "uk-UA", a = "Здравствуйте, меня зовут {name} и я украинский голос.", n = [{ label: "Polina", name: "Microsoft Polina Online (Natural) - Ukrainian (Ukraine)", language: "uk-UA", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Ostap", name: "Microsoft Ostap Online (Natural) - Ukrainian (Ukraine)", language: "uk-UA", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Lesya", name: "Lesya", localizedName: "apple", language: "uk-UA", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "Жіночий голос", name: "Google українська (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google uk-ua-x-hfd-network", "Chrome OS українська", "Android Speech Recognition and Synthesis from Google uk-ua-x-hfd-local", "Android Speech Recognition and Synthesis from Google uk-UA-language"], nativeID: ["uk-ua-x-hfd-network", "uk-ua-x-hfd-local"], language: "uk-UA", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], l = {
|
|
2
|
+
language: "uk",
|
|
3
|
+
defaultRegion: e,
|
|
4
|
+
testUtterance: a,
|
|
5
|
+
voices: n
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
l as default,
|
|
9
|
+
e as defaultRegion,
|
|
10
|
+
o as language,
|
|
11
|
+
a as testUtterance,
|
|
12
|
+
n as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="uk",a="uk-UA",n="Здравствуйте, меня зовут {name} и я украинский голос.",o=[{label:"Polina",name:"Microsoft Polina Online (Natural) - Ukrainian (Ukraine)",language:"uk-UA",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Ostap",name:"Microsoft Ostap Online (Natural) - Ukrainian (Ukraine)",language:"uk-UA",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Lesya",name:"Lesya",localizedName:"apple",language:"uk-UA",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"Жіночий голос",name:"Google українська (Natural)",altNames:["Android Speech Recognition and Synthesis from Google uk-ua-x-hfd-network","Chrome OS українська","Android Speech Recognition and Synthesis from Google uk-ua-x-hfd-local","Android Speech Recognition and Synthesis from Google uk-UA-language"],nativeID:["uk-ua-x-hfd-network","uk-ua-x-hfd-local"],language:"uk-UA",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],l={language:e,defaultRegion:a,testUtterance:n,voices:o};exports.default=l;exports.defaultRegion=a;exports.language=e;exports.testUtterance=n;exports.voices=o;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface WebSpeechFeatures {
|
|
2
|
+
speechSynthesis: SpeechSynthesis | undefined;
|
|
3
|
+
speechSynthesisUtterance: typeof SpeechSynthesisUtterance | undefined;
|
|
4
|
+
speechSynthesisVoice: typeof SpeechSynthesisVoice | undefined;
|
|
5
|
+
speechSynthesisEvent: typeof SpeechSynthesisEvent | undefined;
|
|
6
|
+
speechSynthesisErrorEvent: typeof SpeechSynthesisErrorEvent | undefined;
|
|
7
|
+
onvoiceschanged: boolean;
|
|
8
|
+
speechSynthesisSpeaking: boolean;
|
|
9
|
+
speechSynthesisPaused: boolean;
|
|
10
|
+
onboundary: boolean;
|
|
11
|
+
onend: boolean;
|
|
12
|
+
onerror: boolean;
|
|
13
|
+
onmark: boolean;
|
|
14
|
+
onpause: boolean;
|
|
15
|
+
onresume: boolean;
|
|
16
|
+
onstart: boolean;
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Detects all possible occurrences of the main Web Speech API components
|
|
21
|
+
* in the global scope using prefix detection.
|
|
22
|
+
*/
|
|
23
|
+
export declare const detectFeatures: () => WebSpeechFeatures;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts language and region from a BCP 47 language tag.
|
|
3
|
+
* @param lang - The BCP 47 language tag (e.g., "en-US", "fr-CA")
|
|
4
|
+
* @returns A tuple containing [language, region] where region is optional
|
|
5
|
+
*/
|
|
6
|
+
export declare const extractLangRegionFromBCP47: (lang: string) => [string, string | undefined];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface WebSpeechPlatformPatches {
|
|
2
|
+
isAndroid: boolean;
|
|
3
|
+
isFirefox: boolean;
|
|
4
|
+
isSafari: boolean;
|
|
5
|
+
isKaiOS: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Detects platform features
|
|
9
|
+
* @returns {WebSpeechPlatformPatches} Object containing platform features
|
|
10
|
+
*/
|
|
11
|
+
export declare const detectPlatformFeatures: () => WebSpeechPlatformPatches;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="vi",i="vi-VN",n="Xin chào, tôi tên là {name} và tôi là giọng nói tiếng Việt.",o=[{label:"HoaiMy",name:"Microsoft HoaiMy Online (Natural) - Vietnamese (Vietnam)",language:"vi-VN",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"NamMinh",name:"Microsoft NamMinh Online (Natural) - Vietnamese (Vietnam)",language:"vi-VN",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Linh",name:"Linh",localizedName:"apple",language:"vi-VN",gender:"female",quality:["low","normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"An",name:"Microsoft An - Vietnamese (Vietnam)",language:"vi-VN",gender:"male",quality:["normal"],rate:1,pitch:1,os:["Windows"],preloaded:!0},{label:"Giọng nữ 1",name:"Google Tiếng Việt 1 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google vi-vn-x-vic-network","Chrome OS Tiếng Việt 1","Android Speech Recognition and Synthesis from Google vi-vn-x-vic-local","Android Speech Recognition and Synthesis from Google vi-VN-language"],nativeID:["vi-vn-x-vic-network","vi-vn-x-vic-local"],language:"vi-VN",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Giọng nữ 2",name:"Google Tiếng Việt 2 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google vi-vn-x-vid-network","Chrome OS Tiếng Việt 2","Android Speech Recognition and Synthesis from Google vi-vn-x-vid-local"],nativeID:["vi-vn-x-vid-network","vi-vn-x-vid-local"],language:"vi-VN",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Giọng nữ 3",name:"Google Tiếng Việt 4 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google vi-vn-x-vif-network","Chrome OS Tiếng Việt 4","Android Speech Recognition and Synthesis from Google vi-vn-x-vif-local"],nativeID:["vi-vn-x-vif-network","vi-vn-x-vif-local"],language:"vi-VN",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Giọng nam 1",name:"Google Tiếng Việt 3 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google vi-vn-x-vie-network","Chrome OS Tiếng Việt 3","Android Speech Recognition and Synthesis from Google vi-vn-x-vie-local"],nativeID:["vi-vn-x-vie-network","vi-vn-x-vie-local"],language:"vi-VN",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"Giọng nam 2",name:"Google Tiếng Việt 5 (Natural)",altNames:["Android Speech Recognition and Synthesis from Google vi-vn-x-gft-network","Chrome OS Tiếng Việt 5","Android Speech Recognition and Synthesis from Google vi-vn-x-gft-local"],nativeID:["vi-vn-x-gft-network","vi-vn-x-gft-local"],language:"vi-VN",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],a={language:e,defaultRegion:i,testUtterance:n,voices:o};exports.default=a;exports.defaultRegion=i;exports.language=e;exports.testUtterance=n;exports.voices=o;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const o = "vi", e = "vi-VN", i = "Xin chào, tôi tên là {name} và tôi là giọng nói tiếng Việt.", n = [{ label: "HoaiMy", name: "Microsoft HoaiMy Online (Natural) - Vietnamese (Vietnam)", language: "vi-VN", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "NamMinh", name: "Microsoft NamMinh Online (Natural) - Vietnamese (Vietnam)", language: "vi-VN", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Linh", name: "Linh", localizedName: "apple", language: "vi-VN", gender: "female", quality: ["low", "normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "An", name: "Microsoft An - Vietnamese (Vietnam)", language: "vi-VN", gender: "male", quality: ["normal"], rate: 1, pitch: 1, os: ["Windows"], preloaded: !0 }, { label: "Giọng nữ 1", name: "Google Tiếng Việt 1 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google vi-vn-x-vic-network", "Chrome OS Tiếng Việt 1", "Android Speech Recognition and Synthesis from Google vi-vn-x-vic-local", "Android Speech Recognition and Synthesis from Google vi-VN-language"], nativeID: ["vi-vn-x-vic-network", "vi-vn-x-vic-local"], language: "vi-VN", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Giọng nữ 2", name: "Google Tiếng Việt 2 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google vi-vn-x-vid-network", "Chrome OS Tiếng Việt 2", "Android Speech Recognition and Synthesis from Google vi-vn-x-vid-local"], nativeID: ["vi-vn-x-vid-network", "vi-vn-x-vid-local"], language: "vi-VN", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Giọng nữ 3", name: "Google Tiếng Việt 4 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google vi-vn-x-vif-network", "Chrome OS Tiếng Việt 4", "Android Speech Recognition and Synthesis from Google vi-vn-x-vif-local"], nativeID: ["vi-vn-x-vif-network", "vi-vn-x-vif-local"], language: "vi-VN", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Giọng nam 1", name: "Google Tiếng Việt 3 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google vi-vn-x-vie-network", "Chrome OS Tiếng Việt 3", "Android Speech Recognition and Synthesis from Google vi-vn-x-vie-local"], nativeID: ["vi-vn-x-vie-network", "vi-vn-x-vie-local"], language: "vi-VN", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "Giọng nam 2", name: "Google Tiếng Việt 5 (Natural)", altNames: ["Android Speech Recognition and Synthesis from Google vi-vn-x-gft-network", "Chrome OS Tiếng Việt 5", "Android Speech Recognition and Synthesis from Google vi-vn-x-gft-local"], nativeID: ["vi-vn-x-gft-network", "vi-vn-x-gft-local"], language: "vi-VN", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], a = {
|
|
2
|
+
language: "vi",
|
|
3
|
+
defaultRegion: e,
|
|
4
|
+
testUtterance: i,
|
|
5
|
+
voices: n
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
a as default,
|
|
9
|
+
e as defaultRegion,
|
|
10
|
+
o as language,
|
|
11
|
+
i as testUtterance,
|
|
12
|
+
n as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ReadiumSpeechVoice, TQuality } from './types';
|
|
2
|
+
export declare const isNoveltyVoice: (voiceName: string, voiceId?: string) => boolean;
|
|
3
|
+
export declare const isVeryLowQualityVoice: (voiceName: string, quality?: TQuality) => boolean;
|
|
4
|
+
export declare const filterOutNoveltyVoices: (voices: ReadiumSpeechVoice[]) => ReadiumSpeechVoice[];
|
|
5
|
+
export declare const filterOutVeryLowQualityVoices: (voices: ReadiumSpeechVoice[]) => ReadiumSpeechVoice[];
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ReadiumSpeechVoice } from './types';
|
|
2
|
+
export interface LanguageWithRegions {
|
|
3
|
+
baseLang: string;
|
|
4
|
+
regions: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare const chineseVariantMap: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Normalizes language code with special handling for Chinese variants
|
|
11
|
+
* @param lang - Input language code
|
|
12
|
+
* @returns Normalized language code
|
|
13
|
+
*/
|
|
14
|
+
export declare const normalizeLanguageCode: (lang: string) => string;
|
|
15
|
+
/**
|
|
16
|
+
* Get all voices for a specific language
|
|
17
|
+
* @param {string} lang - Language code (e.g., "en", "fr", "zh-CN")
|
|
18
|
+
* @returns {Promise<ReadiumSpeechVoice[]>} Promise resolving to array of voices for the specified language
|
|
19
|
+
*/
|
|
20
|
+
export declare const getVoices: (lang: string) => Promise<ReadiumSpeechVoice[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Get all available language codes
|
|
23
|
+
* @returns {string[]} Array of available language codes
|
|
24
|
+
*/
|
|
25
|
+
export declare const getAvailableLanguages: () => string[];
|
|
26
|
+
/**
|
|
27
|
+
* Get the test utterance for a language
|
|
28
|
+
* @param {string} lang - Language code (e.g., "en", "fr", "zh-CN")
|
|
29
|
+
* @returns {string} The test utterance or empty string if not found
|
|
30
|
+
*/
|
|
31
|
+
export declare const getTestUtterance: (lang: string) => string;
|
|
32
|
+
/**
|
|
33
|
+
* Get the default region for a language
|
|
34
|
+
* @param {string} lang - Language code (e.g., "en", "fr", "zh-CN")
|
|
35
|
+
* @returns {string} The default region code or empty string if not found
|
|
36
|
+
*/
|
|
37
|
+
export declare const getDefaultRegion: (lang: string) => string;
|
|
38
|
+
/**
|
|
39
|
+
* Process languages with region inference
|
|
40
|
+
* @param languages - Array of language codes (e.g., ["fr", "en-CA"])
|
|
41
|
+
* @returns Array of LanguageWithRegions objects with language and region information
|
|
42
|
+
*/
|
|
43
|
+
export declare const processLanguages: (languages: string[]) => LanguageWithRegions[];
|
|
44
|
+
export * from './types';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TQuality, TLocalizedName } from './types';
|
|
2
|
+
interface LocalizedQuality {
|
|
3
|
+
normal: string;
|
|
4
|
+
high: string;
|
|
5
|
+
}
|
|
6
|
+
interface PlatformQualities {
|
|
7
|
+
[platform: string]: {
|
|
8
|
+
[lang: string]: LocalizedQuality;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
declare const platformQualities: PlatformQualities;
|
|
12
|
+
export declare const getInferredQualityFromPlatform: (voiceURI: string, language: string, platform?: TLocalizedName | TLocalizedName[]) => TQuality | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Finds a locale where both high and normal quality indicators are present in the voice names
|
|
15
|
+
* @param voiceNames Array of voice names to check against quality indicators
|
|
16
|
+
* @param platform The platform to check quality indicators for (e.g., "apple")
|
|
17
|
+
* @returns The first matching locale code or undefined if none found or platform not found
|
|
18
|
+
*/
|
|
19
|
+
export declare const findLocaleWithQualityIndicators: (voiceNames: string[], platform: keyof typeof platformQualities) => string | undefined;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ReadiumSpeechVoice } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Create a map of language codes to their respective voice order maps
|
|
4
|
+
* @param voices Array of voices to analyze
|
|
5
|
+
* @returns Map where key is language code and value is a map of voice names to their original JSON indices
|
|
6
|
+
*/
|
|
7
|
+
export declare function createJsonOrderMap(voices: ReadiumSpeechVoice[]): Promise<Map<string, Map<string, number>>>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice gender as defined in the schema
|
|
3
|
+
*/
|
|
4
|
+
export type TGender = "neutral" | "female" | "male";
|
|
5
|
+
/**
|
|
6
|
+
* Voice quality levels as defined in the schema
|
|
7
|
+
*/
|
|
8
|
+
export type TQuality = null | "veryLow" | "low" | "normal" | "high" | "veryHigh";
|
|
9
|
+
/**
|
|
10
|
+
* Localization type for voice names
|
|
11
|
+
*/
|
|
12
|
+
export type TLocalizedName = "android" | "apple";
|
|
13
|
+
/**
|
|
14
|
+
* Source of the voice data
|
|
15
|
+
*/
|
|
16
|
+
export type TSource = "json" | "browser";
|
|
17
|
+
/**
|
|
18
|
+
* Supported operating systems for voices
|
|
19
|
+
*/
|
|
20
|
+
export type TOperatingSystem = "Android" | "ChromeOS" | "iOS" | "iPadOS" | "macOS" | "Windows";
|
|
21
|
+
/**
|
|
22
|
+
* Supported browsers for voices
|
|
23
|
+
*/
|
|
24
|
+
export type TBrowser = "ChromeDesktop" | "Edge" | "Firefox" | "Safari";
|
|
25
|
+
/**
|
|
26
|
+
* Represents a voice from the JSON data file
|
|
27
|
+
*/
|
|
28
|
+
export interface ReadiumSpeechJSONVoice {
|
|
29
|
+
label?: string;
|
|
30
|
+
name: string;
|
|
31
|
+
localizedName?: "android" | "apple";
|
|
32
|
+
note?: string;
|
|
33
|
+
altNames?: string[];
|
|
34
|
+
nativeID?: string[];
|
|
35
|
+
language?: string;
|
|
36
|
+
altLanguage?: string;
|
|
37
|
+
otherLanguages?: string[];
|
|
38
|
+
multiLingual?: boolean;
|
|
39
|
+
gender?: TGender;
|
|
40
|
+
children?: boolean;
|
|
41
|
+
quality?: TQuality[];
|
|
42
|
+
rate?: number;
|
|
43
|
+
pitch?: number;
|
|
44
|
+
pitchControl?: boolean;
|
|
45
|
+
os?: TOperatingSystem[];
|
|
46
|
+
browser?: TBrowser[];
|
|
47
|
+
preloaded?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface VoiceFilterData {
|
|
50
|
+
voices: Array<{
|
|
51
|
+
name: string;
|
|
52
|
+
altNames?: string[];
|
|
53
|
+
[key: string]: any;
|
|
54
|
+
}>;
|
|
55
|
+
}
|
|
56
|
+
export interface ReadiumSpeechVoice {
|
|
57
|
+
source: TSource;
|
|
58
|
+
label: string;
|
|
59
|
+
name: string;
|
|
60
|
+
originalName: string;
|
|
61
|
+
voiceURI?: string;
|
|
62
|
+
language: string;
|
|
63
|
+
localizedName?: TLocalizedName;
|
|
64
|
+
altNames?: string[];
|
|
65
|
+
altLanguage?: string;
|
|
66
|
+
otherLanguages?: string[];
|
|
67
|
+
multiLingual?: boolean;
|
|
68
|
+
gender?: TGender;
|
|
69
|
+
children?: boolean;
|
|
70
|
+
quality?: TQuality;
|
|
71
|
+
pitchControl?: boolean;
|
|
72
|
+
pitch?: number;
|
|
73
|
+
rate?: number;
|
|
74
|
+
browser?: TBrowser[];
|
|
75
|
+
os?: TOperatingSystem[];
|
|
76
|
+
preloaded?: boolean;
|
|
77
|
+
nativeID?: string | string[];
|
|
78
|
+
note?: string;
|
|
79
|
+
provider?: string;
|
|
80
|
+
[key: string]: any;
|
|
81
|
+
}
|
|
82
|
+
export interface VoiceData {
|
|
83
|
+
language: string;
|
|
84
|
+
defaultRegion: string;
|
|
85
|
+
testUtterance: string;
|
|
86
|
+
voices: ReadiumSpeechVoice[];
|
|
87
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReadiumSpeechVoice } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Selects the preferred voice between two voices that represent the same voice
|
|
4
|
+
* but have different names, based on name and altNames preference order.
|
|
5
|
+
*
|
|
6
|
+
* @param voice1 - First voice
|
|
7
|
+
* @param voice2 - Second voice
|
|
8
|
+
* @returns The preferred voice based on name/altNames order
|
|
9
|
+
*/
|
|
10
|
+
export declare function selectPreferredVoiceByName(voice1: ReadiumSpeechVoice, voice2: ReadiumSpeechVoice): ReadiumSpeechVoice;
|
|
11
|
+
/**
|
|
12
|
+
* Determines if two voices should be considered the same voice with different names
|
|
13
|
+
* based on altNames matching.
|
|
14
|
+
*
|
|
15
|
+
* @param voice1 - First voice
|
|
16
|
+
* @param voice2 - Second voice
|
|
17
|
+
* @returns True if voices should be merged based on name/altNames
|
|
18
|
+
*/
|
|
19
|
+
export declare function shouldMergeVoicesByName(voice1: ReadiumSpeechVoice, voice2: ReadiumSpeechVoice): boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const t = "wuu", a = "wuu-CN", e = "你好,我的名字是 {name},我是吴语配音。", n = [{ label: "Nannan", name: "Nannan", localizedName: "apple", language: "wuu-CN", altLanguage: "zh-CN", gender: "female", quality: ["normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }], u = {
|
|
2
|
+
language: "wuu",
|
|
3
|
+
defaultRegion: a,
|
|
4
|
+
testUtterance: e,
|
|
5
|
+
voices: n
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
u as default,
|
|
9
|
+
a as defaultRegion,
|
|
10
|
+
t as language,
|
|
11
|
+
e as testUtterance,
|
|
12
|
+
n as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="wuu",a="wuu-CN",t="你好,我的名字是 {name},我是吴语配音。",n=[{label:"Nannan",name:"Nannan",localizedName:"apple",language:"wuu-CN",altLanguage:"zh-CN",gender:"female",quality:["normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0}],u={language:e,defaultRegion:a,testUtterance:t,voices:n};exports.default=u;exports.defaultRegion=a;exports.language=e;exports.testUtterance=t;exports.voices=n;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const o = "yue", e = "yue-HK", a = "你好,我叫 {name},係越中文聲。", n = [{ label: "HiuGaai", name: "Microsoft HiuGaai Online (Natural) - Chinese (Cantonese Traditional)", language: "yue-HK", altLanguage: "zh-HK", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "HiuMaan", name: "Microsoft HiuMaan Online (Natural) - Chinese (Hong Kong SAR)", language: "yue-HK", altLanguage: "zh-HK", gender: "female", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "WanLung", name: "Microsoft WanLung Online (Natural) - Chinese (Hong Kong SAR)", language: "yue-HK", altLanguage: "zh-HK", gender: "male", quality: ["veryHigh"], rate: 1, pitchControl: !1, browser: ["Edge"], preloaded: !0 }, { label: "Google 女聲", name: "Google 粤語(香港)", note: "This voice is pre-loaded in Chrome on desktop. Utterances that are longer than 14 seconds long can trigger a bug with this voice, check the notes in the project's README for more information.", language: "yue-HK", altLanguage: "zh-HK", gender: "female", quality: ["high"], rate: 1, pitch: 1, browser: ["ChromeDesktop"], preloaded: !0 }, { label: "Sinji", name: "Sinji", localizedName: "apple", language: "yue-HK", altLanguage: "zh-HK", gender: "female", quality: ["low", "normal", "high"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "Aasing", name: "Aasing", localizedName: "apple", language: "yue-HK", altLanguage: "zh-HK", gender: "male", quality: ["normal"], rate: 1, pitch: 1, os: ["macOS", "iOS", "iPadOS"], preloaded: !0 }, { label: "Tracy", name: "Microsoft Tracy - Chinese (Traditional, Hong Kong S.A.R.)", language: "cmn-HK", altLanguage: "zh-HK", gender: "female", quality: ["normal"], rate: 1, pitch: 1, os: ["Windows"], preloaded: !0 }, { label: "Danny", name: "Microsoft Danny - Chinese (Traditional, Hong Kong S.A.R.)", language: "cmn-HK", altLanguage: "zh-HK", gender: "male", quality: ["normal"], rate: 1, pitch: 1, os: ["Windows"], preloaded: !0 }, { label: "女聲1", name: "Android Speech Recognition and Synthesis from Google yue-hk-x-jar-network", altNames: ["Chrome OS 粵語 1", "Android Speech Recognition and Synthesis from Google yue-HK-x-jar-local", "Android Speech Recognition and Synthesis from Google yue-HK-language"], nativeID: ["yue-hk-x-jar-network", "yue-hk-x-jar-local"], language: "yue-HK", altLanguage: "zh-HK", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "女聲2", name: "Android Speech Recognition and Synthesis from Google yue-hk-x-yuc-network", altNames: ["Chrome OS 粵語 2", "Android Speech Recognition and Synthesis from Google yue-HK-x-yuc-local"], nativeID: ["yue-hk-x-yuc-network", "yue-hk-x-yuc-local"], language: "yue-HK", altLanguage: "zh-HK", gender: "female", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "男聲1", name: "Android Speech Recognition and Synthesis from Google yue-hk-x-yud-network", altNames: ["Chrome OS 粵語 3", "Android Speech Recognition and Synthesis from Google yue-HK-x-yud-local"], nativeID: ["yue-hk-x-yud-network", "yue-hk-x-yud-local"], language: "yue-HK", altLanguage: "zh-HK", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "男聲2", name: "Android Speech Recognition and Synthesis from Google yue-hk-x-yue-network", altNames: ["Chrome OS 粵語 5", "Android Speech Recognition and Synthesis from Google yue-HK-x-yue-local"], nativeID: ["yue-hk-x-yue-network", "yue-hk-x-yue-local"], language: "yue-HK", altLanguage: "zh-HK", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }, { label: "男聲3", name: "Android Speech Recognition and Synthesis from Google yue-hk-x-yuf-network", altNames: ["Chrome OS 粵語 5", "Android Speech Recognition and Synthesis from Google yue-HK-x-yuf-local"], nativeID: ["yue-hk-x-yuf-network", "yue-hk-x-yuf-local"], language: "yue-HK", altLanguage: "zh-HK", gender: "male", quality: ["high"], rate: 1, pitch: 1, os: ["Android", "ChromeOS"], preloaded: !0 }], l = {
|
|
2
|
+
language: "yue",
|
|
3
|
+
defaultRegion: e,
|
|
4
|
+
testUtterance: a,
|
|
5
|
+
voices: n
|
|
6
|
+
};
|
|
7
|
+
export {
|
|
8
|
+
l as default,
|
|
9
|
+
e as defaultRegion,
|
|
10
|
+
o as language,
|
|
11
|
+
a as testUtterance,
|
|
12
|
+
n as voices
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="yue",a="yue-HK",n="你好,我叫 {name},係越中文聲。",o=[{label:"HiuGaai",name:"Microsoft HiuGaai Online (Natural) - Chinese (Cantonese Traditional)",language:"yue-HK",altLanguage:"zh-HK",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"HiuMaan",name:"Microsoft HiuMaan Online (Natural) - Chinese (Hong Kong SAR)",language:"yue-HK",altLanguage:"zh-HK",gender:"female",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"WanLung",name:"Microsoft WanLung Online (Natural) - Chinese (Hong Kong SAR)",language:"yue-HK",altLanguage:"zh-HK",gender:"male",quality:["veryHigh"],rate:1,pitchControl:!1,browser:["Edge"],preloaded:!0},{label:"Google 女聲",name:"Google 粤語(香港)",note:"This voice is pre-loaded in Chrome on desktop. Utterances that are longer than 14 seconds long can trigger a bug with this voice, check the notes in the project's README for more information.",language:"yue-HK",altLanguage:"zh-HK",gender:"female",quality:["high"],rate:1,pitch:1,browser:["ChromeDesktop"],preloaded:!0},{label:"Sinji",name:"Sinji",localizedName:"apple",language:"yue-HK",altLanguage:"zh-HK",gender:"female",quality:["low","normal","high"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"Aasing",name:"Aasing",localizedName:"apple",language:"yue-HK",altLanguage:"zh-HK",gender:"male",quality:["normal"],rate:1,pitch:1,os:["macOS","iOS","iPadOS"],preloaded:!0},{label:"Tracy",name:"Microsoft Tracy - Chinese (Traditional, Hong Kong S.A.R.)",language:"cmn-HK",altLanguage:"zh-HK",gender:"female",quality:["normal"],rate:1,pitch:1,os:["Windows"],preloaded:!0},{label:"Danny",name:"Microsoft Danny - Chinese (Traditional, Hong Kong S.A.R.)",language:"cmn-HK",altLanguage:"zh-HK",gender:"male",quality:["normal"],rate:1,pitch:1,os:["Windows"],preloaded:!0},{label:"女聲1",name:"Android Speech Recognition and Synthesis from Google yue-hk-x-jar-network",altNames:["Chrome OS 粵語 1","Android Speech Recognition and Synthesis from Google yue-HK-x-jar-local","Android Speech Recognition and Synthesis from Google yue-HK-language"],nativeID:["yue-hk-x-jar-network","yue-hk-x-jar-local"],language:"yue-HK",altLanguage:"zh-HK",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"女聲2",name:"Android Speech Recognition and Synthesis from Google yue-hk-x-yuc-network",altNames:["Chrome OS 粵語 2","Android Speech Recognition and Synthesis from Google yue-HK-x-yuc-local"],nativeID:["yue-hk-x-yuc-network","yue-hk-x-yuc-local"],language:"yue-HK",altLanguage:"zh-HK",gender:"female",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"男聲1",name:"Android Speech Recognition and Synthesis from Google yue-hk-x-yud-network",altNames:["Chrome OS 粵語 3","Android Speech Recognition and Synthesis from Google yue-HK-x-yud-local"],nativeID:["yue-hk-x-yud-network","yue-hk-x-yud-local"],language:"yue-HK",altLanguage:"zh-HK",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"男聲2",name:"Android Speech Recognition and Synthesis from Google yue-hk-x-yue-network",altNames:["Chrome OS 粵語 5","Android Speech Recognition and Synthesis from Google yue-HK-x-yue-local"],nativeID:["yue-hk-x-yue-network","yue-hk-x-yue-local"],language:"yue-HK",altLanguage:"zh-HK",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0},{label:"男聲3",name:"Android Speech Recognition and Synthesis from Google yue-hk-x-yuf-network",altNames:["Chrome OS 粵語 5","Android Speech Recognition and Synthesis from Google yue-HK-x-yuf-local"],nativeID:["yue-hk-x-yuf-network","yue-hk-x-yuf-local"],language:"yue-HK",altLanguage:"zh-HK",gender:"male",quality:["high"],rate:1,pitch:1,os:["Android","ChromeOS"],preloaded:!0}],l={language:e,defaultRegion:a,testUtterance:n,voices:o};exports.default=l;exports.defaultRegion=a;exports.language=e;exports.testUtterance=n;exports.voices=o;
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@readium/speech",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "A TypeScript library for implementing read aloud features with Web technologies, following best practices for digital publishing.",
|
|
5
|
+
"author": "Readium Foundation",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"readium",
|
|
8
|
+
"speech",
|
|
9
|
+
"tts",
|
|
10
|
+
"text-to-speech",
|
|
11
|
+
"read-aloud",
|
|
12
|
+
"accessibility"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://readium.org/speech/",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/readium/speech.git"
|
|
18
|
+
},
|
|
19
|
+
"bugs": {
|
|
20
|
+
"url": "https://github.com/readium/speech/issues"
|
|
21
|
+
},
|
|
22
|
+
"license": "BSD-3-Clause",
|
|
23
|
+
"type": "module",
|
|
24
|
+
"main": "./build/index.cjs",
|
|
25
|
+
"module": "./build/index.js",
|
|
26
|
+
"types": "./build/index.d.ts",
|
|
27
|
+
"sideEffects": false,
|
|
28
|
+
"files": [
|
|
29
|
+
"build"
|
|
30
|
+
],
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"types": "./build/index.d.ts",
|
|
34
|
+
"import": "./build/index.js",
|
|
35
|
+
"require": "./build/index.cjs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"test": "npm run build && NODE_NO_WARNINGS=1 ava test/**/*.test.ts",
|
|
40
|
+
"generate-metadata": "node scripts/generate-metadata.js",
|
|
41
|
+
"clean": "rimraf ./build",
|
|
42
|
+
"build": "vite build",
|
|
43
|
+
"start": "http-server ./",
|
|
44
|
+
"watch": "tsc -w"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@ava/typescript": "^6.0.0",
|
|
48
|
+
"ava": "^6.4.0",
|
|
49
|
+
"http-server": "^14.1.1",
|
|
50
|
+
"rimraf": "^6.0.1",
|
|
51
|
+
"ts-node": "^10.9.2",
|
|
52
|
+
"typescript": "^5.8.3",
|
|
53
|
+
"vite": "^7.1.9",
|
|
54
|
+
"vite-plugin-dts": "^4.5.4"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"string-strip-html": "^13.4.23"
|
|
58
|
+
}
|
|
59
|
+
}
|