Pages

Tuesday, June 8, 2010

Tạo file âm thanh tương thích Asterisk

Asterisk chỉ hỗ trợ định dạng wav 8Khz, còn số bit thì từ 8 đến 16bit, tùy theo độ nén.

Nếu bạn muốn dùng file wav nào đó, ví dụ example.wav hoặc foo-in.wav với asterisk, dùng các lệnh sau từ console linux để convert sang chuẩn tương thích Asterisk (thường là ulaw hoặc wav):




Xuất sang ulaw:
Code:
sox -V example.wav -r 8000 -c 1 -t ul -w example.ulaw


Xuất sang wav:
Code:
sox foo-in.wav -r 8000 -c 1 -s -w foo-out.wav resample -ql


Chú thích:

gsm: nén thô, rất tốt khi dùng cho VoIP
wav: chuẩn wav MS, 16 bit tuyến tính (linear)
WAV: chuẩn wav MS, nén bằng gsm (wav49)
Nếu không có sox thì cài đặt bằng yum install sox



Một điểm lưu ý thêm: IVR hoặc MoH khi phát file âm thanh sẽ downsample xuống 8bit. Do đó thường các bạn hay bị hiện tượng file thu âm sau khi chuyển qua dạng wav 8Kbx8bit thì dùng với IVR hay MoH nghe sẽ rất tệ.

Cách khắc phục: sử dụng file âm thanh dạng 8Kbx16bit, để khi bị downsample thì vẫn nghe rõ.

No comments: