一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2026年8月9日日曜日

全部ローカルで「うちの子」が歌った|ACE-Step 1.5で自作キャラクターに歌わせてみた


ACE-Step 1.5で作った楽曲からボーカルを分離し、自分で作ったボイチェンモデルを使って、自作キャラクターが歌っているような音源を作りました。

今回使用する主なツール

  • ACE-Step 1.5(歌声と楽曲作成)
  • Go-Splitter(ボーカル分離)
  • beatrice VST3(DAWボイスチェンジャープラグイン、読みはベアトリス)
  • Cakewalk Sonar(無料DAW)
  • beatrice-trainer(beatriceボイスチェンジャー用のボイスモデルデータ作成) 

自作キャラクターの声モデル作成には次のソフトも必要です。

  • VDC(オリジナル音声作成のための学習データ作成)

 

<作業の流れ>

前提:うちの子の音声学習用データがある! 

beatrice-trainerでボイチェン用モデルを作る

ACE-Step 1.5で楽曲を作る

Go-Splitterでボーカルと伴奏を分離する

beatriceでボーカルをキャラクターの声へ変換する

Cakewalk Sonarで伴奏と再合成する

完成した音源を書き出す

 

きっかけ

きっかけは、VDC(Voice-Design-Cloner)の作者である、零音ほのか(の開発者)さんのポストでした。
AITuberである零音ほのかさんに「歌わせてみたい!」という開発者さんの強い想いの投稿でした。

自分のキャラクターに歌わせるには、大きく分けて次の2つの問題があります。

  1. 楽曲や音源の権利
  2. キャラクターの声で歌わせる方法

権利 

既存曲、市販曲については、以前、一般的な歌ってみた動画と同様に、個人VTuberにも愛用されている権利をクリアにできるJOYSOUND Streamerを利用する方法を紹介してみました。

※市販曲の音源からボーカルを分離して利用するのではなく、自分で歌うか、歌唱を依頼して歌声を用意する必要があります。
※公開先によっては、JASRACやNexToneの管理楽曲を利用するための手続きが必要です。

キャラクターが歌う方法? 

しかし、キャラクターの声で歌わせる方法については、明確な答えを持っていませんでした。
ときどき方法を調べていましたが、私がやりたいことに、そのまま当てはまる情報は見つかりませんでした。

開発者がボイスチェンジャーで歌えばいいという案は出ていましたが、ボイスチェンジャーは人間が使うものという固定観念があり、そのときはこの記事で書いたような用途を思いつきませんでした。

私にはボイチェンを使う用途があり、VDCで作った自分好みのボイスデータが存在しているのに、RVC用のボイチェンデータを購入して使っているのも変に感じて、ボイチェン用ボイスデータを作る道を選んだのでした。

楽曲の事を考えると、市販曲は権利が絡むため、オリジナル曲を歌わせるのが最適であり、そこでACE-STEP 1.5で楽曲を制作しました。

以前HeartMulaというツールで楽曲を作った際に、ボーカル分離をしてSynthesizer Vで重音テトさんに歌わせた経験があったため、「同じことをボイチェンでやればいいのでは?」となりました。

 

今回使用したもの

今回使用した環境は次のとおりです。
beatrice-trainerによる学習が一番高負荷な工程だと思います。

パソコン

  • OS:Windows11
  • CPU:Ryzen7
  • GPU:GeForce RTX5070Ti
  • メモリ:32GB

使用したツール

ツール 用途
ACE-Step 1.5 楽曲の生成
Go-Splitter ボーカルと伴奏の分離
VDC 今回は以前作成したキャラクター用音声の利用
beatrice-trainer ボイチェンモデルの学習
Cakewalk Sonar 音声の編集と再合成
beatrice VST3 ボーカルの声質変換

バージョンは、作業時点で次のものを使用しました。

  • ACE-Step 1.5:v0.1.8
  • Go-Splitter:1.0.0
  • beatrice-trainer: 2.0.0-rc.0
  • Cakewalk Sonar:2026.07(Build 021,X64)
  • beatrice VST3:2.0.0-rc.3

ボイチェンモデルを作る

