2024-06-06
Denoで使える、OpenAI社の音声読み上げAPIライブラリ「openai-speech」に、サーバー側API機能を追加。ウェブアプリからも気軽に生成できるようになりました。

バックエンドのコードはとってもシンプル! import { serveWeb } from "https://code4fukui.github.io/wsutil/serveWeb.js"; import { fetchSpeech } from "./fetchSpeech.js"; serveWeb(async (param, req, path, conn) => { if (path == "/api/speech") { return await fetchSpeech(param.txt, { voice: param.voice, speed: param.speed }); } return null; }); フロントエンドからバイナリも対応するJSONの上位互換、CBORを経由してAPI呼び出しするコードでMP3データを受け取れます。 import { fetchCBOR } from "https://js.sabae.cc/fetchCBOR.js"; const txt = "読み上げてください。"; const mp3 = await fetchCBOR("./api/speech", { txt }); 簡単ですね!

AI声優7名と、スピードを選び、読み上げにかかる時間を表示するUIを作ってみました。


「txt2speech - src on GitHub」

APIキーを取得して、サーバーを立てて動かしてみましょう!読み上げの品質はなかなかいいですが、完璧ではありません。漢字の読み間違いがあったり、時々変な発声をしたりします。


「run on ss.sabae.cc」

ss.sabae.cc上で、コードをあれこれいじって試せます!

links
- OpenAI社の7名のAI声優に一日一創ブログを読み上げてもらう

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS