@seepine/edge-tts
v1.4.0
Published
@seepine/edge-tts is a module that using Microsoft Edge's online TTS (Text-to-Speech) service on the Node.js
Readme
seepine/edge-tts
seepine/edge-tts is a module that utilizes Microsoft Edge's online TTS (Text-to-Speech) service on Node.js
Installation
npm install @seepine/edge-ttsUse usage
import { EdgeTTS } from '@seepine/edge-tts'
const tts = new EdgeTTS();
const res = await tts.call("Hello world");
fs.writeFileSync(path.join(__dirname, "test.mp3"), res.data);
fs.writeFileSync(path.join(__dirname, "test.json"), JSON.stringify(res.subtitles));configure
const tts = new EdgeTTS({
voice: 'en-US-AriaNeural',
lang: 'en-US',
outputFormat: 'audio-24khz-96kbitrate-mono-mp3',
proxy: 'http://localhost:7890',
pitch: '-10%',
rate: '+10%',
volume: '-50%',
timeout: 10000
})You can find the available options for speechconfig at voice/lang|outputFormat|pitch/rate/volume, but not all options are available due to limitations of the services provided by Microsoft Edge.
subtitles
Subtitles are json files with the same name as the audio file, as shown below:
\\ the *start* is the time point at which the *part* begins,
\\ the *end* is the time point at which the *part* ends,
\\ measured in milliseconds.
[
{ "part": "node-edge-tts ", "start": 100, "end": 1287 },
{ "part": "is ", "start": 1287, "end": 1450 },
{ "part": "a ", "start": 1450, "end": 1500 },
{ "part": "module ", "start": 1500, "end": 2037 },
{ "part": "that ", "start": 2037, "end": 2350 },
{ "part": "utilizes ", "start": 2350, "end": 3162 },
{ "part": "Microsoft ", "start": 3162, "end": 3762 },
{ "part": "Edge's ", "start": 3762, "end": 4212 },
{ "part": "online ", "start": 4212, "end": 4750 },
{ "part": "TTS (", "start": 4750, "end": 5450 },
{ "part": "Text-to-Speech) ", "start": 5600, "end": 6637 },
{ "part": "service ", "start": 6800, "end": 7387 },
{ "part": "on ", "start": 7387, "end": 7600 },
{ "part": "Node.", "start": 7600, "end": 7950 },
{ "part": "js", "start": 8012, "end": 8762 }
]