GithubHelp home page GithubHelp logo

inuinu2022 / kotokanade Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 28.88 MB

KotoKanade is a tool to make VoiSona Talk sing.

License: MIT License

C# 97.99% CSS 0.92% HTML 0.63% JavaScript 0.29% Batchfile 0.18%
vocal-synthesis voisonatalk ccs cevio tstprj voisona talk-to-song

kotokanade's Introduction

KotoKanade (言奏)

logo
KotoKanade

KotoKanadeVoiSona Talkを”歌わせる”ツールです。

KotoKanade, this is a tool for "Singing" VoiSona Talk.


MIT License C Sharp 12 .NET 8.0 Made with Avalonia UI Made with Epoxy GitHub release (latest SemVer including pre-releases) GitHub all releases GitHub Repo stars VoiSona Talk

Video

  • タカハシを歌わせるソフト作ってみた 【KotoKanade】
    • タカハシを歌わせるソフト作ってみた 【KotoKanade】

Blog

最新版ダウンロード / Download latest

  • Download KotoKanade

  • ダウンロード方法

    • 上から一番新しい物を選んでzipファイルをダウンロードして展開して使ってください
    • アップデートはそのまま上書きしてください
    • アンインストールは展開したフォルダをまるごと消してください
  • サポートOS

    • Windows10/11
    • macOS(動作未確認)
    • Linux(動作未確認)
  • ニコニ・コモンズ nc326561

    • ニコニコ動画等で投稿する作品で使用した場合、利用登録してくださるとうれしいです
    • ※登録は必須ではありません

アップデート通知・更新 / Update apps and cast data

アプリかボイスライブラリの情報(cast-data)に更新があるとアプリ上に通知が入ります。

update checker

  • アプリのダウンロード

    • アプリの更新があると通知され、アプリの上からダウンロードできます
    • 設定タブの Go to download link をクリックするとgithubからアプリのzipファイルをダウンロードします
      • 展開して上書きして使ってください
  • ボイスライブラリの情報(cast-data)更新

    • ボイスライブラリの情報に更新があると通知され、アプリの上から更新できます
    • ⚠ソングボイスライブラリの情報も含まれるため、トークボイスライブラリの情報だけを使っているKotoKanadeでは 更新しても変化がない場合があります

Sample

ピッチ歌唱指導機能のサンプル

タイミング歌唱指導のサンプル

以下は旧バージョンで制作したものです

できること

A. Score Only

歌唱指導を使わずに楽譜データから”歌わせ”ます。 (この段階では)機械的な歌声になります。 ノートに合わせた平坦なピッチを生成します。 ※手で調声するベースとしても使えます。

用意するもの

  • CeVIOの楽譜ファイル(.ccs or .ccst)

つかいかた

  1. ソング用のccs or ccstファイルを用意します
    1. 現在は1トラックのみ対応
  2. 読み込みます
  3. 歌わせるトークボイスライブラリを選択します
  4. 必要ならば細かい設定を行います
  5. 「Save」ボタンで出力します
  6. 出力されたtstprjファイルをVoiSona Talkで読み取り、再生します

A. オプション

  • Split notes
    • ノートを分割するかどうか
    • ※トークボイス音源は長い発音が苦手なためONを推奨
  • Split threthold msec.
    • ノートを分割する基準値
  • Consonant pffset sec.
    • 子音部分をノートの開始時刻からオフセットします
    • 自然な歌は子音がノートの開始時刻より前になります

A. 制限

  • 歌詞は日本語のみ
    • 歌詞はCeVIOソングなどと異なり、漢字かな交じりに対応しています
    • むしろ漢字かな交じりの方が発音が正確になります
  • 読み(音素)の差し替えは未対応
    • 逆に助詞の「は」は [w,a] と自動で発音します
      • [h,a]と喋らせたい場合、歌詞をカタカナの「ハ」にかえるとうまくいきます
  • ノートのアーティキュレーション未対応
  • ブレス記号はセリフの分割に使われます
    • なのでノートくっつけても大丈夫 むしろ推奨
  • 歌詞の記号は無視されます
    • ,$,,@,%,^,_
  • 子音オフセット値は固定値
    • 自分で調整する時の基準にしてください
    • 長過ぎる時間を指定すると破綻します!!!
  • ノート分割オプションは常にONを推奨
    • 新エンジンのボイス以外は長い発音が途切れるため

コツ

  • 「は」を[w,a]と読んでしまう時
    • 歌詞をカタカナの「ハ」にかえる
  • 「きょう」を[k,y,o]ではなく[k,y,u]とよんでしまう時
    • 歌詞を「きょー」にかえる

B. Score + Timing

タイミングに歌唱指導を使って歌わせます。 発音はまだ機械的ですが、タイミングが自然になります。 ※手で調声するベースとしても使えます。

B. 用意するもの

  • CeVIOの楽譜ファイル(.ccs or .ccst)
  • 歌唱指導用のタイミング情報ファイル(.lab)
    • 上記の楽譜ファイルを歌わせた時に同時生成されるもの
    • CeVIOソング/VoiSona(ソング)などで生成できます

作品投稿の際は…

  • 歌唱指導をする際は、ボイスライブラリの利用規約に従ってください
  • 歌唱指導した作品を公開するときは、以下のように元のボイスライブラリがわかるようにしてください

歌唱指導 さとうささら(CeVIO AI)

B. オプション

  • Split notes
    • ノートを分割するかどうか
    • ※トークボイス音源は長い発音が苦手なためONを推奨
  • Split threthold msec.
    • ノートを分割する基準値

