VOICEPEAKのボイス生成をweb apiとして使うためのマイクロサービス
app | ||
config | ||
scripts | ||
services | ||
_.env | ||
.gitattributes | ||
.gitignore | ||
README.md | ||
requirements.txt | ||
wsgi.py |
VOICEPEAK API Service
VOICEPEAKを使用して音声を生成し、生成された音声データを提供するAPIサーバーです。 PythonのFlaskフレームワークを使用し、Ubuntu上で動作します。
前提条件
- Linux Debian系OS
- 動作確認済み: Ubuntu 24.04 LTS
- ライセンスがアクティベートされているVOICEPEAKがインストール済み
セットアップ手順
1. リポジトリのクローン
git clone https://ntki-personal-web.access.ly/ntki72/voicepeak_api.git
cd voicepeak_api
2. Pythonの仮想環境を作成
仮想環境を作成し、必要なパッケージをインストールします。
# 仮想環境の作成
python3 -m venv venv
# 仮想環境のアクティベート
source venv/bin/activate
# 必要なパッケージのインストール
pip install -r requirements.txt
3. 環境変数の設定
.env
ファイルを作成し、必要な環境変数を設定します。
cp _.env .env
.env
ファイルを開き、以下の変数を適切に設定します:
VOICEPEAK_PATH
: VOICEPEAKの実行ファイルへのパスPROJECT_PATH
: プロジェクトのルートディレクトリへのパスERROR_WEBHOOK_URL
: エラー通知用のDiscord WebhookのURL
4. Systemdサービスの設定
注意: 以前にこのサービスをインストールしたことがある場合は、まず「systemdサービスの削除」セクションの手順に従って古い設定を削除することをお勧めします。
_voicepeak-api.service
ファイルをコピーし、必要に応じて編集します。
cp _voicepeak-api.service voicepeak-api.service
voicepeak-api.service
ファイルを開き、User
、Group
、WorkingDirectory
、Environment
などのパラメータを適切に設定します。
設定が完了したら、システムのsystemdサービスディレクトリにシンボリックリンクを作成します。
sudo ln -s /path/to/your/project/services/voicepeak-api.service /etc/systemd/system/voicepeak-api.service
5. サービスのリロードと起動
systemdに新しいサービスを認識させ、サービスを起動します。
# systemdデーモンのリロード
sudo systemctl daemon-reload
# サービスの開始
sudo systemctl start voicepeak-api.service
# サービスの有効化(再起動後も自動で起動するようにする)
sudo systemctl enable voicepeak-api.service
6. 起動確認
サービスが正常に起動しているか確認します。
sudo systemctl status voicepeak-api.service
使用方法
サービスが正常に起動している場合、以下のようにリクエストを送信して音声を生成できます。
音声生成
curl -X POST http://localhost:5000/generate_voice \
-H "Content-Type: application/json" \
-d '{
"text": "こんにちは、テストです。",
"narrator": "SEKAI",
"emotion_happy": "0",
"emotion_sad": "0",
"emotion_angry": "0",
"emotion_fun": "0",
"pitch": "1"
}' \
--output test_output.wav
エラーテスト
意図的にエラーを発生させてエラーハンドリングをテストするには:
curl http://localhost:5000/test_error
トラブルシューティング
エラーが発生した場合、アプリケーションログを確認してください。また、設定したDiscord Webhookにもエラーメッセージが送信されていることを確認してください。
開発モードでの実行
./scripts/run_dev.sh
systemdサービスの削除
プロジェクトを削除する場合や、サービスの設定をリセットする必要がある場合は、以下の手順でsystemdサービスを削除できます。
- サービスを停止し、無効化します:
sudo systemctl stop voicepeak-api.service
sudo systemctl disable voicepeak-api.service
- サービスファイルを systemd のディレクトリから削除します:
sudo rm /etc/systemd/system/voicepeak-api.service
- シンボリックリンクを削除した場合、プロジェクトディレクトリ内のサービスファイルも削除できます:
rm /path/to/your/project/services/voicepeak-api.service
- systemd の設定をリロードします:
sudo systemctl daemon-reload
- systemd の設定から完全に削除されたことを確認します:
sudo systemctl reset-failed