Migushthe2nd/MsEdgeTTS
A simple Azure Speech Service module that uses the Microsoft Edge Read Aloud API. https://migushthe2nd.github.io/MsEdgeTTS/
概要
MsEdgeTTS は、Microsoft Edge に組み込まれている Read Aloud サービス(Azure Speech が使用するのと同じサービス)を呼び出して音声オーディオを生成する Node.js ライブラリです。必要な SSML を構築し、Edge API への WebSocket を開き、合成されたオーディオをストリーミングで返します。
重要点
- Azure キー不要 – 無料の Edge Read Aloud エンドポイントを再利用するため、クラウドサブスクリプションなしでニューラル品質の TTS を利用できます。
- ストリーミング出力 – オーディオは Node ストリームとして返され、リアルタイム再生や他のツールへのパイプに便利です。
- 細かい制御 – 音声、出力形式、レート、ピッチ、音量を選択でき、さらに単語・文境界のメタデータを要求することもできます。
- サーバーサイドで動作 – 現在の API は Edge スタイルのユーザーエージェントを要求するため、Node(または任意のサーバーサイドランタイム)で動作しますが、他のブラウザでは動作しません。
使用方法(クイックスタート)
import {MsEdgeTTS, OUTPUT_FORMAT} from "msedge-tts";
const tts = new MsEdgeTTS();
await tts.setMetadata(
"en-US-AriaNeural", // 音声
OUTPUT_FORMAT.WEBM_24KHZ_16BIT_MONO_OPUS // オーディオコーデック
);
// オーディオを直接ストリーミング
const {audioStream} = tts.toStream("Hello world!");
audioStream.on('data', chunk => console.log('audio chunk', chunk));
toFile() で直接ファイルに書き込むこともできます。また、オプションのオブジェクトでレート・ピッチ・音量を調整したり、カスタム HTTP/SOCKS プロキシエージェントを指定したりすることもできます。
主な機能
| 機能 | 詳細 |
|---|---|
| 音声選択 | 任意の Edge 音声識別子(例: en-IE-ConnorNeural)を渡します。 |
| 出力形式 | OUTPUT_FORMAT で定義された複数の WebM/Opus、MP3、OGG など。 |
| SSML サポート | <speak>、<voice>、<prosody> タグを含む基本的な SSML を生成します。 |
| 境界メタデータ | オプションで単語・文境界イベントを別のストリームまたはファイルとして返します。 |
| タイムアウト処理 | 接続および合成タイムアウトを設定可能。オーディオストリームでエラーを発行します。 |
| プロキシサポート | カスタム http.Agent(例: https-proxy-agent、socks-proxy-agent)を受け入れます。 |
| Promise ベースの API | すべてのメソッドが Promise を返し、ストリームは標準の Node イベントを発行します。 |
使用対象者
- Azure 課金なしで迅速な TTS を必要とする音声アシスタント、ボット、IVR システムを開発する開発者
- サーバーサイドでナレーションファイルを一括生成したいコンテンツクリエイター
- 低遅延ストリーミングが有用な音声対応アプリケーションのプロトタイプを研究する研究者
- リップシンクや字幕生成のための単語レベルのタイミングデータを必要とする人
すべての情報はリポジトリの README から直接取得しており、追加の機能は想定していません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト