問題タブ [sample-rate]
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.
mp3 - mp3 ファイルを .wav 16khz mono 16bit に変換する方法
任意の mp3 ファイルを特別な .wav に変換するためのソリューションを選択するのを手伝ってください - 私は Linux コマンド ライン ツールの初心者なので、今は難しいです。
任意の mp3 ファイルから 16khz モノラル 16 ビット サウンド プロパティの wav を取得する必要があります。やってみた
ffmpeg -i 111.mp3 -ab 16k out.wav,
しかし、mp3と同じレートのwav(22k)が得られました。
正しいコマンドラインを作成するのを手伝ってください
ios - サンプルレート変更後の歪んだ音
これは私を目覚めさせます:
ユーザーがデバイスの現在のサンプルレートを変更した場合に反応しなければならないOSXオーディオアプリケーションがあります。
これを行うには、「kAudioDevicePropertyNominalSampleRate」に入力デバイスと出力デバイスの両方のコールバックを登録します。
したがって、デバイスのサンプルレートのいずれかが変更された場合、コールバックを取得し、セレクターとして「AudioObjectSetPropertyData」および「kAudioDevicePropertyNominalSampleRate」を使用してデバイスに新しいサンプルレートを設定します。
次のステップはアップルのメーリングリストに記載されていて、私はそれらに従いました:
- 入力AudioUnitとミキサーと出力AudioUnitで構成されるAUGraphを停止します
- 両方の初期化を解除します。
- ノード数を確認し、それらをステップオーバーし、AUGraphDisconnectNodeInputを使用してミキサーを出力から切断します
- ここで、入力ユニットの出力スコープに新しいサンプルレートを設定します
- ミキサーユニットの入力スコープと出力スコープ
- ミキサーノードを出力ユニットに再接続します
- グラフを更新する
- 初期化入力とグラフ
- 入力とグラフを開始します
レンダリングと出力のコールバックが再開されますが、オーディオが歪んでいます。シグナルの原因は入力レンダリングコールバックだと思いますが、よくわかりません。
何を忘れましたか?
私の知る限り、サンプルレートはバッファサイズに影響しません。
他のサンプルレートでアプリケーションを開始すると、すべてがOKになります。これは、信号の歪みにつながる変化です。
前後のストリーム形式(kAudioUnitProperty_StreamFormat)を確認します。もちろん新しい値に変更されるサンプルレートを除いて、すべてが同じままです。
私が言ったように、変更する必要があるのは入力レンダリングコールバックだと思います。さらにサンプルが必要であることをコールバックに通知する必要がありますか?44kと48kでコールバックとバッファサイズを確認しましたが、何も違いはありませんでした。
私は小さなテストアプリケーションを作成したので、コードを提供してほしい場合は、お見せすることができます。
編集:歪んだオーディオ(サイン)を録音し、Audacityで見ました。
私が見つけたのは、495サンプルごとに、さらに17サンプルのオーディオがドロップすることでした。これがどこに向かっているのかがわかると思います:495サンプル+17サンプル=512サンプル。これは私のデバイスのバッファサイズです。
しかし、私はまだこの発見で何ができるかわかりません。
入力と出力のレンダリングプロシージャとRingBufferへのアクセスを確認しました(固定バージョンのCARingBufferを使用しています)
512フレームの保存とフェッチの両方が行われるため、ここで欠落しているものはありません...
audio - オーディオファイルのサイズを計算する方法は?
44.1 KHz のレートでサンプリングされ、8 ビットを使用して量子化された 30 秒のオーディオ ファイルがあります。このファイルのモノラル バージョンとステレオ バージョンのビット レートとサイズを計算します。
audio - 等化のためにサンプルレート周波数を10バンドで割る方法
等化のためにサンプルレート周波数を10バンドで割る方法。たとえば、44100Hzでサンプルあたり1バイトのオーディオpcmがあります。どのサンプルが特定の帯域に関連しているかをどのように理解できますか。そして、サンプルをバンドに分割する方法。
説明やリンクを教えてください。
android - サンプルレートが機能しない
私はこの行を持っています
ここで、logTime=300000000マイクロ秒=5分です。
5分ごとにログを記録しようとしていますが、この設定では1秒ごとにログが記録されます。何が間違っているのか、またはこれを解決する方法を知っていますか?
私のマネージャーはSensorManagerです。
BR
macos - Unity が Mac OS X でスピーカーのサンプルレートを変更できない
一部のオーディオ データを Unity 4 で再生する必要があるプロジェクトを開発しています。入力データのサンプル レートは 24000 Hz (24kHz) で、通常、システムのスピーカーのデフォルトのサンプル レートは 44100 (44.1kHz) です。Windows では、AudioSettings.outputSampleRate = 24000; を使用できます。このデバイスのサンプルレートを問題なく変更できます。しかし、Mac OS ではそれが不可能であることがわかりました。変更した後でも、値を出力すると、まだ 44100 が返されます。エラー メッセージが表示されることもあります。
ディスクに保存されていないディスクからアセットをリロードしようとしています
したがって、Mac OS は、ユーザーのアプリケーションでこの値を変更することをユーザーに禁止していると思われます。
ここの説明によると:http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.Play.html
それを解決するために AudioSource.Play に遅延値を設定してみました。44100/24000*24000 = 44100 なので、私がしたことは次のとおりです。
しかし、うまくいかず、オーディオ データのほぼ半分が再生されません。誰かが私と同じ問題に遭遇しましたか? そして、あなたの解決策は何ですか?そして、OnAudioFilterRead はどのように再生しますか? またはFixedUpdate + SetData?
どうもありがとうございました!!
algorithm - これらのオーディオ異常を検出するにはどうすればよいですか?
iOS には、一部の USB オーディオ デバイスを介した録音に問題があります。確実に再現することはできません (バッチで約 2000 ~ 3000 レコードに 1 つずつ発生し、静かに消えます)。現在、音声に録音の問題がないか手動でチェックしています。これにより、少数のサンプル (1 ~ 20) が、一種の「パチパチ」のように聞こえる少数だけシフトされます。
それらは次のようになります。
クローザー:
クローザー:
同じ音声ファイルの別の場所にある別の単一のサンプル エラー:
問題は、次のような波形を持つ高周波オーディオで誤検知をトリガーせずに、これらをアルゴリズムで検出する方法 (サンプルへの直接アクセスを想定) です。
ボーナス ポイント: できるだけ多くのエラーを特定した後、オーディオを「修正」するにはどうすればよいでしょうか?
その他のボーナス ポイント: iOS USB オーディオ ドライバー/ハードウェアでこの問題を引き起こしている可能性があるもの (そこにあると仮定)。
android - デバイスでサポートされているPCMサンプルレートを確認する
デバイスが特定のサンプルレートをサポートしているかどうかを確認したいのですが。
私は次のことを試しましたが(http://developer.android.com/reference/android/media/AudioRecord.html#getMinBufferSize(int、int、int )に従って動作するはずです)、動作しません(AudioRecordを取得することはありません)。 ERROR_BAD_VALUE):
algorithm - サンプリングレートが異なる複数のセンサーで粒子フィルターを使用する
現在の状況:
屋内ローカリゼーション システム用のパーティクル フィルターを実装しました。磁場の指紋を使用します。粒子フィルターの実装は非常に単純です。
- エリア全体に均一に分布するすべてのパーティクルを作成します
- 各粒子は、速度 (「通常の」歩行速度の平均でガウス分布) と方向 (すべての方向に均一に分布) を取得します。
- 速度と方向の変更 (どちらもガウス分布)
- 最後の測定と現在の測定の時間差を乗じた速度で、指定された方向にすべての粒子を移動します
- 各粒子の最も近い指紋を見つける
- 最も近い指紋と指定された測定値を比較して、各粒子の新しい重みを計算します
- ノーマライズ
- リサンプル
- 測定ごとに #3 から #9 を繰り返します
問題:
ここで、基本的に同じことを行いたいのですが、システムに別のセンサーを追加します (つまり、WiFi 測定)。測定値が同時に表示される場合、問題はありません。次に、最初のセンサーの確率を計算し、これに 2 番目のセンサーの確率を掛けて、#6 の粒子の重みを取得します。
しかし、磁場センサーのサンプルレートは非常に高く (約 100 Hz)、WiFi 測定値はほぼ毎秒表示されます。
問題を処理する最善の方法が何であるかはわかりません。
可能な解決策:
- WiFi 測定値が表示されるまですべての磁場測定値を破棄 (または平均化) し、最後の磁場測定値 (または平均値) と WiFi 信号を一緒に使用できます。基本的に、磁場センサーのサンプルレートをWiFiセンサーのレートに下げます
- 磁場測定ごとに、最後に見た WiFi 測定値を使用します
- センサーを分離して使用しています。つまり、1 つのセンサーの測定値を取得した場合、他のセンサーの測定データを使用せずに、ステップ 3 から 9 のすべてを実行します。
- 私が考えていない他の解決策;)
どちらが最善の解決策になるかはわかりません。すべてのソリューションが良いとは限りません。
#1では、情報を失っていると言えます。粒子フィルターに約 100 Hz のサンプル レートを使用することが理にかなっているのかどうかはわかりませんが。
#2では、WiFi信号がすぐに偶然ではないと仮定する必要がありますが、これは証明できません.
センサーを個別に使用すると、WiFi 測定値が 1 つ表示されるまで、すべてのステップが磁気データで 100 回発生するため、磁場測定値が WiFi 測定値よりも重要になります。
この問題を扱っている良い論文を知っていますか?
粒子フィルターでサンプルサイズが異なる複数のセンサーを処理する方法の標準ソリューションは既にありますか?
100 Hz のサンプル サイズは意味がありますか? または、粒子フィルターの 1 ステップの適切な時間差はどれくらいでしょうか?
あらゆる種類のヒントや解決策をありがとう:)