N.Yamazaki's blog

主に音声合成について思ったことを書いてみようと思います。
AquesTone2 MIDI打ち込みの基本(初級)

AquesTone2用のMIDIデータを打ち込む手順です。

1.歌詞ファイルの作成

歌詞に従って、テキストエディタ等で歌詞ファイルを作成します。半角英小文字で基本的にはローマ字で表記します。
音節と音との関係の詳細は、AquesTone2の[Syll List]ボタンを押すと、歌詞表示部にが使用可能な音節の一覧が表示されますので、これを聞いて選んでください。なお、長音「−」や促音「っ」に対応するものはありません。長音は母音の連続で、促音は休符で対応します。
フレーズ単位で改行しておくと良いです。

2.MIDIノートの配置
まずはノートを譜面どおりに拍ぴったりで配置します。このとき、ベロシティは100、ノート長さは音符の長さと同じにします。

3.フォーカス行移動のコントロール追加
歌詞ファイルをフレーズ単位に改行しました。そこで、歌詞ファイルの行と音符が対応するように、MIDI コントロールメッセージを付与します。
各フレーズの先頭ノートの直前にMIDIコントロールメッセージ#CC49を配置します。値は行番号を指定します。なお、行番号は0から始まります。これで、再生中に自動的にAquesTone2のフォーカス行が移動するようになります。

4.ノートの長さの調整
ノートを全部を選択して、一括してノートの長さを短くします。およそ1/32音符から1/64音符程度短くすると良さそう。この作業で、Releaseで音が減衰する途中で次の音が始まるようになり、接続が滑らかになります。

5.トラックディレイの設定
AquesTone2はNoteOnメッセージから発声を開始しますので、どうしてもノリが遅れ気味になります。そこで、DAWのトラックディレイで全体のタイミングを10msec程度前にします(-10msecをセット)これで、AquesTone2の発声が全体に前にずれます。実際は他のトラックと合うようにお好みで調整してください。

6.Speed調整
全体を再生しながら、AquesTone2のSpeedノブを動かして、全体的に発音が明瞭になるように調整します。基本的にはテンポの速い曲では値を大きく、遅い曲では値が小さく設定します。

7.「サ行」の遅れの調整
サ行等の音はどうしても子音の長さが長いため、どうしてもノリが遅れ気味になります。
そのため、サ、シ、ス、セ、ソのノートをそれぞれ1/16音符(180BPMにおいて)程度前にずらします(ノートOFFの位置は変えない)。また、これに伴い、ひとつ前のノートの長さも短くする必要があります(ノートOFFの位置を前にずらす)。

8.「カ/タ/パ行」の調整
「カ/タ/パ行」のような無声破裂音の場合、前の音と分離されてないと「ガ/ダ/バ」行に聞こえることがあります。そのような場合、これらの一つ前の音符の長さを短くして、「カ/タ/パ行」の音の前に無音区間が得られるようにすると良いです。


9.ベロシティ調整
個々のベロシティを、前後のバランスや表現を考慮して調整します。

とりあえず、以上です。
さらに気になる部分があれば、そのノートの開始位置や長さを個々に調整してくださいね。

| AquesTone | 19:00 | - | - |
歌唱音声合成 Plug-In 「AquesTone2」を公開しました

AquesTone2とは
ボーカル系のシンセサイザーです。
VSTプラグインであり、対応のDAWホストで使います。
AquesToneの後継バージョンとなります。


開発の背景
大変お待たせしました。ようやくバージョンアップです。
すでに2010年のASCII.jpのインタビューのとき、
『新しいものを作るね!』と約束していたのですが・・・。
開発の方向性はこの時の話の内容と変わっていません。
"生身のボーカルを目指すんじゃなくて、機械の声を狙う"
人間の声のような音が出る楽器を目指して開発しました1)

