Renoid の SoundFont の仕様について

Renoid(バーチャル・シンガー)に関連する話題を書き込んでください。

Renoid の SoundFont の仕様について

投稿記事by ぼや » 2013年7月08日(月) 9:21 am

はじめまして。

UTAU の音源を使ったスピーチエンジンみたいなものを作ってみようかと思って、ネットを見ていたところ
こちらを見つけて、「SoundFont による音色設定」というスマートさが気にいって使ってみたのですが、
作ってみたところ、仕様に関して「こうでもいいのかな?」と思う部分がありましたので、ご報告させて
頂きます。プログラム的にはどうにでも対応できる部分ですし、わざわざ違うフォーマットを作って
名乗る必要もないので、正直迷っています。「その仕様は考えたけど、ここがだめだ」という見識が
あったりしましたら、是非教えて下さい。

そもそもの疑問。SampleHeader の OriginalPitch がオリジナルのキーを示さず、ファイル名に記述されること。

OriginalPitch に指定すると、キーボードで発声させたときに「ドレミ」の音程が付いてしまうため、それを避けるために
登録ノートと同じ値を入れているのは理解できますが、楽器の「音源」としてみた場合は「どうかな」と思う部分です。

さらに、ベロシティーでの切り替えも、ピアノロールでの入力を容易にするため、として採用されているのは理解
できますが、「手動での入力が大変である」という事には変わりないので、そこまでこだわる必要もないのかと
思います。

そして、このフォーマットの場合、音程のための別シーケンスが必要になります。
「言葉を選ぶ人と音程をつける人を分けて、リアルタイムに歌うパフォーマンスがしたい」なら有りな方法ですが(笑)
単純に歌わせるフォーマットとしては、やや面倒な気がします。まぁ MIDI ファイルに複数トラック入れるのは
問題ないので、ファイルフォーマットとして困るわけではありませんが。

というわけで、ふと思ったのですが

1. SoundFont の OriginalPitch に音源のピッチを入れる
2. 「あいうえお」は program change で実現する
3. 「きゃ、きゅ、きょ」は bank change で実現する

というのはダメなのでしょうか。そうすれば、音程は通常の楽曲と同じように入力できます。

ピアノロールはそもそも使わない(MIDI はステップ入力派です(笑))のであまりピンとこないのですが、
プログラムチェンジで 1 音づつ切り替えるのは、現行方式に比べてやはり大変なのでしょうか。

あるいは、PC 音源での作業をやらない(というか MIDI は SC-55 の時代に遊んでた世代)ので、最近の事情は
よくわからないのですが、プログラムやバンクチェンジには時間がかかったり、不連続さが発生するものなので
避けるべき、ということなのでしょうか。

なお、program,bank 方式のメリットは、やろうとおもえば音域別データ収録なども可能ということです
(そこまでして音源データを作る人がいるかどうかは別ですが)。また、velRange を使って、velocity 別の
音色を定義すれば、ベロシティーによる感情表現もできるかもしれません。

というわけで、現 Renoid 方式でいくか、program,bank 方式にして、現データからのコンバータを作るか
迷い中です。是非先駆者としてのご意見をお願いします。
ぼや
 

Re: Renoid の SoundFont の仕様について

投稿記事by satobox » 2013年7月08日(月) 1:34 pm

ど~もはじめまして。

先駆者とかは勘弁してください(苦笑)とんでもないです。
正直僕はSoundFontに関しては何も分からない所から始めたので、とんちんかんなお答えをするかもしれませんが、それは大目に見てください。m(_ _)m

そもそもの疑問。SampleHeader の OriginalPitch がオリジナルのキーを示さず、ファイル名に記述されること。

OriginalPitch に指定すると、キーボードで発声させたときに「ドレミ」の音程が付いてしまうため、それを避けるために
登録ノートと同じ値を入れているのは理解できますが、楽器の「音源」としてみた場合は「どうかな」と思う部分です。


これはちょっと意味を把握できてないかもしれませんが(すみません)、 OriginalPitch って項目があるんでしょうか?? ルート・キーの事かな?? 要するに、ぼやさんは、SoundFontだけで音程が付く日本語ファイルを作ろうとされている、という事でいいんでしょうか。



えっと、まず僕が何でSoundFont版を作ったかと言うと、普通のDAWで日本語ボイスファイルを使えるようにしたかったんです。その場合、VSTプラグインのSoundFontプレーヤーを使う必要があるんですが、そういう物って単純な構造のものなんです。program change や bank change で切り替えるとおっしゃってますが、VSTのSoundFontプレーヤーを使うとしたら、それはほぼ不可能だと思います(正直これは間違ってるかもしれません。ただ、以前試してダメだったような記憶があります・・・)。出来たとしても、一々ロードをし直したりして、とても歌にはならない気がします。

