- 締切済み
非整数次倍音だけを除去する方法
コンピュータソフトウェアに関わる質問ですが、音響学、信号処理に関わる質問なので物理学カテゴリで質問させていただきます。 カテゴリが適切でないかもしれませんがご容赦のほど願います。 現在、ピアノの音や人の声など“音程のある音”のスペクトルを加工する勉強をしております。 (基本ピッチ300~400HZを想定) そこで整数次倍音の倍音列だけを残し、非整数次倍音だけを除去する必要が出て参りました。 波形編集ソフト(Sound-forge)からプラグインのイコライザーを起動したりして、非整数次倍音だけを除去しようとするのですが、イコライザーのバンドパスフィルターは帯域幅が広くて倍音と倍音の間を狙って削るような細かい加工ができません。 「ノイズゲート」というエフェクターでは、時間領域において振幅によって「出す出さない」判定するだけで、周波数領域での処理はしてくれなさそうです。 「エキサイター」というエフェクターは、倍音を「強調する」らしいのですが、原信号を歪ませることにより発生させるものらしく整数次倍音だけを丁寧に持ち上げてくれるかどうか不明です。 「ノイズリダクション」というものがあると聞きましたが、ヒスノイズなどを除去する原理が、わたしが求めている「倍音と倍音の間にある非整数次倍音だけを除去する」という目的に合うのかわかりません。 非整数次倍音だけを除去するよい方法(またはソフト)はないものでしょうか? ちなみに私はDTM(DeskTopMusic)の経験がなく、市販されている電子楽器などのことがよくわかっておりません。 以上よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- shingo5k
- ベストアンサー率33% (123/366)
No1です >>1の方法が最良かと思いましたが、ゆがみも大きくなるということですね? >> (この原理を利用したソフトウェアはありますでしょうか?) 歪(ひずみ)が大きくなるということはありません 一般に楽器にはピッチ変動があります。 高次倍音ではその変動が大きくなるため、落としたくないbinまで落としてしまい 結果として、高い周波数のレベルが落ちがちです。 あいにく市販ソフトの知識はありませんので別の方にお尋ねください。 チームの中のソフト担当者を取り込むとか、外部のソフトハウスと組んで 研究するしかないのではと思います。例えばピッチを拾うことに関しても、高い精度 でのピッチ検出が要求されます。また谷のbinを抑圧するにしても、どのような カーブにするか試行錯誤が必要です。 >> 最もおすすめとおっしゃる3の方法ですが、もしPC上でwavファイル >>を比較的簡単な操作で加工できますなら是非、ご教示いただきたいと存じます。 本件は一般の多くの人が必要とするソフトではないので、市販ソフトとか フリーソフトでは見つからない様な気がします。 分析再合成は和歌山大学の STRAIGHT と いう方式が優れていると思います。 直接連絡されたらいかがでしょうか。(Webで調査可能) >>あと、No2の方からコムフィルターを使用するご意見を賜りましたが、 >>この原理を利用したソフトウェアとかありましたら、 >>あわせてご教示いただけたら幸いです。 ピッチを高精度で拾う必要があり、刻々変わるそれを使って信号を操作する 点は同じであり、1の方式との性能の優劣は少ないと思います 実装上はコムフィルターの方が軽い可能性があります。 固定周波数でのコムフィルターあるいは逆コムフィルターは見つかると思います が拾ったピッチに連動したコムフィルターは、探すのが難しいかもしれません。 先にお示ししたWebサイトはごらんになり試聴されましたか? このような音が得られる処理をされたいのでしょうか? 私も、かつて分析再合成をかじったことがあるのですが、その時はうまく行かず 投げ出しました。 今回は貴兄の質問がきっかけとなり、それなりのものが出来たと感謝しています。
- tadys
- ベストアンサー率40% (856/2135)
>今、取り組んでいる研究の用途は、「雑味」を含む音色と含まない音色との聴感上の比較、主観評価実験をしたいと考えております。 結局やりたいことを実現するにはマルチバンドのイコライザーが必要になるでしょう。 31 バンドのイコライザーが使用できる無料のソフトがありますのでこれが使用できるかもしれません。 周波数を自分で指定できる可変バンドのイコライザもあります。 http://www.gigafree.net/media/se/EqualizerAPO.html
補足
ご回答ありがとうございます! 無料のイコライザーソフトまでご紹介くださりありがとうございました。 さてそのソフトを調べてみました。31バンド搭載!と、多バンドである点は良さそうなのですが、 市販のグラフィックイコライザと同様、各帯域が最初から定間隔で固定されているものは任意の倍音列については使用できないと思われます。 また任意の中心周波数を設定できるモードであっても、たとえば基本周波数が300Hzなどのように低い場合の倍音列の間隔は狭く、特に高域ではあまりにも狭すぎてQ値を尖らせても倍音まで削ってしまいそうです。 あと、ご紹介いただいたソフトはサウンドデバイスに直接アクセスしてしまうタイプらしく、PCの運用上使いづらく、ホストアプリケーションからVSTプラグインとして起動できるようなものがあれば有り難いのですが・・・
- shingo5k
- ベストアンサー率33% (123/366)
No1 です 用途のご説明ありがとうございます。 1の方法は、抑圧する周波数区間の割合を大きくすればより雑味 が減るはずですが、そうすると音質が悪くなります。 したがって、結果的にはあまり雑味を減らせられない気がします。 2の方法は、FFT結果から、整数倍音成分以外部分の推定カーブ を作り(時刻により変化)それを引きます。 これも音質劣化(高域低下)を伴うため、音を聞きながら推定カーブ をを種々に調整します。 またミュージカルノイズの発声を抑える工夫も入れます。 3の方法がもっともお勧めです。 ピッチの検出できない場所はそのまま残し、ピッチの検出できた 場所は(整数倍音の包絡線とピッチから)合成した音に置き換えます。 ピアノなら周波数変動が無いので、うまくできると思います。 歌唱データでも、ピッチ変動の少ない部分であれば、使える程度の ものはできると思います。 10日ほど時間をいただければ下記に結果を掲載します。 http://kartec.mods.jp/
補足
再びご回答ありがとうございます! 1の方法が最良かと思いましたが、ゆがみも大きくなるということですね? (この原理を利用したソフトウェアはありますでしょうか?) 最もおすすめとおっしゃる3の方法ですが、もしPC上でwavファイルを比較的簡単な操作で加工できますなら是非、ご教示いただきたいと存じます。 あと、No2の方からコムフィルターを使用するご意見を賜りましたが、この原理を利用したソフトウェアとかありましたら、あわせてご教示いただけたら幸いです。 以上よろしくお願いします。
- tadys
- ベストアンサー率40% (856/2135)
非整数次だと倍音とは言わないような気がしますが。 コムフィルタが希望するものでしょう。 https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%A0%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF http://sip.sys.es.osaka-u.ac.jp/~kawamura/Comb/index.html シンセサイザー内蔵のコムフィルタが使用可能かもしれません。 これ以外にはパソコンで処理するか、DSPやFPGAを使ったハードウェアを使用する方法があります。
補足
ご回答ありがとうございます! おっしゃるとおり非整数次倍音は倍音ではないように思います。 (「倍音」(春秋社)の著者中村明一さんの用法に寄りました) さて、コムフィルターのご提案ありがとうございます。 > シンセサイザー内蔵のコムフィルタが使用可能かも その方法にてwavファイルを加工できますでしょうか? できればPC上の処理だけで完結したいのですが・・・ > パソコンで処理するかDSPやFPGAを使ったハードウェアを > 使用する方法があります。 自分には遅延回路を設計・プログラミングする能力がありません。 既製のWindows向けソフトウェアはないものでしょうか? できれば、基本ピッチを自動的に求めて遅延時間も自動的にセットして くれる初心者向きのソフトウェアがのぞましいのですが 以上よろしくご教示のほどお願いします。
- shingo5k
- ベストアンサー率33% (123/366)
>>非整数次倍音だけを除去するよい方法(またはソフト)はないものでしょうか? いくつかの方法があります 1 まずFFTし、次にそのFFT結果を加工(非整数次倍音 bin だけを減衰)し、 最後にIFFTで時間軸データに戻します。 2 まずFFTでノイズ包絡線形状を求めそれを spectral subtract という手法で 周波数軸上で減算し、最後にIFFTで時間軸データに戻します 3 まず倍音ごとのレベルと周波数それぞれの時間変化データを求めます 次に、そのデータだけを使って音声を合成します。(分析合成手法です) 大雑把にはこのような方法があります。 用途によって適否がありますので、用途をお知らせいただければより、詳しく お答えできる可能性があります。
補足
ご回答ありがとうございます! 今、取り組んでいる研究の用途は、「雑味」を含む音色と含まない音色との聴感上の比較、主観評価実験をしたいと考えております。 ここでいう「雑味」とは、発音体自体が発してしまう(いわゆる)非整数次倍音のことです。人の声でいえば気息音、バイオリンでいえば弓が擦れる音が該当します。 したがって、ご提案の2 のように、定常ノイズが既知であることを前提としたノイズリダクション的な手法ではないだろうと考えております。 また実験では、スペクトル加工のデモンストレーションも考えておりますので、サンプルをあらかじめ作っておくこともできず、リクエストに応えてありとあらゆる楽器音をPC上で短時間で処理しなくてはなりません。 したがって、ご提案の3 も原理的には理解できますが、予め時間かけて準備しなければならない手法は選択できません。 ご提案の1 が最も用途に合うと思われますが、自身がプログラミングする能力はありませんので既製のソフトウェアを使用するしかないと思っております。 wavファイルを加工できる最適なソフトウェアがあればご教示いただければと存じます。
補足
ご回答ありがとうございます。 わたくしにとってMatlabの敷居はまだまだ高いのでSTRAIGHTはすぐに利用できない状態です。 >ピッチを高精度で拾う必要があり 今回はピッチが一定のものを使うという前提で進めております。ビブラートさえかけません。 (ただし自然なゆらぎ程度はありますが、±50centを越えることはありません) > 先にお示ししたWebサイトはごらんになり試聴されましたか? ありがとうございます。そのサイトへ飛んでみたのですが 「玉音放送」は拝聴できましたが「整数倍音以外の成分を除去」は指定されたページ(URL)は見つかりません。というエラーになってしまいます。 「玉音放送」のノイズは綺麗に除去できていますね。再現性(自然性)において若干人工的な感じもしますが、ここまで除去できるものであれば使用してみたいです。