サウンドカードに送信されたオーディオサンプルをインポートする

サウンドカードに送信されたオーディオサンプルをインポートする

実際のオーディオサンプルを特定のサウンドカードに送信する必要があります。現在、私はAlsaと一緒にDebianディストリビューションを使用しています。検索に失敗しました。キーワードが間違っている可能性があります。

オーディオを録音したくありません。ちょうど私のアプリケーションからサンプルにリアルタイムでアクセスするだけです(C ++が望ましいですが、Pythonも機能します)。サンプルをターゲットサウンドカードに送信してもサンプルを取得できない場合は、ターゲットサウンドカードの出力を盗むこともできます。

追加情報が必要な場合は、コメントでお知らせください。

ベストアンサー1

「録音」と「サンプルへのリアルタイムアクセス」は基本的に同じです。

PulseaudioはDebianでデフォルトで有効になっているため、最も簡単な方法は.monitorサウンドカードのPulseaudioシンクに関連付けられているソースから録音(または「サンプルにアクセス」)することです。これはすぐに機能します。

サンプルが Pulseaudio レシーバーから ALSA を経てカードに移動する場合、少しの遅延があります。ただし、サンプルは送信したサンプルとまったく同じです。

これを行うには他の方法がありますが、すべての方法ははるかに複雑であり、一部は使用しているサウンドカードの種類によって異なります。

待ち時間に関して、「サンプルアクセス」にはバッファリングが含まれることも覚えておく必要があります。〜する何をしても先延ばし。

より具体的な要件がある場合は、ユースケースをより詳しく説明してください。

編集する

Pulseaudioソースとシンクは、ファイルではなく、オーディオソース(サウンドカードのマイクなどの物理ソースと仮想ソース)とオーディオシンク(サウンドカードに接続されているスピーカーなどの物理ソース)を表す「オブジェクト」です。 、仮想ソースも含む)。

各Pulseaudio受信機にはsome-source-name関連ソースがありますsome-source-name.monitor。 C++、Python、または目的の言語でPulseuadioライブラリを使用すると、このソースに接続してこのシンクに入れた内容を反映したサンプルをリアルタイムで取得できます。

繰り返しますが、WAVでも別の形式でもファイルは関係ありません。内部的に起こるのは、アプリケーションがPulseaudio悪魔と通信し、定期的にサンプルを含むバッファを取得することです。

このライブラリの使用は簡単ではありません。いくつかのサンプルコードを見てください。

おすすめ記事