TensorAudio

คลาสสาธารณะ TensorAudio

กำหนดบัฟเฟอร์ของริงและฟังก์ชันยูทิลิตีบางอย่างเพื่อเตรียมตัวอย่างเสียงอินพุต

โดยมีบัฟเฟอร์แหวนเพื่อเก็บข้อมูลเสียงอินพุต ไคลเอ็นต์จะป้อนข้อมูลเสียงผ่านเมธอด "load" และเข้าถึงตัวอย่างเสียงแบบรวมผ่านเมธอด "getTensorBuffer" ได้

โปรดทราบว่าคลาสนี้สามารถจัดการเสียงอินพุตได้เฉพาะใน Float (ใน AudioFormat.ENCODING_PCM_16BIT) หรือ Shorts (ใน AudioFormat.ENCODING_PCM_FLOAT) คลาสนี้จะแปลงและจัดเก็บตัวอย่างเสียงทั้งหมดไว้ในการเข้ารหัส PCM Float

การใช้งานทั่วไปใน Kotlin

   val tensor = TensorAudio.create(format, modelInputLength)
   tensor.load(newData)
   interpreter.run(tensor.getTensorBuffer(), outputBuffer);
 

ตัวอย่างการใช้งาน AudioRecord

   val tensor = TensorAudio.create(format, modelInputLength)
   Timer().scheduleAtFixedRate(delay, period) {
     tensor.load(audioRecord)
     interpreter.run(tensor.getTensorBuffer(), outputBuffer)
   }
 

ชั้นเรียนที่ซ้อนกัน

คลาส TensorAudio.TensorAudioFormat ตัดค่าคงที่ 2-3 รายการที่อธิบายรูปแบบของตัวอย่างเสียงที่เข้ามาใหม่ ได้แก่ จำนวนช่องสัญญาณและอัตราการสุ่มตัวอย่าง

วิธีการสาธารณะ

ภาพนิ่ง TensorAudio
create(รูปแบบ AudioFormat, int sampleCounts)
สร้างอินสแตนซ์ TensorAudio ที่มีบัฟเฟอร์ริงซึ่งมีขนาด sampleCounts * format.getChannelCount()
ภาพนิ่ง TensorAudio
create(รูปแบบ TensorAudio.TensorAudioFormat, int sampleCounts)
สร้างอินสแตนซ์ AudioRecord ที่มีบัฟเฟอร์ริงซึ่งมีขนาด sampleCounts * format.getChannels()
TensorAudio.TensorAudioFormat
TensorBuffer
getTensorBuffer()
แสดงผลเลขทศนิยม TensorBuffer ที่มีตัวอย่างเสียงที่มีอยู่ทั้งหมดใน AudioFormat.ENCODING_PCM_FLOAT นั่นคือ
void
load(short[] src)
แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT จากนั้นเก็บไว้ในบัฟเฟอร์ของริง
void
load(Float[] src, int delayInFloat, int sizeInFloat)
จัดเก็บตัวอย่างเสียงอินพุต src ในบัฟเฟอร์ของริง
void
load(short[] src, int delayInShort, int sizeInShort)
แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT จากนั้นเก็บไว้ในบัฟเฟอร์ของริง
int
load(ระเบียน Audiorecord)
โหลดข้อมูลล่าสุดจาก AudioRecord แบบไม่บล็อก
void
load(Float[] src)
จัดเก็บตัวอย่างเสียงอินพุต src ในบัฟเฟอร์ของริง

วิธีการที่รับช่วงมา

วิธีการสาธารณะ

สาธารณะ static TensorAudio สร้าง (รูปแบบ AudioFormat, int sampleCounts)

สร้างอินสแตนซ์ TensorAudio ที่มีบัฟเฟอร์ริงซึ่งมีขนาด sampleCounts * format.getChannelCount()

พารามิเตอร์
รูปแบบ AudioFormat ตามที่โมเดล TFLite กำหนด ซึ่งระบุจำนวนของแชแนลและอัตราการสุ่มตัวอย่าง
sampleCounts จำนวนตัวอย่างที่จะป้อนลงในโมเดล

สาธารณะ แบบคงที่ TensorAudio สร้าง (รูปแบบTensorAudio.TensorAudioFormat, int sampleCounts)

สร้างอินสแตนซ์ AudioRecord ที่มีบัฟเฟอร์ริงซึ่งมีขนาด sampleCounts * format.getChannels()

พารามิเตอร์
รูปแบบ TensorAudio.TensorAudioFormat ที่คาดไว้ของข้อมูลเสียงซึ่งโหลดลงในคลาสนี้
sampleCounts จำนวนตัวอย่างที่จะป้อนลงในโมเดล

สาธารณะ TensorAudio.TensorAudioFormat getFormat ()

สาธารณะ TensorBuffer getTensorBuffer ()

แสดงผลเลขทศนิยม TensorBuffer ที่มีตัวอย่างเสียงที่มีอยู่ทั้งหมดใน AudioFormat.ENCODING_PCM_FLOAT เช่น ค่าอยู่ในช่วง [-1, 1]

สาธารณะ โมฆะ โหลด (short[] src)

แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT จากนั้นเก็บไว้ในบัฟเฟอร์ของริง

พารามิเตอร์
src ป้อนตัวอย่างเสียงใน AudioFormat.ENCODING_PCM_16BIT สำหรับอินพุตหลายช่องทาง ระบบจะแทรกอาร์เรย์ของอินพุต

สาธารณะ void โหลด (Float[] src, int officeInFloat, int sizeInFloat)

จัดเก็บตัวอย่างเสียงอินพุต src ในบัฟเฟอร์ของริง

พารามิเตอร์
src ป้อนตัวอย่างเสียงใน AudioFormat.ENCODING_PCM_FLOAT สำหรับอินพุตหลายช่องทาง ระบบจะแทรกอาร์เรย์ของอินพุต
offsetInFloat ตำแหน่งเริ่มต้นในอาร์เรย์ src
sizeInFloat จำนวนค่าทศนิยมที่จะคัดลอก
การขว้าง
IllegalArgumentException สำหรับรูปแบบเสียงที่ใช้ร่วมกันไม่ได้หรือขนาดอินพุตไม่ถูกต้อง

สาธารณะ void โหลด (short[] src, int officeInShort, int sizeInShort)

แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT จากนั้นเก็บไว้ในบัฟเฟอร์ของริง

พารามิเตอร์
src ป้อนตัวอย่างเสียงใน AudioFormat.ENCODING_PCM_16BIT สำหรับอินพุตหลายช่องทาง ระบบจะแทรกอาร์เรย์ของอินพุต
offsetInShort ตำแหน่งเริ่มต้นในอาร์เรย์ src
sizeInShort จำนวนค่าสั้นที่จะคัดลอก
การขว้าง
IllegalArgumentException หากคัดลอกอาร์เรย์แหล่งที่มาไม่ได้

สาธารณะ int load (ระเบียน AudioRecording)

โหลดข้อมูลล่าสุดจาก AudioRecord แบบไม่บล็อก รองรับ ENCODING_PCM_16BIT และ ENCODING_PCM_FLOAT เท่านั้น

พารามิเตอร์
บันทึก อินสแตนซ์ของ AudioRecord
การคืนสินค้า
  • จำนวนของค่าเสียงที่บันทึกที่มีขนาด channelCount * sampleCount หากไม่มีข้อมูลใหม่ใน Audiorecord หรือเกิดข้อผิดพลาดขึ้น วิธีนี้จะแสดงผลเป็น 0
การขว้าง
IllegalArgumentException สำหรับรูปแบบการเข้ารหัสเสียงที่ไม่รองรับ
IllegalStateException หากการอ่านจาก AudioRecording ล้มเหลว

สาธารณะ void load (Float[] src)

จัดเก็บตัวอย่างเสียงอินพุต src ในบัฟเฟอร์ของริง

พารามิเตอร์
src ป้อนตัวอย่างเสียงใน AudioFormat.ENCODING_PCM_FLOAT สำหรับอินพุตหลายช่องทาง ระบบจะแทรกอาร์เรย์ของอินพุต