Skip to main content

Android Developer - audioRecord.read()の基本を理解する

 現在、卒業研究に関するテーマでAndroid Studioを使って、研究しています。それでaudioRecord.read()の使い方をいろいろ調べましたが、あまり結果が出なかったか曖昧な部分が多かったです。そのため、自分が理解できることをここで簡単にまとめます。 
 Androidで音声処理をするためにAudioRecordクラスを利用しました。録音するため、audioRecord.read()を使うことになります。それの基本の使い方を紹介したいと思います。


 
 まず、録音を開始するため、audioRecorder.startRecording()から始まります。
その次、read(short[] audioData, int offsetInShorts, int sizeInShorts)により録音した音声がbuf配列に入ります。
 このメソッドを呼び出したときに"buf"に格納されている値は何かというと、サンプルの配列です。各サンプルはチャンネルの配列です。各チャンネルは、求めたものに応じて、8ビットまたは16ビットの値を持ちます。データはスキップされず、常に固定サイズのフォーマットになります。
 したがって、1チャンネルと8ビットを選択した場合、各バイトは1つのサウンドが聞こえます。16ビットを選択した場合、核サウンドは2バイト長です。2つのチャンネルを使用する場合は、サンプルごとにチャンネル1、チャンネル2の順に並べます。
 私は使っている16ビットなので何もしゃべらないとき、buf配列に入った値は
[96、0、101、-1、101、2、110、-1、-41、2、-80、0、-117、1、119、-1、………]
になります。
 個々の値は、要求された周波数でサンプリングされたときのサウンドデータの振幅です。実験した結果から、0、-1、2、…(奇数番)の値は入力した音声の振幅です。もう一つの数字は何か現時点でまだ理解できません。その数字は勝手に変動します。
 あくまで基本です。 パフォーマンス等のより高度な見識が得られればまた記します。間違ったところを指摘お願いします。

Comments

Popular Posts

7554 bất ngờ mở miễn phí tặng game thủ nhân dịp kỷ niệm 65 năm chiến thắng Điện Biên Phủ

  "Tiến tới kỷ niệm 65 năm chiến thắng Điện Biên Phủ(7/5/1954 - 7/5/2019) . Và cũng nhân dịp kỷ niệm 10 năm làm game của Hiker Games. Như đã hứa, xin được gửi tặng cộng đồng game thủ Việt Nam phiên bản 7554 hoàn toàn miễn phí. Các bạn có thể truy cập vào website http://www.7554.vn để download. Để đảm bảo không có hiểu nhầm nào, xin lưu ý, đây không phải là phiên bản làm lại của 7554.  Đây chỉ là phiên bản đã loại bỏ phần kiểm tra bản quyền để bất cứ ai cũng có thể tải về và trải nghiệm game. Chúc các bạn chơi game vui vẻ!"  Via 7554 Dưới đây là video hướng dẫn tải game:  Chúc các bạn chơi game vui vẻ !

Nha's Blog #20260407 A Long Tuesday of Paperwork, Rain

A Long Tuesday of Paperwork, Rain Một ngày thứ Ba dài với giấy tờ, mưa Today was Tuesday, normally a working day, but I took a day off to handle paperwork for my permanent residency. The morning was gloomy, and the streets were still wet from days of spring rain. Thinking I had the whole day, I went to pachinko early since machines after reset are often better. Things went smoothly, and I managed to win a little. Hôm nay là thứ Ba, lẽ ra là ngày làm việc nhưng tôi xin nghỉ để đi làm giấy tờ xin vĩnh trú. Buổi sáng khá âm u, đường vẫn còn ướt do mưa xuân mấy ngày nay. Nghĩ rằng mình có cả ngày nên tôi tranh thủ đi pachinko từ sớm vì máy sau khi reset thường dễ chơi hơn. Mọi chuyện khá suôn sẻ và tôi thắng được một chút. Around 10 AM, I headed to the station to start my paperwork journey, only to realize I had forgotten my bank book and insurance documents. I had to turn back. On the way home, it started raining lightly, but that turned out to be a good thing since I could grab an umbrel...

Nha's Blog #20260411 A Conan Movie Night and a Surprisingly Endless Hotpot

A Conan Movie Night and a Surprisingly Endless Hotpot Một buổi xem Conan và nồi lẩu “ăn mãi không hết” Today is Saturday, and as a fan of Detective Conan, I couldn’t miss the latest movie release. I had booked my ticket a few days earlier, and as soon as it officially premiered, I headed straight to the cinema. I arrived about 15 minutes late due to buying popcorn and drinks, but that was intentional since movies usually start later after all the ads and warnings. Hôm nay là thứ Bảy, và là một fan của Thám tử lừng danh Conan nên tôi không thể bỏ qua phần phim mới nhất chiếu rạp. Tôi đã đặt vé từ vài ngày trước, và ngay khi phim chính thức công chiếu, tôi lập tức ra rạp. Tôi vào muộn khoảng 15 phút do mua bỏng và nước, nhưng đó là trong tính toán vì phim thường chiếu muộn sau hàng loạt quảng cáo. About five minutes after I sat down, the movie started. I won’t spoil anything, but I’ll share my thoughts. The title hints at a case happening on the road, and interestingly, the setting s...