VSTのSoundFontプレーヤーを複数台起動して、あらかじめ必要なSoundFontを別々にロードしておけば、そういう切り替えの手法も可能だと思いますけど、それではVSTだらけになってしまいますし。


ぼやさんは、どういう物でSoundFontを再生しようと思われているんですか? その用途によっては可能なのかもしれません。

ですが、SoundFontだけで日本語に音程を付けようとされてるのなら、それは個人的にはお勧めしないです。SoundFontで行っているピッチシフトは一番原始的なものだと思うからです。それならもう素直にUTAUとか使った方が質は高いと思いますよ。


あと、Renoidでは本来のベロシティ用途が死んでしまってる件ですが、これは確かに苦渋の選択でした。でも、実際この方法で曲を作って歌を聴いてみて「別にいいじゃん」って思ったんですよ。必要ならトラックのボリュームとかゲイナーを追加して音量をコントロールする事も出来ますし、まぁそこまでシビアな物を求める人はUTAUとかボカロを使うだろうと(笑)。



まぁ、こんな感じで答えになってますかねぇ?? 何と言うか、いい加減なスタンスで作りました。。。 (^_^;)>
アバター
satobox
Site Admin
 
記事: 689
登録日時: 2008年5月12日(月) 10:33 am
お住まい: 京都

Re: Renoid の SoundFont の仕様について

投稿記事by ぼや » 2013年7月08日(月) 3:48 pm

ご回答ありがとうございます。

私がやろうとしてたのは、Renoid 的に既存の DAW 系ソフトを使うのではなく、あらたに UTAU 的な
データを使うエンジン(アプリ)を作ろうとしていました。その際の「音声元データの入れ物」として
Renoid が使ってた SoundFont (それまで知りませんでした)が便利そうだったので、「私も使おうか、
そしてどうせなら、Renoid と同じにしようか」と考えたました(UTAU のデータが入ってる SoundFont が
2 種類あるのはユーザーに混乱をもたらしますし)。ただ、純粋な技術屋として、仕様的に気になった
部分があったので、質問させてもらった次第です。

質問をしたあとから、つらつら考えましたが、ご回答も見た上で、とりあえず私が技術者として「こうかな」と
思うスタイルの SoundFont への UTAU 音源データの格納方法を考えた上で、「TalkFont(仮称)」
(拡張子".tf")と名づけて(笑)、利用する方向でとりあえず行ってみることにします。実態は
SoundFont ですが、名称と拡張子が違うので、Renoid の SoundFont と混同されてご迷惑をかける
事態は避けられると思います。

# ちなみに歌わせるのが目的ではなく喋らせるのが目的です。「トークロイド」の方面です。
ぼや
 

Re: Renoid の SoundFont の仕様について

投稿記事by satobox » 2013年7月08日(月) 5:40 pm

あ~なるほど、喋る方でしたかぁ。
ご自分のアプリを作る目的だったんですね。それなら色々出来そうですね。 :wink:

最近はその分野でも凄い強敵がいるので、頑張ってください。
僕は結月ゆかりってVOICEROIDをムービーのナレーション用に持ってますが、CeVIOってのがフリーで出た時にはビックリしました。
やっぱ日本人ってこういう技術が好きなんだなぁと改めて思いました(笑)。
アバター
satobox
Site Admin
 
記事: 689
登録日時: 2008年5月12日(月) 10:33 am
お住まい: 京都

Re: Renoid の SoundFont の仕様について

投稿記事by g200kg » 2013年7月14日(日) 12:56 am

こんにちは
Original Pitch (= Root Key) についてですが、SoundFont本来の意味で言えば

0-127 の範囲の場合、格納されている元音のピッチを示し再生時は発音するべきピッチに変換して発音、
これに対してドラムトラックのようにキー毎に音色を割り当てる場合は255を指定するとピッチ変換はせずに発音する
という仕様のようです。

RenoidのSoundFontは現状、OriginalKeyとして割り当て先のキーと同じノートを指定する事でピッチが変換されない
ようになっているようなのですが、趣旨としてはキー毎に同じピッチの違う声を割り当てているので本来は
Unpitched Soundとして255を指定するのが正しいのだと思います。

ただ結局どちらの方法でも「Unpitched Soundとして扱いつつ元音のピッチ情報を格納する」という事は
SoundFontの仕様としてはできない、という事だと思います。

Renoidの場合は基本的には汎用のSoundFontプレーヤーで再生しますので、これはしょうがないかなと思いますが、
もちろん専用のアプリで入れ物として使う場合にはどうにでもなりますのでOriginalPitchに元のピッチ情報を入れるのはありだと思います。
g200kg
 
記事: 22
登録日時: 2013年6月07日(金) 10:51 pm


Return to Renoid フォーラム

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]

cron