138 lines
4.5 KiB
Markdown
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
|
|
```
|