問題タブ [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.
macos - AUHAL のサンプルレートの設定
Audio Unit Framework を使用して、Mac OS X で VOIP アプリを開発しています。私のプログラムでは、入力 AUHAL をセットアップし、デフォルトのストリーム形式 (44.1kHz、32 ビット/チャネル) を使用して、マイクからオーディオをキャプチャします。この場合、私のプログラムは正常に動作します。
コードは次のとおりです。
私は VOIP アプリを開発しているので、既定の形式 (44.1kHz、32 ビット/チャネル) はプログラムに適していないため、サンプル レートを 8kHz に変更したいと考えています。そして、プログラムのフォーマットを変更するために次のコードを書きました。
AudioUnitRender
この場合、プログラムがコールバック関数で を呼び出すまで、プログラムは正常に動作します。ドキュメントで意味
AudioUnitRender
するエラーコードでを呼び出すことができません。エラー コードがとても気になったので、ググってみましたが、有益な情報は見つかりませんでした。エラーが実際に何を意味するのか誰か教えてもらえますか?-10876
kAudioUnitErr_NoConnection
これで終わりではありません。次のコードでフォーマットを再度変更しました。
この場合、プログラムは をAudioUnitRender
再度呼び出すことができず、別のエラー コード を返しまし-10863(kAudioUnitErr_CannotDoInCurrentContext)
た。私はそれをググったが、
何か役に立つものを見つけた. そこの情報を読んだ後、AUHAL で設定したサンプルレートまたはフォーマットがハードウェアでサポートされていない可能性があると推測します。
そこで、デフォルトの入力デバイスで使用可能なサンプル レートを確認するコードをいくつか書きました。
そして、利用可能なサンプルレートが 8000、16000、32000、44100、48000、88200、および 96000 であることを発見しました。
8000 サンプル レートは先ほど設定したものですが、 を呼び出すとエラー コードが表示されAudioUnitRender
ます。
私はグーグルをたくさん持っていて、多くのドキュメントも読んでいましたが、答えが得られません.誰かが私が遭遇したこの問題を解決できますか?</p>
言い換えると; 入力のみの AUHAL でサンプル レートまたはフォーマットを変更するにはどうすればよいですか?</p>
c++ - 44100 から 96000 Hz へのオーディオのアップサンプリングと線形補間
44100 Hz を 96000 Hz にアップサンプリングしようとしていますが、これを試しました。
mOffset は double 値であり、44100 Hz のサンプル ファイルを移動して 96000 Hz にするためにインクリメントされるステップ係数が含まれています。この線形補間は、2 つの既知の点からの Wiki Linear Interpolation から取得されました。
ここでの使い方が間違っているのでしょうか、それともこの式が正しくない場合はどうすればよいのでしょうか??
よろしく、モーガン
matlab - ロギングの開始時刻と終了時刻が異なる 2 つの測定データを一致させる
問題
同じ物理信号の測定値を含む2 つの配列 ( XaとXb ) がありますが、それらは異なるサンプル レートで取得されています。最後に、Xaデータの物理ログは、 Xbとは異なる時間に開始されます。データのロギングも別の時間に停止します。
すなわち
(以下は重要なステートメントの要約であり、コードではありません。)
目的
これらのデータ セットを最適に並べるインデックスの必要なシフトを見つけます。
アプローチ
fminconを使用して、(おそらく内挿関数を使用して) 同じサンプル レートになるように編集されたバージョンXaとXbの間の平均二乗誤差 (MSE)を最小化するインデックスを見つけます。
私はこれをやろうとしましたが、常に自由度が多すぎるようです。このプロセスを促進する可能性のあるプロセスに光を当てることができる人はいますか?
algorithm - サンプルレート変更間のオーディオのフェードアウト機能
バッファーを反復するたびに、バッファー内のオーディオ ボリュームを (フェードアウトのように) 減少させる単純な関数を作成しようとしています。これが私の簡単な機能です。
これは 44100 kHz のサンプルレートに設定すると正常に動作しますが、サンプルレートが 88200 kHz に変更された例の場合、サンプルレートが 2 倍になり、それ以外の場合は、ハーフタイムで「フェードアウト」を終了し、44100 / 88200 = 0.5 のような係数を使用しようとしましたが、これではステップの半分にはなりません。
プログラム中にサンプルレートが変更された場合にこの関数が呼び出されるため、各反復で半分のステップにするために何ができますか?
よろしく、モーガン
signal-processing - NAudio ReadOnly の WaveFormat クラスのプロパティ SampleRate はなぜですか?
NAudio で signalGenerator を使用するときに sampleRate を変更しようとしています。しかし、読み取り専用ですが、それには理由がありますか?
問題なく上書きできますか?
android - Android - オーディオ レコード - サンプル レート
Audio Record を使用してマイク入力を取得する Android 用のゲームを開発しました。
https://play.google.com/store/apps/details?id=fixappmedia.microをご覧ください。
問題は、電話で利用可能なサンプルレートを取得するために次の関数を使用していることです。
最初に自分の電話 (Samsung Galaxy Vibrant) でテストしたところ、かなりうまく機能しました... しかし、今日、Samsung Galaxy Ace でテストしたところ、サンプルレートが機能しませんでした...
理由についてのアイデアはありますか?
audio - USB オーディオの混乱 - 可能なデータ レートは?
私は USB 開発に不慣れで、現実的なデータ レートについてかなり混乱しています。
USB Full Speed(12 Mb/s) をサポートする AVR32 プロセッサに接続された外部サウンド カードを開発しようとしています。USB オーディオ クラス 1 を使用して、オーディオ データを PC に送信します。24 ビット、48kHz、2 チャンネルを入力としてコンピューターに送信する必要がありますが、コンピューターから 24 ビット、48kHz、1 チャンネルの出力も送信する必要があります。双方向のストリーミング。
これにより、24 ビット * 48kHz * 3 チャネル = 3.5 Mb/s のデータ レートが得られますが、これはUSB フル スピードを使用することで可能になりますか?
オーディオ クラスがアイソクロナス転送を介してデータを送信することは理解していますが、1 つのフレームで作成できるトランザクション数 (例: IN = 256 バイト) について混乱していますか? USB 仕様 ( http://www.usb.org/developers/docs/usb20_docs/#usb20spec -> 表 5-4) によると、フレームごとに複数のトランザクションを送信できるようです。
1 フレーム内で IN パケットと OUT パケットの両方を送信することはできますか?
前もって感謝します!
c# - Windows API を使用して .wav ファイルのビット深度を設定するにはどうすればよいですか? (C#)
mciSendString()
API関数を使用して、マイクから音を録音しています。私のコードは、このリンクに書かれているコードと非常によく似ています: http://blog.hansentech.com/mhblog_2011_02_26.html
残念ながら、出力レコードを聞いていると (出力を .wav ファイルに保存しています)、レコード自体を聞くのを妨げるノイズが聞こえます。
この問題についてインターネットで検索したところ、過去にこの Web サイトで尋ねられたこの質問を見つけました。(リンク:ストリーミング オーディオにおけるノイズ リダクションと圧縮) このリンクから、ビット深度 (8 ビット) に問題があることがわかりました。また、ビット深度を 16 ビットに変更すれば、問題は解決するはずだということも理解しました。
API 関数を使用してレコードのビット深度を変更する方法を知っている人はいますか? この作業を行うことができる関数はどれですか?