Phân Tích Phổ
Bộ phân tích phổ âm thanh real-time bằng FFT — hiển thị waveform, tần số, biên độ ngay trên trình duyệt. Hỗ trợ MP3, WAV, mọi định dạng.
Giới thiệu công cụ phân tích phổ audio
Phân tích phổ (spectrum analyzer) chuyển tín hiệu âm thanh từ miền thời gian sang miền tần số: thay vì vẽ biên độ theo thời gian, công cụ vẽ biên độ theo tần số, cho thấy chính xác những thành phần tone, hài âm và nhiễu nào đang có mặt trong từng khoảnh khắc. Bản công cụ này chạy hoàn toàn trong trình duyệt nhờ Web Audio API và thư viện Meyda — file audio không bao giờ rời khỏi thiết bị của bạn. Cùng kỹ thuật này được dùng trong các thiết bị đo chuyên nghiệp của Audio Precision, Rohde & Schwarz và phòng nghiên cứu Stanford CCRMA.
Công cụ chấp nhận hầu hết định dạng audio mà trình duyệt giải mã được: MP3, WAV, FLAC, OGG, M4A, OPUS, AAC, cộng thêm video container (MP4, MOV, AVI, MKV) — track audio sẽ được trích xuất tự động bằng ffmpeg.wasm. Sau khi giải mã, buffer audio đi qua AnalyserNode tính FFT thời gian thực trên các cửa sổ chồng nhau, kết quả được vẽ thành đường cong tần số mượt, các thanh tần số kiểu cổ điển, hoặc dạng sóng theo thời gian, tất cả điều khiển bằng requestAnimationFrame để duy trì 60 fps ổn định.
Kỹ sư âm thanh studio Việt Nam (ví dụ phòng thu Bình Đại Studio TP.HCM, Phòng thu Hà Nội Audio) thường dùng spectrum analyzer khi mix và master: liếc qua là biết kick drum đã có nền 60–80 Hz đúng chưa, vocal bolero của Đan Trường có nằm đúng band hiện diện 2–5 kHz không, hay âm trầm bị đục ở 200–400 Hz không. Nhạc sĩ V-pop dùng để kiểm tra tuning đàn guitar, podcaster phát hiện tiếng ù 50 Hz từ điện lưới, giáo viên dùng minh hoạ hài âm khi dạy nhạc lý. Công cụ cũng cho phép ghi video trực tiếp animation phổ ra WebM (VP9/VP8) hoặc MP4 (H.264) — rất tiện cho YouTube content tiếng Việt và music visualizer.
Có ba điều khiển cần lưu ý. Smoothing (timeSmoothingConstant) lấy trung bình các frame liên tiếp; gần 0 hiển thị thô và bắt được transient; gần 0,9 mượt mà nhưng giấu mất sự kiện ngắn. Visualization type chuyển giữa đường cong, các thanh band (giống màn hình hi-fi cổ), hoặc waveform nguyên thủy. Tất cả xử lý đều cục bộ, kết quả thuộc về bạn, không có bất kỳ telemetry nào về nội dung audio được thu thập.
Cách công cụ hoạt động
Audio được Web Audio API giải mã thành buffer PCM float 32-bit ở sample rate gốc của file (thường 44,1 kHz hoặc 48 kHz). Buffer chạy qua chuỗi AudioBufferSourceNode → AnalyserNode → AudioContext.destination. AnalyserNode được cấu hình với fftSize = 2048 mặc định, cho 1024 bin tần số phủ từ 0 Hz đến Nyquist (sampleRate / 2). Mỗi bin do đó đại diện cho sampleRate / fftSize ≈ 21,5 Hz tại 44,1 kHz — đây là giới hạn độ phân giải tần số cơ bản. Tăng fftSize lên 4096 hoặc 8192 sẽ tăng gấp đôi độ phân giải nhưng cũng tăng độ trễ.
Trước khi FFT chạy, AnalyserNode áp dụng cửa sổ Blackman cho mỗi frame. Windowing làm mềm hai biên về 0, ngăn rò rỉ phổ (spectral leakage) mà cửa sổ vuông sẽ gây ra khi tần số không nằm chính giữa bin. Các lựa chọn DSP phổ biến khác — Hann, Hamming, Kaiser — đánh đổi giữa độ rộng main-lobe và mức triệt side-lobe; Blackman là mặc định Web Audio và là lựa chọn đa dụng hợp lý.
Sau FFT, công cụ trả về dữ liệu miền thời gian (getByteTimeDomainData) cho khung waveform, hoặc dữ liệu phổ biên độ tính theo dBFS (getByteFrequencyData, scale về 0–255 giữa minDecibels = −100 dBFS và maxDecibels = −30 dBFS). Các frame liên tiếp được làm mượt theo công thức: out[i] = α · prev[i] + (1−α) · current[i], với α là smoothing constant. Đây là bộ lọc IIR đơn cực có tần số cắt phụ thuộc α và frame rate.
Trục biên độ hiển thị logarithmic theo decibel — tương ứng cảm nhận thính giác của con người. Trục tần số có thể tuyến tính (khoảng cách Hz đều, dùng ở chế độ đường cong) hoặc logarithmic (khớp các quãng tám âm nhạc). Ở chế độ thanh, các bin được gom thành band cảm nhận: sub-bass, bass, low-mid, mid, high-mid, treble, presence, brilliance — theo quy ước của bàn mix chuyên nghiệp. Magnitude (biên độ) khác với power (công suất): tăng 3 dB tương đương ~1,4× tỉ số áp suất nhưng 2× tỉ số công suất. Công cụ này hiển thị magnitude.
Snapshot xuất bằng cách đọc canvas qua canvas.toBlob ra PNG. Live recording dùng MediaRecorder trên stream từ canvas.captureStream(60), cho true 60 fps không cần phần mềm ngoài. Khi chọn MP4, WebM được transcode sang H.264 ngay trong trình duyệt bằng ffmpeg.wasm — bản port WebAssembly của thư viện ffmpeg. Chậm hơn VP9 nhưng tương thích iOS, PowerPoint và đa số editor cũ.
Độ chính xác và giới hạn
Công cụ này cho hình dung đáng tin cậy về nội dung phổ tương đối, nhưng không thể đo mức áp suất âm tuyệt đối (SPL theo dB SPL) nếu không hiệu chuẩn. Microphone hoặc audio interface gốc đã thu file có frequency response, gain và noise floor riêng, và ta không biết được sau khi đã ghi xong. Hãy xem trục dB là decibel so với full scale (dBFS), không phải dB SPL. Để có dB SPL bạn cần micro đo class-1, nguồn tham chiếu chuẩn (thường là pistonphone 94 dB SPL) và phần mềm metrology offline — không phải công cụ trình duyệt.
Độ chính xác tần số bị giới hạn bởi bin width: tại 44,1 kHz với fftSize 2048, hai tone cách nhau dưới ~22 Hz không tách thành đỉnh riêng được. Đây là sự đánh đổi thời gian–tần số kiểu Heisenberg. Nếu cần phân giải mịn hơn, tăng fftSize và chấp nhận update chậm; nếu cần phân giải thời gian mịn (bắt transient) thì giảm fftSize. Smoothing thêm trung bình thời gian, giấu mất sự kiện ngắn — đặt 0 khi truy tìm click, pop.
- Không đo được SPL tuyệt đối (dB SPL) nếu thiếu micro hiệu chuẩn và tín hiệu tham chiếu — chỉ là dBFS.
- Độ phân giải tần số bằng sampleRate ÷ fftSize ≈ 21,5 Hz tại 44,1 kHz / FFT 2048.
- Web Audio AnalyserNode dùng cửa sổ Blackman cố định; nhà nghiên cứu cần cửa sổ khác phải dùng thư viện DSP offline.
- Định dạng nén lossy nặng (MP3 bitrate thấp, AAC) mất chi tiết tần số cao và có thể hiển thị nhiễu encoder thay vì nội dung gốc.
- Bộ giải mã trình duyệt có thể downsample các tần số mẫu phi tiêu chuẩn (ví dụ 96 kHz) về tần số AudioContext, che mất nội dung siêu âm.
- Animation chạy 60 fps; transient cực ngắn (dưới ~17 ms) có thể rơi giữa các frame và bị bỏ qua.
Thuật ngữ
- FFT (Fast Fourier Transform)
- Thuật toán O(N log N) tính Discrete Fourier Transform, phân rã tín hiệu hữu hạn thành tổng các sin phức ở các tần số cách đều.
- Frequency bin (bin tần số)
- Một trong N/2 ô tần số do FFT N-điểm tạo ra, mỗi ô tâm tại k × sampleRate / N với k nguyên. Độ rộng bin = sampleRate / fftSize.
- Tần số Nyquist
- Bằng nửa sample rate. Tần số cao nhất biểu diễn được rõ ràng trong tín hiệu số; nội dung trên ngưỡng này gập lại thành aliasing khi thu.
- dBFS (decibel Full Scale)
- Mức tham chiếu số: 0 dBFS là giá trị lớn nhất biểu diễn được (đỉnh ±1.0 ở float 32-bit hoặc ±32767 ở 16-bit). Tất cả giá trị đều âm; noise floor 16-bit sạch khoảng −96 dBFS.
- Magnitude vs. power
- Magnitude là |X(f)|; power là |X(f)|². Tăng 3 dB = 2× về power nhưng √2 ≈ 1,41× về magnitude. Công cụ này vẽ magnitude.
- Windowing
- Nhân frame phân tích với hàm trọng số thuôn dần (Hann, Hamming, Blackman, Kaiser…) trước FFT để giảm rò rỉ phổ ở biên frame.
- Spectrogram
- Biểu đồ 2D biên độ FFT theo thời gian: tần số trục dọc, thời gian trục ngang, cường độ mã hóa bằng màu sắc. Là phổ trải dài theo thời gian.
- Sample rate
- Số mẫu audio thu được mỗi giây, tính bằng Hz. CD = 44,1 kHz; pro audio = 48 / 96 / 192 kHz.
Câu Hỏi Thường Gặp
Hỗ trợ những định dạng audio nào?
Tất cả định dạng trình duyệt giải mã được: MP3, WAV, OGG, AAC, M4A, FLAC, OPUS, cộng thêm video container (MP4, MOV, MKV, AVI) sẽ được trích xuất audio tự động. Toàn bộ giải mã chạy trong trình duyệt qua Web Audio API.
Phân tích phổ dùng để làm gì?
Kiểm tra mix/master, tuning nhạc cụ, khảo sát room mode, phát hiện tiếng ù 50 Hz và hài âm, so sánh hai bản thu, dạy biến đổi Fourier trên lớp, làm music visualizer cho YouTube, kiểm soát chất lượng broadcast/podcast.
FFT size bao nhiêu?
Mặc định fftSize 2048, cho 1024 bin tần số và độ phân giải ≈21,5 Hz tại 44,1 kHz. Web Audio AnalyserNode hỗ trợ mọi luỹ thừa của 2 từ 32 đến 32768; công cụ chọn 2048 cân bằng phân giải, độ trễ và CPU.
Smoothing slider làm gì?
Điều khiển timeSmoothingConstant — bộ lọc IIR đơn cực trên các FFT frame. 0,0 hiện phổ thô từng frame (thấy được transient nhưng nhiễu); 0,8–0,9 cho hiển thị mượt thân thiện cho nhạc; 1,0 đóng băng hiển thị.
Khác biệt giữa Spectrum, Bars và Waveform?
Spectrum là đường cong tần số liên tục từ 0 Hz đến Nyquist. Bars gom bin thành band cảm nhận sub-bass / bass / mid / treble / presence — giống màn hình hi-fi cổ. Waveform hiển thị tín hiệu thô theo thời gian, hữu ích để phát hiện clipping, DC offset, bất đối xứng.
Có đo được dB SPL không?
Không. Hiển thị là dBFS. Đo SPL thực tế cần micro tham chiếu hiệu chuẩn (Earthworks M30, B&K 4189), nguồn âm chuẩn và phần mềm metrology — công cụ trình duyệt không làm được. Nhưng để so sánh tương đối và phân tích hình dáng thì dBFS đủ dùng.
Tại sao phổ trống trên 16 kHz?
Có lẽ file của bạn là MP3 hoặc AAC bitrate thấp; codec lossy thường cắt mạnh tần số cao (low-pass dốc 16 kHz cho MP3 128 kbps). Thử WAV hoặc FLAC cùng nguồn. Cũng có thể bản thu gốc đã giới hạn băng thông.
Snapshot/recording xuất gì?
Snapshot lưu PNG canvas hiện tại độ phân giải đầy đủ. Recording quay animation thành WebM (VP9 chất lượng cao nhất, VP8 tương thích rộng) hoặc transcode MP4 (H.264) bằng ffmpeg.wasm trong trình duyệt. Audio được ghép vào video sẵn sàng upload YouTube.
File audio có bị upload đâu đó không?
Không. Giải mã, FFT, render, ghi đều cục bộ trong trình duyệt. Không byte nào của audio rời khỏi thiết bị. Trang web có analytics tiêu chuẩn cho lượt truy cập thôi.
Tại sao phổ ở đây trông khác với DAW?
DAW thường áp dụng A-weighting, K-weighting, FFT size dài hơn, hoặc smoothing tâm lý-âm học. Có thể hiển thị RMS theo band thay vì peak. Dùng công cụ này để check nhanh và so sánh hình dáng; dùng analyzer DAW hiệu chuẩn (FabFilter Pro-Q, Voxengo SPAN, iZotope Insight) cho quyết định mastering.
Tài liệu tham khảo
- W3C Audio Working Group. (2021). Web Audio API specification (W3C Recommendation) World Wide Web Consortium.
- Smith, J. O.. (2007). Mathematics of the Discrete Fourier Transform (DFT), with Audio Applications Stanford CCRMA / W3K Publishing.
- ITU Radiocommunication Sector. (2023). ITU-R BS.1387-2: Method for objective measurements of perceived audio quality (PEAQ) International Telecommunication Union.
- IEEE Instrumentation and Measurement Society. (2017). IEEE Std 1057-2017: Standard for Digitizing Waveform Recorders IEEE.
- Harris, F. J.. (1978). On the use of windows for harmonic analysis with the discrete Fourier transform Proceedings of the IEEE.
Last reviewed: · Reviewed by Đội Kỹ Thuật Audio WuTools
