กำหนดบัฟเฟอร์ริงและฟังก์ชันยูทิลิตีบางอย่างเพื่อเตรียมตัวอย่างเสียงอินพุต
โดยจะรักษาบัฟเฟอร์ริงเพื่อระงับ อินพุตข้อมูลเสียง ลูกค้าสามารถป้อนข้อมูลเสียงอินพุตผ่านเมธอด "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 | ตัดค่าคงที่บางส่วนที่อธิบายรูปแบบของตัวอย่างเสียงที่เข้ามาใหม่ ได้แก่ และอัตราการสุ่มตัวอย่าง | |
วิธีการสาธารณะ
| คงที่ TensorAudio |
create(รูปแบบ AudioFormat, int sampleCounts)
|
| คงที่ TensorAudio |
create(รูปแบบ TensorAudio.TensorAudioFormat, int sampleCounts)
|
| TensorAudio.TensorAudioFormat | |
| TensorBuffer |
getTensorBuffer()
แสดงผล
TensorBuffer แบบลอยที่มีตัวอย่างเสียงทั้งหมดที่มีใน AudioFormat.ENCODING_PCM_FLOAT เช่น |
| เป็นโมฆะ |
load(short[] src)
แปลงตัวอย่างเสียงอินพุต
src เป็น ENCODING_PCM_FLOAT แล้วจัดเก็บไว้ในริง
กันชน |
| เป็นโมฆะ |
load(Float[] src, intรวบรวมInFloat, int sizeInFloat)
จัดเก็บตัวอย่างเสียงอินพุต
src ในบัฟเฟอร์ริง |
| เป็นโมฆะ |
load(short[] src, int offInShort, int sizeInShort)
แปลงตัวอย่างเสียงอินพุต
src เป็น ENCODING_PCM_FLOAT แล้วจัดเก็บไว้ในริง
กันชน |
| int |
load(บันทึก AudioRecord)
โหลดข้อมูลล่าสุดจาก
AudioRecord ในแบบที่ไม่บล็อก |
| เป็นโมฆะ |
load(Float[] src)
จัดเก็บตัวอย่างเสียงอินพุต
src ในบัฟเฟอร์ริง |
เมธอดที่รับมา
วิธีการสาธารณะ
สาธารณะ คงที่ TensorAudio สร้าง (รูปแบบ AudioFormat, int sampleCount)
สร้างอินสแตนซ์ TensorAudio ที่มีบัฟเฟอร์ริงซึ่งมีขนาด sampleCounts *
format.getChannelCount()
พารามิเตอร์
| รูปแบบ | AudioFormat ที่โมเดล TFLite กำหนด ช่วยกำหนด
จำนวนช่องและอัตราการสุ่มตัวอย่าง |
|---|---|
| sampleCounts | จำนวนตัวอย่างที่จะป้อนลงในโมเดล |
สาธารณะ คงที่ TensorAudio สร้าง (รูปแบบ TensorAudio.TensorAudioFormat, int sampleCounts)
สร้างอินสแตนซ์ AudioRecord ที่มีบัฟเฟอร์ริงที่มีขนาด sampleCounts * format.getChannels()
พารามิเตอร์
| รูปแบบ | TensorAudio.TensorAudioFormat ที่คาดไว้ของข้อมูลเสียงที่โหลดลงในคลาสนี้ |
|---|---|
| sampleCounts | จำนวนตัวอย่างที่จะป้อนลงในโมเดล |
สาธารณะ TensorBuffer getTensorBuffer ()
แสดงผล TensorBuffer แบบลอยที่มีตัวอย่างเสียงที่มีอยู่ทั้งหมดใน AudioFormat.ENCODING_PCM_FLOAT เช่น ค่าอยู่ในช่วง [-1, 1]
สาธารณะ เป็นโมฆะ โหลด (short[] src)
แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT แล้วจัดเก็บไว้ในริง
กันชน
พารามิเตอร์
| src | ตัวอย่างเสียงที่ป้อนใน AudioFormat.ENCODING_PCM_16BIT สำหรับ
อาร์เรย์เป็นแบบแทรกสลับ
|
|---|
สาธารณะ เป็นโมฆะ โหลด (Float [] src, int overrideInFloat, int sizeInFloat)
จัดเก็บตัวอย่างเสียงอินพุต src ในบัฟเฟอร์ริง
พารามิเตอร์
| src | ตัวอย่างเสียงที่ป้อนใน AudioFormat.ENCODING_PCM_FLOAT สำหรับ
อาร์เรย์เป็นแบบแทรกสลับ |
|---|---|
| offsetInFloat | ตำแหน่งเริ่มต้นในอาร์เรย์ src |
| sizeInFloat | จำนวนค่าทศนิยมที่จะคัดลอก |
การขว้าง
| IllegalArgumentException | สำหรับรูปแบบเสียงที่ใช้ร่วมกันไม่ได้หรือขนาดอินพุตไม่ถูกต้อง |
|---|
สาธารณะ เป็นโมฆะ โหลด (short[] src, intแบ่งปันInShort, int sizeInShort)
แปลงตัวอย่างเสียงอินพุต src เป็น ENCODING_PCM_FLOAT แล้วจัดเก็บไว้ในริง
กันชน
พารามิเตอร์
| src | ตัวอย่างเสียงที่ป้อนใน AudioFormat.ENCODING_PCM_16BIT สำหรับ
อาร์เรย์เป็นแบบแทรกสลับ |
|---|---|
| offsetInShort | ตำแหน่งเริ่มต้นในอาร์เรย์ src |
| sizeInShort | จำนวนค่าแบบสั้นที่จะคัดลอก |
การขว้าง
| IllegalArgumentException | หากคัดลอกอาร์เรย์แหล่งที่มาไม่ได้ |
|---|
สาธารณะ Int โหลด (บันทึก AudioRecord)
โหลดข้อมูลล่าสุดจาก AudioRecord ในแบบที่ไม่บล็อก เฉพาะ
รองรับ ENCODING_PCM_16BIT และ ENCODING_PCM_FLOAT
พารามิเตอร์
| บันทึก | อินสแตนซ์ของ AudioRecord |
|---|
การคืนสินค้า
- จำนวนค่าเสียงที่บันทึกซึ่งมีขนาด
channelCount * sampleCountถ้า ไม่มีข้อมูลใหม่ใน AudioRecord หรือเกิดข้อผิดพลาดขึ้น วิธีนี้จะแสดงค่าเป็น 0
การขว้าง
| IllegalArgumentException | สำหรับรูปแบบการเข้ารหัสเสียงที่ไม่รองรับ |
|---|---|
| IllegalStateException | หากอ่านจาก AudioRecord ไม่สำเร็จ |
สาธารณะ เป็นโมฆะ โหลด (Float[] src)
จัดเก็บตัวอย่างเสียงอินพุต src ในบัฟเฟอร์ริง
พารามิเตอร์
| src | ตัวอย่างเสียงที่ป้อนใน AudioFormat.ENCODING_PCM_FLOAT สำหรับ
อาร์เรย์เป็นแบบแทรกสลับ
|
|---|