0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【VOICEVOX歌唱API】音域調整で「上手く」歌わせよう!

Last updated at Posted at 2025-07-15

こんにちは!はちもりと申します。
VOICEVOX歌唱APIが好きなので記事を書きます。


以前こちらの記事で、VOICEVOX歌唱APIの仕様と、C++ライブラリ「Siv3D」で使う方法を書きました。

今回の記事の内容は、音域調整で「上手く」歌わせること です!
他の情報をお求めの方は、上記の記事も参考にしてみてください!👍


VOICEVOX ハミングの仕様

VOICEVOXの歌唱ライブラリには「ソング」と「ハミング」の2つがあります。

  • 🎤キャラクターの歌声で歌う「ソング」
  • 🎵キャラクターの喋り声で歌う「ハミング」

2025年7月現在、「ソング」が実装されているのは波音リツ(ノーマル)のみで、他の29キャラ(ずんだもん等)は「ハミング」です。

使い分けのイメージは、「歌えるソングキャラの歌い方を、ハミングキャラが真似して喋り声で歌う」 という方式です。
image.png

具体的に言うと、ハミングのキャラの歌唱音声合成のAPI利用時は、
はじめに「ソング」機能を持つキャラクターのIDでクエリを生成します。
そして、生成したクエリを歌わせたい「ハミング」キャラに渡して歌唱音声合成します。
詳しくはこちら

音域調整

前項の方式でハミングキャラに歌わせると、とある問題が発生します。

それは、「音域的に、真似して歌うことが難しい」 という場面です。

人間で例えると、「高い音域のソプラノ歌手の歌い方を、低い音域のテノール歌手が真似することは難しい」という話です。
image.png

「音域調整」を使うと、この問題を解決できます!

概要を3ステップで説明します👍

  1. テノール歌手が歌いたい低い音域の楽譜を、高い音域に移調して、ソプラノ歌手に渡す
  2. ソプラノ歌手が1の楽譜を見て歌い、そこでの歌い方のデータを低い音域に移調して、テノール歌手に渡す
  3. テノール歌手が2の歌い方のデータを見て、真似して歌う

※移調:ドの音を上にずらすとレになる。楽譜の全部の音符を上下にずらすことを移調(トランスポーズ)と言う

これによって、どちらの歌手も得意な音域で歌うことができ、綺麗な歌声が出力できます 🙌

VOICEVOX歌唱APIの用語を使って説明すると以下のようになります。

  1. ハミングキャラが歌いたい楽譜を、音域調整の値だけ移調して、ソングキャラに渡す
  2. ソングキャラが1の楽譜から、クエリを生成。(sing_frame_audio_query
    クエリを音域調整の値だけ逆方向に移調して、ハミングキャラに渡す
  3. ハミングキャラが2のクエリを見て、真似して歌う(frame_synthesis

image.png
(出典:https://github.com/VOICEVOX/voicevox/issues/1838#issuecomment-1938334133)

ソングキャラに比べて、得意な音域が低いキャラはマイナスの値、得意な音域が高いキャラはプラスの値を「音域調整量」として設定します。
その値をもとに、楽譜とクエリに対してキーシフトを行うということですね🎵

実装

VOICEVOXソフトウェアでは、音域調整の値がマジックナンバーとして埋め込まれていて、自動で入力されます。

歌唱APIを組み込んだアプリケーション開発でも、とりあえずこの値をデフォルトで設定すれば、綺麗な歌声を生成できると思います!

また、音域調整量がnのときに、移調の実装は以下のようになります。

  • 楽譜:各音符の key±n(半音数)を加える
  • クエリf0[] の各値に 2^(±n/12) をかけてピッチを変換する

まとめ

音域調整は、それぞれのキャラの得意な音域に合わせられる仕組みです。
これを実装しなくても歌声合成自体はできますが、どのキャラにも「上手く」歌わせたい場合は実装が必須ですね😆

以上で終わります!ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?