質問: SONY Spresense SDKでハイレベルAPIを使う方法がわからないので教えてください。 マイク入力から入ってきたオーディオ信号を独自アルゴリズムで処理してヘッドホンに出力するプログラムを開発しようと考えています。Spresense SDK デベロッパーズ・ガイドには、オーディオ・サブシステムのハイ・レベルAPIにはPlayer, Recorderの他にBaseBand状態があり、内部でエフェクト処理を行うことができるとあります。 しかしながら、examplesディレクトリにはBaseBandのみサンプルがありません。 また、sdk/modules/audio/managerディレクトリのソースをざっと読みましたが、独自アルゴリズムを使いできるようでもありません(コメントがなく、深く読み下せなかったので読み落としはあると思います)。 ハイレベルAPIで独自アルゴリズムによるエフェクト処理が可能であるのか、そうであればどうすればよいのか教えてください。
回答: ソニーのSPRESENSEサポート担当です。 お問い合わせの件について、回答いたします。 現在のバージョンの Spresense SDK は、ハイレベルAPIのBaseBand状態に対応しておりません。対応には、しばらく時間がかかる見込です。ご不便をおかけし申し訳ありません。 代替手段として、秋以降のアップデートで、Recorder、Player、Mixer を接続し、Mixer内に独自の信号処理を実装できるサンプルを掲載する予定です。 恐れ入りますが、もうしばらくお待ちください。 どうぞ、よろしくお願いいたします。 **■ 2018年11月29日追記** バージョン 1.1.1 にて 、Arduino のサンプルを追加いたしました。 スケッチ例の中にある「voice_effector」を参照ください。 このサンプルは、Rocorder を Playerに接続し、キャプチャした音声を出力します。 Recoder と Player の間に処理を追加する方法は2つあります。 *(1) mediaplayer_decode_callback の中に信号処理を実装* *(2) theRecorder->readFrames でキャプチャした音声データを加工* ご質問の内容に沿った回答とならず恐れ入りますが、ご検討の一助になれば幸いです。 なお、ハイレベルAPIによるBaseBandオーディオ処理については、来年春頃のアップデートを予定しております。 長らくお待たせいたしますが、今しばらくお時間をください。 どうぞよろしくお願いいたします。