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 から直接取得しており、追加の機能は想定していません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト