問題タブ [audio-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
machine-learning - FFT と音楽の比較
私はいくつかの音楽クラスタリングアルゴリズムをいじってみましたが、基本的に離散化された fft (周波数を離散化するなど) で構成される特徴ベクトルを使用すると、類似性を測定するのに適していると思いました。これは役に立ちますか?オーディオの類似性を測定する適切な方法を知っていますか?
java - javaを使用してmp3の最後の無音を識別する
mp3 形式のオーディオの最後にある無音を検出しようとしています。すべての形式が役立ちますが、mp3 形式が最も重要です
windows - mp3ファイルでX秒の無音を見つける方法は?
mp3 ファイルで無音部分を見つける必要があります。そのような単純な。
例えば:
- "file.mp3" で X 秒を超える無音を見つけ、X 秒の無音が見つかった場合はエラーコード 0 を送信し、無音が見つからなかった場合はエラーコード 1 を送信します。
Batch、VBS、Ruby、または Python で試すことができます (すべて練習する必要がありますが、Batch しか知りません)。私は音楽ライブラリとそのことについて何も知りません...
CommandLine APPS のようなその仕事をするためにサードパーティのソフトウェアが必要かどうかは関係ありません...
注: 無音は mp3 ファイルの途中にある場合もあります。たとえば、「隠しトラック」と呼ばれるファイルの場合: 1 曲 + 1 分間の大きな沈黙 + もう 1 曲 (すべて 1 つの mp3 ファイルのみ) したがって、ファイル全体で X selince を検索する何かが必要です, 終わり近くだけでなくファイルの...
注 2: Windows で行う必要があります。
アイデアはありますか?
java - オーディオバイトを解釈する方法は?
音声ストレス分析ツールを書きたいです。私は読むためにオーディオストリームを開いています:
そしてループ:
externalData が次のように定義されているため、バイトを含む配列を取得します。
私が知りたいのは、このデータをどのように解釈するかです。バイト値でプロットしようとしましたが、間違っていると思います。
X 軸は時間、Y 軸はバイト値です。
PS: McQuiston-Ford アルゴリズムに関する詳しい情報はどこで入手できますか?
matlab - Matlab: オーディオ データのフレームで支配的な周波数を見つける
私はMatlabを初めて使用し、単純な周波数ベースの音声検出アルゴリズムを作成しようとしています。最終的な目標は、wav ファイルでスクリプトを実行し、各音声セグメントの開始/終了時間を出力させることです。コードを使用する場合:
次のような有用な周波数強度対時間グラフを取得します。
それを見ると、発話がいつ発生するかが非常に簡単にわかります。各 x 軸フレームを見て、どの周波数が優勢な (強度が最も高い) かを判断し、優勢な周波数が十分に特定の強度しきい値 (グラフの黄色と赤の違い)、そのフレームを音声または非音声としてラベル付けします。フレームにラベルが付けられると、各音声セグメントの開始/終了時間を簡単に取得できます。
私の問題は、そのデータにアクセスする方法がわからないことです。コードを使用できます:
スペクトログラムのすべての機能を取得しますが、そのコードの結果は私には意味がありません. S、F、T、P 配列と行列の境界は、グラフに表示されるものとは相関しません。ヘルプ ファイルと API を調べましたが、アルゴリズムの名前と頭字語が飛び交うと混乱します。私の DSP のバックグラウンドはかなり限られています。
このスペクトログラム分析の各フレームの周波数強度値の配列を取得するにはどうすればよいですか? そこから残りを理解できます。適切なデータを取得する方法を知る必要があるだけです。
javascript - WinJS でのオーディオ分析
探しているものを見つけるために APIを調べたり、オンラインで検索したりしています (ただし、Windows ストア アプリの例はほとんどありません)。私が本質的に探しているのは、Windows ストア JavaScript アプリでオーディオを分析するための出発点です。たとえば、単純なビジュアライザーを作成していて、現在再生中のオーディオのさまざまな種類の「バンプ」を検出する必要があるとします。
ここで誰かが私を正しい方向に向けることができますか? これは、Windows ストアの JavaScript アプリでも可能なことですか? 選択した曲のオーディオ、デバイスで現在再生中の曲、またはマイクのオーディオのいずれであっても、現時点ではどちらの方法でも問題ありません。オーディオの分析をどこから始めればよいかを探しています。
python - クリッピング量の測定
音声ファイルのクリッピング量を測定するコマンドライン ツールまたは Python モジュールを教えてもらえますか? たとえば、http://www.ber-sd.com/dl_clipping.htmlに匹敵するもの。
python - ピッチトラックをメロディー抽出アルゴリズムからハミングのようなオーディオ信号に変換する方法
自宅で楽しむ研究プロジェクトの一環として、私は曲を音声信号のようなハミング(曲を聴いたときに人間が知覚する基本的なメロディー)に変換/変換する方法を見つけようとしています。この問題の試みについて説明する前に、私は画像やビデオの分析に多くの経験がありますが、オーディオ分析にはまったく慣れていないことを述べておきます。
少しグーグルした後、私はたくさんのメロディー抽出アルゴリズムを見つけました。曲のポリフォニックオーディオ信号(例:.wavファイル)が与えられると、ピッチトラックを出力します---各時点で、支配的なピッチ(歌手の声またはメロディー生成機器から来る)を推定し、支配的なピッチを追跡します時間の経過とともにピッチします。
私はいくつかの論文を読みましたが、それらは曲の短時間フーリエ変換を計算し、スペクトログラムで分析を行って支配的なピッチを取得して追跡しているようです。メロディー抽出は、私が開発しようとしているシステムのコンポーネントにすぎないため、オーディオファイルで適切な処理を実行し、コードが利用可能である限り、利用可能なアルゴリズムを使用してもかまいません。私はこれに慣れていないので、どのアルゴリズムがうまく機能することがわかっているか、そしてそのコードをどこで見つけることができるかについての提案を聞いてうれしいです。
私は2つのアルゴリズムを見つけました:
さまざまな音楽ジャンルの結果が非常に印象的だったので、私はMelodiaを選びました。結果を確認するには、これを確認してください。曲ごとに聞こえるハミングは、基本的に私が興味を持っているものです。
「この質問であなたの助けを求めているのは、任意の曲に対するこのハミングの生成です」。
アルゴリズム(vampプラグインとして利用可能)はピッチトラックを出力します--- [time_stamp、pitch / frequency] --- Nx2マトリックス。最初の列はタイムスタンプ(秒単位)で、2番目の列はドミナントピッチです。対応するタイムスタンプで検出されます。以下に示すのは、曲の時間領域信号(上)と紫色でオーバーレイされたアルゴリズムから得られたピッチトラックの視覚化であり、スペクトログラム/短時間フーリエです。負の値-ピッチ/周波数の値は、無声/非メロディックセグメントのアルゴリズムの支配的なピッチ推定を表します。したがって、すべてのピッチ推定値> = 0はメロディーに対応し、残りは私にとって重要ではありません。
今、私はこのピッチトラックをオーディオ信号のようなハミングに戻したいと思います-ちょうど著者が彼らのウェブサイトでそれを持っているように。
以下は、これを行うために作成したMATLAB関数です。
このコードの背後にある基本的なロジックは次のとおりです。各タイムスタンプで、そのタイムスタンプで検出された支配的なピッチ/周波数に等しい周波数の短命の波(たとえば正弦波)を、次の時間に合成します。入力メロディマトリックスの次のタイムスタンプとのギャップ。私はこれを正しくやっているかどうかだけ疑問に思います。
次に、この関数から取得したオーディオ信号を取得して、元の曲(左チャンネルのメロディーと右チャンネルの元の曲)で再生します。生成されたオーディオ信号は、メロディーを生成するソース(音声/リード楽器)をかなりうまくセグメント化しているように見えますが、音声が存在する場所ではアクティブであり、他の場所ではゼロですが、信号自体はハミングとはほど遠いです( beep beep beeeeep beep beeep beeeeeeeep)著者が自分のWebサイトに表示します。具体的には、下の入力曲の時間領域信号と、私の関数を使用して生成されたメロディーの時間領域信号を示す視覚化です。
主な問題の1つは、各タイムスタンプで生成される波の周波数と持続時間が与えられているにもかかわらず、波の振幅を設定する方法がわからないことです。今のところ、振幅をフラット/一定の値に設定しましたが、これが問題の原因であると思われます。
誰かがこれについて何か提案がありますか?任意のプログラム言語(MATLAB、Python、C ++が望ましい)での提案を歓迎しますが、ここでの私の質問はより一般的だと思います---各タイムスタンプでウェーブを生成する方法は?
私の心の中のいくつかのアイデア/修正:
- 元の曲の時間領域信号から振幅の平均/最大推定値を取得して、振幅を設定します。
- 私のアプローチを完全に変えてください---曲のオーディオ信号のスペクトログラム/短時間フーリエ変換を計算してください。ピッチトラック内の周波数(またはピッチトラックに近い周波数)を除く他のすべての周波数をほとんど/ゼロアウトまたはソフトにカットオフします。次に、逆短時間フーリエ変換を計算して、時間領域信号を取得します。
java - 音声の認識
後で他のオーディオファイルと簡単に比較できるように、認識可能なオーディオを録音するプログラムに取り組んでいます。音声ファイルにはスピーチのようなものが含まれるので、何が簡単にできるのだろうと思っていました:
- 音声認識のアルゴリズムを実装し、その出力を保存・比較し、
- または、たとえば高速フーリエ変換を使用してオーディオ指紋のようなものを作成し、それらを比較するアルゴリズムを実装/作成しますか?
誰かその分野で経験がありますか?2番目の解決策が比較的短期間で実現できるかどうか疑問に思っています. たぶん、コーディングがそれほど難しくない解決策があり、私はそれを見つけられませんか?
linux - Linux でオーディオ ファイルのボリューム dB レベルをエクスポートする
オーディオ ファイルの音量レベルを格納する何らかのファイルを生成できるようにしたいと考えています。私はこれについてかなり柔軟ですが、例として、毎秒ボリュームを示す csv があります。この数字はそれほど正確である必要はありません。
これにアプローチする方法について何か提案はありますか? 私はそれをお願い申し上げます。