AI Navigate

Ollama、Qwen3-TTS、translategemma を用いて動画の音声を再作成するツール

Reddit r/LocalLLaMA / 2026/3/19

💬 オピニオンTools & Practical Usage

要点

  • Voicer は、Ollama、translategemma、そして Qwen3-TTS を統合して音声をローカルでクローンすることで、動画の翻訳とボイスオーバーを自動化するオープンソースのデスクトップツールです。
  • translategemma:27b を用いて字幕をクリーンアップし、テキストを適応させ、ターゲット言語へ翻訳し、ナレーション用に再度クリーンアップした後、Qwen3-TTS により参照声を模倣する音声を生成します。
  • このプロジェクトはローカルで動作します(Ollama または LM Studio 経由)、文単位のバッチ処理をサポートし、強勢を制御するためのカスタム発音辞書を含みます。
  • 元々個人用に作られ、他の人が CLI 作業をする必要がないよう、ユーザーフレンドリーなデスクトップアプリとしてラップされています。自動化とパイプライン用のオプション CLI も用意されています。
\"A

https://preview.redd.it/h1thbwyh0vpg1.png?width=780&format=png&auto=webp&s=ed003920197dad29320430777da1581a1d628f01

みなさん、こんにちは、

この形式は Reddit には適していないかもしれません。これは私のブログスタイルで、もしかしたら別のポータルに投稿すべきだったのかもしれません。分からない

それでは、物語の理由から始めましょう:

約2年前、ローカルモデルを用いて World of Warcraft の 19,784 件のクエストを音声クローンを使ってロシア語に翻訳しました。最近、YouTube を再開し、プログラミングについてのストリームのハイライトを投稿し始めました。実験しているうちに、OpenClaw についての Fireship の動画を別の声で再ボイスしたところ、そのアイデアがより大きなものへと発展しました——デジタルアバターと声の置換です。

そこで考え始めました…

はい、英語の動画は問題なく観られます。でも私はローカライズされたボイスオーバーのほうが好みです(Veritasium のオリジナルより Vert Dider のように)。そして、自分でこれをやってみようと思ったのです?

そう、手動でやるには面倒だからです

その代わり、約15分で完了するはずのプロセスを自動化しました… しかし、それを構築するツールに何時間も費やしました。典型的なプログラマーの思考です。

この投稿は、Reddit のロシア語代替サイトである Habr への私の投稿の翻訳です(元の投稿へのリンク)。どうせ英語の部分はお詫びします。

最終結果

Voicer (open-source): 音声をクローンして翻訳テキストを読み上げるボイスオーバーを自動化するツール。

元々は自分のために作りましたが、他の人が CLI を使わなくても済むように、デスクトップアプリにまとめました。

ローカルで実行され、Ollama(あるいは LM Studio など他のものに適用可能)で動作します。

What It Does

  • デスクトップアプリ(そう、Python)
  • Ollama との統合
  • 1 つのモデルを使用して(私は translategemma:27b)を使って:
    • 未加工の字幕を整える
    • テキストを適合させる
    • 目的の言語に翻訳する
    • ナレーション用にもう一度クリーンアップ/適合させる
  • 別のモデル(Qwen3-TTS)を使用して:
    • 翻訳テキストから発声を生成
    • 参照声を模倣
  • 文ごとのバッチ処理
  • 発音辞書のカスタム(ストレス制御)
  • オプションの CLI(自動化 / エージェント / パイプライン用)

仕組み(簡易パイプライン)

  1. 字幕を抽出

YouTube からキャプションをダウンロード(例: downsub など)

https://preview.redd.it/0jpjuvrivupg1.png?width=767&format=png&auto=webp&s=be5fcae7258c148a94f2e258a19531575be23a43

  1. テキストをクリーンにする

https://preview.redd.it/pc8p8nmjvupg1.png?width=780&format=png&auto=webp&s=3729a24b1428a7666301033d9bc81c8007624002

字幕は乱れている — 重複、断片的な表現など

次のいずれかを行えます:

  • 手動でクリーンにする
  • GPT を使う
  • あるいは(私のように)ローカルモデルを使う
  1. 3段階翻訳パイプライン

私は 3 段階のプロンプト手法を用いました:

壊れた英語を整える

You are a text editor working with YouTube transcripts. Clean the following transcript while preserving the original meaning. Rules: - Merge broken sentences caused by subtitle line breaks - Remove duplicated words or fragments - Fix punctuation - Keep the original wording as much as possible - Do not summarize or shorten the text - Do not add commentary Output only the cleaned English transcript. Transcript: 

丁寧に翻訳してください

You are an expert translator and technical writer specializing in programming and software engineering content. Your task is to translate the following English transcript into natural Russian suitable for a YouTube tech video narration. Important: This is a spoken video transcript. Guidelines: 1. Preserve the meaning and technical information. 2. Do NOT translate literally. 3. Rewrite sentences so they sound natural in Russian. 4. Use clear, natural Russian with a slightly conversational tone. 5. Prefer shorter sentences suitable for narration. 6. Keep product names, libraries, commands, companies, and technologies in English. 7. Adapt jokes if necessary so they sound natural in Russian. 8. If a direct translation sounds unnatural, rewrite the sentence while preserving the meaning. 9. Do not add commentary or explanations. Formatting rules: - Output only the Russian translation - Keep paragraph structure - Make the result suitable for voice narration Text to translate: 

自然な話し言葉へ適応

