92954
SPRESENSEのArduino版で現在、録音を行うセンサを作ろうと考えております。  
SONY developer world
記載のチュートリアルを参考にして、SD内に録音データを保存してそのデータをサーバにアップロードするような実装はできたのですが、この際、録音後のアップロードとなってしまいます。

録音とデータのアップロードを行うことは可能でしょうか。  
有識者の方がいらっしゃいましたらご教示いただけますと幸いです。

参考ページ： (Spresense Arduino チュートリアル)

  * [MP3 形式で録音する](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_mp3_recorder)
  * [HTTP GETメソッドをサーバに送信してデータを取得する](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_http_get%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E3%82%92%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AB%E9%80%81%E4%BF%A1%E3%81%97%E3%81%A6%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B)
CC BY-SA 4.0
2022-12-22T05:09:12.477
92953
2022-12-22T05:37:22.067
2022-12-22T05:37:22.067
3060
49229
question
spresense http arduino audio
SPRESENSE（Arduino版）で録音とデータ送信を同時に行いたい
こちら、録音とアップロードを同時に行いたいという質問ですよね？それを前提とした答えとしますが、、、

録音とアップロードが同時にできるかは録音するメディアの書き込み速度とアップロードの速度によります。どれくらいの速度で処理すべきかは計算ですぐに出てきます。例えばサンプリングレートが48000Hz
でデータ量を1024サンプルとします。このデータを取得するまでの時間は 1024/48000 になるので 21.333ミリ秒になります。

つまり21.3333ミリ秒の間に録音とデータ送信ができないと、FIFOに処理しきれないデータが蓄積してしまい、どこかのタイミングでFIFOがオーバーフローしてしまい処理が止まります。

ですので、処理したいデータ量のメディア書き込み時間とアップロード時間を計測してみてれば、おおよそ可能かどうかわかります。

あと、やったことはないので、あくまで可能性の話ですが、、、

SPRESENSEはサブコアが使えますので、サブコアに送信するデータのコピーを渡せば、メインコアでメディアへの書き込み、サブコアでデータ送信と並行処理ができるかも知れません。もし出来れば処理の時間短縮が見込めます。
CC BY-SA 4.0
2022-12-22T05:32:58.183
92954
2022-12-22T05:32:58.183
27334
92953
answer