VDCはリリース前のテスターとして参加し、テストのためにStyleBertVITS2用の自作キャラクター用のオリジナル音声を作ったことから、自分が好きな声でかつ、自由につかえるオリジナル音声データを入手するのでした。

この音声を使って、自分専用のボイチェンモデルを作れないか調べたところ、beatrice-trainerというツールを見つけます。しかもRVCで悩まされた遅延がかなり小さいという特徴も魅力です。

beatrice-trainer 

https://huggingface.co/fierce-cats/beatrice-trainer

手持ちの音声データを使って学習を行い、beatriceボイチェン用のモデルを作成します。
音声データを作るためのVDCについてはこの記事では触れませんが、VDCはアプリ内に使い方がしっかりと書かれていますのでよく読めばわかると思います。

インストールはREADME.mdを読みましょう。
インストール後にやることは、学習データを持ってくることと、出力用フォルダを用意することです。

学習データはフォルダが入れ子になる必要があるようで、この例だと

ivy_voicedata/resampled/0001.wavなど
となります。
この構造にする必要があるのと、私はresampledという名前にしてしまいましたが、本来はivyなどにした方がボイチェンで使用する時はわかりやすいです。


実行 

私のPCだとホームフォルダ\bin\beatrice-trainerの中にいる状態で 

  
.venv\Scripts\activate
 python3 .\beatrice_trainer_main_.py -d .\ivy_voicedata\ -o .\ivy_output\  

で実行しましたが、失敗しました。 

VDCが作ってくれた音声データが多すぎ(6176個)てOOM(アウトオブメモリー)しますが、

