ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
การวัดเวลาในการตอบสนองของเสียง
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
เวลาในการตอบสนองเป็นเมตริกประสิทธิภาพของระบบที่สำคัญ แม้ว่าจะมีเมตริกเวลาในการตอบสนองของเสียงหลายประเภท แต่เมตริกที่มีประโยชน์และเข้าใจได้ง่ายอย่างหนึ่งคือเวลาในการตอบสนองแบบไปกลับ ซึ่งหมายถึงเวลาที่สัญญาณเสียงใช้ในการเข้าสู่อินพุตของอุปกรณ์เคลื่อนที่ ประมวลผลโดยแอปที่ทำงานบนโปรเซสเซอร์แอปพลิเคชัน และออกจากเอาต์พุต
รูปที่ 1 เวลาในการตอบสนองของเสียงแบบไปกลับในอุปกรณ์: Toutput - Tinput
หน้านี้แสดงการวัดเวลาในการตอบสนองของเสียงแบบไปกลับสำหรับอุปกรณ์ Nexus/Pixel บางรุ่นและแพลตฟอร์ม Android บางเวอร์ชัน
เหตุผลที่เราวัดเวลาในการตอบสนอง
Google จะวัดและรายงานเวลาในการตอบสนองเพื่อให้นักพัฒนาแอปพลิเคชัน Android มีข้อมูลที่จําเป็นในการตัดสินใจเกี่ยวกับเวลาในการตอบสนองที่มีให้ในอุปกรณ์จริง การแชร์ตัวเลขเวลาในการตอบสนองของอุปกรณ์ Nexus และ Pixel บางรุ่นมีจุดประสงค์เพื่อกระตุ้นให้ชุมชน Android ทั้งหมดวัด เผยแพร่ และลดเวลาในการตอบสนองในอุปกรณ์ Android ทุกรุ่น โปรดร่วมไปกับเราในพันธสัญญาของเราที่จะช่วยลดเวลาในการตอบสนองของเสียง
ผลกระทบของแอปต่อเวลาในการตอบสนอง
การประมวลผลสัญญาณอาจเพิ่มเวลาในการตอบสนองประเภทต่อไปนี้
- อัลกอริทึม ความล่าช้านี้เป็นสิ่งที่เกิดขึ้นเองและจะไม่เปลี่ยนแปลงตาม CPU ตัวอย่างเช่น การหน่วงเวลาซึ่งเพิ่มโดยตัวกรองการตอบสนองต่อการกระตุ้นแบบจำกัด (FIR)
- การประมวลผลข้อมูล ความล่าช้านี้เกี่ยวข้องกับจํานวนรอบของ CPU ที่จําเป็น ตัวอย่างเช่น โดยทั่วไปการลดทอนสัญญาณจะดำเนินการโดยการดำเนินการคูณซึ่งใช้เวลารอบที่แตกต่างกันไปโดยขึ้นอยู่กับ CPU
วิธีที่เราวัด
เราทำการวัดผลที่แสดงในหน้านี้โดยใช้ดองเกิลเสียงแบบลูปแบ็กของ Dr. Rick O'Rang และการทดสอบเสียงสะท้อน (Larsen Effect) การวัดจะถือว่าการประมวลผลสัญญาณของแอปพลิเคชันเพิ่มเวลาในการตอบสนองของอัลกอริทึมเป็น 0 และเวลาในการประมวลผลเกือบเป็น 0
เราวัดเวลาในการตอบสนองแบบไปกลับผ่านขั้วต่อหูฟังด้วยเหตุผลหลายประการ ดังนี้
รูปที่ 2 เวลาในการตอบสนองแบบไป-กลับผ่านเฮดเซ็ต
ขั้วต่อ: Tเอาต์พุต - Tอินพุต
- แอปพลิเคชันเพลงที่สำคัญ (เช่น กีตาร์และเสียง) ใช้ขั้วต่อหูฟัง
- การวัดเวลาในการตอบสนองไปกลับของไมโครโฟนและลำโพงในอุปกรณ์อาจเป็นเรื่องยุ่งยาก เนื่องจากการควบคุมไม่ให้ลูปเสียงสะท้อนในอากาศเปิดเข้าสู่การสั่นสะเทือนที่ควบคุมไม่ได้นั้นเป็นเรื่องยาก
- ตัวแปลงสัญญาณในอุปกรณ์มีขนาดเล็กและเสียการตอบสนองความถี่เพื่อให้ได้ขนาดที่เล็ก ระบบจะใช้การประมวลผลสัญญาณดิจิทัลเพื่อชดเชย แต่การประมวลผลดังกล่าวจะเพิ่มการหน่วงเวลาของอัลกอริทึมสำหรับเส้นทางในอุปกรณ์
มีหลายกรณีที่เวลาในการตอบสนองของไมโครโฟนและลำโพงในอุปกรณ์มีผล แต่มักจะเป็นข้อมูลทางเดียว ไม่ใช่แบบไปกลับ เทคนิคในการวัดเวลาในการตอบสนองแบบทิศทางเดียวมีอธิบายอยู่ในหัวข้อการวัดเวลาในการตอบสนองของเอาต์พุตและการวัดเวลาในการตอบสนองของการป้อนข้อมูล
ตัวอย่างการวัด
การวัดที่แสดงด้านล่างนี้เจาะจงสำหรับหมายเลขบิลด์ อุปกรณ์จะแสดงตามลำดับโดยประมาณของรุ่นแรกและตามเวอร์ชันแพลตฟอร์ม นอกจากนี้ คุณยังดูเวลาในการตอบสนองในแผนภูมิได้ด้วย แอปพลิเคชันทดสอบใช้ API เสียงของ Android ดั้งเดิมที่อิงตาม OpenSL ES
รุ่น |
เวอร์ชันของแพลตฟอร์ม |
หมายเลข บิลด์ |
อัตราการสุ่มตัวอย่าง (Hz) |
ขนาดบัฟเฟอร์ (เฟรม) |
ขนาดบัฟเฟอร์ (มิลลิวินาที) |
เวลาในการตอบสนอง (มิลลิวินาที) ของการรับส่งข้อมูลแบบไปกลับ±บัฟเฟอร์ 1 รายการ |
Nexus One |
2.3.6 |
GRK39F |
44100 |
768 |
17.4 |
345 |
Nexus S |
2.3.6 |
GRK39F |
44100 |
1024 |
23.2 |
260 |
Nexus S |
4.0.4 |
IMM76D |
44100 |
1024 |
23.2 |
260 |
Nexus S |
4.1.2 |
JZO54K |
44100 |
880 |
20 |
210 |
Galaxy Nexus |
4.0.1 |
ITL41D |
44100 |
976 |
22.1 |
270 |
Galaxy Nexus |
4.3 |
JWR66Y |
44100 |
144 |
3.3 |
130 |
Nexus 4 |
4.2.2 |
JDQ39E |
48000 |
240 |
5 |
195 |
Nexus 4 |
5.1 |
LMY47O |
48000 |
240 |
5 |
58 |
Nexus 10 |
5.0.2 |
LRX22G |
44100 |
256 |
5.8 |
36 |
Nexus 10 |
5.1 |
LMY47D |
44100 |
256 |
5.8 |
35 |
Nexus 7 2013 |
4.3 |
JSR78D |
48000 |
240 |
5 |
149 |
Nexus 7 2013 |
4.4 |
KRT16S |
48000 |
240 |
5 |
85 |
Nexus 7 2013 |
5.0.2 |
LRX22G |
48000 |
240 |
5 |
64 |
Nexus 7 2013 |
5.1 |
LMY47O |
48000 |
240 |
5 |
55 |
Nexus 7 2013 |
6.0 |
MRA58K |
48000 |
240 |
5 |
55 |
Nexus 5 |
4.4.4 |
KTU84P |
48000 |
240 |
5 |
95 |
Nexus 5 |
5.0.0 |
LRX21O |
48000 |
240 |
5 |
47 |
Nexus 5 |
5.1 |
LMY47I |
48000 |
240 |
5 |
42 |
Nexus 5 |
6.0 |
MRA58K |
48000 |
192 |
4 |
38 |
Nexus 9 |
5.0.0 |
LRX21L |
48000 |
256 |
5.3 |
35 |
Nexus 9 |
5.0.1 |
LRX22C |
48000 |
256 |
5.3 |
38 |
Nexus 9 |
5.1.1 |
LMY47X |
48000 |
256 |
5.3 |
32 |
Nexus 9 |
6.0 |
MRA58K |
48000 |
128 |
2.6 |
15 |
Nexus 6 |
5.0.1 |
LRX22C |
48000 |
240 |
5 |
65 |
Nexus 6 |
5.1 |
LMY47I |
48000 |
240 |
5 |
42 |
Nexus 6 |
6.0 |
MRA58K |
48000 |
192 |
4 |
33 |
Nexus 5X |
6.0 |
MDA89E |
48000 |
192 |
4 |
18 |
Nexus 5X |
8.0.0 |
OPR4.170623.020 |
48000 |
192 |
4 |
18 |
Nexus 5X |
8.1.0 |
OPM2.171019.029.C1 |
48000 |
192 |
4 |
18 |
Nexus 6P |
6.0 |
MDA89D |
48000 |
192 |
4 |
18 |
Nexus 6P |
8.0.0 |
OPR5.170623.014 |
48000 |
192 |
4 |
18 |
Nexus 6P |
8.1.0 |
OPM5.171019.019 |
48000 |
192 |
4 |
18 |
Pixel |
7.1.2 |
NHG47L |
48000 |
192 |
4 |
18 |
Pixel |
8.0.0 |
OPR3.170623.013 |
48000 |
192 |
4 |
18 |
Pixel |
8.1.0 |
OPM1.171019.021 |
48000 |
192 |
4 |
18 |
Pixel XL |
7.1.2 |
NHG47L |
48000 |
192 |
4 |
18 |
Pixel XL |
8.0.0 |
OPR3.170623.013 |
48000 |
192 |
4 |
18 |
รูปที่ 3 เวลาในการตอบสนองแบบไป-กลับ
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-03-26 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-03-26 UTC"],[],[],null,["# Audio latency measurements\n\n[Latency](http://en.wikipedia.org/wiki/Latency_%28engineering%29)\nis an important system performance metric. While many kinds of\n[audio latency](/docs/core/audio/latency/latency) metrics exist, one useful and\nwell-understood metric is\n[round-trip latency](/docs/core/audio/latency/measure#measuringRoundTrip),\ndefined as the time it takes for an audio signal to enter the input of a mobile\ndevice, be processed by an app running on the application processor, and exit\nthe output.\n\n**Figure 1.** Round-trip audio latency on\ndevice: T~output~ - T~input~\n\nThis page provides round-trip audio latency measurements for select\nNexus/Pixel devices and Android platform versions.\n\nWhy we measure latency\n----------------------\n\nGoogle measures and reports latency so Android application developers have\nthe data they need to make informed decisions about available latency on actual\ndevices. By sharing latency numbers for select Nexus and Pixel devices, we hope\nto encourage the entire Android community to measure, publish, and reduce\nlatency on *all* Android devices. Please join us in our commitment to\nreducing audio latency!\n\nApp impact on latency\n---------------------\n\nSignal processing can add the following types of delay to latency:\n\n- **Algorithmic** . This delay is inherent and does not vary with the CPU. An example is the delay added by a [finite impulse\n response](http://en.wikipedia.org/wiki/Finite_impulse_response) (FIR) filter.\n- **Computational**. This delay is related to the number of required CPU cycles. For example, attenuation of a signal is usually done by a multiplication operation that takes a varying number of cycles depending on the CPU.\n\nHow we measure\n--------------\n\nWe made the measurements listed on this page using the\n[Dr. Rick O'Rang audio loopback dongle](/docs/core/audio/latency/loopback) and an\n[audio feedback (Larsen effect)\ntest](/docs/core/audio/latency/measure#larsenTest). Measurements assume the application signal processing adds zero\nalgorithmic delay and near-zero computational delay.\n\nWe measure round-trip latency via the headset connector for several reasons:\n\n**Figure 2.** Round-trip latency via headset\nconnector: T~output~ - T~input~\n\n- Important music applications (such as guitar and voice processing) use the headset connector.\n- Measuring round-trip latency of the on-device microphone and speaker can be cumbersome, as it is difficult to keep a feedback loop in open air from entering uncontrolled oscillation.\n- On-device transducers are small and sacrifice frequency response to achieve their small size. To compensate, digital signal processing is applied but increases algorithmic delay for the on-device path.\n\nThere are cases where on-device microphone and speaker latencies *do*\nmatter, but they are usually for one direction, not round-trip. Techniques for\nmeasuring unidirectional latency are described at\n[Measuring Output Latency](/docs/core/audio/latency/measure#measuringOutput)\nand\n[Measuring Input Latency](/docs/core/audio/latency/measure#measuringInput).\n\nExample measurements\n--------------------\n\nThe measurements listed below are specific to a\n[build number](/docs/setup/build-numbers). Devices are listed in\napproximate order of initial release and by platform version; you can also\n[view latencies in a chart](#chart). The test application uses the\nAndroid native audio API based on OpenSL ES.\n\n| Model | Platform version | Build number | Sample rate (Hz) | Buffer size (frames) | Buffer size (ms) | Round-trip latency (ms) ± one buffer |\n|--------------|------------------|--------------------|------------------|----------------------|------------------|--------------------------------------|\n| Nexus One | 2.3.6 | GRK39F | 44100 | 768 | 17.4 | 345 |\n| Nexus S | 2.3.6 | GRK39F | 44100 | 1024 | 23.2 | 260 |\n| Nexus S | 4.0.4 | IMM76D | 44100 | 1024 | 23.2 | 260 |\n| Nexus S | 4.1.2 | JZO54K | 44100 | 880 | 20 | 210 |\n| Galaxy Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |\n| Galaxy Nexus | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |\n| Nexus 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |\n| Nexus 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |\n| Nexus 10 | 5.0.2 | LRX22G | 44100 | 256 | 5.8 | 36 |\n| Nexus 10 | 5.1 | LMY47D | 44100 | 256 | 5.8 | 35 |\n| Nexus 7 2013 | 4.3 | JSR78D | 48000 | 240 | 5 | 149 |\n| Nexus 7 2013 | 4.4 | KRT16S | 48000 | 240 | 5 | 85 |\n| Nexus 7 2013 | 5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |\n| Nexus 7 2013 | 5.1 | LMY47O | 48000 | 240 | 5 | 55 |\n| Nexus 7 2013 | 6.0 | MRA58K | 48000 | 240 | 5 | 55 |\n| Nexus 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |\n| Nexus 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |\n| Nexus 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |\n| Nexus 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |\n| Nexus 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |\n| Nexus 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |\n| Nexus 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |\n| Nexus 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |\n| Nexus 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | 65 |\n| Nexus 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |\n| Nexus 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |\n| Nexus 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |\n| Nexus 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |\n| Nexus 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |\n| Nexus 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |\n| Nexus 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |\n| Nexus 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |\n| Pixel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |\n| Pixel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |\n| Pixel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |\n| Pixel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |\n| Pixel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |\n\n**Figure 3.** Round trip latencies"]]