3

flac、mp3、wavなどのファイルを調べて部分を編集したり、特定の周波数範囲に基づいてセクションを削除してファイル全体を編集したりできるかどうか疑問に思っていますか?

たとえば、友人がいくつかの打楽器を背景に詩を暗唱している録音があります。ファイル全体を調べて、ボーカル以外のすべてを切り取るCプログラムを作成できますか(人間の声の周波数範囲は85〜255 Hzで、私が読んでいるものから)?

アイデアをよろしくお願いします!

4

5 に答える 5

6

OPの特定の例に対処するには:人間の音声周波数の理解は間違っていると思います。おそらく、男性の話し声の基本周波数はその範囲内にとどまります(テナーの歌、女性のスピーチ、歌、または叫びの場合、基本周波数でさえはるかに高くなり、おそらく500〜1000 Hzになります)。しかし、それは問題ではありません。なぜなら、基本音が低くても、異なる母音を生成する倍音は2000〜4000Hz以上になるからです。また、「t」や「s」などの「ノイズ」子音を定義する周波数は、オーディオ範囲の上限、たとえば5000〜10000Hzまで到達します。パーカッションはこれと同じオーディオ範囲を満たしているため、特定の周波数をフィルタリングして音声とパーカッションを分離できるとは思えません。

于 2010-05-28T05:41:34.753 に答える
4

それは確かに可能です、さもなければデジタルスタジオミキシングソフトウェアは存在しなかったでしょう。

あなたが効果的に求めているのは、ファイル全体の周波数範囲を減衰させることです。アナログランドでは、ローパスフィルターとハイパスフィルター(または他のフィルターの組み合わせ)を適用して、周波数を減衰させます。

ソフトウェアでは、さまざまな周波数の出力を減らすような種類のデジタルフィルタを作成することで、この問題を解決します。周波数は、FFT計算によって識別されます。

最速の方法は、オーディオ編集アプリを使用して、そこに変更を適用することです。

数値レベルでオーディオストリームを編集するためのサポートを提供するPortAudioと呼ばれるオーディオライブラリがあります。これはCで記述されており、CAPIを備えています。

于 2010-05-28T01:08:12.040 に答える
2

オーディオ処理アルゴリズムをテストしたい場合は、Supercolliderを強くお勧めします。無料で、さまざまな種類のオーディオフィルタが組み込まれています。ただし、音声を削除するには、かなりの調整が必要になる場合があります。Supercolliderを使用すると、さまざまなパラメーターによって駆動されるコードを記述し、それらのパラメーターをGUIに接続して、ライブ(または記録された)データを提供しながら微調整することができます。

Cコードを書きたい場合でも、最初にSupercolliderを使用することで多くのことを学ぶことができます。フィルタの多くはCで驚くほど簡単に実装できますが、開始する前に一定量のフレームワークコードを記述する必要があります。

さらに、私はこの本からデジタルオーディオフィルターを書くことについてかなり学びました。特に、人間の発話の特徴のいくつかと、特定の周波数を選択的に強化またはノックアウトするためのフィルターを構築する方法について説明します。また、動作するCコードも提供します。

于 2010-05-28T01:16:20.790 に答える
1

SciPyはあらゆる種類の信号処理を行うことができます。

于 2010-05-28T00:57:30.043 に答える
1

また、MAX / MSP(有料)またはPureData(無料)を使用して音楽アルゴリズムを操作することもできます。これらは、スーパーコライダーが作成された基礎です。また、リアルタイム環境でそれを実行したい場合は、優れたソフトウェアです。

于 2010-06-19T00:44:00.080 に答える