B. 制限

  • 歌詞は日本語のみ
  • 読み(音素)の差し替えはNG
    • 音素数が異なるとバグります
  • 歌詞の記号は無視されます
  • ノートのアーティキュレーション未対応
  • ノート分割オプションは常にONを推奨
    • 新エンジンのボイス以外は長い発音が途切れるため

C. Score + Timing + Wav

ピッチに歌唱指導を使って歌わせます。 タイミングだけの歌唱指導と異なり、なめらかに歌うようになります。

※合成(解析)にやや時間が掛かります。性能の良いパソコンで長い曲で10秒程度かかります。

C. 用意するもの

  • CeVIOの楽譜ファイル(.ccs or .ccst)
  • 歌唱指導用のタイミング情報ファイル(.lab)
    • 上記の楽譜ファイルを歌わせた時に同時生成されるもの
    • CeVIOソング/VoiSona(ソング)などで生成できます
  • 歌唱指導用のボーカル音声ファイル(.wav / .mp3など)
    • 上記とタイミングのあった音声ファイル
    • 16bit 48kbps wav形式以外もサポートしていますが内部で変換処理が入ります

C. 作品投稿の際は…

  • 歌唱指導をする際は、ボイスライブラリの利用規約に従ってください
  • 歌唱指導した作品を公開するときは、以下のように元のボイスライブラリがわかるようにしてください

歌唱指導 さとうささら(CeVIO AI)

C. オプション

  • Split notes
    • ノートを分割するかどうか
    • ※トークボイス音源は長い発音が苦手なためONを推奨
  • Split threthold msec.
    • ノートを分割する基準値
  • Use fast estimation
    • 高速解析をやるかどうか
  • Auto tuning bottom estimation threthold
    • 試験機能
    • 解析対象の最小値を自動で判定するか
    • デフォルトはOFFです
  • Bottom estimation threthold Hz.
    • 解析対象の最小値(Hz.)
    • 大きくすると解析が速くなりますが、低い音が正しく解析できなくなります

C. 制限

  • 歌詞は日本語のみ
  • 読み(音素)の差し替えはNG
    • 音素数が異なるとバグります
  • 歌詞の記号は無視されます
  • ノートのアーティキュレーション未対応
  • ノート分割オプションは常にONを推奨
    • 新エンジンのボイス以外は長い発音が途切れるため

DL

  1. github ReleaseからDL
  2. 【v1.0.0-beta.13以降】本来アプデがある場合はアプリ上からDLできます

Build

  • .NET SDK 8以降
  • Open JTalkの辞書が必要です。→DL先
    • /lib/フォルダに置いてください

Licenses

MIT License

Copyright (c) 2024 いぬいぬ
MIT License

Copyright (c) 2024 いぬいぬ

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Resources

Projects

  • KotoKanade.Core: Independent common component project includes MVVM Model code.
  • KotoKanade.UI: UI (independent platform) project includes MVVM View and ViewModel code.
  • KotoKanade.Desktop: The desktop application project code.
  • KotoKanade.Browser: The web browser application project code.
  • KotoKanade.Android: Android application project code.
  • KotoKanade.iOS: iOS application project code.

kotokanade's People

Contributors

inuinu2022 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

kotokanade's Issues

[v0.1]やること

  • support style option
  • github page open
  • Dispose openjtalk
  • logging (NLog?)
  • manual
  • intro movie

[Mode C]音声ファイル解析高速化・UX改善

3分40秒程度の音声の解析(だけ)に10秒以上かかっているので高速化

高速化・最適化

  • pitch解析結果をキャッシュする
  • pitch解析の分割並列処理化
  • 発声部分以外をpitch解析対象から除外
  • wav変換をキャッシュする
  • 楽譜から最小の切り捨て解析値を自動調整する

UX改善

  • ゲージUIを追加
  • 音声ファイルを指定直後に裏でwav変換開始する
  • 音声ファイルを指定直後に裏でpitch解析開始する

[Core][Feat] 歌詞「っ」の場合に分割するように

  • 歌詞「っ」の場合に分割するように
    • 冒頭に母音歌詞を保管
  • 他の歌詞は母音を伸ばす処理が入っているが「っ」はそのまま
  • 結果、間延びしてしまう
  • 実際の発音を見ると冒頭に前の母音が入る事が多い(CeVIOソングも母音が補完される)

image

GetLabelsで Stack over flow

分割数が多いときなどにStack over flowで落ちていた。
分割無しでも環境によって発生する可能性あり。

[Core][Feat] labのタイミング対応

  • ノートの分割と音素タイミングの分割を合わせる
  • 同一ノート内で母音が続く場合は分割しないときでも音素数が多い対応
  • #4
    • 「っ」で始まる歌詞の冒頭母音付与対応(母音数が変わる)
  • #19

フレーズ途中でタイミングがおかしくなる不具合

  • 途中からノート/labのタイミングにあわなくなる
    • ノートだけの時点でも発生

  • 例:「あーっめーっをふらせても
    • 本来は歌詞「も」がもっと早いはず
    • image
    • image
    • 「を」を[w,o]にしているのが原因の可能性あり

内部ユーザー辞書を更新できるようにする

  • 特殊な歌詞、または分割で特殊な歌詞になる時に発音が間違う
    • 「つウー」…「つー」という歌詞を分割した場合
    • 「キョオオ」…「きょう」という歌詞を分割した場合
  • ユーザー辞書登録で何とかしているが、これを何とかできるようにしたい

[Lib]童謡が歌えない

  • フレーズが長い曲のデータが想定外に大きくなっている

  • ライブラリが対応してない長さに

    • LibSasara.VoiSona の GetHeaderBytes()内の処理
    • int16(32767)までの想定しかなかった
    • 「さくらさくら」
    • 「メリーさんの羊」

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.