Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

情報ファイルに関するサードパーティ開発者向けドキュメント #1858

Merged
merged 21 commits into from
Mar 6, 2024
Merged
Changes from 20 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
0972e5e
未対応エンジン追加時にリストが消える件(#1168)
nmori Feb 5, 2023
cb5552c
lintチェックエラー部分の修正
nmori Feb 5, 2023
00b7673
コードレビューの反映 (ref #1179)
nmori Feb 5, 2023
4b21b85
コードレビュー分の反映② ref #1179
nmori Feb 5, 2023
ad8c1de
Merge branch 'main' of https://github.com/voicevox/voicevox
nmori Feb 9, 2023
6e91471
* コンフリクトの修正
nmori Feb 10, 2023
4e8cde0
Merge branch 'main' of https://github.com/voicevox/voicevox
nmori Feb 11, 2023
3ce28d9
Merge branch 'main' of https://github.com/VOICEVOX/voicevox
nmori Feb 18, 2023
a72f3b7
Merge branch 'main' of https://github.com/VOICEVOX/voicevox
nmori Feb 20, 2023
aac80a5
Merge branch 'main' of https://github.com/VOICEVOX/voicevox
nmori Feb 23, 2023
a37c7a2
Merge branch 'main' of https://github.com/VOICEVOX/voicevox
nmori Jan 26, 2024
e4fadba
Merge branch 'main' of https://github.com/VOICEVOX/voicevox
nmori Feb 14, 2024
a06354a
Merge branch 'main' of https://github.com/voicevox/voicevox
nmori Feb 19, 2024
e6db2ca
ref #1738 の会話にあった「情報ファイルに関するドキュメント」(新規執筆)
nmori Feb 19, 2024
55d6753
markdown lint でエラーが出てた件の修正
nmori Feb 19, 2024
e467829
Update docs/サードパーティ開発者の方へ.md
nmori Feb 24, 2024
18d3e10
フォーマット表記提案サジェストの適用
nmori Feb 24, 2024
08dd0cb
* 表の表記をJSONP内コメント追記に
nmori Feb 24, 2024
477cb83
環境変数の修正
nmori Feb 29, 2024
da7d187
コメントいただいた部分を中心に追記
nmori Mar 2, 2024
6e1ddcf
Update docs/サードパーティ開発者の方へ.md
Hiroshiba Mar 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions docs/サードパーティ開発者の方へ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# サードパーティ開発者の方へ

## サードパーティが利用するときの注意
nmori marked this conversation as resolved.
Show resolved Hide resolved

### VOICEVOXの基本動作について

VOICEVOXアプリケーションは、大まかに分けるとユーザに見えるGUI(フロントエンド部分)と、音声合成を担当するエンジン(バックエンド部分)で構成されています。通常、VOICEVOXのGUIが起動されると、見えない形でエンジンが(マルチエンジンとして登録されている数だけ)順番に立ち上がる仕組みになっています。サードパーティが音声合成機能を使うためには、裏で立ち上がっているエンジンにアクセスする必要があります。

### VOICEVOXへのアクセスについて

VOICEVOXのエンジンを使用するためには、APIを用いる必要があります。特別な理由がない限り、API以外でのアクセスを避けるようにしてください。(例えば、ファイルを直接書き換えるなどの動作は不具合を引き起こす可能性が高くなるほか、VOICEVOXが事前テストで動作確認できてないような望まない動作を引き起こす可能性があります。)

基本的にVOICEVOXで音声を合成するために必要なAPIはすでに用意されていますが、もしAPIで実現できない機能/操作がある場合は、VOIEVOX の Issue ページにてAPIの実装提案を行う事をお勧めします。

### APIのアクセス先について

HTTP経由でAPIにアクセスできます。

* VOICEVOXエンジンがデフォルトで使用するポート番号は、内部で決まっています(例:50021/tcp)。
* 他のアプリケーションがポート番号を使用している場合、競合が発生するため別のポートを開きます。
Hiroshiba marked this conversation as resolved.
Show resolved Hide resolved
* 最終的に開いたポート番号については、情報ファイルを参照して特定してください。
* 動的に番号が変更されるのは、VOICEVOX v0.16以降の機能です。

### ランタイム情報ファイル(以下情報ファイル)について

サードパーティが必要な情報を手に入れるために、「情報ファイル」というものが生成されるようになっています。サードパーティの製作者は、まずはこのファイルを参照してアクセス先を決定してください。

また、VOICEVOX内でエンジンが再起動した場合に、通信ポート番号が変わる可能性があります。サードパーティ側でAPI使用中に突如通信失敗が発生した場合は、このファイルが更新されているか確認するようにしてください。

(なお、古いVOICEVOXではこのファイル生成機能が実装されていません。また、動的にポート番号を決定しないバージョンもあります。下位互換性を保つためには、このファイルがない場合も想定してください)

## 情報ファイルについて

### ファイルの場所

ファイルは下記の場所にあります。

|OS |ファイルパス |
|----------------|-----------------------------------------------------------------------------|
|Windows |C:\Users\(ユーザー名)\AppData\Roaming\voicevox\runtime-info.json |
|MacOS |/Users/(ユーザー名)/Library/Application Support/voicevox/runtime-info.json |

なお、Windows のプロファイル設定次第では、上記ファイルの配置が変更されることがあります。確実に場所を特定するためには、環境変数 ``APPDATA`` を用いて、Roamingフォルダの位置を特定してください。

### ファイルの中身と意味

ファイル自体はJSON形式になっています。構造としては下記のような形になります。

```JSONC
{
//[string] VOICEVOXのバージョン番号
"appVersion": "xxx.yyy.zzz",

//[number] ファイル構造バージョン(仕様変更毎にインクリメントされる)
"formatVersion": 1,

//エンジンデータ(起動している数だけ)
"engineInfos": [
{
//[string] エンジン通称
"name": "engine1",

//[string] APIエンドポイント
"url": "http://127.0.0.1:50021",

//[UUID] エンジン識別用のUUID
"uuid": "00000000-0000-0000-0000-000000000001",
},
{
"name": "engine2",
"url": "http://127.0.0.1:50121",
"uuid": "00000000-0000-0000-0000-000000000002",
},
]
}
```

### 生成されるタイミング

* エンジンが起動(もしくは再起動)するタイミングでファイルが生成、更新されます。
nmori marked this conversation as resolved.
Show resolved Hide resolved
* 何らかの理由でファイルの書き込み権が取得できなかった場合には更新されません。(更新のタイミングで他ツールがファイルを開いていた場合など)
* この生成タイミングはファイルバージョン1の実装であり、開発の過程で変更される可能性があります。
Loading