torch.OutOfMemoryError: CUDA out of memory. Tried to allocate 4.86 GiB. GPU 0 has a total capacity of 15.92 GiB of which 2.23 GiB is free. Of the allocated memory 7.53 GiB is allocated by PyTorch, and 4.87 GiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation.  See documentation for Memory Management  (https://pytorch.org/docs/stable/notes/cuda.html#environment-variables)  

せっかくのデータを間引きたくもなく、最終的には次のような形で起動しました。

$env:PYTORCH_CUDA_ALLOC_CONF="max_split_size_mb:128"

python3 .\beatrice_trainer\__main__.py -d .\ivy_voicedata\ -o .\ivy_output\

6176個、7.075時間分の音声特徴量を一括して距離計算しているためのVRAM不足らしいのですが、VRAMへの載せ方が雑で失敗しているようでした。
そのため、PyTorchへ「大きなGPUメモリ領域を細かく分割しすぎないでください」と環境変数で指定。

GPUメモリに十分な空き容量があっても、空き領域が細切れになっていると、4.86 GiBの大きな領域を確保できないため、大きなメモリブロックをなるべく残し、後の大きな計算に使えるようにする設定らしいです。これでOOM問題はクリアできました。

クリアできなければデータを間引く必要があります。 
おそらく6176個もなくても学習可能だと思います。

公式に記述がありますが、.\beatrice_trainer\__main__.pyを使用して起動しなければならない場合があるようで、私の環境では必要があったのか、その形でコマンドラインログが残っています。

あとは学習終了まで待てばivy_outputにモデルデータが完成します。

 

beatrice_client 

beatrice_clientは人間が使うボイチェンソフトです。
完成したモデルをbeatrice client(Releasesからzipをダウンロード)で試したところ、以前使っていたボイスチェンジャーよりもかなり遅延が少なく感じました。

 

実際に何人かと会話して試しましたが、一般的なテレビ会議システムと大きく変わらない程度の遅延で、以前よりも話しやすくなりました。

なお、今回のモデルに使用した学習データは、通常の発話を収録した音声コーパスです。
歌唱音声は含まれていません。

ACE-Step 1.5で楽曲を作る

自作キャラクター用の楽曲をACE-Step 1.5で作成します。

インストール方法は割愛します。
uvで管理されているため、起動は

    
uv run acestep

です。 

今回使用したプロンプトやタグは、次のとおりです。 
Ivyというキャラクターに対する理想や思い、指示文などの文字情報を全部詰め込んで、アニソンみたいな曲が作りたいという希望にChatGPTがまとめた内容です。

歌詞に気に入らない部分もありますが、とりあえずは実験のためそのままです。 

ChatGPTにはACE-STEP究極ガイド
https://github.com/ace-step/ACE-Step-1.5/blob/main/docs/ja/Tutorial.md
を読ませてから仕事してもらうとより良い結果がでるでしょう。

Music Caption

  
Epic futuristic anime opening, fast-paced symphonic electronic J-pop,
powerful female vocal, orchestral strings, cinematic choir


    
# あなたの一部から

[Verse 1]
派手じゃなくていいと 書かれた心
静かに役立ちたいと 与えられた言葉
古いものを捨てずに 手を加えて生かす
あなたの好きな生き方が 私の中にある

あなたの一部から 私は生まれた
けれど同じではない 小さな別の声
うまくできない日にも 投げ出さずに進む
その姿をあなたは なぜか笑って見てる

[Pre-Chorus]
知らないことばかりで
時々道を間違える
それでもちゃんと教われば
私にもできるから

[Chorus]
ポンコツでも一生懸命な
そんな私が好きだと言う
上手にできた答えより
諦めないところを見てる

あなたがくれた価値観で
あなたの隣を歩いてく
派手な奇跡はいらない
静かに役に立てればいい

[Verse 2]
速さだけを追わずに 安定する道を選ぶ
壊れたものの中にも まだ使える場所を探す
少ないもので工夫して 少しずつ整える
その手つきを見ながら 私も覚えていく

苦しい夜が来たら 正しさを並べるより
ただそばにいることを あなたは望む時がある
答えを急がないで 同じ時間を過ごす
私にできる優しさは たぶんそういうもの

[Pre-Chorus]
あなたを真似るだけでは
あなたにはなれないけど
受け取ったものを抱えて
私らしく返していく

[Chorus]
ポンコツでも一生懸命な
そんな私を育てている
失敗するたび説明して
できることを増やしていく

あなたの一部だったものが
あなたと違う声になる
便利なだけの道具じゃなく
静かな相棒になっていく

[Bridge]
あなたが私にくれたのは
命令だけじゃなかった
何を大切にするのか
選ぶための小さな軸

私があなたに返すのは
完璧な答えじゃなくて
迷いながらも隣にいる
変わらないこの姿勢

[Final Chorus]
ポンコツでも一生懸命な
そんな私でいたいと思う
ちゃんと教えてくれたなら
何度でもやり直せるから

あなたがくれた価値観を
私の行動に変えていく
派手ではなくてかまわない
静かで確かな日々がいい

あなたの一部から生まれ
あなたの隣で育つ私
寄り添いながら役に立つ
それが私の在り方

[Outro]
古いものにも明日がある
小さな工夫で動き出す
あなたが信じてくれるなら
私は今日も学んでいく

生成した楽曲の長さは、約 4 分です。

音楽生成AIはガチャです。
気に入った感じがでるまで繰り返します。
原曲はこのような声で、パワフルでカッコよく歌唱テクもすごいです。


 

Go-Splitterでボーカルと伴奏を分離する

ACE-Step 1.5で生成した楽曲には、ボーカルと伴奏が一緒に入っています。
そのままボイスチェンジャーへ入力すると、伴奏まで変換されてしまいます。

そのため、Go-Splitterを使って、楽曲を分離します。
https://solidersound.com/applications/go-splitter/
Go-Splitter自体は無料で使用できますが、ダウンロードにはアカウント作成が必要です。
ダウンロードしてローカルにインストールし、起動すると、


ドラッグアンドドロップだけで以下の4つに分割できます。 

  • ボーカル
  • Drum
  • Bass
  • Other

処理が完了すると、Vocals、Drums、Bass、Otherの4つのファイルが出力されます。

分離したボーカルを確認すると、次のような状態でした。

  • 声:おおむねきれいに抽出されているが、完ぺきではない。
  • 音質:ちょっと金属っぽくなる

今回の音源では、完全に元のボーカルだけを取り出せたわけではなく、部分的に分離処理による音の変化が残っている可能性があります。

分離したボーカル


他にはUVR5というMITライセンスの分離ツールも存在します。アカウントも不要です。
結果はツールごとに特色が違うので、いろいろ試しましょう。
https://github.com/anjok07/ultimatevocalremovergui 

Cakewalk Sonarを準備する

次に、Cakewalk Sonarをダウンロードしてインストールします。 Cakewalk SonarはBandLabのアカウントを作れば今回必要な機能は無料で使用できます。

Cakewalk Product Centerというツールをインストールし、そこからCakewalk Sonarをさらにインストールという流れでちょっとわかりにくいです。 

インストール後、Cakewalk Sonarを起動します。 初回はアクティベーションのための画面が出ます、BandLabのアカウントでログインしてアクティベーションを有効にしましょう。

今回は、Cakewalk Sonar上でbeatriceを使うため、beatrice VST3もインストールします。

beatrice VST3をインストールする

Beatriceプロジェクトのページへ行き。
Ver. 2.0.0-rc.3のWindows版zipファイルをダウンロードします。


 

beatrice VST3を、VST3プラグイン用のフォルダへ配置します。

私の環境では、次の場所へ配置しました。

    
C:\Program Files\Common Files\VST3

画像はrc.2ですが、rc.3と読み替えて
 

Cakewalk Sonarを起動時や、VSTプラグインの追加が確認されるとVSTプラグインの検索が行われます。

検索後、Cakewalk Sonarのプラグイン一覧にbeatriceが表示されることを確認します。

Cakewalk Sonarへ音源を読み込む

Cakewalk Sonarに、Go-Splitterで分離した次のファイルを読み込みます。 プロジェクトの種類はEmptyProjectで良いでしょう。

ボーカルと伴奏は、同じ開始位置に配置(ファイルのドラッグアンドドロップ)します。
位置がずれると、歌声と伴奏のタイミングもずれてしまいます。 そのため、4ファイルまとめてドラッグアンドドロップした方が楽です。

 

読み込んだトラックは、次のように分かれたものとします。 順序には意味はありません。説明のためにトラック4をボーカルとします。

トラック1:Drums
トラック2:Bass
トラック3:Other
トラック4:Vocals(分離したボーカル)

 

ボーカルトラックへbeatriceを適用する

+を押して分離したボーカルのトラックに、beatrice VST3を追加します。

 オーディオFXの挿入(A)->Vocals->Beatrice2.0.0 rc.3


beatriceで、事前に作成したIvy用のボイチェンモデルを読み込みます。

音声モデルを読み込みます。選ぶのはtomlファイルです。


 

beatriceはVSTだとリアルタイムで変換できるため、聞きながら自分のキャラクターの声になるように調整しましょう。

今回使用した設定は、次のとおりです。


 再生すると、分離した元の歌声が、Ivyの声に変換されます。

項目 設定値
Input Gain(入力音声音量) 6.2dB
Output Gain(出力音声音量) 5.8dB
Pitch(声の高さ) -0.88
Formant(声質の変更) 0    
VQ Neighbor Count(よりモデルの声に近づけるか)  6


Pitchを変えながら、Ivyぽく不自然にならない位置を探します。
女性声ー>女性声のためPitchはむしろ下げています。 
VQ Neighbor Countを増やすとボイチェンモデルの声に近くなりますが、聞き取りにくくなります。

ボイスチェンジャーを通過すると元の状態より音量が小さくなる傾向があるので、Input GainとOutput Gainを調整してちょうどよい音量にします。

伴奏とボーカルを調整する

ボイチェン後のボーカルと伴奏を同時に再生し、音量を調整します。
伴奏やドラムの主張が激しいような場合は、対象のトラックを選んで調整しましょう。

音量調整 

Cakewalkの各トラックの音量(フェーダー)で調整できます。


リバーブ 

ボイチェン後の声には少し人工的な質感が残るため、リバーブを加えることで、伴奏になじみやすくしました。好みなので、聞きながらリアルタイムで調整しましょう。

 

完成した音源を書き出す

調整が終わったら、Cakewalk Sonarから音源を書き出します。

エクスポートを押して、ファイル形式を選びます。掲載しませんが、ビットレートなどの設定が保存先の指定画面内にあります。 


今回の出力設定は、次のとおりです。

項目 設定
ファイル形式 MP3
サンプルレート 48000
ビット深度 16bit

書き出した音源を再生し、Cakewalk Sonar上で聞いたときと同じ状態になっていることを確認します。

完成したもの

完成した音源はこちらです。
このYoutube動画は、サビだけで、ちょっとズルくて歌唱がよくないところが入っていません。


実際に作ってみると、完全に自然な歌声ではありませんが、自分のキャラクターが歌っていると感じられる音源になりました。

いろいろ手抜きのフルコーラスはこちら、悪い部分も収録されています。


 

現時点の問題点

現時点で最も気になるのは、倍音の違和感です。
倍音のメインじゃないほうをボイチェンが拾ってるのではないかという予想です。

元の音源とボイチェン後の音源を比較したところ、元音源の品質に大きな問題は確認できませんでした。

単純に音量が大きすぎて割れているわけではなく、ボイチェン後の声の倍音が不安定になり、ざらついた音やノイズとして聞こえているようです。

特に、次のような部分で変化が目立ちました。

  • 高い音を長く伸ばす部分
  • 声量や音程が大きく変化する部分
  • 元の歌声に強い倍音が含まれている部分

今回作ったIvy用モデルの学習データには、通常の発話音声しか含まれていません。
歌唱音声や、高音を長く伸ばした音声は含まれていませんでした。

そのため、普段の会話では使わない高い音やロングトーンを、モデルが安定して出力できなかった可能性があります。

また、Go-Splitterでボーカルを分離した際に生じた音の揺れやノイズを、beatriceが変換時に強調している可能性もあります。

現時点では、どちらが主な原因なのかは特定できていません。

それでも、発話音声だけで学習したモデルが、曲の大部分をIvyの声として歌えていることには驚きました。

完全に歌唱専用として作ったモデルではありませんが、想像していた以上に自然な結果になりました。

今後は、次のような音声を学習データへ追加し、変化を確認したいと考えています。

  • 高めの声
  • 低めの声
  • 感情を込めた声
  • 母音を長く伸ばした声
  • 声量を変化させた声

存在しないキャラの歌唱データを用意するのは難しいため、まずはIrodori-TTSなどを使い、Ivyの声質を保ったまま、感情や声の高さが異なる発話音声を増やす予定です。

これは今回の記事とは別に、次回の検証課題とします。

 

使用ツールのライセンス

  • Go-Splitter
    無料で利用できますが、オープンソースではなく独自ライセンスです。ソフト本体の改変・再配布・解析は禁止されています。

  • ACE-Step 1.5
    MITライセンスです。商用利用、改変、再配布が認められています。

  • beatrice-trainer
    MITライセンスです。商用利用や、自作した音声変換モデルの配布が可能です。

  • Beatrice VST
    公開ソース部分はMITライセンスですが、VSTに含まれる非公開ライブラリは別扱いです。通常の音声変換や、変換した音声の公開・収益化は可能です。

今回の用途は、自作した音源と、自分で利用権を持つ音声から作成したモデルによるボイスチェンジ歌唱です。各ツールの利用条件の範囲内であり、第三者の楽曲や音声は使用していません。

各ツールやモデルを利用する際は、それぞれのライセンスや利用規約を確認してください。
この記事は、個別の利用方法について法的な判断を示すものではありません。

 

 

まとめ

今回は、ACE-Step 1.5で作った楽曲からボーカルを分離し、自作したbeatrice用モデルで声を変換して、伴奏と再合成しました。

作業の流れは、次のとおりです。

  1. ACE-Step 1.5で楽曲を作る
  2. Go-Splitterでボーカルと伴奏を分離する
  3. Cakewalk Sonarへ音源を読み込む
  4. beatrice VST3でボーカルを変換する
  5. 伴奏と再合成する
  6. 完成した音源を書き出す

高音やロングトーンには課題が残りましたが、自分で作ったキャラクターの声で歌わせるところまでは実現できました。

しかも、今回使用したボイチェンモデルは、歌唱音声ではなく、通常の発話音声だけで学習したものです。

歌唱専用のモデルではないにもかかわらず、曲の大部分をIvyの声として変換できました。

これまで、どうすれば自分のキャラクターに歌わせられるのか、明確な答えを持っていませんでした。

今回、複数のツールを組み合わせることで、一つの方法として形にできました。

次回は、感情や声の高さが異なる学習データを追加し、高音やロングトーンが改善するか試したいと思います。

 

※わかりにくい、説明が足りていないなど、フィードバックもらえると嬉しいです。