Quantcast
Channel: g200kg
Viewing all 579 articles
Browse latest View live

JKnobMan 1.2.7 リリース

$
0
0
JknobMan 1.2.7 をリリースしました。 JKnobMan 1.2.7 * 例えば "(99:1),,(1:99)"のような複雑な形式のダイナミックテキストで  正常に動作しないケースがあったのを修正。1.2.6でエンバグしていました。

WebAudioAPIのちょっと困ったところ

$
0
0
WebAudioAPIは実装間のコンパチビリティを取るのが結構やっかいだと思うのだよ。
例えばフィルターのQをグイーンと上げて発振する手前ぎりぎりで使ってたはずが別のブラウザだとピーピー言っちゃってるなんて事になったら目も当てらんない。

昨日気が付いた所:
  • AudioParamのvalueに値を入れても直接反映されず、ある時定数を持ってスムージングされる。
  • ただし、そのAudioParamに別の信号(オシレータとか)を接続した場合はそのスムージング処理は行われない。
こういう細かな挙動が仕様として明文化されていないのが厳しいなあ。

Javascriptで全ての信号処理をするならJavascriptさえちゃんと走っていればどの環境でも同じ結果が出るのだけど、WebAudioAPIはブラックボックス化した各ノードがそれぞれそれなりの機能を持っているので、複雑なつなぎで音を作ると環境による微妙な違いが結果としてバタフライ効果的に作用する可能性がある。もうソースコードコピペするくらいのつもりの互換性がないと厳しいかも知れん。

まあWebAudioAPIそのものを実装する人なんてほとんどいないのであまり問題にはならないのかも知れないけど。FirefoxのWebAudioAPIの実装が今進んでいるはずだけど、どんなもんだろうか。

インパルスレスポンス、WebAudioAPI、そしてOpenairlib

$
0
0
インパルスレスポンスと言えばコンボリューションリバーブ。コンボリューションリバーブと言えば、WebAudioAPIのConvolverという事で、Webアプリ上でもコンボリューションリバーブが使えるようになったわけです。ネイティブプログラムのプラグインの世界でも当初フリーだったSIRのコンボリューションエフェクトがスゲーとか言いつつ重くてひーひー言ってた時代から考えると進歩したものですが、実はちょっと気になる事があるのです。 コンボリューションエフェクトを使う際には元となるIRデータが必要ですが、このIRデータをどうやって調達するか。 現在販売されている大手メーカー製のコンボリューションプラグインならIRデータも充分最初からバンドルされていますが、SIRのように元々エンジンしかない場合これが問題なわけで、有志がIRデータを作成して公開したりしていました(製品名を出してサンプリングしたものとかグレーな感じのものも多いですが)。今ではIRライブラリという形の製品だとか、とりあえずお試しでという事ならばIRライブラリの一部がフリー素材として公開されたりしているのでこういうものを使う事が多いのではないかと思います。 ただですね。製品のIRライブラリとかそのデモ版とかと言う奴は、ライセンス的には大抵使用はできても再頒布はできないのです。VSTなんかのプラグインでローカル環境で使う分には何も問題はないのですが、Webアプリ(WebAudioAPI)で使おうとするとどこかのサイトに置く事になりますので、これはまずいかも知れません。はっきりと「他サイトへのアップロードを禁じる」と書かれているものもあります。 このあたりを考慮するとWebAudioAPIで使えるIRデータの選択肢が急激に狭まってしまいます。個人が作成してフリーで提供されているものなどもあるのですが、やはり「Webアプリで使いたいからIRファイルをそのままネット上に置く」という事自体がまだ想定外だと思われますので、そういう使い方をして良いか確認を取る必要がありそうです。 一番有望なのはcode.google.comにあるこのあたり https://code.google.com/p/chromium/source/browse/trunk/samples/audio/?r=2266#audio%2Fimpulse-responses ただ元データのLICENSEが明記してあるのは一部だけです。bin_dfeqおよびbinauralディレクトリにあるIRデータの元は http://www.acoustics.hut.fi/projects/poririrs/ で「非商用に限りフリー」とされています。その他のIRデータは独自に作られたものなのか元ネタがあるのか判断がつきません。これらはWebAudioAPIの各種サンプルコードでもあちこちで使われているのでそう妙な事にはなっていないとは思うのですが・・・何か一言書いておいてくれれば安心できるんですがねー。 他にはネット上で使うのに適合しそうなのがないかと思ってちょっと探した所、こういうのを見つけました。これは英国ヨーク大学のプロジェクトのようです。ライセンスは Creative Commons ベースでファイル毎に設定されているようですので、使いやすいのではないでしょうか。 http://www.openairlib.net/ ホールとか教会とかに偏っちゃいそうですけど、IRデータをマップに対応させるとかちょっと面白そうな試みもあります。2年以上前から始まっているのを考えるとデータ数が少し寂しいですが、充実していって欲しいですね。

