オーディオデータの逐​次処理はどのように行​いますか?

4 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2023 年 5 月 1 日
回答済み: MathWorks Support Team 2023 年 5 月 1 日
「audiorecorder」オブジェクトと「record」関数を使用してオーディオデータを取得し、逐次 FFT や各種フィルタリング等の信号処理を行います。timer オブジェクトによるイベントとコールバックを使用しているのですが、各チャンクを計測するための時間より信号処理にかかる時間のほうが長い(計測より信号処理のほうが遅い)ため、時間の経過とともに「getaudiodata」を読み出したりコールバックを使用したりする際に処理するデータ量が増加し、やがて次のコールバックがトリガされる時間よりも長くなります。

採用された回答

MathWorks Support Team
MathWorks Support Team 2023 年 5 月 1 日
「audiorecorder」と「getaudiodata」は、オーディオのバッチ処理用に最適化されています。リアルタイムでのオーディオ処理の場合、推奨されるワークフローは、Audio Toolbox のリアルタイム オーディオ I/O オブジェクト「audioDeviceReader」および「audioDeviceWriter」を使用することです。詳細については、
https://www.mathworks.com/help/releases/R2019b/audio/gs/real-time-audio-in-matlab.html
をご参考ください。音圧測定のサンプルにてこれらのオブジェクトの使用方法が示されています。
https://www.mathworks.com/help/releases/R2019b/audio/examples/sound-pressure-measurement-of-octave-frequency-bands.html
 

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeAudio I/O and Waveform Generation についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!