OpenAI.fmとは

OpenAI.fmは、Web上で手軽に高品質な音声合成ができるサービスです。OpenAIのAPIを活用し、音声の種類だけでなく、トーン、スピード、イントネーションなど細かな設定が可能です。この記事では、OpenAI.fmの基本的な使い方から実際のアプリケーションへの組み込み方法まで解説します。

OpenAI.fmの基本操作

OpenAI.fmでは、たった3つの要素を指定するだけで音声合成が行えます:

  1. 音声タイプ:話者の声質
  2. 雰囲気:トーンや話し方の特徴
  3. テキスト:読み上げる内容

生成された音声はブラウザ上で即時再生でき、WAVファイルとしてダウンロードも可能です。

音声タイプの選択

OpenAI.fmで利用できる音声は、OpenAI APIのドキュメントに記載されている11種類から選択できます。ただし、完全に日本語に最適化された音声はないため、若干の違和感を感じる場合があります。

雰囲気の設定

雰囲気(トーンや話し方)は非常に詳細に指定可能です。デフォルトの設定も用意されていますが、日本語向けに最適化されていないため注意が必要です。以下は「探偵風」の雰囲気設定例です:

影響
まるでミステリアスなノワール小説の探偵のように。

トーン
クールで、一歩引いた物腰。だが不思議と安心感を与える。すべてを見てきた者のように、行方不明の現象さえも、ただの "別の事件" として扱う術を知っている。

ペース
ゆっくりと、慎重に。劇的な間を織り交ぜながらサスペンスを高めていく。まるで、調査のどんな些細なディテールも見逃せないと言わんばかりに。

感情
世の中に対する若干の憂いと、譲れない決意。そこにほんの少し、鋭く効いた辛口のユーモアが混じる――すべてが重くなりすぎないように。

句読点
省略記号、ダッシュ、短く切れ味のある文。手がかりをつなぎ合わせる刑事の内なる独白のように、リズムと緊張感を刻む。

重要なのは、日本語でも雰囲気を指定できる点です。自分の求める話し方を日本語で詳細に記述できます。

実践例:ラジオパーソナリティ風の音声合成

設定例

以下は、Monacaというアプリ開発プラットフォームを紹介するラジオパーソナリティ風の音声を作成するための設定例です:

声
・ 落ち着きのある中低音の男性ボイス
・ 明るくハキハキとした響きで、聴き手に安心感を与えるタイプ
・ 例:NHKの男性ナレーターや、ラジオの深夜便パーソナリティ風

口調
・ 砕けすぎず、丁寧語ベース
・ でもかしこまりすぎず、ところどころに親しみや軽さを感じさせる話し方
・ 文末に少し笑みを含んだようなトーンを意識して

方言
・ 基本は標準語
・ ごく軽いイントネーションの変化で関西弁っぽいノリを加えると親しみが増す(例:「ですよね」「ちゃいます」までは行かず、「いいですよ〜」くらい)

発音
・ ゆっくりめで明瞭
・ 特に「Monaca」「HTML」「アプリ開発」などの技術用語はやや強調して発音
・ 過度なカタカナ英語にはせず、日本語に馴染むような自然さを意識(例:「エイチティーエムエル」ではなく「エイチ・ティー・エム・エル」と区切る)

特徴
・ 聴いていて楽しくなるような陽気な抑揚
・ 一文の最後にほんの少しだけトーンを上げて「続きが気になる」雰囲気を作る
・ 場面によっては軽い効果音のような“間”を取る演出もOK(例:「……そんなあなたに!Monaca!」とワンクッション)

読み上げテキスト

設定と組み合わせて使用した実際のテキスト例:

こんばんは、「テック・ナイト・ラジオ」、パーソナリティのサトシです。  
今夜のテーマは、スマホアプリ開発プラットフォーム「Monaca(モナカ)」についてご紹介します。

Monacaは、HTML・CSS・JavaScriptといったWebの技術だけで、iOSとAndroidのアプリを同時に開発できるツールです。  
クラウド上で開発ができるので、面倒な環境構築は不要。ブラウザさえあれば、どこでもすぐに始められるのが魅力です。

ベースになっているのはApache Cordova。これにより、カメラやGPSなどスマホの機能にもアクセスでき、Web技術でネイティブライクなアプリを実現できます。