WebAudioAPI解説:convolver編、panner編

asm.jsでFFTしてみた、のだが。

$
0
0
最近一部で話題の"asm.js"。

GIGAZINE:「JavaScriptがネイティブアプリに近い実行速度まで高速化」
たとえばこんな記事があります↑。すんごく期待してしまったわけですよ、これがFirefox22で搭載されると。
特徴としては
  • Nativeで書いた時の1/2程度の速度になる
  • Javascriptのサブセットなので非対応ブラウザでもそのまま動く
  • DOM関連は駄目だけど純粋な数値計算で威力を発揮する

既存のコードが恩恵を受けられる事はほとんどないだろう、とか使い道には色々議論があるようなんですが、これはWebAudio関連の処理と相性が良いに違いない!

て事で正式には6月リリースですがNightlyビルドではもう使えるらしいので、試してみました。ある程度実用になりそうなあたりを狙ってFFTをやらせてみます。

で、書いたのがこちら:asmjstest.html

2048ポイントのFFTを変換/逆変換を繰り返して速度を見ます。元波形は矩形波で変換後の波形(緑、元の矩形波と同じはず)とスペクトル(赤)が表示されます。 FirefoxのNightly以外のブラウザはasm.js非対応なので [ASM]と[NoASM]は同じ結果になります。
結果:
時間
Firefox ASM,10000回4156
Firefox NoASM,10000回6009
Chrome 10000回4859
IE10 10000回12164

あれ、うん...。速い事は速いのだけど。なんかもっとこう爆速な感じを期待してたのだが?

処理にもよるでしょうけど、せいぜい通常のJavascriptの2倍程度の速度を狙う感じでしょうか。stdlib経由で数値関数なんかも使えるのですが、オーバーヘッドが大きいようでできれば使用を避けた方が良いように思います。こうやれば、もっと速くなるよ!! 的なノウハウがないものかと模索してるんですが、なかなかうまくいかんです。

爆速だったら入出力の方法とか色々整備したい所だけど、ちょっとモチベーションが下がりました。せっかく書いたのでおいておきますけど。複素数入力で、正規化する/しないのフラグがあります。汎用性を持たせようとしてたので通常の配列からデータを渡せるようにして、ついでにここでスクランブルまでやっています。
https://github.com/g200kg/Fft-asm.js


なお、asm.jsの仕様はここ http://asmjs.org/spec/latest/

正直結構書くにくいです。簡単に説明すると、

  • asm.js化したい関数やファイルに "use asm"; と書く
  • 変数は数値のみで文字列やオブジェクトは使えない
  • 数値は var i=0; var r=0.0; のように常に型を意識しながら書く
  • 配列は通常コードと共有するArrayBuffer、1つのみを使いまわす

他にもたくさん制限があるのでコンソールでasm.js化のエラーが出てないか確認しながら書く感じになります。


「結局 asm.js は名前のせいで過大な期待を煽りすぎなのだと思う。冷静に考えれば、普通のJSの2倍くらいの速度が出るのは凄い事かも知れん」、となんとなくフォローしておく。嫌いじゃないんだよ、この手のやつ。

FirefoxのWebAudioAPIのサポート状況

$
0
0

