KSTECHBLOG

自分の分身AIと音声会話できるアプリ②

Windowsへfaster-whisperの実行環境を構築し、音声ファイルを日本語のテキストへ変換するまでの手順を紹介します。

はじめに

前回の記事では、音声で会話できる分身AIを開発しようと思ったきっかけや、使用する技術、アプリの全体構成を紹介しました。

今回は、音声認識を行うWhisper、返答を生成するLM Studio、音声合成を行うGPT-SoVITSを自宅PCへ導入し、それぞれが単体で動作する環境を構築します。

実行環境

今回の環境構築と動作確認には、次のWindows PCを使用します。

項目スペック
OSWindows 11
CPUAMD Ryzen 7 7800X3D(8コア、4.20 GHz)
メモリ32 GB
GPUNVIDIA GeForce RTX 5080(16 GB)
内蔵GPUAMD Radeon Graphics(486 MB)
システムの種類64ビット オペレーティングシステム、x64ベースプロセッサ

WhisperとGPT-SoVITSは、NVIDIA製GPUのCUDAを利用することで処理時間を短縮できます。ただし、Whisperの最初の動作確認では、環境構築をシンプルにするためCPUを使用します。

※なお、ここに記載したスペックは今回使用したPCの構成であり、同じ構成でなければ動作しないという意味ではありませんのでご了承ください。

Whisperの環境構築

音声をテキストへ変換するために、WhisperをCTranslate2で高速に実行できるfaster-whisperを使用します。ここでは、Pythonのインストールからfaster-whisperとマイク入力に必要なライブラリの導入までを進めます。

Pythonをインストールする

Python公式サイトのWindows向けダウンロードページからPythonをダウンロードし、インストールします。

インストール後にPowerShellを開き、次のコマンドでPythonのバージョンを確認します。

py --version
Python 3.13.14

プロジェクトと仮想環境を作成する

プロジェクトごとにPythonパッケージを分けて管理するため、プロジェクトフォルダ内に仮想環境を作成します。PowerShellで、プロジェクトを作成したい場所へ移動してから次のコマンドを実行します。

mkdir voice-ai
cd voice-ai
py -m venv .venv

作成した仮想環境を有効化します。

.\.venv\Scripts\Activate.ps1

有効化に成功すると、PowerShellのプロンプトの先頭に(.venv)と表示されます。

(.venv) PS C:\path\to\voice-ai>

スクリプトを実行できない場合の対処

初めて仮想環境を有効化した際、今回の環境ではPowerShellの実行ポリシーによって次のエラーが発生しました。

.\.venv\Scripts\Activate.ps1 : このシステムではスクリプトの実行が無効になっているため、
ファイル .venv\Scripts\Activate.ps1 を読み込むことができません。
CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
FullyQualifiedErrorId : UnauthorizedAccess

現在のユーザーに対する実行ポリシーをRemoteSignedへ変更します。

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

確認を求められた場合は、表示内容を確認してから変更を許可します。その後、あらためて仮想環境を有効化します。

.\.venv\Scripts\Activate.ps1

CurrentUserで変更した実行ポリシーは、このプロジェクトだけでなく現在のWindowsユーザーに適用されます。組織で管理されているPCを使用している場合は、自己判断で変更せず管理者へ確認してください。実行ポリシーの詳細はMicrosoft Learnで確認できます。

faster-whisperをインストールする

仮想環境が有効になっていることを確認し、最初にpipを更新します。

python -m pip install --upgrade pip

続いて、faster-whisperをインストールします。

pip install faster-whisper

このコマンドは、faster-whisper公式リポジトリで案内されているインストール方法です。

マイク入力用ライブラリをインストールする

マイクから音声を取得してファイルとして扱うため、sounddevicescipyもインストールします。

ライブラリ今回の役割
sounddevicePCのマイクから音声を録音し、音声データとして取得する
scipy録音した音声データをWhisperへ渡すWAVファイルとして保存する
pip install sounddevice scipy

インストール結果を確認する

インストール済みのパッケージは、次のコマンドで確認できます。

pip list

今回の環境で確認した主要なバージョンは次のとおりです。

パッケージバージョン
Python3.13.14
pip26.1.2
faster-whisper1.2.1
sounddevice0.5.5
scipy1.18.0

以上で、Whisperを実行するためのPython環境と、マイク入力に必要なライブラリの準備は完了です。

faster-whisperで文字起こしする

続いて、マイクから録音した音声をfaster-whisperで文字起こしできるか確認します。

テスト用の音声を準備する

10秒程度の長さで、次の文章を読み上げた音声を録音します。

こんにちは。これはWhisperのテストです。

録音した音声はsample.wavという名前で、プロジェクトフォルダの直下へ保存します。

voice-ai/
├── .venv/
├── main.py
└── sample.wav

文字起こし用のプログラムを作成する

プロジェクトフォルダの直下にmain.pyを作成し、次のコードを記述します。

from faster_whisper import WhisperModel

print("モデルを読み込み中...")

model = WhisperModel(
    "base",
    device="cpu",
    compute_type="int8",
)

print("文字起こし開始")

segments, info = model.transcribe(
    "sample.wav",
    language="ja",
)

print("===== 結果 =====")

for segment in segments:
    print(segment.text)

今回指定した主な設定は次のとおりです。

設定内容
モデルbase動作確認用に使用するWhisperモデル
実行デバイスcpuCPUを使って文字起こしを実行する
計算精度int88ビット整数で計算する
言語ja入力音声を日本語として認識する

この段階では、まず環境が正しく構築できているか確認するため、GPUではなくCPUを使用します。

プログラムを実行する

仮想環境が有効になっていることと、main.pysample.wavが同じフォルダにあることを確認して、次のコマンドを実行します。

py main.py

今回の環境では、次の結果が表示されました。

文字起こし開始
===== 結果 =====
こんにちはこれはウィスパーのテストです

音声ファイルを読み込んで日本語のテキストを出力できるところまで確認できました。

次回予告

次回の記事では、WindowsへLM Studioをインストールし、GemmaのダウンロードからローカルAPIサーバーの起動、Pythonを使ったAPIの疎通確認までを紹介します。

「自分の分身AIと音声会話できるアプリ」全6回

  1. 開発のきっかけ・全体構成
  2. Whisperの環境構築(この記事)
  3. LM Studioの導入
  4. GPT-SoVITSで自分の声を再現
  5. Cloudflare Tunnelの設定
  6. persona.mdで性格・話し方を設定
トップページへ戻る