🎶

Qwen TTSをMCP化してRemotionで作成した動画に自動で音声を当ててみる

に公開

最近、RemotionのSkills実装などにより、AIによる動画制作の自動化が進んでいます。特に Remotion は、Reactの知識を使ってコードベースで動画を作れるため、AIと相性が抜群です。
https://qwen.ai/blog?id=qwen3tts-0115

一方、コーディングエージェントでは MCPという機能が存在し、AIエージェントが外部ツールと連携できるようになりました。

「MCP経由でQwenのTTS(テキスト読み上げ)機能を呼び出し、その音声ファイルに合わせてRemotionで動画をレンダリングできたら……?」

しかし、今の開発マシンはMacBookで、CUDAなんて積んでいません。諦めかけていたところ、Appleシリコン(Armコア)向けの最適化ライブラリ MLX の存在を知りました。

https://opensource.apple.com/projects/mlx/

これを使えばQwenをMacのローカル環境で動かして、音声を作り放題なのでは……?

というわけでHugging Faceを探してみたところ、まさに探していたものがありました。

MLX用のQwen TTSモデル
https://huggingface.co/mlx-community/Qwen3-TTS-12Hz-1.7B-CustomVoice-8bit

試しに公式のExampleをMacで動かしてみたところ、結構いい感じの速度で出力できたので、これを採用してシステムを構築してみることにしました。

作ったもの

(VibeCodingしてあまりレビューしてないので微妙かもしれない...)

  1. TTSのMCPサーバー

Qwen3-TTS (MLX版) をラップし、MCP経由で呼び出せるようにしたサーバーです。

https://github.com/Mahiro-T/tts_mcp_server

MCPサーバーとして、音声の生成リクエストを受け付けて非同期で音声を生成し、特定のパスに出力します。コーディングエージェントはそれをみて音声を取りに行くという感じですね。
ちゃんと実装するならHTTPリクエストで音声を返してあげたほうがいいのかなと思うのですが一旦自分だけで使うのでこんな感じでいいかなと思っています。

  1. 生成した動画サンプル

上記サーバーを使って、Remotionで自動生成した動画がこちらになります。

Opencodeを使って動画を作成しているのですが動画生成に時間がかかるので音声を生成するサブエージェントと動画を編集する2つのエージェントを作って作業させた方が効率的でした。
https://github.com/Mahiro-T/tts_mcp_server_introduce

どうだったか

動画自体はいい感じに作成できたのですが、音声の出力品質に課題が残りました。

日本語の音声合成を試したところ、どうしても中国語っぽいイントネーション(リズムや抑揚)になってしまう現象が発生しました。

また、音声を細かく切って作成したのでシーンが変わる度に声色や読み上げの癖が変わったりします。
国語の授業での輪読を思い出しますね。あんな感じです。

ただ、イントネーションがおかしいだけで、音声そのものが破綻している(ノイズ混じりなど)ということはありません。そのため、プロンプトやモデルを調整すれば、もう少しクリアな日本語が出せるのかな? とは感じています。

もし精度を追求するなら、多少のコストはかかりますが Gemini TTS などを併用した方が、現時点では音質の面で安心感があるかもしれません。

まとめ

MacBook + MLX + Qwen3-TTS + MCP + Remotion という構成で、完全ローカル(かつ低コスト)な動画自動生成の基盤を作ることができました。

ローカルLLMの進化は速く、これからどんどん使いやすい環境になっていくので、活用していきたいですね。

Discussion