また、Windows環境でもiOSアプリのビルドが可能というクラウドビルド機能も見逃せません。  
教育現場でも使われるほど、初心者にもやさしく、それでいて実用的。初めてのアプリ開発にもぴったりのプラットフォームです。

気になった方はぜひ「Monaca」で検索してみてくださいね。  
それではまた次回、テック・ナイト・ラジオでお会いしましょう。サトシでした。おやすみなさい。

できあがった音声は以下の通りです。ラジオのパーソナリティ風に仕上がっているでしょうか。

開発者向け:コードへの変換機能

OpenAI.fmの最大の特徴の一つは、設定した内容を実際のコードに自動変換できる点です。Python、JavaScript、curlの3つの形式でコードを生成できます。

JavaScript実装例

import OpenAI from "openai";
import { playAudio } from "openai/helpers/audio";

const openai = new OpenAI();

const input = "こんばんは、「テック・ナイト・ラジオ」、パーソナリティのサトシです。  \n今夜のテーマは、スマホアプリ開発プラットフォーム「Monaca(モナカ)」についてご紹介します。\n\nMonacaは、HTML・CSS・JavaScriptといったWebの技術だけで、iOSとAndroidのアプリを同時に開発できるツールです。  \nクラウド上で開発ができるので、面倒な環境構築は不要。ブラウザさえあれば、どこでもすぐに始められるのが魅力です。\n\nベースになっているのはApache Cordova。これにより、カメラやGPSなどスマホの機能にもアクセスでき、Web技術でネイティブライクなアプリを実現できます。\n\nまた、Windows環境でもiOSアプリのビルドが可能というクラウドビルド機能も見逃せません。  \n教育現場でも使われるほど、初心者にもやさしく、それでいて実用的。初めてのアプリ開発にもぴったりのプラットフォームです。\n\n気になった方はぜひ「Monaca」で検索してみてくださいね。  \nそれではまた次回、テック・ナイト・ラジオでお会いしましょう。サトシでした。おやすみなさい。";

const instructions = "声\n・ 落ち着きのある中低音の男性ボイス\n・ 明るくハキハキとした響きで、聴き手に安心感を与えるタイプ\n・ 例:NHKの男性ナレーターや、ラジオの深夜便パーソナリティ風\n\n口調\n・ 砕けすぎず、丁寧語ベース\n・ でもかしこまりすぎず、ところどころに親しみや軽さを感じさせる話し方\n・ 文末に少し笑みを含んだようなトーンを意識して\n\n方言\n・ 基本は標準語\n・ ごく軽いイントネーションの変化で関西弁っぽいノリを加えると親しみが増す(例:「ですよね」「ちゃいます」までは行かず、「いいですよ〜」くらい)\n\n発音\n・ ゆっくりめで明瞭\n・ 特に「Monaca」「HTML」「アプリ開発」などの技術用語はやや強調して発音\n・ 過度なカタカナ英語にはせず、日本語に馴染むような自然さを意識(例:「エイチティーエムエル」ではなく「エイチ・ティー・エム・エル」と区切る)\n\n特徴\n・ 聴いていて楽しくなるような陽気な抑揚\n・ 一文の最後にほんの少しだけトーンを上げて「続きが気になる」雰囲気を作る\n・ 場面によっては軽い効果音のような“間”を取る演出もOK(例:「……そんなあなたに!Monaca!」とワンクッション)";

const response = await openai.audio.speech.create({
  model: "gpt-4o-mini-tts",
  voice: "verse",
  input,
  instructions,
});

await playAudio(response);

Python実装例

import asyncio
from openai import AsyncOpenAI
from openai.helpers import LocalAudioPlayer

openai = AsyncOpenAI()

input = """こんばんは、「テック・ナイト・ラジオ」、パーソナリティのサトシです。  \n今夜のテーマは、スマホアプリ開発プラットフォーム「Monaca(モナカ)」についてご紹介します。\n\nMonacaは、HTML・CSS・JavaScriptといったWebの技術だけで、iOSとAndroidのアプリを同時に開発できるツールです。  \nクラウド上で開発ができるので、面倒な環境構築は不要。ブラウザさえあれば、どこでもすぐに始められるのが魅力です。\n\nベースになっているのはApache Cordova。これにより、カメラやGPSなどスマホの機能にもアクセスでき、Web技術でネイティブライクなアプリを実現できます。\n\nまた、Windows環境でもiOSアプリのビルドが可能というクラウドビルド機能も見逃せません。  \n教育現場でも使われるほど、初心者にもやさしく、それでいて実用的。初めてのアプリ開発にもぴったりのプラットフォームです。\n\n気になった方はぜひ「Monaca」で検索してみてくださいね。  \nそれではまた次回、テック・ナイト・ラジオでお会いしましょう。サトシでした。おやすみなさい。"""