VOCALOIDのように人間のボーカルの代わりとして使うのでなく2)
インスト曲にさらりと使ってもらうのを想像してます。
たとえば、Denkitribe氏の「AquesTone and EMX」のイメージ。
もちろん、部分的にバックコーラスのようにとか、ボーカル曲のようにソロとして前面に使っても・・・
使い方を私がとやかく言っても意味ないので、とにかく、斬新な表現で使われることを期待しております。

今回はMac版も用意
プラグイン仕様がVSTなので、使えるDAWには制限がありますが、Macユーザには喜んでもらえるかなぁ。

今回、WindowsからMacへの移植はとても簡単でした。
SDKのバージョンやらで基本的な開発ができるまではそれなりに大変でしたが、
コード的には自分で書いたWindowsのOS依存部分をOSX用に書き換えただけ。
VSTのSDKは良くできてますね。


新規に作り直したAquesTone2

AquesToneのときは、テキスト音声合成のAquesTalkエンジンを流用したのですが、AquesTone2の音声合成のエンジンは、AquesToneの延長でなく一から作りました。

AqesTone2の音声生成方式に最も近いのは、AquesTalk picoになります。
ただ、こちらは最軽量を目指した規則音声合成エンジンで、すべて時間軸で信号処理しています。
AquesTone2では、PCの性能を活かし、より複雑なアルゴリズムで時間領域と周波数領域を
行き交いながら音声を合成しています。
まぁ、基本は古典的な音声合成技術の駆動音源と声道特性フィルタって構成です。
したがって、AquesToneの軽量という特徴はなくなりました。
最近のPCは速いから、良いですよねっ!

音節のつなぎをあえて無視
規則音声合成では、音節を単純に並べただけでは異音感や明瞭性に欠けるため、
各音節が滑らかに接続するように、後続音節に合わせて前節の後半部の特性を変化させる必要があります。

歌唱合成でも同じことが行われています。AquesToneやVOCALOIDでは後続の音節に移るための音声素片(VC)が用意されていますし3)、UTAUが「連続音音源」に発展していったのもこれが理由でしょう。

しかし、今回、AquesTone2ではこれを完全に無視しました。
その代わりに、前後の音節を順番に切り替えて鳴らすのでなく、
前の音節の後ろと次の音節の頭の部分を重ねるように同時に鳴らして連続性を得ています。
ようするに、音節間のつなぎをクロスフェードで行うということです。
MIDIメッセージで音符と音符の間隔を調整するのが、綺麗に重ねるポイントでもあります。

音声合成を長年やってると、固定概念からこのようなCV素片だけのシステムを馬鹿にしてしまうのですが、
実際にやってみると、このクロスフェードだけでも歌唱合成には意外に使えると実感しました。
ちなみに、ポリフォニックの機能は、これを実現するための実装の副産物です。

ハスキー声の新しいモデル
今回の開発中に、ハスキー声にするためのモデル(アルゴリズム)にちょっとした技術的進歩がありました。
従来はピッチ成分と摩擦性(ランダム位相)成分のゲイン調整のみで、ハスキー化を表現していたのですが、
今回、駆動音源の波形を変化させることで、ハスキーやウィスパーを表現しています(パネルでは「Hard」つまみ)。

どう変化させるかの具体的なことは内緒ですが、わかる人にだけわかるヒントを・・・。
"ピッチ成分の特性を、のこぎり波から三角波の変化に類比させる。"
これって人間の声帯振動ともマッチしてるんですよね。

今後
AquesTone2の今後ですが・・・完全に未定です。
すでに、音源ファイルを追加する機能が実装されているのですが、
実際どんな音源を用意するかといった肝心なことが未定。
中性的な音源なのかなと漠然と思ってます。

満足いくような"機械的だけど綺麗な声"はいつになるやら・・・


1) というわけで、"自然じゃない"という評価は根本的にズレてますからね。
2) VOCALOIDだって、音域を越えたり早口だったりと人間にできない表現を狙うこともありますね
3) 剣持秀紀: "歌声合成ソフトウェアVOCALOIDのメカニズム", Interface Oct. 2012 CQ出版

