voicepeak_api/README.md

138 lines
4.5 KiB
Markdown

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