性能不足に悩むかえる
こんにちわ、こんばんわ。かえるのクーです。
リアルタイムで音声変化を実験・確認するソフトをつくる予定なのですが、マルチスレッドは必須で、買い替え時期の現使用マシンもこの上なく非力なため行き詰ってしまいました。いや、いちばん非力なのは、ボクの(以下省略)。
先へ進まないので、今のスキルではマルチスレッドはむりぽなので、データで遊んでみます。
初音ミクの声に似せてみる
初音ミクのお試し版のVX4版があるようなので、入れてみました。「スペクトラムをみたい」だけのためにお試しするかえるはボクだけかもしれません。
元の声(単なるあいうえお)
MIKUの 倍音はこんな感じでした。かなり高い方の倍音まで含まれていました。(ページサイズの都合で高い方の周波数のグラフはトリムしています。あしからず)
「い」 | 「え」 | 「あ」 |
---|---|---|
「う」 | 「お」 | |
正弦波だけで周波数特性を似せた音(今回は24倍音までがんばって測定)
声質は似ていますがなんとも味気ないです。倍音の測定誤差が大きいのか、かなり角がたっている音になってしまっています。
吐息ノイズがほしい
やはり吐息系のノイズは母音でも必須と感じますので、加えてみたいと思います。吐息ノイズはホワイトノイズを生成してフィルタを通すのがいいと思いますが、今回は正弦波の「合成」でやっているので、できるだけノイズも「合成系」でやりたい気がしています。
いい方法がないか考えてくぐってみます。
。。。
そうかぁ。ランダムな周波数のsin 波を無限に重ねていけば、ホワイトノイズになるんだぁ。
さすがにそれはきついので、ウェーブレットで疑似的に合成してみることにします。
ウェーブレットといえば、去年つくったウェーブレット符号化器(ソフト名:「コレジャナイEncoder」が使えそうです。
ところがAnacondaを最新にしたら、動作しなくなっています。
*** Encode now ***
range = 0 (23.1 to 46.2 Hz)
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.dll.
インテルさんにお願いして最新のdllを取得する必要があるようです。
Intel Math Kernel Library の最新版をダウンロードしました。2.3GBも要求されました。エンコーダは動きました。もうドライブに空きがありません。
特定スペクトルをもつノイズの生成
さて、おもうようにウェーブレット符号化器から所定の周波数特性をもつノイズを生成させられるでしょうか。
ホワイトノイズの2500Hz~4000Hz および、5500Hz~7000Hzまでを-40dB(パワーで1/100)、7000Hzから10000Hzまでをジョジョに-40dB減衰し、10000Hz以上の周波数を含まないようなスペクトルになるかやってみます。
フィルタではなく、該当周波数成分のウェーブレットの合成なので、とても急峻な特性が得られます。高い周波数になると離散ウェーブレットの近似的な合成なのでさすがに指定とおりにはいきませんでした。(赤色部分が指定した特性:ただし元のレベルの-36dBの部分は「たまたま」です。2000~4000Hzはその1/100(-40dB)の-76dBくらいになっているのがわかります。
でも、まぁまぁな感じだと思います。
音を聞いても普通のノイズにしか聞こえませんが、いちおう貼っておきます。
なお、符号化器なので、元のノイズは別のプログラムで生成したホワイトノイズ波形を使っています。これをエンコードせずに作成できれば楽なのですが、それはまたの機会に。
あいうえおの汎用的な吐息ノイズの生成のためには、もう少し調査や実験が必要です。肩透かしになっちゃいました。ごめんなさい。でも技術的にはなんとなく目途がたちました。
あとは、なんとかマルチスレッドを勉強して、続行したいと思います。