You are editing a Russian translation of a programming YouTube video. Rewrite the text so it sounds more natural and fluid for voice narration. Rules: - Do not change the meaning - Improve readability and flow - Prefer shorter spoken sentences - Make it sound like a developer explaining technology in a YouTube video - Remove awkward phrasing - Keep technical names in English - Do not add explanations or commentary Output only the final Russian narration script. Text: 

プロンプトはシンプルで、華美なものはありません — ただ機能します。

  1. Voice Generation

もちろん、指標を取得できるオプションが必要でしたが、一般には mlflow なしでも動作します。 Mlflow は OpenAI 互換の呼び出しを追跡してトークン経済などを追跡するためのツールです

  • translategemma を使用(Reddit でそれを使うという助言を見つけました)
  • 必要条件:
    • 参照音声(音声サンプル)
    • 対応する参考テキスト
  • 出力: 翻訳されたテキストを話すクローン声

CLI の署名は次のとおりです:

poetry run python src/python/translate_with_gemma.py [input.txt] [-o output.txt] 

あるいは

MLFLOW_TRACKING_URI=http://localhost:5001 poetry run python src/python/translate_with_gemma.py [input.txt] [-o output.txt] 

重要:

  • より良い入力音声 = より良いクローン
  • ノイズもクローンされます
  • 発音を手動で調整できます

例えば:

ステップ 1

https://preview.redd.it/ymtkgogawupg1.png?width=780&format=png&auto=webp&s=f00c7fae927d8d25d4f61bf24e18b34f8ac001a4

ステップ 2

https://preview.redd.it/0ttbq3cbwupg1.png?width=780&format=png&auto=webp&s=bf3150fcbddaa51421fdbf4cd56fc46663ed9e1b

ステップ 3

https://preview.redd.it/m3dc5w3cwupg1.png?width=780&format=png&auto=webp&s=e62848f1be86cf9e081ecd7252fa79a1c55e9eac

そして違い

プロンプトの主な目的は、YouTube の標準的な話し方モードで使用されない反復的な作業を削減し、冗長な構文を排除することです

いくつかの観察

  • 大規模モデル(27B)は遅い — 小型のほうが実用的
  • バッチサイズは重要 — 大きすぎると生成中に幻覚が出やすい
  • モデルを再読み込みするほうが長時間の実行より良い場合がある
  • macOS では:
    • metal-attention は存在しますが扱いにくく、私も aule-attention を適用してみましたが、Qwen3-tts とはうまく動作しませんでした。必要であればコードを共有します
  • 声のクローン化:
    • クリーンな音声で最も良く機能
    • アクセントの癖が増幅される(リンクをコメントに添付します)

so 2 minutes before it's done (all my dotfiles ofc here http://github.com/the-homeless-god/dotfiles

最初の結果は完成しました。最近の動画の私の声を使って FireShip をロシア語にボイスオーバーしました

そしてもちろん参照テキストもきちんと用意しました

Logseq 知識ベース

後で Python アプリ、GitHub Actions、その他のビルド関連のローカル Ollama 作業を終えました

たくさんの蛇とパイソン

そして完成時にはパイプラインのデバッグだけを行う

https://preview.redd.it/x20w17uzwupg1.png?width=780&format=png&auto=webp&s=ce066e016ee9208812220ce31d0beff8eaf38a04

Linuxイメージにはいくつかの問題が発生していますが、他の人はPRを通じて容易に貢献できると思います

CI/CD はタグで成果物を出します

https://preview.redd.it/t9ak5zy4xupg1.png?width=780&format=png&auto=webp&s=9f3942a8165485f2f03af5273d175e31a96eff66

バイナリの検証をどう解決すべきかアイデアはありませんが、App Store に公開するのはどうでしょうか?どう思いますか?

https://preview.redd.it/vq16kbn7xupg1.png?width=481&format=png&auto=webp&s=3875b4df36bb0fe05e5d98e5e612b896aa163b5a

デスクトップ機能

バイナリからのローカル実行は翻訳とともにうまく動作します

ただし、Qwen3-tts を呼び出せるようにするには、Package Contents の中にファイルを配置して実行する必要があります。これはローカル Ollama に接続しているだけです

  • 翻訳 + 音声、または音声のみモード
  • 言語選択
  • バッチ処理とトークン制御
  • モデル選択(翻訳 + TTS)
  • 参照オーディオファイルの選択
  • ログ
  • プロンプトエディタ
  • 発音辞書
  • 出力フォルダの制御
  • 複数ウィンドウの出力ビュー

https://preview.redd.it/n9sjen6exupg1.png?width=780&format=png&auto=webp&s=381dae851703775f67330ecf1cd48d02cb8f2d1d

主な目標:
再ボイス動画を迅速かつ再現性の高い状態にする

二次目標:
最終的に以下に接続する:

  • OpenClaw
  • n8n パイプライン
  • 自動化されたコンテンツワークフロー

将来のアイデア

  • パイプラインによる自動吹き替え動画
  • 電話対応/予約を処理するAIエージェント
  • アニメの再ボイス化(本気です)
  • デジタルアバター

ノート

  • 少しごちゃごちゃしています(はい、Python です)
  • 素早く作られましたが、“本番環境向け完全版”ではありません
  • オープンソース — PR歓迎
  • 用途は自由です(商業利用も可)

https://preview.redd.it/9kywz29fxupg1.png?width=780&format=png&auto=webp&s=c4314bb75b85fc2b4491662da8792edd4f3c7ffc

実験のアイデアがあればコメントしてください。最後まで読んでくれたらありがとう。次回このような投稿をしてもよいか教えてください

GitHub: https://github.com/the-homeless-god/voicer

投稿者 /u/The_Homeless_God
[リンク] [コメント]