instructions = """声\n・ 落ち着きのある中低音の男性ボイス\n・ 明るくハキハキとした響きで、聴き手に安心感を与えるタイプ\n・ 例:NHKの男性ナレーターや、ラジオの深夜便パーソナリティ風\n\n口調\n・ 砕けすぎず、丁寧語ベース\n・ でもかしこまりすぎず、ところどころに親しみや軽さを感じさせる話し方\n・ 文末に少し笑みを含んだようなトーンを意識して\n\n方言\n・ 基本は標準語\n・ ごく軽いイントネーションの変化で関西弁っぽいノリを加えると親しみが増す(例:「ですよね」「ちゃいます」までは行かず、「いいですよ〜」くらい)\n\n発音\n・ ゆっくりめで明瞭\n・ 特に「Monaca」「HTML」「アプリ開発」などの技術用語はやや強調して発音\n・ 過度なカタカナ英語にはせず、日本語に馴染むような自然さを意識(例:「エイチティーエムエル」ではなく「エイチ・ティー・エム・エル」と区切る)\n\n特徴\n・ 聴いていて楽しくなるような陽気な抑揚\n・ 一文の最後にほんの少しだけトーンを上げて「続きが気になる」雰囲気を作る\n・ 場面によっては軽い効果音のような“間”を取る演出もOK(例:「……そんなあなたに!Monaca!」とワンクッション)"""

async def main() -> None:
    async with openai.audio.speech.with_streaming_response.create(
        model="gpt-4o-mini-tts",
        voice="verse",
        input=input,
        instructions=instructions,
        response_format="pcm",
    ) as response:
        await LocalAudioPlayer().play(response)

if __name__ == "__main__":
    asyncio.run(main())

ブラウザでの実行方法

基本的にNode.js環境での実行が推奨されますが、ブラウザでも利用可能です。ただし、APIキーの扱いには十分注意が必要です。

import OpenAI from "https://cdn.jsdelivr.net/npm/openai@4.93.0/+esm"

const openai = new OpenAI({
  apiKey: "API_KEY",  // 実際のAPIキーに置き換えてください
  dangerouslyAllowBrowser: true,  // ブラウザ実行に必要なフラグ
});

(async () => {
  // 音声合成の設定
  const input = "こんばんは...おやすみなさい。";
  const instructions = "声\n・ ...";

  // OpenAIのAPIを実行
  const response = await openai.audio.speech.create({
    model: "gpt-4o-mini-tts",
    voice: "verse",
    input,
    instructions,
  });

  // 音声データを取得して再生
  const reader = response.body.getReader();
  const chunks = [];
  while (true) {
    const { done, value } = await reader.read();
    if (done) break;
    chunks.push(value);
  }

  // Blobとして作成し再生
  const blob = new Blob(chunks, { type: "audio/mpeg" });
  const audioUrl = URL.createObjectURL(blob);
  const audio = document.createElement("audio");
  document.body.appendChild(audio);
  audio.controls = true;
  audio.src = audioUrl;
})();

セキュリティ上の注意点

⚠️ 重要: ブラウザ上でOpenAIのAPIを使用する場合、APIキーが露出するリスクがあります。公開サイトやアプリにAPIキーを直接埋め込むことは絶対に避け、適切なバックエンド処理を実装してください。APIキーの漏洩は予期せぬ高額請求につながる可能性があります。

まとめ

OpenAI.fmは、直感的なインターフェースで高品質な音声合成を試せるだけでなく、実際の開発コードにスムーズに移行できる優れたツールです。音声合成に興味がある方はもちろん、Webサービスやアプリに音声機能を取り入れたい開発者にとって非常に便利なサービスといえるでしょう。

  • 簡単な操作で高品質な音声合成
  • 細かなトーンや話し方の調整が可能
  • すぐに使えるコード生成機能
  • ブラウザベースで手軽に試せる環境

ぜひOpenAI.fmにアクセスして、音声合成の可能性を体験してみてください。