■関連リンク
AquesTone2
http://www.a-quest.com/products/aquestone.html

AquesTone2紹介動画
http://www.nicovideo.jp/watch/sm19767691

AquesTone
http://www.a-quest.com/products/aquestone1.html

ASCII.jp「初音ミクと「ゆっくり」の声、何が違う? 」
http://ascii.jp/elem/000/000/550/550525/

Denkitribe: 「AquesTone and EMX」
http://www.youtube.com/watch?v=DISvTLDdhXk

AquesTalk pico
http://www.a-quest.com/products/aquestalk.html

 

| AquesTone | 18:30 | - | - |
AquesTone声種追加
Ver.0.7.5.0をリリースしました。
改良点は以下のとおりです。

- 男声声種および声種切替機能の追加
- 歌詞データファイルの保存
- 発話後にビートノイズが出る不具合の修正

声種の切替は、声種の表示部分(歌詞ファイル名の右)をクリックして、リストから選択します。なお、起動後初回の切替がうまくいかない不具合があるようです(原因不明)。
| AquesTone | 11:32 | - | - |
AquesToneとキャラクターデザイン
AquesToneにも、初音ミクなどのように、あらかじめ決まったキャラクターがあると、なにかと便利ですね。
ニコニコ動画やYoutubeなどにおいて、視聴者側からはサムネイルを見ただけで区別がつくし、コンテンツ製作者にとってもそのキャラクターの範疇で制作すれば良くなりますから。

すでにニコニコ動画上では「小森マル」等々のキャラが出てきているようで、うれしい限りです。

ただ、こちらから「AquesToneの公式キャラはこれにします」などと宣言することはありませんし、キャラを1つに決める必然もないと考えています。ご自分のイメージで好きなキャラクターを描いて、そこにAquesToneの音声を使って頂ければ良いと思っています。そして、もしそのキャラを他の方も使えるように宣言頂ければ、なおさら結構な話ではないかと。もしかしたら、それがデファクトになるかもしれませんよ!

ところで、近いうちに異なる声種のAquesToneを出す予定ですので、「AquesTone=1つのキャラ」というのは、そもそも無理な話になります。ビジネス的には、あの萌えキャラがあったからこそ初音ミクというソフトがヒットしたというのは確かなことでしょうが、ウチでその手法を真似てもねぇ・・・。
| AquesTone | 20:46 | - | - |
AquesTone Ver.0.7.4.0
■MIDIで歌詞の行を切替
Ver.0.7.4.0にて追加された機能に、歌詞の行をMIDIのCCでUP/DOWNするというのがあります。
これまでは、MIDI CC:10で移動する行を指定、ようするに指定行にジャンプする仕様になっていたのですが、ツマミで使うときに動作がシビアすぎて使いづらいという意見をいただきました。そこで、今回、MIDI CC:50/CC:51 で 次の行/前の行に移動する機能を追加しました。まぁ、パネルのUP/DOWNボタンの機能をMIDIのコントロールに割り当てただけなのですが・・・
その他のMIDI関連の機能追加としては、オールノートオフや、チャンネルプレッシャにも対応するようになってます。

■アンチエイリアスフィルタ特性の変更
最終段のフィルタの特性を変更しました。従来は高域にビープ的なノイズ音がかなり混じっていたのですが、今回この部分を大きく減衰させたことにより、少し柔らかい声になりました。場合によっては従来のほうが良いということもあるかもしれませんので、当面、過去のバージョンもダウンロードできるようにしておきます。
| AquesTone | 23:31 | - | - |
AquesTone打ち込みTips その2
■ビブラート
Vocaloidみたいに自動でビブラートがかかることはないので、常に少しかけておくと、かなり印象が異なると思います。打ち込みなら、曲の最初に一発、ビブラートをセットすればOKです。もちろんビープ的というか機械的な音質を狙う場合は、ビブラートをかけないという選択も十分に有りですが。

