node-edge-tts
TypeScript icon, indicating that this package has built-in type declarations

1.2.8 • Public • Published

node-edge-tts

node-edge-tts is a module that utilizes Microsoft Edge's online TTS (Text-to-Speech) service on Node.js

Installation

npm install node-edge-tts

Or you can directly use it in the command line.

npx node-edge-tts -t 'Hello world'

Command line usage

Usage: npx node-edge-tts [options]

Options:
      --help           Show help                                       [boolean]
      --version        Show version number                             [boolean]
  -t, --text           The text to be converted to speech    [string] [required]
  -f, --filepath       The output file path   [string] [default: "./output.mp3"]
  -v, --voice          The voice to be used
                                        [string] [default: "zh-CN-XiaoyiNeural"]
  -l, --lang           The language to be used       [string] [default: "zh-CN"]
  -o, --outputFormat   The output format
                           [string] [default: "audio-24khz-48kbitrate-mono-mp3"]
      --pitch          The pitch of the voice      [string] [default: "default"]
  -r, --rate           The rate of the voice       [string] [default: "default"]
      --volume         The volume of the voice     [string] [default: "default"]
  -s, --saveSubtitles  Whether to save subtitles      [boolean] [default: false]
  -p, --proxy          example: http://localhost:7890                   [string]
      --timeout        The timeout of the request      [number] [default: 10000]

Examples:
  npx node-edge-tts -t 'Hello world' -f './output.mp3'

Module usage

const { EdgeTTS } = require('node-edge-tts')

or

import { EdgeTTS } from 'node-edge-tts'
const tts = new EdgeTTS()
await tts.ttsPromise('Hello world', path_to_audiofile_with_extension)

configure

const tts = new EdgeTTS({
  voice: 'en-US-AriaNeural',
  lang: 'en-US',
  outputFormat: 'audio-24khz-96kbitrate-mono-mp3',
  saveSubtitles: true,
  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 }
]

Readme

Keywords

Package Sidebar

Install

npm i node-edge-tts

Weekly Downloads

189

Version

1.2.8

License

MIT

Unpacked Size

15.4 kB

Total Files

8

Last publish

Collaborators

  • schneehertz