現在 Firefox Aurora にデフォルトでオンの状態で入っています。
もうすぐFirefoxでも普通にWebAudioAPIが使えるようになるのは喜ばしい事なのですが、サポート状況が完全ではないため、問題が発生するケースがありそうです。

そんなに完全にチェックしたわけではないのですが、ちょっと触ってみた所、次のような気を付けるべき点があります。


  • オーディオコンテキストはプリフィックスなしのAudioContextになっています。
  • OscillatorNode、ConvolverNode、WaveShaperNodeがありません。
  • ノードの接続で信号のループを作ったり複雑な接続をすると正常に動かない場合があります。
  • BufferSourceNodeのplaybackRate、start()、stop()はパラメータや関数はありますが無効です。playbackRateは1に固定、再生は勝手に始まります。
  • BiquadFilterNodeのtypeは古い仕様の数値での指定は効きません。文字列で指定する必要があります。
  • DelayNodeは入力が途絶えるとバッファ内のデータを繰り返し出力し続けます。
  • PannerNodeは存在しますが、効いていないようです。デフォルトの"HRTF"では効きません。文字列で"equalpower"を指定すると効きますがSafariで異常動作を起こします。

  • こんな感じですので、今の所ノードの機能を色々使った複雑なアプリを作るのは少し厳しいかも知れませんが、とりあえずBufferにデータを読み込んでBufferSourceで鳴らしてフィルターを掛けてみる、などさわりの部分を確認するくらいは可能かと思います。

    WebAudioAPI解説のページのサンプルは残念ながらFirefoxでまだサポートされていないOscillatorを各所で使っている事もあって、ほとんどがそのままでは動きませんでした。

    やっかいなのはAudioContextがプリフィックスなしで入っているため、そのままではpolyfillにフォールバックしない事です。折角有効になったFirefoxのWebAudioAPIを使いたいのはやまやまですが、Firefoxの場合は強制的にフォールバックしてWAAPISimで動かすような変更を現在加えています。

    WAAPISimの読み込みの前に次の1行を指定します。これでAudioContextが生きていてもオシレーターが使えない環境の場合には強制的にPolyfillで置き換えを行います。

    <script type="text/javascript">waapisimForceSimWhenLackOsc=1;</script>
    

    Javascriptで書かれたSoundFontプレーヤー + WebMidiLink

    $
    0
    0

    数日前、@y_imaya氏がJavascriptで書かれたSoundFontによるMIDIプレーヤーを発表したのですが、これが実はシーケンサーとプレーヤーが独立していてWebMidiLinkでドライブしているという素晴らしい構造でした。という事でプレーヤー部は単独でWebMidiLink対応シンセとしてWebMidiLinkのシンセリストに登録させていただきました。

    WebSequencer でリストから[SoundFont Player]を選んで[Synth-1]~[Synth-4]のどこかに読み込むと使用できるようになります。
    なお、SoundFont自体が結構なサイズですので読み込みに多少時間がかかります。

    JavascriptベースのアプリでSoundFontも使えるっていうのは、結構強力な武器を手に入れた感じです。今はまだコードを少し整理している途中だそうですが、近々SoundFont周りもライブラリとして公開を考えているとの事で期待期待。

    WebSequencerで適当に打ち込んだデモ (Chrome推奨、url長いです):
    SoundFont Player + WebSequencer デモ

    @y_imaya氏のページはこちら:
    http://blog.livedoor.jp/imaya_js/

    書道やろうぜ(Fakeだけどな!)

    $
    0
    0
    Twitterの方とかで時々落書きしているFake書道のやり方をデモビデオにしてみた。 Windows標準のペイントだけでできるよ。 (FakeShodoのテーマ曲つくりました) http://www.youtube.com/watch?v=SV4c3KT82Yo

    asm.js は本当に速いのか?

    $
    0
    0

    現在 Firefox aurora に搭載されている asm.js についてとにかく「爆速」というような記事を良く見かけるのですが、asm.js を使ったFFTモジュールを書いてみたのだけどどうも思ったような性能が出ないなあ、という事で先日記事を書きました。

    asm.jsでFFTしてみた、のだが。

    その時の結果がこちら

    時間
    Firefox ASM,10000回4156
    Firefox NoASM,10000回6009
    Chrome 10000回4859
    IE10 10000回12164

    この結果から、確かにFirefoxとしてはasm.jsが有効になる事で速くはなっているのだけど、asm.js 非対応のChromeと大して変わらない(場合によっては負ける)、というのがわざわざ文法を変えてまで改善した結果としては物足りない、という所ですね。

    なお、このテストは実用的なFFTモジュールを目指していてデータの入出力部に通常のJavascriptとのインターフェースのために非asm.jsの処理が多少残っていますので、純粋なベンチマークならばもう少しasm.jsでの改善具合は良くなると思います。


    しかしながら、触ってみた実感と世の中の爆速という評判との乖離に釈然としないものを感じていたわけです。1つは比較対象が何であるかという点だと思います。これは数日前の記事。
    Surprise! Mozilla can produce near-native performance on the Web
    ここに出ている数値自体は割合納得できました。near-nativeという言い方ですが、通常のJavaScriptに対して2倍程度の性能って所でしょうか。ただ比較対象の他のブラウザとしては現時点明らかに勝てるであろうIEしか出ていません。

    という事で、今回は竹内関数(Tarai Function)でのベンチマークをとってみます。Tarai Function は下のリストのような関数で、数値演算でもなくほとんどが関数呼び出しの速度に依存するのですが、これはFirefoxにとってはかなり有利な条件だと思います。

    function tarai_n(x,y,z) {
    	if(x <= y)
    		return y;
    	return tarai_n(tarai_n(x-1,y,z),tarai_n(y-1,z,x),tarai_n(z-1,x,y));
    }
    

    JavaScriptエンジンにはそれぞれ得意不得意があります。私が使っている限りでの一般的な使用においては、平均的にはFirefoxよりChromeの方がちょっと速いかなと思っているのですが、関数呼び出しについてはFirefoxが速いです。

    使用したバージョンは:
    Firefox は 23.0a2(2013-05-26)
    Chrome は 28.0.1500.20
    IEは10.0.9200.16576
    です。


    使用したベンチマークはこちら:Tarai function benchmark
    • RegularJS : 通常のJavaScript文法で書いたもの
    • ASM/NoASM int : asm.js文法でintに型付けして書いたもの (x|0 という奴)
    • ASM/NoASM double : asm.js文法でdoubleに型付けして書いたもの (+x という奴)
    • NoASM は "use asm"; を付けていないので asm.js が有効になっていません
    時間
    FirefoxRegularJS tarai(14,7,0)3131
    ASM double tarai(14,7,0)6027
    ASM int tarai(14,7,0)3312
    NoASM double tarai(14,7,0)8312
    NoASM int tarai(14,7,0)8333
    ChromeRegularJS tarai(14,7,0)4745
    NoASM double tarai(14,7,0)6101
    NoASM int tarai(14,7,0)6004
    IE10RegularJS tarai(14,7,0)7681
    NoASM double tarai(14,7,0)8138
    NoASM int tarai(14,7,0)9339

    こんな感じになりました。まず、RegularJSで比べるとFirefox 3131、Chrome 4745。やっぱりFirefoxは関数呼び出しに強いです。そして、asm.js の文法に沿った書き方にしてみると、NoASM double Firefox 8312、Chrome 6101。あれ、逆転しちゃいました。+ 演算子とかに対するペナルティがFirefoxだと結構大きいですね。しかしここから、Firefoxは asm.js によるパフォーマンス改善があって ASM double で6027まで改善します。

    つまり
    Chrome 4745 => 6101 に対し、Firefoxは 3131 => 8312 => 6027
    という推移。ほぼChromeに並びます。
    そして更に、asm.jsでintに型付けすると
    Chromeは 4745 => 6004、に対しFirefoxは 3131 => 8333 => 3312
    という推移。asm.js対応ソースでChromeの倍くらいの速度が出ます。

    とは言うものの、これではFirefox自身のRegularJSの数値と変わらんではないか...。asm.js文法によるペナルティを取り戻しただけという...。

    文法に制約を設けて最適化するのだから競争するべき相手は、「他のブラウザ」と「本来の文法」という2つがありますよね。今このあたりがごっちゃになっているような気がします。対Chromeで考えるとFirefoxがもともと優位な傾向だった処理で優位。しかし本来のJavaScriptと比べるともともと優位だった処理ではあまり優位性が出ない、という板ばさみ的状況。

    asm.jsが明らかに優位性を発揮できるのは C++をemscriptenで変換したコードだけって言う事なのかなあ。元がC++とかなら元々JavaScriptでゴリゴリにチューンしたコードと比較される事はないし元のネイティブに対して何倍という言い方になるものね。emscriptenが吐くコードを精査したわけではないけど無駄があってそのオーバーヘッドを解消する、みたいなストーリーは成立しやすそうです。メインターゲットは確かにそこだとは思うのだけどね。

    とりあえずわかった事は asm.js の double/int 間の差は結構大きい。可能なかぎりintに型付けすべし、という事。

    手書きasm.jsに爆速の道は残されているのか!? (続く...のか?)

    百裂拳カメラ

    $
    0
    0
    WebRTCをいじってて凄くくだらないものを作ってしまった。 百裂拳カメラ 下のような画像が作成できます。千手観音やエグザイルでも可。 * WebRTCのgetUserMediaでPCに接続されているカメラの画像を取り込みます。 * 今の所サポートされているブラウザはChromeまたはFirefoxのみです。 * PCにカメラが接続されている事が必要です(最近のノートPCだと大抵内蔵されています)。 * 起動するとカメラを使用してよいかメッセージが出ますので「許可」(Firefoxでは「デバイスの共有」)を選択してください。 * [Start] ボタンを押すと2秒毎に写真を取って合成します(デフォルトでは6枚)。 * 作成した画像は[Download]のリンクからJPEG形式で保存できます。

    JavaScriptによるSFプレーヤー・ソース公開

    $
    0
    0
    @y_imaya氏のJavaScriptによるサウンドフォントプレーヤーのソースが公開されました。 先日アナウンスされた時にはまだ一部デバッグの途中という事でminifyされた状態だったのですが、今回は完全な形での公開です。WebMidiLinkにも対応しています。これでブラウザでサウンドフォントを扱う道が開けた感じですねー。 @y_imaya氏の該当ブログ記事 Web Audio API で Sound Font を使った標準 MIDI ファイルの再生 GitHub プレーヤー部分:https://github.com/gree/smfplayer.js シンセ部分:https://github.com/gree/sf2synth.js

    Renoid Player on Browser

    $
    0
    0
    今年の年明けに一度書いたのですが、Renoise-gateのサトーさんが、バーチャルシンガー「Renoid」という仕組みを提案されています。 簡単に言えばひらがなの各音を収録してドラムマップのようにMIDIの各ノートに割り当て、発音した音は別トラックのMIDIからピッチコレクターを使ってメロディーを付けるという方法で、特別なソフトがなくてもバーチャルシンガーに歌を歌わせる事ができる、というものです。 現在、Renoidのページではサトーさん自身制作の4種類のボイスのほかにUTAU向けの音源を提供されている方による音源も公開されています。 RenoidのフォーマットはRenoise専用のフォーマットであるXRNIだけでなく、SoundFont (SF2) 形式のものも準備されていますので、Renoiseに限らずサウンドフォントプレーヤーとピッチコレクターさえあれば歌わせる事ができます。
    とここまでが前回も書いた事なのですが、今回このRenoidファイルを使ってブラウザ上で音を出すテストページを作りました。 Renoid Player まだ実験的なものですがとりあえず触って音が出るようにはなっています。残念ながらフォルマント修正の処理ができていないためピッチの変化によってかなり妙な音になりますが、今後の課題という事にしておきます (対応しました)。 この「Renoid Player」は「歌詞付きMML」でメロディを指定します。例えば「O3T120ABCDE」のようなMMLにひらがなを埋め込んで「O3T120あAいBうCえDおE」という風に指定します。ひらがなはMMLの音色切り替えコマンドだと考えれば良いです。(追記:また、ひらがなはまとめて「O3T120あいうえおABCDE」という風にあらかじめ指定する事もできます) Renoid Playerが使用しているのは サトーさん制作の SoundFont形式のRenoidファイルです。また、UTAU音源の「ほのか鳴」「朝音ボウ」をRenoid化したものもRenoise-gateで配布されていますのでダウンロードすればローカルファイルを指定して読み込ませる事ができます。 SoundFontのパーサーはRenoid専用で最小限の項目しか読んでいません。ちゃんとSoundFontを扱いたい場合は先日@y_imaya氏が発表されたサウンドフォントプレーヤーの方が良いかと思います。
    Renoid Player サンプル曲

    WebSequencerがボーカルを手に入れた!

    $
    0
    0
    さて、ここんところいじりまわしているRenoid Playerですが、WebSequencer上で使えるようになりました。 本当はピアノロールエディタを使えるようにしようかと思ったのだけど、いろいろ面倒な事になりそうなのでその前段階として、WebSequencerからWebMidiLink経由でRenoidプレーヤにMIDIシンクを送って同期させています。WebSequencerにRenoidをロードしてメロディを歌詞付きMMLで入力すると、WebSequencerの演奏に同期してRenoidが歌います。 Renoidの方はボイスファイルとしてRenoise-gateのサトーさん制作の4種類に加えてUTAU音源にもボイスデータを提供されている「朝音ボウ」がメニューから選択できるようになっています。(追記:許諾をいただきましたので更に「ほのか鳴(めい)」ボイスも追加しました)。 (実はMIDIのStart/Continue/StopとSongPositionPointerだけ見ててMIDIクロックは送るだけは送っているのだけど見てません。その内実装するかも知れませんが両方とも1台のPC内で動作しているので、サンプルを数えていればずれていく事も無いしそれほど意味がないかも、と思ったりしています) ※Chrome/Firefox/Safariで動作します。IEだと動作しません。 サンプル曲

    RenoidPlayerアップデート

    $
    0
    0
    見てのとおりですが、RenoidPlayerをピアノロールで編集できるようにしました。 MMLとピアノロールを切り替えてどちらでも使えます。 なんか結構使いやすいのではないかという気がします。オーディオで書き出せたりすると本格的に使えるかも知れませんが需要はあるのでしょうか? ブラウザ上で動いて何がうれしいのかという問題はあるかも知れませんが、今のところはこういうものがブラウザ上で動く、という事自体が面白いですよね。 ※ こちらの環境だけの問題かも知れませんが、Chromeでブラウザのハードウェアアクセラレーションを有効していると稀にピアノロールが表示されないという現象が起こる事がありました。アクセラレーションを切ると起こらなくなりますので、ビデオドライバー周りなどかも知れませんが、回避策を模索中です。おかしくなった時はとりあえずページをリロードすると回復します。 RenoidPlayer

    RenoidPlayer GUI更新

    $
    0
    0
    RenoidPlayerのGUIを一新して、ピアノロールの編集関係の機能をいろいろ追加しました。とりあえずそれほど不自由なく使える状態になったと思います。後、本当なら英語版とかを準備したい所だけど、この手のやつは簡単には言語展開できないのがこまったもんです。 RenoidPlayerがやってるのは単なる音韻の切り貼りなのでレベルは違いますが、このところCeVIOが話題になったりと歌唱合成関係も賑やかな感じになってきましたけど、その分ちょっとコモディティ感もでてきた気がします。差別化のためにリアルな人間を目指すという方向性はわかりやすくてまだまだやるべき事はあるのだと思いますが、その内人間と判別がつかない所まで来た時にどんな使い方ができるかというのは意外と難しかったりするんじゃないかと思ったり。 てか、歌唱合成って「不気味の谷」的にはどういうフェーズなんだろうね。これから谷に差し掛かるのか既に谷の中でその違和感が個性として受け入れられているのかすら良くわからん。

    Renoid Player でWavExport

    $
    0
    0
    RenoidPlayerで作った曲をWAVファイルとしてエクスポートできるようになりました。[WavExport]ボタンを押すと[.wavへのリンク]が表示されますので右クリックメニューなどで保存してください。 ※ただし、MacのSafariだと通常の編集や再生はできるのですがWavExport機能が動きません。MacでWavファイル化したい場合はChromeやFirefoxを使用してください。 保存形式は44.1kHzモノラルのWAVファイルです。 これでRenoidPlayerは一応完結したツールとしてボーカルトラック制作に使えない事もなくなったのですが、需要はありますか?

    RenoidPlayerでvsq/ust/ccs/xmlをサポート

    $
    0
    0
    ファイルをドロップすると歌詞付のシーケンスとして読み込みます。ただし読み込むのはノート情報とひらがな表記の歌詞だけですので、ピッチベンドや発音の分割など凝ったデータほどひどい事になります。 読み込めるのは * Vocaloid の .vsq * UTAU の .ust * CeVIO の .ccs * CeVIO等のエクスポート用 MusicXML (.xml) です。これ、もしかして付加情報とかをもう少しサポートして書き出しもできるようにしたら変換ツールとして便利かな、とか全然方向性の定まらない事を考えたり。

    RenoidPlayerデータ変換デモ

    $
    0
    0
    RenoidPlayerでVocaloid(vsq)からCeVIO(MusicXML)へのデータ変換デモ

    歌唱合成考

    $
    0
    0
    歌唱合成という奴はなかなか奥が深くて面白いですねー。 今までも試してみる程度にはやっていたのですが、RenoidPlayerで試行錯誤してみて再認識しました。 その土壌を作ったのは言うまでもなくVocaloidなわけですが、最近登場したCeVIOの生々しい感じもなかなか衝撃的でした。CeVIOの特徴は隠れマルコフモデル(HMM)方式という事ですが、その人間臭い感じを作っているのはHMMによる人間の発声の特徴の学習と周波数領域のパラメータからのリシンセサイズによる滑らかな音の繋がりなんだろうと思います。同じサンプル曲をRenoidPlayerとCeVIOで再生したのがこれ。

    CeVIOの最後の音を伸ばしている所なんて凄く面白いです。伸ばしている音の途中で倍音構成が変わっていて周波数領域のパラメータの変化が癖として学習されてるみたいですね。 CeVIOはベタ打ちのシンプルなデータを突っ込んでも人間臭い発声をするのが面白いですが、一方で細かくいじれるパラメータが少ないという不満もあるようです。有償版を出す時にはパラメータを増やすという話のようですがどんな感じになるんでしょうね。 ただ、細かい編集ができるようになるのはCeVIOの良い所を殺す事に繋がるんじゃないかという疑問もちょっとあります。つまりCeVIOはHMMによって人間臭い音量の変化やピッチの変化を作り出しているわけで、これをユーザーがコントロールするという話とは単純には整合が取れないんじゃないかという気がします。一方Vocaloidユーザーはそれぞれ自分なりの音量やピッチの変化のつけ方を研究していてそれで勝負しているという面もあるわけなので、これを両立させる落し所ってどうなるんでしょうね。 つまり、 Vocaloid → 普通のシンセ CeVIO → 物理モデリング音源 みたいなイメージでパラメータの構成が全然違っている感じ。 部分的にユーザーが上書きできるとかそんな感じになるんですかね? わかんないけど。 CeVIO RenoidPlayer

    RenoidPlayer歌唱合成サンプル

    $
    0
    0
    ピッチの動きが自然に聞こえるようにいろいろ細工をしているのだが、むやみにやると単なる下手くそになる。結局人間の歌唱データを突っ込んで学習させるというのが近道なんだろうな、とも思う。 埋め込みはできないのでリンクだけ。 http://www.youtube.com/watch?v=fewf6E5JVZg
    Viewing all 579 articles
    Browse latest View live


    Latest Images