Package Exports
- @devsobrinho/edge-tts
- @devsobrinho/edge-tts/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@devsobrinho/edge-tts) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Edge TTS Server-Side Package
Server-side implementation of the Edge TTS package — utilizing the Microsoft Edge Read Aloud API to generate text-to-speech with support for data streaming or Base64 encoding.
Features
- Text-to-Speech Conversion: Effortlessly convert text into natural-sounding speech using Microsoft Edge's TTS capabilities.
- Voice Customization: Access a wide range of voices and adjust rate, volume, and pitch to tailor the output for your project.
- Flexible Audio Output: Export synthesized audio in various formats including streaming, raw audio, or Base64-encoded output.
Installation
Install the Edge TTS package via npm or bun by running one of the following commands:
npm install @devsobrinho/edge-tts
yarn add @devsobrinho/edge-tts
bun add @devsobrinho/edge-tts
Configuration Options
The EdgeTTS
package allows for configuration either globally or on a per-method basis:
- Global Configuration: Pass a configuration object to the constructor for a persistent setup.
- Dynamic Method Configuration: Optionally override global settings by passing a configuration object to individual methods (
toRaw
,toBase64
, ortoStream
).
The EdgeTTSSynthesizeConfig
interface defines the following configurable options:
export interface EdgeTTSSynthesizeConfig {
voice?: string;
rate: RATE | string | number;
volume: VOLUME | string | number;
pitch: PITCH | string;
voiceLocale?: string;
outputFormat?: OUTPUT_FORMAT;
}
Usage Examples
Streaming Output
The following example shows how to stream the generated audio data:
import { EdgeTTS } from "@devsobrinho/edge-tts";
import { PassThrough } from "stream";
const abortController = new AbortController();
const stream = new PassThrough({ signal: abortController.signal });
const edgeTTS = new EdgeTTS();
await edgeTTS.toStream(
stream,
"Hello, my name is Francisca, and I am your virtual assistant.",
{
voice:
"Microsoft Server Speech Text to Speech Voice (pt-BR, FranciscaNeural)",
volume: "50%",
}
);
stream.on("data", (data) => {
console.log("Data chunk received:", data);
});
stream.on("close", () => {
console.log("Stream closed.");
});
stream.on("error", (err) => {
console.error("Stream error:", err);
});
Base64 Output
For projects where Base64 encoding is more suitable, here’s an example:
import { EdgeTTS } from "@devsobrinho/edge-tts";
const edgeTTS = new EdgeTTS();
const base64Audio = await edgeTTS.toBase64(
"Hello, my name is Francisca, and I am your virtual assistant.",
{
voice:
"Microsoft Server Speech Text to Speech Voice (pt-BR, FranciscaNeural)",
volume: "50%",
}
);
console.log("Base64 Audio:", base64Audio);
Acknowledgments
We would like to thank the developers and contributors of related projects for their valuable groundwork and inspiration, including: