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

キャラクターのいない音声合成ライブラリ(VOICEVOX Nemo)を作る #30

Closed
34 of 38 tasks
Hiroshiba opened this issue May 5, 2023 · 6 comments
Closed
34 of 38 tasks
Labels
優先度:中 要議論 実行する前に議論が必要そうなもの

Comments

@Hiroshiba
Copy link
Member

Hiroshiba commented May 5, 2023

VOICEVOX Nemoを作成するためのメモ用のIssueです。
とりあえず最初のバージョンが提供され始めればclose。

設計

エディタとしては提供せず、vvppをダウンロードしてVOICEVOX本体に導入する構成。
コアのデプロイ先はVOICEVOX/voicevox_nemo_core、ビルドは秘匿リポジトリで。
エンジンのデプロイ先はVOICEVOX/voicevox_nemo_engine、ビルドも同一リポジトリで。

タスク表

  • リソースを用意する
    • アーキテクチャを考える
  • コアをビルドする
    • アーキテクチャを考える
  • エンジンをビルドする
    • アーキテクチャを考える
  • ホームページを作る

リソースのアーキテクチャ

VOICEVOX Nemo用のリポジトリ(voicevox_nemo_resource)を作る

  • リポジトリ上でNemo用のディレクトリを作る
    • forkしてリソースを置き換える形にするとコンフリクトが毎回発生してしまうため

コアのビルドのアーキテクチャ

概要

製品版はprivateリポジトリでビルドし、公開リポジトリにデプロイする。
リポジトリ名だけvoicevox_nemo_coreにしてファイル名などはvoicevox_coreのままにする。
公開リポジトリ上で製品ビルドが可能になったら名称を全てvoicevox_nemo_coreとする。
名称がvoicevox_coreのときはプレビュー版とし、READMEでもそう案内する。

詳細

  • 製品版は通常のVOICEVOXと同様にprivateリポジトリ側でビルドする
  • 名称はvoicevox_nemo_coreが望ましい
    • リポジトリ名、dll、zip名、python wheelなど
    • 案内する名称も変更すべき
      • READMEでの案内、downloaderがダウンロードする先
  • リポジトリ名だけはvoicevox_nemo_coreにし、それ以外はvoicevox_coreとしたい
    • 一旦作ってデプロイしてみるところまではなるべく簡単にしておきたい
    • 名称変更は影響範囲が広くて追従するたびにおそらくテストが落ちまくる
    • ので、気軽にテストできるよう公開リポジトリでのビルドが可能になるまでは名前変更を避けたい
    • また、将来的にVVMが完成すれば通常のVOICEVOXコアと全く同じになるかもしれないのでちょっと後回しにしておきたい

エンジンのビルドのアーキテクチャ

コアと同様。
manifestファイルだけはVOICEVOXエンジンと違うものにする。

  • 将来的にVVMが完成したらNemo専用エンジンの提供はなくなる可能性がある
    • 音声ライブラリインストールという形に変わる

ホームページを作る

内容リスト

  • トップの情報
  • トップの画像
  • 特徴リスト
  • サブのキャッチコピー
  • 各話者の情報
    • サンプルボイス
    • CV?
    • リンク?
  • ダウンロード・インストール方法案内
    • 流れ説明
    • VOICEVOXインストール案内
    • Nemoインストール案内
    • (Nemo音声とVOICEVOXキャラ音声の利用規約は違うことを案内)
  • 右上のダウンロードボタンの挙動変更
  • インストール方法案内をNemo仕様に
  • エンジンの紹介
  • コアの紹介
  • サムネイル作成
  • (VOICEVOX Nemoとは)
  • (ダウンロード数把握)
  • VOICEVOXの利用規約はVOICEVOXのものだとわかるようなタイトルにする
  • バージョンアップ
  • (トップページのVOICEVOX Nemoのとこにサムネ表示)

エディタ

  • vvppダブルクリック時にダイアログ内でマルチエンジンをONにするissue作成
  • マルチエンジン機能を実験的機能から通常機能にあげる
  • マルチエンジン機能周りの使い方を更新

エンジン

  • Nemoエンジンの使い方追記
    • dockerhub
    • github readme
    • github リリースノート

その他

  • NemoコアのREADMEでプレビュー版であるということを案内
@Hiroshiba Hiroshiba added 優先度:中 要議論 実行する前に議論が必要そうなもの labels May 5, 2023
@Hiroshiba
Copy link
Member Author

コアのビルドが完了したのでメモです。

  • バージョンは、マイナーバージョンまでコアと一緒で、パッチバージョンはコアと独立する
  • リポジトリはvoicevox_nemo_core、dllの名称などはvoicevox_core
    • (事情はissueの内容へ)

@Hiroshiba
Copy link
Member Author

リソースのリリースができたのでメモです。

@Hiroshiba
Copy link
Member Author

Hiroshiba commented May 16, 2023

エンジンのビルドがとりあえず完成したのでメモです。
https://github.com/VOICEVOX/voicevox_nemo_engine/releases/tag/0.14.0

@Hiroshiba
Copy link
Member Author

Hiroshiba commented Jun 4, 2023

webページ作成中です。
デザインができる方の提案でホームページの背景色をグラデーションにしようとしてcssを頑張っていたのですが、レスポンシブ×グラデーションはめちゃめちゃ大変だということを体感しました。
供養のためにcssメモです。。

.nemo {
  color: white;

  &::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background: radial-gradient(
        circle at 0 0,
        rgba(87, 188, 162, 1),
        rgba(87, 188, 162, 0.05) 50%,
        rgba(0, 0, 0, 0) 100%
      ),
      radial-gradient(
        circle at 100% 0,
        rgba(47, 93, 235, 1),
        rgba(0, 0, 0, 0) 80%
      ),
      radial-gradient(
        circle at 0 100%,
        rgba(31, 35, 51, 1),
        rgba(0, 0, 0, 0) 100%
      ),
      linear-gradient(0deg, rgba(31, 35, 51, 1), rgba(0, 0, 0, 0) 100%),
      rgba(0, 0, 39, 1);
    background-blend-mode: normal, normal, normal, normal, multiply;
    filter: brightness(0.85);
  }
}

@Hiroshiba
Copy link
Member Author

Hiroshiba commented Nov 17, 2023

Nemo用のコアの中にあるREADMEが通常コアのものになっていることがわかりました。
一旦0.14.0内のREADMEをNemo用のに置き換えて再アップロードしたいと思います。

README置き換え実行コード

まずrootにREADME.txtを作成

これは VOICEVOX Nemo コアライブラリです。
https://github.com/VOICEVOX/voicevox_nemo_core

## 許諾内容

1. 商用・非商用問わず利用することができます
2. アプリケーションに組み込んで再配布することができます
3. 作成された音声を利用する際は、各音声ライブラリの規約に従ってください
4. 作成された音声の利用を他者に許諾する際は、当該他者に対し本許諾内容の 3 及び 4 の遵守を義務付けてください

## 音声ライブラリの利用規約

VOICEVOX Nemo の音声ライブラリを用いて生成した音声は、
「VOICEVOX Nemo」とクレジットを記載すれば、商用・非商用で利用可能です。

利用規約の詳細は以下をご確認ください。  
https://voicevox.hiroshiba.jp/nemo/term/

## 禁止事項

- 逆コンパイル・リバースエンジニアリング及びこれらの方法の公開すること
- 製作者または第三者に不利益をもたらす行為
- 公序良俗に反する行為

## 免責事項

本ソフトウェアにより生じた損害・不利益について、製作者は一切の責任を負いません。

## その他

ご利用の際は VOICEVOX を利用したことがわかるクレジット表記が必要です。
set -eux -o pipefail
shopt -s inherit_errexit

tag="0.14.0"

# 初期化
rm -rf ./hiho_release/
mkdir -p ./hiho_release/

# ダウンロード
gh release download $tag --repo VOICEVOX/voicevox_nemo_core --dir ./hiho_release/

# 現在のディレクトリにあるREADME.txtのパス
current_readme="./README.txt"

# ./hiho_release/ディレクトリ内のすべてのzipファイルを処理
for zipfile in ./hiho_release/*.zip; do
  echo "処理中: $zipfile"

  zipfile=$(realpath "$zipfile")

  # 一時ディレクトリを作成
  temp_dir=$(mktemp -d)
  unzip -q "$zipfile" -d "$temp_dir"

  directory_name=$(basename "$zipfile" .zip)

  # README.txtが存在するかチェック
  if [[ -f $temp_dir/$directory_name/README.txt ]]; then
    # 現在のREADME.txtで置き換え
    cp -f "$current_readme" "$temp_dir/$directory_name/README.txt"

    # 更新されたファイルをzipファイルに戻す
    (cd "$temp_dir" && zip -q -r "$zipfile" $directory_name/README.txt)
  else
    echo "README.txtが存在しません: $zipfile"
  fi

  # 一時ディレクトリを削除
  rm -rf "$temp_dir"
done

echo "すべてのzipファイルの処理が完了しました。"

# アップロード
gh release upload $tag ./hiho_release/* --repo VOICEVOX/voicevox_nemo_core --clobber

またダウンローダーがバグっていることが分かりました。
一旦0.14.0からダウンローダーを削除したいと思います。

@Hiroshiba
Copy link
Member Author

Nemoを無事にリリースできました!! ということでcloseしたいと思います!

エンジンの紹介をホームページ上でやるのはVOICEVOX blog側にissueを作成しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
優先度:中 要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

1 participant