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

Merge: upstreamからマージ #46

Merged
merged 40 commits into from
Mar 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
907e237
Fix: 必要なセットアップが行われていなかったのを修正 (#1882)
sevenc-nanashi Feb 28, 2024
5184f03
[Docs] READMEにworkflow_dispatchを使ったビルド方法を追加 (#1877)
Hiroshiba Feb 29, 2024
cc2bceb
ショートカットキーとしてCommandキーを使えるようにする (#1865)
Hiroshiba Feb 29, 2024
cd9bdc8
[refactor] VueRouterの依存を失くす (#1875)
Hiroshiba Feb 29, 2024
9aa10cb
Add: 無声化したものがdisabledになっている理由の表示 (#1885)
tsym77yoshi Mar 2, 2024
344ae89
Fix: `startTime === 0`のフレーズでピッチがレンダリングされないのを修正 (#1894)
sigprogramming Mar 3, 2024
b86cad8
音域補正用のパラメーターを増やしつつ、開発時のみの機能に (#1902)
Hiroshiba Mar 6, 2024
36fb7f2
[refactor] SET_SINGER内のawait SETUP_SINGERを待機しないようにする (#1891)
Hiroshiba Mar 6, 2024
be6e005
情報ファイルに関するサードパーティ開発者向けドキュメント (#1858)
nmori Mar 6, 2024
45a2884
[release-0.17] to 0.17.0 (#1913)
Hiroshiba Mar 6, 2024
b9c093e
[release-0.17] upload_artifactの判定フラグが間違えているので修正 (#1914)
Hiroshiba Mar 6, 2024
673e3bc
undo/redo時にノートの選択が解除されないのを修正 (#1916)
sigprogramming Mar 7, 2024
06bed9d
音量域調整機能 (#1901)
Hiroshiba Mar 7, 2024
7252979
音域・音量域調整機能を開発環境じゃなくても使えるようにする (#1918)
Hiroshiba Mar 7, 2024
49a5ce9
「音量域調整」を「声量調整」に変更し、使い方も少し記述 (#1920)
Hiroshiba Mar 8, 2024
5be7173
[release-0.17] mainブランチをrelease-0.17にマージ (#1921)
Hiroshiba Mar 8, 2024
986a1a6
Merge branch 'release-0.17' into メインブランチマージ
Hiroshiba Mar 8, 2024
a7fd929
[release-0.17] mainブランチをrelease-0.17にマージ(squash mergeしてしまった) (#1922)
Hiroshiba Mar 8, 2024
6a98b2c
[release-0.17] to 0.17.1 (#1923)
Hiroshiba Mar 9, 2024
39b93bc
merge 0.17.1 (#1924)
Hiroshiba Mar 9, 2024
2e20854
[release-0.17] hotfix: プロジェクトファイル読み込みと声量・音域パラメータの初期化バグ修正 (#1927)
Hiroshiba Mar 9, 2024
2178b09
[release-0.17] to 0.17.2 (#1929)
Hiroshiba Mar 9, 2024
e7bf035
[release-0.17] 0.17.2の更新履歴の誤字修正 (#1930)
Hiroshiba Mar 10, 2024
6ef995b
merge 0.17.2 (#1931)
Hiroshiba Mar 10, 2024
de3913a
ソング:leftLocatorPositionとrightLocatorPositionが使われていないので削除 (#1925)
Hiroshiba Mar 12, 2024
bb8aca8
ソング:矩形選択を追加 (#1911)
sevenc-nanashi Mar 13, 2024
f5053ba
#1864 ノートのエラー時にツールチップ表示 (#1893)
romot-co Mar 16, 2024
102d8a9
ソング:レンダリング順を改善 (#1909)
sevenc-nanashi Mar 18, 2024
1790938
singing.tsのsearchPhrasesをリファクタリング (#1850)
weweweok Mar 18, 2024
05926fb
feat: 書き出し先を固定を有効にしたときに書き出し先が未選択の場合は自動的にダイアログを表示する (#1881)
sabonerune Mar 20, 2024
10e5b64
#1818 ソング:MIDIトラックを選択できるようにする (#1892)
romot-co Mar 20, 2024
125a5e8
Add: Ctrl+Shift+ドラッグで追加選択できるように (#1934)
sevenc-nanashi Mar 20, 2024
86d2e8e
ソング: USTファイルのインポート機能の追加 (#1933)
romot-co Mar 20, 2024
7096c46
#1877 ソング: 編集メニューの追加とノートのコピー&ペーストの実装 (#1903)
romot-co Mar 22, 2024
306f115
ピッチ表示機能を開発版のみ機能から実験的機能に (#1948)
Hiroshiba Mar 22, 2024
0c29f97
バージョン0.18.0に向けてデザインを少し調整 (#1949)
Hiroshiba Mar 23, 2024
7472f9c
[release-0.18] to 0.18.0 (#1950)
Hiroshiba Mar 23, 2024
0d96fa8
[release-0.18] 0.18.0にエンジンコントリビュータも追加 (#1951)
Hiroshiba Mar 23, 2024
55e6f09
Merge: main -> buffer/2024-03-24
sevenc-nanashi Mar 24, 2024
7d94c31
buffer/2024-03-24:上流に合わせる (#47)
sevenc-nanashi Mar 28, 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
14 changes: 7 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ on:

env:
VOICEVOX_ENGINE_REPO_URL: "https://github.com/VOICEVOX/voicevox_engine"
VOICEVOX_ENGINE_VERSION: 0.16.0
VOICEVOX_RESOURCE_VERSION: 0.16.0
VOICEVOX_ENGINE_VERSION: 0.18.0
VOICEVOX_RESOURCE_VERSION: 0.18.0
VOICEVOX_EDITOR_VERSION:
|- # releaseタグ名か、workflow_dispatchでのバージョン名か、999.999.999-developが入る
${{ github.event.release.tag_name || github.event.inputs.version || '999.999.999-develop' }}
Expand Down Expand Up @@ -316,7 +316,7 @@ jobs:
rm $name.tar

- name: Upload Linux tar.gz (without nvidia) to Artifacts
if: startsWith(matrix.artifact_name, 'linux-') && !contains(matrix.artifact_name, 'nvidia') && github.event.inputs.upload_artifact
if: startsWith(matrix.artifact_name, 'linux-') && !contains(matrix.artifact_name, 'nvidia') && github.event.inputs.upload_artifact == 'true'
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact_name }}-targz
Expand Down Expand Up @@ -346,7 +346,7 @@ jobs:
7z rn $name.zip prepackage/ VOICEVOX/

- name: Upload Windows & Mac zip (without nvidia) to Artifacts
if: (startsWith(matrix.artifact_name, 'windows-') || startsWith(matrix.artifact_name, 'macos-')) && !contains(matrix.artifact_name, 'nvidia') && github.event.inputs.upload_artifact
if: (startsWith(matrix.artifact_name, 'windows-') || startsWith(matrix.artifact_name, 'macos-')) && !contains(matrix.artifact_name, 'nvidia') && github.event.inputs.upload_artifact == 'true'
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact_name }}-zip
Expand Down Expand Up @@ -435,7 +435,7 @@ jobs:
done

- name: Upload Linux AppImage split to Artifacts
if: endsWith(matrix.installer_artifact_name, '-appimage') && github.event.inputs.upload_artifact
if: endsWith(matrix.installer_artifact_name, '-appimage') && github.event.inputs.upload_artifact == 'true'
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.installer_artifact_name }}-release
Expand All @@ -453,7 +453,7 @@ jobs:
target_commitish: ${{ github.sha }}

- name: Upload macOS dmg to Artifacts
if: endsWith(matrix.installer_artifact_name, '-dmg') && github.event.inputs.upload_artifact
if: endsWith(matrix.installer_artifact_name, '-dmg') && github.event.inputs.upload_artifact == 'true'
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.installer_artifact_name }}-release
Expand All @@ -471,7 +471,7 @@ jobs:
target_commitish: ${{ github.sha }}

- name: Upload Windows NSIS Web to Artifacts
if: endsWith(matrix.installer_artifact_name, '-nsis-web') && github.event.inputs.upload_artifact
if: endsWith(matrix.installer_artifact_name, '-nsis-web') && github.event.inputs.upload_artifact == 'true'
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.installer_artifact_name }}-release
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ npm run electron:serve
npm run browser:serve
```

また、main ブランチのビルド結果がこちらにデプロイされています <https://voicevox-browser-dev.netlify.app/#/talk>
また、main ブランチのビルド結果がこちらにデプロイされています <https://voicevox-browser-dev.netlify.app/>
今はローカル PC 上で音声合成エンジンを起動する必要があります。

## ビルド
Expand All @@ -167,6 +167,11 @@ npm run browser:serve
npm run electron:build
```

### Github Actions でビルド

fork したリポジトリで Actions を ON にし、workflow_dispatch で`build.yml`を起動すればビルドできます。
成果物は Release にアップロードされます。

## テスト

### 単体テスト
Expand Down Expand Up @@ -194,7 +199,7 @@ Playwright を使用しているためテストパターンを生成すること
**ブラウザ版を起動している状態で**以下のコマンドを実行してください。

```bash
npx playwright codegen http://localhost:5173/#/talk --viewport-size=800,600
npx playwright codegen http://localhost:5173/ --viewport-size=1024,630
```

詳細は [Playwright ドキュメントの Test generator](https://playwright.dev/docs/codegen-intro) を参照してください。
Expand Down
6 changes: 3 additions & 3 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ dependencies {

// TODO: ちゃんと公開されたらそれに置き換える
implementation urlZipFile(
"voicevoxcore-android_0.15.0-preview.15",
"jp/hiroshiba/voicevoxcore/voicevoxcore-android/0.15.0-preview.15/voicevoxcore-android-0.15.0-preview.15.aar",
"https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.0-preview.15/java_packages.zip"
"voicevoxcore-android_0.15.0-preview.16",
"jp/hiroshiba/voicevoxcore/voicevoxcore-android/0.15.0-preview.16/voicevoxcore-android-0.15.0-preview.16.aar",
"https://github.com/VOICEVOX/voicevox_core/releases/download/0.15.0-preview.16/java_packages.zip"
)

// https://mvnrepository.com/artifact/com.google.code.gson/gson
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ class CorePlugin : Plugin() {
return
}
vvms.sortWith(compareBy {
it.name.split(".")[0].length
it.name.split(".")[0].toInt()
})
voiceModels = vvms.map {
VoiceModel(it.absolutePath)
Expand All @@ -102,6 +102,7 @@ class CorePlugin : Plugin() {
tempDir.mkdirs()
Os.setenv("TMPDIR", tempDir.absolutePath, true)

Log.i("CorePlugin", "Ready")
call.resolve()
} catch (e: Exception) {
call.reject(e.message)
Expand Down Expand Up @@ -287,6 +288,10 @@ class CorePlugin : Plugin() {

try {
val words = gson.fromJson(wordsJson, Array<UserDict.Word>::class.java).asList()
if (words.isEmpty()) {
call.resolve()
return
}
val userDict = UserDict()
words.forEach { word ->
userDict.addWord(word)
Expand Down
1 change: 0 additions & 1 deletion docs/コードの歩き方.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ TODO
- styles ディレクトリ ・・・ CSS や SCSS などのディレクトリ。
- infrastructures ディレクトリ ・・・ UI 用のコードと UI 以外のコードを跨ぐときに一枚かませたいときのためのコードのディレクトリ。
- openapi ディレクトリ ・・・ エンジンの API を叩くためのコードのディレクトリ。OpenAPI で自動生成される。
- router ディレクトリ ・・・ Vue Router 用のディレクトリ。
- helpers ディレクトリ ・・・ 便利な関数を置くディレクトリ。
- shared ディレクトリ ・・・ UI と Electron 両方から参照されるコードを置くディレクトリ。
- public
Expand Down
82 changes: 82 additions & 0 deletions docs/サードパーティ開発者の方へ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# サードパーティ開発者の方へ

## サードパーティが利用するときの注意

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

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

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

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

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

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

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

* VOICEVOXエンジンがデフォルトで使用するポート番号は、内部で決まっています(例:50021/tcp)。
* 他のアプリケーションが同じポート番号を使用している場合、競合が発生するため別のポートを開きます。
* 最終的に開いたポート番号については、情報ファイルを参照して特定してください。
* 動的に番号が変更されるのは、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",
},
]
}
```

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

* エンジンが起動(もしくは再起動)するタイミングでファイルが生成、更新されます。
* 何らかの理由でファイルの書き込み権が取得できなかった場合には更新されません。(更新のタイミングで他ツールがファイルを開いていた場合など)
* この生成タイミングはファイルバージョン1の実装であり、開発の過程で変更される可能性があります。
3 changes: 2 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@
"tree-kill": "1.2.2",
"uuid": "9.0.0",
"vue": "3.2.45",
"vue-router": "4.0.8",
"vuedraggable": "4.1.0",
"vuex": "4.0.2",
"zod": "3.22.4"
Expand Down
19 changes: 19 additions & 0 deletions public/howtouse.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,25 @@ VOICEVOX では、歌声合成機能がプロトタイプ版として提供さ

ソング機能は鋭意制作中です。フィードバックをお待ちしています。

### 音域調整

デフォルトの設定だと、声が低いキャラクターがうまく歌えないことがあります。
そのような場合は「音域調整」を`-12`や`-24`などにすることで、音域を低めに合わせることができます。

将来的にこの値は自動設定される予定です。

### 声量調整

デフォルトの設定だと、キャラクターによっては声が少しかすれてしまうことがあります。
そのような場合は「声量調整」を`5`や`10`などにすることで、発声をより強くすることができます。

将来的にこの値は自動設定される予定です。

### ソング機能のよくある質問

Q. 赤くなって声が再生されない
A. なにかしらのエラー状態を示しています。現在のバージョンでは、1つのノート(音符)につき日本語1文字分のみ入力できます。またノートが重なっていてもエラーとなります。

## オプション

「設定」の「オプション」でいろいろな設定を変更することができます。
Expand Down
68 changes: 68 additions & 0 deletions public/updateInfos.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,72 @@
[
{
"version": "0.18.0",
"descriptions": [
"キャラクター「WhiteCUL」「後鬼」「No.7」のハミングを追加",
"キャラクター「ちび式じい」「櫻歌ミコ」「小夜/SAYO」「ナースロボ_タイプT」のハミングを追加",
"キャラクター「四国めたん」「ずんだもん」「波音リツ」のハミングスタイルを追加",
"ソング:ピッチ表示機能",
"ソング:矩形選択を追加",
"ソング:ノートのエラー時にツールチップ表示",
"デフォルトで全てのCPUを使うことがあるバグを修正",
"ソング:MIDIインポート時にトラックを選択可能に",
"ソング:USTファイルのインポート機能",
"ソング:コピー&ペースト"
],
"contributors": [
"Hiroshiba",
"romot-co",
"sabonerune",
"sevenc-nanashi",
"sigprogramming",
"siketyan",
"tarepan",
"tomoish",
"weweweok"
]
},
{
"version": "0.17.2",
"descriptions": [
"プロジェクト読み込み時に声量調整などが反映されない問題を解決"
],
"contributors": ["Hiroshiba"]
},
{
"version": "0.17.1",
"descriptions": [
"キャラクター「玄野武宏」「白上虎太郎」「青山龍星」「冥鳴ひまり」「九州そら」のハミングを追加",
"キャラクター「もち子さん」「剣崎雌雄」のハミングを追加",
"音域調整・声量調整機能",
"バグ修正"
],
"contributors": ["Hiroshiba", "sigprogramming"]
},
{
"version": "0.17.0",
"descriptions": [
"サードパーティアプリ向けのランタイム情報ファイルを出力",
"ソング:プロジェクトファイルに保存",
"トーク:連続再生中に裏で音声合成",
"ソング:元に戻す・やり直す機能",
"ソング:ショートカットキー機能",
"開発環境の向上",
"バグ修正"
],
"contributors": [
"cm-ayf",
"Hiroshiba",
"nmori",
"P0ngCh4ng",
"romot-co",
"sabonerune",
"sevenc-nanashi",
"sigprogramming",
"tsym77yoshi",
"weweweok",
"y-chan"
]
},
{
"version": "0.16.1",
"descriptions": ["マルチエンジン稼働時に起動しないバグを修正"],
Expand Down
14 changes: 14 additions & 0 deletions src/backend/common/ConfigManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,20 @@ const migrations: [string, (store: Record<string, unknown>) => unknown][] = [
return config;
},
],
[
">=0.17",
(config) => {
// 書き出し先のディレクトリが空文字の場合書き出し先固定を無効化する
// FIXME: 勝手に書き換えるのは少し不親切なので、ダイアログで書き換えたことを案内する
const savingSetting = config.savingSetting as ConfigType["savingSetting"];
if (
savingSetting.fixedExportEnabled &&
savingSetting.fixedExportDir === ""
) {
savingSetting.fixedExportEnabled = false;
}
},
],
];

export type Metadata = {
Expand Down
5 changes: 2 additions & 3 deletions src/backend/electron/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -364,8 +364,8 @@ let filePathOnMac: string | undefined = undefined;
// create window
async function createWindow() {
const mainWindowState = windowStateKeeper({
defaultWidth: 800,
defaultHeight: 600,
defaultWidth: 1024,
defaultHeight: 630,
});

const currentTheme = configManager.get("currentTheme");
Expand Down Expand Up @@ -470,7 +470,6 @@ async function loadUrl(obj: {
projectFilePath?: string;
}) {
const fragment =
"#/talk" +
`?isMultiEngineOffMode=${obj?.isMultiEngineOffMode ?? false}` +
`&projectFilePath=${obj?.projectFilePath ?? ""}`;
return win.loadURL(`${firstUrl}${fragment}`);
Expand Down
Loading
Loading