Upconv 0.1.x
紹介
このソフトは Wave ファイルのサンプリングレートやビット数の変換を行うソフトです。音声ファイルのアップサンプリングとダウンサンプリングに対応しています。失われた高域の補間もできます。
CDからリッピングしたWaveファイルを48KHz、88.2KHz、96KHz、176KHz、192KHzに変換できます。
44.1KHzのファイルを96KHzに変換するような非整数倍のサンプリングレートへの変換もできます。
バージョン
0.1.x
分類
フリーソフト(GPL)
OS
Microsoft Windows 2000,XP,Vista,Windows7(予定)
公開日
開発中
ダウンロード
現在の最新はupconv0.2.0です。upconv0.2.0は別のページにあります。
- 0.1.0から0.1.1へのhfa2補間時の修正方法を変更(倍音の補間がより正しくできるようになった)
- upconv.exeの最適化方法を変更
- リリース時にNorton AntiVirus 2009とVirus totalでウイルススキャンするようにした
upconv0.1.xは新たに以下の機能に対応しました
- 32Bit Floatフォーマット対応
- 64Bit Floatフォーマット対応
- hfa2(OverTone)改良
- lpf(ローパスフィルター)
- ノイズリダクション
- 大きなwavファイル対応
- マルチスレッド対応
Upconv 0.1.xはUpconv 0.3.xにバージョンアップしました。Upconv 0.3.xをお試しください。
サポート用の掲示板があります。こちらからどうぞ。
upconv01xのスクリーンショット
技術情報
- 高域補間(hfa1)
- 高域部分へ正規分布に基づいたランダムデータを付加します。
低域の音声データと関連はありません。音声の音のレベルに応じたランダムデータを付加します。
- 高域補間(hfa2)
- 高域部分へ倍音成分を予想して求めたデータを付加します。
低域の音声データと関連があります。音声の音のレベルに応じたデータを付加します。
- Output mode(Cutoff)
- 出力時にデータを切り捨てます
- Output mode(Dithering)
- 弱いディザを付加します。
- Output mode(Noise shaping)
- 切り捨てられたデータを累積加算し、累積したデータがいずれデータに加えられます。
長い目で見ると誤差は少なくなり、低音部分に有利となります。
- Output mode(Error Diffusion Methon)
- 切り捨てられたデータを前後の音声データに振り分ける処理をします。
画像を減色したときに見られるざらざらしたような感じ(でも遠くから見ればきれいに見える)みたいな方法です。
- hfa2 option(Sig1)
- 強い倍音成分です。バイオリンで強く出ている音などです
- hfa2 option(Sig2)
- 弱い倍音成分です。
- hfa2 option(Sig1 Phase)
- Sig1 Phaseは強い倍音成分を生成するときの位相を指定します。これを0より変化させるとsig1の位相の変化具合が大きくなります(音の広がり)。
- hfa2 option(Sig2 Phase)
- Sig2 Phaseはsig1より弱い倍音成分を生成するときの位相を指定します。これを0より変化させるとsig2の位相の変化具合が大きくなります(音の広がり)。
- hfa2 option(avgLineNx)
- 強い倍音成分(sig1)を生成するときのパワーの平均値との閾値を指定します。これを大きくすると倍音成分が検出されにくくなります。
- hfa2 option(sig2Lv)
- 弱い倍音成分(sig2)を生成するときのsig2の大きさを指定します。sig2 ÷ sig2Lv
- hfa2 option(sig3Lv)
- 弱い倍音成分(sig2)をフロアノイズとして生成するときのsig2の大きさを指定します。sig3 ÷ sig3Lv。
sig2Lvとsig3Lvの差を大きくするとフロアノイズと倍音の音の差が大きくなります。
以下にhfa2で補間したときの波形をのせます。
avgLineNxは短形波、三角波、倍音成分の音の大きさにより、いろいろ変える必要がありそうです。
また、短形波は直線のところがなくなっていますが、補間時に位相も正確に復元できないため(方法がわからない)復元された位相の値により直線ではなくなってます。
自然界には純粋な直線になるような短形波はないと思いますが補間アルゴリズムを変更すれば可能なのかもしれません。
hfa2の高域補間方法。
各社倍音の補間方法があります。MJ無線と実験(No.1025)には帯域拡張技術の変貌という特集記事があります(掲示板の書き込みにより教えていただきました。多謝)。
フィデリックスのハーモネータ。
折り返しノイズをわざと残留させて高域に信号を付加する形式。
パイオニアのレガートリンクコンバージョンS。
松下電器のデジタルリマスター。
日本ビクターのエクステンド K2プロセッシング。
TIのバンド幅拡張技術。
他にワンセグサービスでの音声符号化方式等がある。
ソフトウェアで高域の補間をしているものはあまりない(ディザ付加ぐらい)ですが、リアルタイムではなく時間がかかってもいいから補間してみたいということで、
考えてみました。
upconv0.1.xの高域補間方法は以下のようにしています(こんなものかなという感じでパラメータを決めています)。
この方法では正しく倍音が補間されるという裏づけはとれていません。
hfa2補間後の倍音が出ている音を周波数で見てみると、倍音成分毎にデータが補間されていますが位相や、音のレベルは正しいか不明です(おそらく違うでしょう)。
もし正しければ、短形波は、がたがたにならずに直線になるはずです(エクステンド K2プロセッシングなら正しくなるのかな)。
- 音声データを4096または8192サイズでFFTします
- 音声データの9000Hzから最小幅100Hzとして最大幅まで(9000Hz+2500Hz)をサーチします
- 9000Hzの位置から、最小幅ずつパワーを累積します(9000、9100、9200...)
- 9000Hz+2500Hz分累積が終わったら、幅を101として9000Hzからまた累積します
- 幅が2500Hzになるまで繰り返します。終わったら今度は開始オフセットをずらして(9001Hz)、最小幅(100)からパワーを累積します(9001、9101、9201...)
- オフセットのずらし分が2500まで終わったら、この中で一番パワーが大きいものを探します
- これをSig1とします。強い倍音のオフセット(9000hzからのオフセット)と幅がわかります
- 次はSig2を求めます。サーチ方法は同じですが、パワーが大きいものではなくて、前後の幅でパワーの差が小さいものを探します
- 定期的に音は出ているがSig1より小さい音が求められます(安定して出ている音)
- Sig2は2とおりの使用方法があり、1つはフロアノイズの生成に使用します(Sig3)。もうひとつはフロアノイズより出ている音を付加するのに使用します(Sig2)
- Sig1をオフセット、倍音の幅ごとに付加していきます。付加するときは同じ音のレベルではなくて、高域になるにしたがって音が小さくなるようにします
- Sig2、Sig3も同様にオフセット、幅ごとに付加していきます。ただし付加するときは同じ音のレベルにしています(フロアノイズになるため)