Giải pháp nâng cao hiệu năng hệ thống mã hóa, giải mã tiếng nói dựa trên tính chất thưa của dữ liệu tiếng nói trong miền thời gian Đinh Văn Phong1, Nguyễn Thế Hiếu1, Nguyễn Huy Tình1,
Trang 1Giải pháp nâng cao hiệu năng hệ thống mã hóa, giải
mã tiếng nói dựa trên tính chất thưa của dữ liệu tiếng
nói trong miền thời gian
Đinh Văn Phong1, Nguyễn Thế Hiếu1, Nguyễn Huy Tình1, Đinh Viết Quân1, Phạm Văn Tăng2 và Trần Đức Tân3
1 Tổng công ty Công nghiệp Công nghệ cao Viettel, 2 Học Viện Hậu Cần, 3 Trường Đại học Phenikaa
Email: phongdv6@viettel.com.vn, tan.tranduc@phenikaa-uni.edu.vn
Tóm tắt — Trong hệ thống chuyển mạch kênh di động, hai loại dữ
liệu chính được xử lý là dữ liệu báo hiệu và dữ liệu tiếng nói Dữ
liệu báo hiệu là các bản tin có kích thước nhỏ, tần suất xuất hiện
không lớn trong một cuộc gọi, chỉ chiếm không quá 10%, trong
khi 90% còn lại là dữ liệu tiếng nói của người dùng Vì vậy, việc
thao tác xử lý với dữ liệu tiếng nói ảnh hưởng rất lớn tới hiệu
năng hệ thống Một trong các thao tác chính cần phải làm với dữ
liệu tiếng nói là thực hiện các thuật toán mã hóa, giải mã theo các
tiêu chuẩn được ban hành bởi ITU, 3GPP như G711, G722,
AMR, GSMFR, GSMHR… Các thuật toán này thực thi trên toàn
bộ thời gian đàm thoại của người dùng Trong thực tế, dữ liệu
tiếng nói có tính chất thưa trong miền thời gian, có nghĩa rằng
trong nhiều khoảng thời gian đàm thoại của người dùng, dữ liệu
không chứa tiếng nói hữu ích mà là dữ liệu trắng (rỗng), dữ liệu
tiếng nói hữu ích xuất hiện xen kẹp trong các khoảng dữ liệu
trắng này Từ đặc điểm này, chúng tôi đề xuất giải pháp xử lý có
chọn lọc các dữ liệu tiếng nói hữu ích và bỏ qua việc xử lý dữ liệu
trắng giúp tiết kiệm chi phí tính toán, nâng cao hiệu năng hệ
thống
Từ khóa- Mã hóa, giải mã, năng lượng tín hiệu, dữ liệu thưa
I GIỚI THIỆU
Trong hệ thống chuyển mạch kênh di động, hai loại dữ liệu
chính được xử lý là dữ liệu báo hiệu và dữ liệu tiếng nói Dữ
liệu báo hiệu là các bản tin có kích thước nhỏ, tần suất xuất
hiện không lớn trong một cuộc gọi, chỉ chiếm không quá 10%,
trong khi 90% còn lại là dữ liệu tiếng nói của người dùng Vì
vậy, việc thao tác xử lý với dữ liệu tiếng nói ảnh hưởng rất lớn
tới hiệu năng hệ thống Một trong các thao tác chính cần phải
làm với dữ liệu tiếng nói là thực hiện các thuật toán mã hóa,
giải mã theo các tiêu chuẩn được ban hành bởi ITU, 3GPP như
G711 [1], G722 [2], AMR [3], AMR-WB [4], GSMFR [5],
GSMHR [6]…Các thuật toán này thực thi trên toàn bộ thời
gian đàm thoại của người dùng
Hình 1: Các khoảng được đánh dấu đỏ mô tả các khoảng trắng
trong dữ liệu tiếng nói Trong thực tế, dữ liệu tiếng nói có tính chất thưa trong miền
thời gian, có nghĩa rằng trong nhiều khoảng thời gian đàm
thoại của người dùng, dữ liệu không chứa tiếng nói hữu ích mà
là dạng dữ liệu trắng (rỗng), dữ liệu tiếng nói hữu ích xuất hiện xen kẹp trong các khoảng dữ liệu trắng này [Hình 1]
Đối với các bộ mã hóa/giải mã trong mạng di động 2.5G trở lên như AMR, AMRWB, GSMFR, GSMHR việc xử lý các khoảng dữ liệu trắng này ngay trên thiết bị đầu cuối đã được thực hiện, trong đó thiết bị đầu cuối sẽ nhận diện các khoảng trắng này và sau đó, thay vì gửi đi khung giá trị dữ liệu trắng thì thiết bị chỉ gửi đi các gói đánh dấu khoảng trắng đang diễn
ra, kỹ thuật này được gọi là SID (Silent Identification) [3][4], các gói này có kích thước rất nhỏ (5 bytes) giúp tiết kiệm băng thông truyền dẫn vô tuyến
Tuy nhiên, đối với các bộ mã hóa/giải mã cũ hơn như G711, G722 được dùng trong các hệ thống PSTN [7], VoIP [8], SID không được sử dụng Ngoài ra, nhà cung cấp viễn thông di động có thể tắt hỗ trợ SID trên mạng lưới trong một số trường hợp để tránh các lỗi dịch vụ Vì vậy, dữ liệu tiếng nói với các khoảng trắng dư thừa không chứa thông tin luôn tồn tại trên mạng di động Các dữ liệu này được xử lý mã hóa/giải mã bình thường như các đoạn dữ liệu mang thông tin khác, gây lãng phí năng lực tính toán trong hệ thống mạng lõi viễn thông Trong điều kiện như vậy, bài báo này đề xuất một phương pháp xử lý mã hóa/giải mã có chọn lọc các đoạn dữ liệu tiếng nói Trong đó các đoạn dữ liệu tiếng nói mang thông tin được nhận diện theo mức năng lượng và thực hiện mã hóa/giải mã theo các tiêu chuẩn của ITU/3GPP, các đoạn dữ liệu trắng được nhận diện và xử lý nhanh không qua mã hóa/giải mã, qua đó tiết kiệm được tài nguyên (CPU, RAM) dùng cho tính toán, giúp nâng cao hiệu năng hệ thống
Trong nội dung tiếp theo của bài báo, chúng tôi trình bày một số kiến thức cơ bản về mã hóa/giải và tính chất thưa trong miền thời gian của tiếng nói trong phần II Giải pháp mã hóa/giải mã có chọn lọc dữ liệu được mô tả trong phần III và các kết quả thử nghiệm chứng minh sự cải thiện hiệu năng hệ thống khi áp dụng giải pháp đề xuất được mô tả trong phần IV của bài báo
II KIẾN THỨC NỀN TẢNG
1 Mã hóa và giải mã tiếng nói
Mã hóa tiếng nói là dạng mã nguồn của dữ liệu, trong đó tiếng nói nguyên gốc ban đầu được biểu diễn bằng các giá trị với kích thước (dung lượng) nhỏ hơn kích thước ban đầu giúp tiết kiệm băng thông truyền dẫn Giải mã là quá trình ngược lại
Trang 2khi dữ liệu mã hóa được tái tạo về dạng nguyên gốc và có thể
phát ra âm thanh thông qua các thiết bị như loa
Trong quá trình phát triển các công nghệ di động 2G, 3G,
4G, một loạt tiêu chuẩn mã hóa/giải mã tiếng nói đã được phát
triển như G.711 (PCMA/PCMU) [1], GSM-FR [5], GSM-HR
[6], GSM-EFR [9], GSM-AMR [3], AMR-WB [4], EVS [10]
Mỗi loại thiết bị đầu cuối có thể hỗ trợ một hoặc tất cả các tiêu
chuẩn mã hóa/giải mã này Khi 02 thiết bị đầu cuối có tiêu
chuẩn mã hóa/giải mã khác nhau thực hiện đàm thoại với nhau,
sẽ cần một thiết bị trung gian của hệ thống mạng lõi viễn thông
thực hiện chuyển đổi các tiêu chuẩn mã hóa (transcoding) để
02 thiết bị có thể nghe được dữ liệu của nhau Thiết bị này
thường là các hệ thống MSC (Mobile Switching Center) hoặc
GMSC (Gate Mobile Switching Center)
Hình 02 minh họa việc thực hiện transcoding giữa 02 thiết
bị đầu cuối A và B Thiết bị A sử dụng chuẩn mã hóa loại A,
được giải mã bởi bộ giải mã loại A, dữ liệu sau giải mã là dữ
liệu PCM 16 bit, dữ liệu sau đó được mã hóa lại theo chuẩn
mã hóa của điện thoại B, sử dụng bộ mã hóa loại B Chiều
người lại được thực hiện tương tự Khi đó thiết bị A và B có
thể thưc hiện đàm thoại bình thường mặc dù khác nhau chuẩn
mã hóa
CODEC A
Điện
thoại A
Điện thoại B
CODEC B
Dữ liệu PCM
Hình 2: Mô tả kỹ thuật transcoding
Tín hiệu tiếng nói sau microphone của một thiết bị đầu cuối
là tín hiệu liên tục trong miền thời gian Trước khi đi qua các
bộ mã hóa/giải mã tiếng nói, tín hiệu được chia thành các
khung dữ liệu với độ dài 10 – 20ms Các khung này khi truyền
trong mạng IP được biểu diễn thành các gói (packet) dữ liệu
với độ dài tương ứng Bảng 1 mô tả độ dài khung và kích thước
của một số loại gói dữ liệu tiếng nói theo tiêu chuẩn ITU,
3GPP
Bảng 1: Một số mã hóa/giải mã trong mạng lõi viễn thông
Codec
Tần số lấy mẫu (kHz)
Chiều dài gói (ms)
Kích thước gói (byte)
2 Tính chất thưa của dữ liệu tiếng nói và vấn đề gặp phải
Thông thường trong một cuộc hội thoại, người sử dụng không nói liên tục, mà có những khoảng thời gian yên lặng để
có thể nghe người phía đối diện nói Khi biểu diễn tín hiệu tiếng nói, tín hiệu thường chứa các khoảng lặng xen kẽ, chúng tôi gọi là tín hiệu thưa trên miền thời gian
Hình 3: Tín hiệu tiếng nói thưa trong miền thời gian Giả sử tín hiệu tiếng nói thưa trong hình 3 được chia thành các khung dữ liệu 20ms Dễ dàng nhận thấy rằng sẽ tồn tại rất nhiều các khung có dữ liệu dạng x(n) = {0,0,0….0} kích thước
N phần tử, hoàn toàn không chứa giá trị hữu ích mang thông tin tiếng nói Nếu các đoạn dữ liệu x(n) này được đưa vào mã hóa sẽ tốn hiệu năng tính toán vô ích để ra được dữ liệu y(n) = {0,0,0…0} kích thước M phần tử (M < N)
III G IẢI PHÁP ĐỀ XUẤT NÂNG CAO HIỆU NĂNG
1 Ý tưởng của giải pháp
Ý tưởng của chúng tôi là thực hiện việc nhận diện và phân loại các khung dữ liệu tiếng nói thành 02 dạng:
+ Dữ liệu chứa thông tin có ích: Thực hiện mã hóa/ giải
mã dữ liệu một cách bình thường + Dữ liệu nằm trong khoảng lặng (trắng): Không thực hiện mã hóa/giải mã dữ liệu mà gán trực tiếp kết quả đầu ra do đã chắc chắn biết được dữ liệu sau mã hóa/giải mã của khung dữ liệu trắng
Việc nhận diện các gói dữ liệu được thực hiện thông qua việc tính giá trị năng lượng của khung dữ liệu theo công thức:
2 0 ( )
N n
=
trong đó P là mức năng lượng đo được của khung dữ liệu, N là
số phần tử trong khung dữ liệu Việc định nghĩa một ngưỡng giá trị Pthreshold sẽ cho phép xác định x(n) có chứa giá trị hữu ích hay không Trên thực tế, phương trình (1) có thể được đơn giản hóa như sau để giảm bớt số lượng phép tính mà vẫn giữ nguyên ý nghĩa trong tính toán:
0 ( )
N simple n
=
2 Triển khai giải pháp
Một bộ tính toán và so sánh năng lượng tín hiệu với Ptheshold luôn được triển khai trước các bộ mã hóa/giải mã (xem hình 4)
Bộ mã hóa/giải mã
Đo năng lượng frame dữ liệu
Lớn hơn P_threshold ?
Copy và thay thế pattern đầu ra
Y
N
Dữ liệu đầu
Hình 4: Lưu đồ triển khai giải pháp
Trang 3Giải pháp có thể được triển khai dưới dạng giải thuật như
sau:
Int16 *InputBuffer; /*Con trỏ đến khung dữ liệu cần tính toán*/
B1: Tính toán mức năng lượng của khung dữ liệu theo kích thước
P = 0; /* Khởi tạo mức năng lượng P = 0*/
N = PacketSize; /*N là kích thước dữ liệu đầu vào*/
M = OutSize; /*M là kích thước dữ liệu đầu ra*/
P_LEVEL = P_threshold;
for(i = 0; i < N; i++)
{
P = P + InputBuffer[i]*InputBuffer[i];
}
B2: So sánh mức năng lượng đo được với mức ngưỡng định nghĩa
trước
if(P >= P_LEVEL)
{
/* Thực hiện hàm mã hóa/giải mã dữ liệu ở đây */;
}
else /*Thực hiện thiết lập đầu ra bằng 0 nếu mức năng lượng thấp
hơn ngưỡng*/
{
memset(OutputBuffer,0,M);
}
B3: Lặp lại B1 cho khung dữ liệu tiếp theo
IV KẾT QUẢ
1 Thiết lập mô hình thử nghiệm
Đầu vào: Chuẩn bị 01 file dữ liệu đầu vào input.pcm
chiều dài 2 phút, máy tính sử dụng CPU Intel Core i7,
2.2GHz, bộ thư viện mã hóa/giải mã chuẩn AMRNB
Thiết lập mô hình 1: Thực hiện mã hóa + giải mã file dữ
liệu đầu vào theo lưu đồ thông thường, đo thời gian xử lý
của máy tính (xem hình 5)
Bộ mã hóa
Đọc dữ liệu đầu vào
x(n) từ 01 file pcm
Ghi dữ liệu đầu ra ra file
Hình 5: Mã hóa, giải mã file dữ liệu theo mô hình thông
thường Thiết lập mô hình đề xuất (xem hình 6): Thực hiện mã
hóa + giải mã file dữ liệu đầu vào theo lưu đồ xử lý có
chọn lọc, đo thời gian xử lý của máy tính Mức ngưỡng
cho bộ mã hóa được thiết lập P_ENC = 500 và bộ giải mã
P_DEC = 2500
Yêu cầu với kết quả và phép đo so sánh:
- Chất lượng dữ liệu tiếng nói file khôi phục khi áp dụng cả
02 mô hình phải giống nhau Trên miền thời gian, sử dụng
phần mềm Audacity [11] để phân tích định tính bằng mắt,
so sánh, đảm bảo các mẫu dữ liệu là giống nhau
- Sử dụng công cụ VQT (Voice Quality Test) được mua từ
GL Communication [12] để đánh giá định lượng chất
lượng thoại dựa trên điểm MOS (Mean Opinion Square)
theo tiêu chuẩn ITU P.863 [13]
Bộ mã hóa
Đo năng lượng frame dữ liệu
Lớn hơn P_threshold ?
Copy và thay thế pattern đầu ra
Y N
đầu vào x(n)
từ 01 file pcm theo các
mã hóa
P
Bộ giải mã
Đo năng lượng frame dữ liệu P_threshold ?Lớn hơn
Copy và thay thế pattern đầu ra
Y
N
Ghi dữ liệu đầu ra ra file
P
Hình 6: Mã hóa, giải mã file dữ liệu theo phương pháp đề xuất
2 Kết quả
Chất lượng file tín hiệu sau mã hóa, giải mã bằng 02 mô hình được kiểm tra bằng hiển thị trên phần mềm Audacity như hình 7:
Hình 7: Tín hiệu file tiếng nói đầu ra của 02 mô hình được so
sánh trên phần mềm Audacity Đánh giá bằng cảm quan, định tính trên Audacity cho thấy
02 file có biên độ và giá trị dữ liệu giống nhau ở cùng tọa độ thời gian Kiểm tra bằng phần mềm VQT đều cho mức điểm MOS đạt mức cao nhất “xuất sắc (Excellent)” Điều này chứng minh việc thực hiện giải pháp đề xuất mã hóa/giải mã chọn lọc các gói dữ liệu tiếng nói không làm ảnh hưởng tới chất lượng tiếng nói
Với cùng 02 mô hình này, chúng tôi thay đổi độ dài file đầu vào theo bước nhảy 30s, sau đó đo thời gian mã hóa + giải mã file tương ứng theo các mốc +30s, cho kết quả trong bảng 2 Bảng 2: So sánh thời gian xử lý giữa 02 mô hình thử nghiệm
Độ dài file (s)
Thời gian xử lý (s)
Trang 4390 3.1 2.21
Với kết quả so sánh thời gian xử lý của 02 mô hình bên trên
đã chứng minh phương pháp đề xuất của nhóm tác giả cho tốc
độ xử lý nhanh hơn ~30% so với mô hình mã hóa/giải mã
thông thường do không cần thực thi mã hóa, giải mã tiếng nói
trong các khoảng thời gian tín hiệu trắng, không mang dữ liệu
có ích Nhóm nghiên cứu đã tiếp tục thực hiện trên nhiều đoạn
âm thanh khác nhau và thu được các kết quả tương tự về việc
tăng hiệu năng xử lý (dao động từ 26% tới 31%)
V KẾT LUẬN
Các kết quả trong các bài đo kiểm thử nghiệm của bài báo
đã chứng minh phương pháp đề xuất của chúng tôi đem lại hiệu
quả tốt ở cả hai khía cạnh: chất lượng tiếng nói và hiệu năng hệ
thống Về chất lượng tiếng nói, phương pháp đề xuất không
làm ảnh hưởng đến chất lượng tiếng nói so với việc mã
hóa/giải mã tiếng nói thông thường, trong khi về hiệu năng lại
giúp tăng nhanh tốc độ xử lý của hệ thống ~30% Đối với các
hệ thống lõi di động có lượng phần cứng triển khai lớn như
MSC, GMSC, việc tăng tốc độ xử lý ~30% là rất đáng kể Việc
tăng tốc độ xử lý cũng đồng nghĩa với việc sẽ tiết kiệm được
30% phần cứng xử lý để đạt được cùng mức hiệu năng trước
đó
Trên cơ sở những nghiên cứu đã thực hiện [14-17], trong
định hướng nghiên cứu tiếp theo, chúng tôi dự kiến thực hiện
tối ưu việc tính năng lượng tín hiệu bằng ít phép tính nhất có
thể, từ đó tiếp tục nâng mức cải thiện hiệu năng hệ thống lên 35
– 40%
Lời cảm ơn: Kết quả của bài báo là một phần trong đề tài
“Nghiên cứu phát triển hệ thống Gate MSC hỗ trợ TDM” mã
số 002-18-TĐ-RĐP-DS Chúng tôi xin gửi lời cảm ơn tới các
đồng nghiệp tại Trung tâm Công nghệ Chuyển mạch, TCT
Công nghiệp Công nghệ cao Viettel đã hỗ trợ thực hiện và thử
nghiệm các kết quả đề tài
TÀILIỆUTHAMKHẢO
[1] ITU G.711 : Pulse code modulation (PCM) of voice frequencies; ITU-T
Recommendation (11/1988), Retrieved on 2009-07-08
[2] ITU-T (2003) ITU-T Recommendation G.722.2 Page i Retrieved on 2009-06-17
[3] 3GPP TS 26.090 - Mandatory Speech Codec speech processing functions; Adaptive Multi-Rate (AMR) speech codec; Transcoding functions" 3GPP Retrieved 2010-07-21
[4] 3GPP TS 26.290; Audio codec processing functions; Extended Adaptive Multi-Rate - Wideband (AMR-WB+) codec; Transcoding functions, Page 10, Retrieved on 2009-07-08
[5] ETSI EN 300 961 V8.1.1 (2000-11) - (GSM 06.10 version 8.1.1 Release 1999), Retrieved on 2009-07-08
[6] ETSI, EN 300 969 - Half rate speech transcoding (GSM 06.20 version 8.0.1 Release 1999), Retrieved on 2009-07-11
[7] Kushnick, Bruce (7 January 2013) "What Are the Public Switched Telephone Networks, 'PSTN' and Why You Should Care?" Huffington Post Blog Retrieved 11 April 2014
[8] Nespeca, Claudio (August 18, 2018) "What Is VoIP" Epik Networks Retrieved August 18, 2018
[9] RFC 3551 - GSM-EFR (GSM 06.60), Retrieved on 2009-07-08 [10] Atti, V.; Sinder, D J.; Subasingha, S.; Rajendran, V.; Dewasurendra, D.; Chebiyyam, V.; Varga, I.; Krishnan, V.; Schubert, B (2015-04-01)
"Improved error resilience for volte and VoIP with 3GPP EVS channel aware coding" 2015 IEEE International Conference on Acoustics,
doi:10.1109/ICASSP.2015.7179066
[12] Voice Quality Testing (VQT) Software (POLQA, PESQ), https://www.gl.com/voicequality-testing-pesq-polqa.html, access: June
26, 2018
[13] ITU P.863 “Perceptual objective listening quality prediction”, March
2018
[14] Dinh Van, Phong and Nguyen The, Hieu and Nguyen Huy, Tinh and Dinh Viet, Quan and Tran Duc, Tan (2018) Một Số Cải Tiến Kỹ Thuật Trong Chuyển Đổi Mã Hóa Tiếng Nói Băng Rộng Và Băng Hẹp Áp Dụng Trên Mạng Viễn Thông Di Động Viettel In: Hội nghị Quốc gia lần thứ XXI về Điện tử, Truyền thông và Công nghệ Thông tin, 14-15 /
12 / 2018, Ha noi, Viet nam
[15] Dinh Van, Phong and Nguyen The, Hieu and Nguyen Huy, Tinh and Dinh Viet, Quan and Tran Duc, Tan (2019) Removing Long Echo Delay Using Combination of Jitter Buffer and Adaptive Filter In: International
Telecommunications & Computing (SigTelCom), 21-22 March, 2019, Hanoi, Vietnam
[16] Tam Vu Van,Tran Duc-Tan, Phan Trong Hanh (2017) Data embedding
in audio signal using multiple bit marking layers method Multimedia Tools and Applications, 76(9), 11391-11406
[17] Vu, V T., Tran, D T., Nguyen, D T., Nguyen, T T., & Phan, T H (2015) Data embedding in audio signal by a novel bit marking method International Journal of Advancements in Computing Technology, 7(1),
pp 67-76