Tích hợp hiệu ứng âm thanh trên Android với ZEGO SDK

Hiệu ứng âm thanh như biến giọng, hỗn hưởng và âm thanh lập thể đang trở thành tiêu chuẩn trong các ứng dụng livestream, phòng trò chuyện và hát karaoke. Với ZEGO SDK, bạn không cần tự xây dựng thuật toán phức tạp — mọi tính năng đã được đóng gói sẵn, chỉ cần vài dòng code là có thể kích hoạt ngay, tương thích tốt trên hầu hết thiết bị Android.

Ứng dụng phổ biến

  • Livestream: Biến giọng để tạo sự hài hước, thêm hiệu ứng vang để tăng không khí.
  • Phòng chat thoại: Chuyển đổi giữa giọng nam, nữ hoặc robot để tăng tính giải trí.
  • Karaoke: Mô phỏng môi trường hát thật với hiệu ứng KTV hay sân khấu lớn.
  • Game: Âm thanh 3D giúp định vị đối thủ qua âm thanh, nâng cao trải nghiệm chơi.
  • Mạng xã hội: Tạo dấu ấn cá nhân với hiệu ứng như giọng điện tử, giọng bay bổng.

Chuẩn bị ban đầu

  1. Tạo dự án trên ZEGO Console và lấy AppID hợp lệ.
  2. Tích hợp ZEGO Express SDK và đảm bảo chức năng phát/thu âm cơ bản hoạt động.
  3. Cấp quyền microphone cho ứng dụng.
  4. Môi trường phát triển: Android Studio, hỗ trợ Android 5.0 trở lên.

Triển khai hiệu ứng âm thanh

1. Biến giọng

Sử dụng hiệu ứng có sẵn:

ZegoExpressEngine.getEngine().setVoiceChangerPreset(ZegoVoiceChangerPreset.MEN_TO_CHILD);

Tùy chỉnh bằng tham số pitch (phạm vi [-12.0, 12.0]):

ZegoVoiceChangerParam config = new ZegoVoiceChangerParam();
config.pitch = 3.0f;
ZegoExpressEngine.getEngine().setVoiceChangerParam(config);

2. Hỗn hưởng (Reverb)

Áp dụng preset:

ZegoExpressEngine.getEngine().setReverbPreset(ZegoReverbPreset.CONCERT_HALL);

Tùy chỉnh chi tiết:

ZegoReverbAdvancedParam customReverb = new ZegoReverbAdvancedParam();
customReverb.roomSize = 70.0;
customReverb.reverberance = 60.0;
customReverb.damping = 40.0;
customReverb.wetGain = 6.0;
customReverb.dryGain = 4.0;
ZegoExpressEngine.getEngine().setReverbAdvancedParam(customReverb);

Thêm hiệu ứng tiếng vang:

ZegoReverbEchoParam echoEffect = new ZegoReverbEchoParam();
echoEffect.inGain = 0.7f;
echoEffect.outGain = 0.9f;
echoEffect.numDelays = 5;
echoEffect.delay = new int[]{200, 400, 600, 800, 1000};
echoEffect.decay = new float[]{0.5f, 0.3f, 0.2f, 0.1f, 0.05f};
ZegoExpressEngine.getEngine().setReverbEchoParam(echoEffect);

3. Âm thanh lập thể ảo

Thiết lập kênh âm thanh đôi trước khi stream:

ZegoAudioConfig audioSettings = new ZegoAudioConfig(ZegoAudioConfig.Preset.STANDARD_QUALITY_STEREO);
ZegoExpressEngine.getEngine().setAudioConfig(audioSettings);

Kích hoạt hiệu ứng lập thể với góc 90 độ hoặc toàn hướng (-1):

ZegoExpressEngine.getEngine().enableVirtualStereo(true, 90);
// Hoặc toàn hướng:
ZegoExpressEngine.getEngine().enableVirtualStereo(true, -1);

Mẹo tránh lỗi thường gặp

  • Âm thanh lập thể chỉ hoạt động nếu bạn đã bật chế độ stereo.
  • Khi dùng cấu hình reverb tùy chỉnh, preset sẽ bị ghi đè — gọi lại setReverbPreset để khôi phục.
  • Có thể thay đổi hiệu ứng trong lúc stream mà không cần khởi động lại engine.
  • Nên bật monitor local để nghe thử trước khi phát sóng.
  • Nhớ tắt hiệu ứng và giải phóng tài nguyên khi thoát phòng hoặc hủy view.
  • Tính năng âm thanh toàn hướng yêu cầu SDK phiên bản 2.15.0 trở lên.

Thẻ: ZEGO SDK Android Audio Real-time Voice Effects

Đăng vào ngày 25 tháng 5 lúc 11:20