リアルタイムローカル音声翻訳ツール

AI/ML

概要

本プロジェクト「realtime_translator」は、Pythonで実装されたリアルタイム音声翻訳ツールです。ユーザーのマイク入力から音声をリアルタイムに取得し、Voskのローカル音声認識モデルを活用してテキスト化(Speech-to-Text)を行います。その後、Hugging Face TransformersライブラリのMarianMTなどのローカル翻訳モデルを用いて、指定したターゲット言語へテキストを翻訳します。翻訳結果はTkinterを用いたGUI上に即時表示され、操作性が高く、インターネット不要の完全ローカル処理でプライバシー保護と高速応答を両立しています。モデルの選択や音声入力デバイスの選択もGUIから可能で、多言語のリアルタイム翻訳ニーズに応えるツールです。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 1
  • ウォッチャー数: 3
  • コミット数: 4
  • ファイル数: 10
  • メインの言語: Python

主な特徴

  • マイクからのリアルタイム音声入力に対応
  • Voskのローカル音声認識モデルを使用しインターネット不要
  • Hugging Face TransformersのMarianMT等のローカル翻訳モデルを利用
  • TkinterベースのGUIで認識結果と翻訳結果を即時表示
  • 複数のSTT・MTモデルや音声入力デバイスをGUIで選択可能

技術的なポイント

本ツールの最大の技術的特徴は、インターネット接続を必要とせずに音声認識から機械翻訳までをローカル環境で完結させている点にあります。音声認識にはVoskを採用。VoskはKaldiエンジンベースのオープンソース音声認識ツールで、多言語かつ軽量であり、リアルタイム音声認識に適しています。一般的に音声認識はサーバーへの送信を伴うことが多いですが、本リポジトリはローカルモデルを利用することで、プライバシー保護と通信遅延ゼロを実現しています。

翻訳エンジンはHugging FaceのTransformersライブラリに含まれるMarianMTモデルを中心に利用。MarianMTは多言語間翻訳に強く、PyTorchやTensorFlowベースで動作しやすいローカルモデルです。モデルファイルは事前にダウンロードしておく必要があり、GUI上で切り替え可能な点もユーザビリティに配慮されています。これにより、翻訳対象言語やモデルの更新にも柔軟に対応できます。

GUIはPython標準のTkinterを用いて構築。シンプルながらユーザーが現在の認識結果と翻訳結果をリアルタイムに確認できる画面を提供し、モデル選択やデバイス選択も可能にしています。音声入力はPyAudioなどを介してシステムのマイクを扱い、複数デバイスがある環境でもユーザーが選択できる設計です。

また、アプリケーションの構成はモジュール分割がされており、音声入出力処理(audio_io.py)、設定管理(config.py)、メイン処理(main.py)などに分かれています。これにより拡張やメンテナンスがしやすく、将来的に異なるSTTやMTモデルの追加も容易です。

総じて、低遅延かつプライバシーを重視したリアルタイム音声翻訳の実装例として参考になるほか、PythonベースのGUIアプリケーション構築や音声処理技術の学習用としても価値があります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .idea: IDEの設定ディレクトリ
  • README.md: プロジェクト概要と使い方の説明
  • audio_io.py: 音声の入出力処理を担当(マイクからの音声取得など)
  • config.py: アプリケーションの設定やモデルパス管理
  • main.py: アプリケーションのエントリーポイント、GUI構築と音声認識・翻訳の統合制御

他に、STTやMTモデルの管理用ファイルや、GUI関連の補助ファイルが含まれています。

まとめ

インターネット不要のリアルタイム音声翻訳をPythonで実現した実用的なローカルツール。

リポジトリ情報: