TensorAudio

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

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

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

โปรดทราบว่าคลาสนี้สามารถจัดการเฉพาะเสียงอินพุตใน Float (ใน AudioFormat.ENCODING_PCM_16BIT ) หรือ Short (ใน 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 ล้อมค่าคงที่สองสามตัวที่อธิบายรูปแบบของตัวอย่างเสียงที่เข้ามา ได้แก่ จำนวนช่องสัญญาณและอัตราตัวอย่าง

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

TensorAudio แบบคงที่
สร้าง (รูปแบบ AudioFormat, int SampleCounts)
สร้างอินสแตนซ์ TensorAudio ด้วยบัฟเฟอร์วงแหวนซึ่งมีขนาดเป็น sampleCounts * format.getChannelCount()
TensorAudio แบบคงที่
สร้าง (รูปแบบ TensorAudio.TensorAudioFormat , int SampleCounts)
สร้างอินสแตนซ์ AudioRecord ด้วยบัฟเฟอร์วงแหวนซึ่งมีขนาดเป็น sampleCounts * format.getChannels()
TensorAudio.TensorAudioFormat
TensorBuffer
รับเทนเซอร์บัฟเฟอร์ ()
ส่งคืน float TensorBuffer ที่เก็บตัวอย่างเสียงทั้งหมดที่มีอยู่ใน AudioFormat.ENCODING_PCM_FLOAT เช่น
เป็นโมฆะ
โหลด (สั้น[] src)
แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT จากนั้นจัดเก็บไว้ในบัฟเฟอร์วงแหวน
เป็นโมฆะ
โหลด (ลอย [] src, int offsetInFloat, int sizeInFloat)
เก็บตัวอย่างเสียงอินพุต src ไว้ในบัฟเฟอร์วงแหวน
เป็นโมฆะ
โหลด (สั้น [] src, int offsetInShort, int sizeInShort)
แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT จากนั้นจัดเก็บไว้ในบัฟเฟอร์วงแหวน
ภายใน
โหลด (บันทึก AudioRecord)
โหลดข้อมูลล่าสุดจาก AudioRecord ในลักษณะที่ไม่ปิดกั้น
เป็นโมฆะ
โหลด (ลอย [] src)
เก็บตัวอย่างเสียงอินพุต src ไว้ในบัฟเฟอร์วงแหวน

วิธีการสืบทอด

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

การสร้าง TensorAudio แบบคงที่สาธารณะ (รูปแบบ AudioFormat, int SampleCounts)

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

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

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

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

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

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

TensorBuffer สาธารณะ getTensorBuffer ()

ส่งกลับค่า float TensorBuffer ที่เก็บตัวอย่างเสียงที่มีอยู่ทั้งหมดใน AudioFormat.ENCODING_PCM_FLOAT เช่น ค่าจะอยู่ในช่วง [-1, 1]

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

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

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

โหลด โมฆะสาธารณะ (float [] src, int offsetInFloat, int sizeInFloat)

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

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

โหลด โมฆะสาธารณะ (สั้น [] src, int offsetInShort, int sizeInShort)

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

พารามิเตอร์
src อินพุตตัวอย่างเสียงใน AudioFormat.ENCODING_PCM_16BIT สำหรับอินพุตแบบหลายช่องสัญญาณ อาเรย์จะถูกสลับกัน
ชดเชยInShort ตำแหน่งเริ่มต้นในอาร์เรย์ src
ขนาดInShort จำนวนค่าสั้นที่จะคัดลอก
ขว้าง
ข้อยกเว้นอาร์กิวเมนต์ที่ผิดกฎหมาย หากไม่สามารถคัดลอกอาร์เรย์ต้นทางได้

โหลด int สาธารณะ (บันทึก AudioRecord)

โหลดข้อมูลล่าสุดจาก AudioRecord ในลักษณะที่ไม่ปิดกั้น รองรับเฉพาะ ENCODING_PCM_16BIT และ ENCODING_PCM_FLOAT

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

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

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

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