🌐

LM Studioを使ってローカルで多言語翻訳するHTMLツールをつくった

に公開

はじめに

ChatGPTやClaudeなどのLLMサービスを使って翻訳をする機会が増えましたが、いくつかの制限に直面することがあります。

  • 大量の文章を一度に翻訳できない(一度に処理できるトークン数に制限がある)
  • epubファイルに対応していない
  • APIを使うとコストがかかる

これらの問題を解決するために、LM Studioを使ってローカルで動作する多言語翻訳HTMLツールを作成しました。サーバは必要なく、ブラウザで完結するため、手軽に利用できます。

翻訳ツールの画面例

plamoの翻訳に特化したplamo-2-translateが発表されてから、ずっとやりたいと思っていたのですが、なかなか手が回らず、今回ようやく形にすることができました(plamo-2-translateは5GB程度と軽量なので、比較的メモリが少ないマシンでも走る・・・はず)。

まだまだ改善の余地ありで、表示が崩れることが多々ありますが、宜しければお試しください。

私は先日Macbook Pro M4 Max メモリ128GBを購入して、ハッスルしながらgpt-oss-120Bを動かしていて、やっとマシンの性能を活かせるようになってきたので、これからはローカルで色々試していきたいと思っています。

作成したツール

ダウンロード

📦 LLM Translator - Release より最新版をダウンロードしてください。

このツールは、LM Studioのローカルサーバーと連携して、テキストやepubファイルを翻訳するHTMLアプリケーションです。対応言語は使用するLLMモデルに依存します。

主な特徴

  • ローカル環境で完結: LM Studioを使用することで、インターネット接続なしで翻訳が可能
  • 柔軟な言語対応: 使用するLLMモデルが対応している言語間での翻訳が可能
  • epub対応: epubファイルをアップロードして章ごとに翻訳
  • 大量テキスト対応: チャンクごとに分割して処理するため、長文の翻訳も可能
  • コスト削減: ローカルLLMを使用するため、APIコストが発生しない

使い方

1. LM Studioのセットアップ

  1. LM Studioをダウンロード・インストール
  2. 翻訳したい言語に対応したLLMモデルをダウンロード
    • 日本語対応モデル例:Qwen2.5、Llama 3-ELYZA-JP-8Bなど
    • モデルによって対応言語が異なるため、用途に合わせて選択
  3. LM Studioでローカルサーバーを起動(デフォルト: http://localhost:1234

2. 翻訳ツールの使用

  1. 📦 LLM Translator - Release から最新版のZIPファイルをダウンロード
  2. ZIPファイルを解凍
  3. ブラウザでtranslator.htmlを開く
  4. テキストを入力するか、epubファイルをアップロード
  5. 翻訳先言語を選択
  6. 「翻訳する」ボタンをクリックして翻訳開始

詳細な設定方法や使用方法については、README.mdをご参照ください。

チャンクサイズをデフォルト1000にしていますが、ここを増減させると翻訳の粒度が変わります。
一括で大きく翻訳したい場合は大きく、細かく翻訳したい場合は小さくしてください
(ただし訳の精度や、表示の崩などに影響する可能性があります)。
どの程度が良いかは、使用するモデルや翻訳元の文章によって異なるため、試行錯誤が必要です。

注意事項

このツールは複数のepubファイルで動作確認を行っていますが、完全ではありません。epubの構造によっては、HTMLの表示が崩れる場合があります。特に以下のような場合に問題が発生する可能性があります:

  • 複雑なレイアウトを持つepubファイル
  • 特殊なCSSスタイルが適用されているepub
  • 画像が多く含まれるepub

技術的な詳細

  • フロントエンド: 純粋なHTML/JavaScript(フレームワーク不使用)
  • epub処理: JSZipとXMLパーサーを使用してepubを解析
  • API連携: LM StudioのOpenAI互換APIエンドポイントを使用
  • 翻訳処理: チャンク分割により大量テキストにも対応

おわりに

このツールは個人的なニーズから生まれたものですが、同じような課題を抱えている方の役に立てば幸いです。

改善点や機能追加のアイデアがありましたら、ぜひGitHubのIssueやコメントでお知らせください。特に以下の点についてフィードバックをいただけると嬉しいです:

  • epubの表示崩れを改善する方法
  • 翻訳品質を向上させるプロンプトの工夫
  • UIの改善案
  • その他の便利な機能のアイデア

本当はやりたかったこと

  • 画像を適切に挿入
  • 目次と該当部分へのリンク

皆様のご意見をお待ちしております!

GitHubで編集を提案

Discussion