問題タブ [pitch]
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.
iphone - Performousコードでのピーク検出
HPS方式を使用してiPhoneに音声ピッチ検出を実装することを検討していました。しかし、検出されたトーンはあまり正確ではありません。Performousはピッチ検出のまともな仕事をします。
コードを調べましたが、計算の背後にある理論を完全には理解できませんでした。彼らはFFTを使用して、ピークを見つけます。しかし、彼らがFFT出力の位相を使用している部分は、私を混乱させました。彼らは音声周波数にいくつかのヒューリスティックを使用していると思います。
では、Performousでピッチを検出するために使用されるアルゴリズムを誰か説明してもらえますか?
android - Androidでサウンドファイルの周波数を変更する
単一のサウンドファイルの周波数を変更しようとしています。私はSoundPoolのものを使ってAndroidでそれを行うことができました。しかし、結果は本当に悪いように聞こえます。だから私はフーリエ変換について足を踏み入れました - しかし、これが私が探しているものかどうかはわかりません.
単一のファイルをロードし、そのファイルが再生されるたびにそのファイルの周波数を変更したいと考えています。だから、一つの音からメロディーを作ることができます。Android/Javaでそれは可能ですか?
これは私がそれを行うことができた方法です。「悪い」とは、音程がずれていることを意味します。
ファイル内のノートの次の周波数を再生したい場合は、2^(1/12) を掛ける必要があります。しかし、これは単なるフロートであるため、次の音符の「実際の」周波数を取得するには正確ではないと思います。
その目標を達成するための「簡単な」方法はありますか?
audio - オープンピッチシフト
オープニングでピッチを高くすると音量が小さくなる理由を誰か教えてください。ピッチが高いほど、音量は小さくなります.....
alSourcef(ソース、AL_PITCH、1.2f); alSourcef(ソース、AL_GAIN、1.0f);
この設定では、音量はまだ非常に小さいです。ゲインを1以上にするためにそれをだます方法はありますか? これも距離と関係があるのではないでしょうか??
参考までに、ソースはAVrecorderで録音した音声なので、ソースの音量をこれ以上上げることはできません。
python - Pythonでの再生中にオーディオのピッチ(および速度)を変更する
私は音楽を再生するPythonプログラムに取り組んでいます。1つの機能は、ユーザーが音楽の再生中に音楽のピッチを変更するために上下にドラッグできるスライダーです。
たとえば、ピッチが2に設定されている場合、音楽は1オクターブ高く聞こえ、2倍の速さで再生され、半分の長さで持続します。私が本当に変えているのは再生速度だけですが、リアルタイムでインタラクティブに行う必要があります。
フラッシュに実装されたこの機能の良い例は、ここにあります。(ロードには少し時間がかかります。しばらくお待ちください。)
多くのPythonオーディオパッケージを調べましたが、現在再生中のサウンドのピッチを変更できるパッケージは見つかりませんでした。Pythonには複数のバージョンがあるので、パッケージがサポートするバージョンの要件はありません。私はこれをWindows7で開発しています。
助言がありますか?
android - Androidフォンが水平のときのロール角度(上下)を決定していますか?
Android フォンが横向き (水平方向) の場合、Roll はいわば傾きを表します。電話が地面に対して垂直である場合 (画面を直接見ている場合)、ロールは 90 になります。ただし、下または上を見たいかのように、前または後ろに傾け始めると、角度はどちらの方向にも減少します。
これは、45 度上または下を見ると、同じロールまたは 45 度が得られることを意味します。
前方または後方にロールしているかどうかをどのように知ることができますか?
私はこれに対する答えを探していましたが、この問題を抱えている人は他に見つかりません。さまざまなアプリから判断すると、それは可能であるように思われるので、何かとの関係が欠けているだけだと思います.誰かが私を正しい方向に向けてくれることを望んでいました. ありがとう!
iphone - C/C++/Obj-C ボーカル入力から音符 (ピッチではない) を確認するリアルタイム アルゴリズム
ピッチではなく、歌われた音のピッチクラスを検出したい。
したがって、C4 であるか C5 であるかは重要ではなく、両方とも C として検出される必要があります。
時計の文字盤に配置された 12 の半音を想像してみてください。針はピッチ クラスを指しています。それが私が求めているものです!理想的には、歌われたノートがぴったり合っているか、わずかにずれているかを判断できるようにしたいと考えています。
これは、次の制約が導入されているため、以前に尋ねられた質問の重複ではありません。
音源は単一の人間の声であり、バックグラウンド干渉が無視できることを願っています (ただし、これに対処する必要があるかもしれません)。
オクターブは重要ではなく、ピッチクラスのみが重要です
編集 -- リンク: Apple FFT および Accelerate Framework を使用した
リアルタイム ピッチ検出
algorithm - FFT アルゴリズム: 何が IN/OUT になるか? (re: リアルタイムピッチ検出)
オーディオ ストリームからピッチ データを抽出しようとしています。私が見る限り、FFT が使用するのに最適なアルゴリズムであるように見えます。
数学を直接掘り下げるのではなく、誰かがこの FFT アルゴリズムの機能を理解するのを手伝ってくれませんか?
「FFT は生の信号から周波数データを抽出します」のような明白なことは言わないでください。次のレベルの詳細が必要です。
何を渡し、何を取り出すか?
インターフェイスを明確に理解すると、実装を理解するのに役立ちます。
オーディオ バッファーに渡す必要があると思います。各計算に使用するバイト数を伝える必要があります (たとえば、このバッファーからの最新の 1024 バイト)。検出するピッチの範囲を指定する必要があるかもしれません。今、それは何を返しますか?周波数ビンの配列?これは何?
(編集:) 使用する C++ アルゴリズムを見つけました (理解できる場合のみ)
Performousは、マイクからピッチを抽出します。また、コードはオープンソースです。これは、アルゴリズムをコーディングした人による、アルゴリズムの機能の説明です。
- PCM入力(バッファリングあり)
- FFT (一度に 1024 サンプル、その後バッファの先頭から 200 サンプルを削除)
- 再割り当て方法 (200 サンプル前の前の FFT に対して)
- ピークのフィルタリング (この部分は、はるかに適切に行うことも、除外することもできます)
- ピークを組み合わせてハーモニクスのセットにする (組み合わせをトーンと呼びます)
- トーンの一時的なフィルタリング (単に新しく検出されたトーンを使用するのではなく、以前に検出されたトーンのセットを更新します)
- 最良のボーカル トーンを選択します (周波数制限、重み付け、ハーモニック アレイも使用できますが、使用しないと思います)。
しかし、誰かがこれがどのように機能するかを理解するのを手伝ってくれますか? FFT から Reassignment メソッドに送られるのは何ですか?
algorithm - ピッチを検出するための共鳴アルゴリズム
私は、マイクに向かって歌われるトーンのピッチを検出するさまざまな方法を検討してきました。
特定のピッチ クラスにどの程度共鳴するかを知りたいので、何らかの物理ベースの共鳴アルゴリズムを実行できないかと考えています。
ピアノのサステイン ペダルを押し下げてトーンを歌った場合 (既存のピッチの 1 つに十分近い場合)、ノートは共鳴して共鳴します。
この動作をモデル化できるようになりたいと思います。しかし、どうすればその仕事に取り掛かることができるでしょうか?これを前進させるのを手伝ってくれる人はいますか?
signal-processing - 音楽とDSPの出会い:周波数、ピッチ、トーン、ノートの違いは何ですか
私は音楽関連のソフトウェアの作成に関していくつかのDSPを使用して作業しており、用語に混乱しています。
私はこれらの実体が本質的に混乱している/手に負えない/大まかに定義されているのかどうか疑問に思い始めています...
周波数は明確です:1秒あたりのサイクル数、Hz。
ピッチ、トーン、ノートは私にはわかりません。
これらの用語に加えて、「ピッチクラス」があります。C4とC5は同じピッチクラスにあると言われています。
また、曖昧性解消のためにこのコレクションに追加する必要のある他の用語はありますか?
c - C でバンドパス フィルターを実装するにはどうすればよいですか (目的: ピッチ検出)。
私は最近この質問をしました:
ピッチを検出するアルゴリズムを探しています。回答の 1 つは、最初の FFT を使用して基本的な周波数応答を取得し、どの周波数が発声されているかを把握し、関心のある各領域でバンドパス フィルターを使用してフォローアップすることを提案しました。
少し高度なアルゴリズムでは、次のようなことができます。
- ピッチ周波数を大まかに検出します (DFT で実行できます)。
- ピッチ周波数を分離するためのバンドパス信号。
- フィルター処理された信号の 2 つのピーク間のサンプル数をカウントします。
これで、最初のステップを問題なく実行できます (私は iOS 用にコーディングしており、Apple には FFT などを実行するためのフレームワーク (加速フレームワーク) があります。
私はここから始めました: しかし、私は問題を見ることができます: 歌うことができる可能性のあるすべての音符を区別する FFT は、多くのサンプルを必要とし、あまり多くの不必要な計算を実行したくありません。モバイル デバイスをターゲットにします。
したがって、上記のこの回答に頭を悩ませようとしていますが、バンドパスフィルターの概念をコードに適用する方法がわかりません。
誰でも助けることができますか?