■サシスセソ
音韻によって子音に相当の長さが必要なものがあります。特に無声摩擦音の/s/など。開発のスタンスとしては、なるべく最低限の長さに調整しているのですが、サ行等の音はどうしても子音の長さが長めになってしまいます。そのため、これらの音がタイミングが遅れたように感じることが多々あると思います。そこで、打ち込みでも、ライブでも、一つ前の音を少し早めにリリースし、当該のサ行の音を少し早めに弾くと良いかと思います。

■レイテンシー
打ち込みよりリアルタイム演奏での使用に関してですが、オーディオインターフェースのレイテンシーがAquesToneの操作感にずいぶん影響します。キーボードを叩きながら、なんとなくモタついた感じがしたなら、レイテンシーを確認してみてください。もし、50msec以上あったなら、あまり気持ちよく演奏できないと思います。もちろん、上述のサ行のように原理上下ついてしまう音韻もあるのですが。ちなみに、こちらの環境(MW8cx)のレイテンシーは約11msecでした。
| AquesTone | 22:24 | - | - |
AquesTone打ち込みTips その1
■ベロシティ値
打ち込みだと気づかないかもしれませんが、AquesToneはノートオンのベロシティに反応します。この変化は、音量が大きくなるというより、発声の速さの変化がメインとなります。
まずはデフォルトとしてベロシティは64くらいに設定して、子音が聞き取りにくかったり、ゆっくり歌うときは、ベロシティの値を下げていって調整します。逆に、早いパッセージの場合は値を大きくします。

■音符の間隔
基本は、レガートのように連続するより、多少間隔をあける(ノートオフから次のノートオンまでの時間をあける)のが基本となります。
レガートで弾くともっとも急に次の子音へ変化します。(本来のレガートのイメージと異なりますね)
動作的には、ノートオフにより次の子音への変化が開始されます。
そこで、子音をよりはっきりさせるときには、間隔をよりあけると良いでしょう。
なお、ノートオフ時の次の子音への変化は、Releaseパラメータで調整することができます。


| AquesTone | 21:30 | - | - |
歌声合成のAquesToneを初公開
歌声を合成するソフトを公開しました。
初音ミクなどのエンジンで有名な ヤマハさんの VOCALOID に近いカテゴリになりますね。

AquesTalkの技術を流用して作ったので、とても小型軽量なソフトとなっています。
もっとも、こういったソフトはPCでの利用が主ですので、サイズやCPU負荷はあまり重要ではないですね。

特徴としては、リアルタイムの生成(ライブ演奏?)でも使えるようにというコンセプトで開発しています。打ち込みもいいんだけれど、ひとつの楽器として伴奏にあわせて音声合成で歌えたら楽しいんじゃないかなと…。

技術的には、リアルタイムのMIDI信号から、なるべく違和感のない歌唱音声を生成するのが大きな課題です。
原則として、音声は連続的に変化させる必要があります。
人が歌う場合は音符のタイミングに先立って口の形が変化し、ようは、常に次の発声の準備をしながら歌っています。
ところが、リアルタイムのMIDI情報からは当然、未来のタイミング情報が不明なので(次の音符がどのタイミングでくるかわからない)、次の情報がきてから変化を開始すると、どうしても発声が遅れ気味になってしまいます。このあたりの対応が一番難しいところです。
VOCALOIDの構成をみても、ヤマハさんもこのあたりで相当苦労しているんじゃないかと・・・。

AquesToneの今後ですが・・・
音質面では、まだまだ改良というかデータのチューニングでもっと良くなる余地があるのですが、これからの反響をウォッチしながら今後を考えていこうと思います。
是非とも多くの方に使っていただいて、いろいろな意見をお待ちしています。
続きを読む >>
| AquesTone | 01:06 | - | - |
PROFILE
Follow
CATEGORIES
LATEST ENTRIES
SEARCH THIS SITE
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
SONY MDR-CD900ST
SONY MDR-CD900ST (JUGEMレビュー »)

普段これで開発しています。
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND