Bối cảnh và vấn đề nghiên cứu
Đề tài luận văn thạc sĩ "Xây dựng ứng dụng biến đổi giọng nói trên nền tảng di động – iPhone" được thực hiện bởi tác giả Nguyễn Văn Hiển vào năm 2012, thuộc chuyên ngành Công nghệ phần mềm (Mã số: 60 48 10), Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội.
Bối cảnh thực tiễn của nghiên cứu bắt nguồn từ sự phát triển của thiết bị di động cầm tay thông minh (smartphone). Theo số liệu thống kê từ công ty nghiên cứu thị trường Nielsen được trích dẫn trong luận văn, vào quý 4 năm 2011, lượng smartphone lưu hành toàn cầu đạt 472 triệu chiếc, chiếm 46% tổng số điện thoại di động trên thế giới. Trên kho ứng dụng App Store của Apple, thời điểm đó đã ghi nhận khoảng 5 ứng dụng phục vụ việc biến đổi giọng nói với tổng cộng khoảng 3 triệu lượt tải về. Tuy nhiên, các ứng dụng hiện có bộc lộ những hạn chế rõ rệt:
- Số lượng hiệu ứng biến đổi giọng nói cung cấp cho người dùng còn rất ít.
- Giao diện và cách thức sử dụng tương đối phức tạp, đòi hỏi người dùng phải có hiểu biết sâu sắc về âm thanh để tinh chỉnh các tham số kỹ thuật không thân thiện.
- Chưa có các công bố hoặc hệ thống chuẩn hóa bộ tham số cụ thể cho từng loại hiệu ứng giọng nói và môi trường giả lập.
Mục tiêu và nhiệm vụ nghiên cứu của đề tài bao gồm:
- Nghiên cứu tổng quan về bài toán biến đổi giọng nói và các cách tiếp cận kỹ thuật xử lý tín hiệu âm thanh hiện có.
- Đề xuất phương pháp tiếp cận và xác định các bộ tham số cụ thể để biến đổi sang 17 giọng nói khác nhau và 6 hiệu ứng môi trường âm thanh.
- Thiết kế và cài đặt một ứng dụng hoàn chỉnh trên nền tảng di động iOS (iPhone), cho phép ghi âm, biến đổi giọng nói và lưu trữ.
- Cài đặt một plugin tích hợp cho ứng dụng Skype nhằm thử nghiệm khả năng biến đổi giọng nói trực tiếp trong cuộc đàm thoại.
Đối tượng nghiên cứu là tín hiệu tiếng nói người (dải tần số cơ bản 80 – 800 Hz) và các giải pháp biến đổi tham số âm thanh kỹ thuật số. Phạm vi nghiên cứu tập trung vào nền tảng hệ điều hành iOS của Apple và môi trường liên lạc Skype trên hệ điều hành Windows trong mốc thời gian năm 2012.
Cơ sở lý thuyết và phương pháp
Đề tài sử dụng khung lý thuyết về xử lý tín hiệu số (Digital Signal Processing - DSP), âm học ngôn ngữ và kiến trúc hệ thống phần mềm di động:
-
Đặc tính vật lý và sinh lý của tiếng nói: Luận văn phân tích tiếng nói dựa trên các thành phần sóng âm gồm:
- Độ cao (Pitch): Phụ thuộc vào tần số dao động ($f$), tần số càng lớn thì âm càng cao.
- Độ mạnh (Amplitude): Thể hiện qua biên độ dao động và cường độ âm; phụ âm thường có biên độ mạnh hơn nguyên âm.
- Độ dài (Duration): Trường độ âm thanh, dùng để phân biệt các nguyên âm ngắn/dài.
- Âm sắc (Timbre): Sắc thái riêng của giọng do hiện tượng cộng hưởng tạo nên giữa các cá thể.
- Tiếng ồn và tiếng thanh: Tiếng ồn do chuyển động không chu kỳ, tiếng thanh do chuyển động có chu kỳ của các phân tử không khí.
-
Lý thuyết lấy mẫu và biểu diễn tín hiệu số: Áp dụng định lý lấy mẫu Shannon ($f_0 \ge 2 f_{MAX}$). Dải phổ tiếng nói trải rộng trong khoảng 12 kHz đòi hỏi tần số lấy mẫu tối thiểu là 24 kHz; trong khi thoại tiêu chuẩn có thể giới hạn ở 3400 Hz với tần số lấy mẫu 8000 Hz, và âm thanh chất lượng cao cần 48 kHz. Về lượng tử hóa và nén, văn bản khảo sát chuẩn điều chế mã xung PCM, luật nén phi tuyến ($\mu$-law và A-law 8-bit/mẫu), kỹ thuật dự đoán tuyến tính/tự hồi quy trên các khung ngắn 20 ms (giảm băng thông xuống khoảng 2500 bps) và biến đổi phổ Fourier (ATC).
-
So sánh hai phương pháp biến đổi giọng nói:
| Tiêu chí | Phương pháp dựa trên tập mẫu (Codebook-based) | Phương pháp dựa trên biến đổi (Transformation-based) |
|---|---|---|
| Nguyên lý hoạt động | Lưu trữ tập mẫu giọng đối tượng A và B; nhận dạng tín hiệu A rồi tra cứu/sinh tín hiệu tương ứng của B. | Trích xuất đặc trưng của tín hiệu đầu vào, biến đổi trực tiếp các tham số (Pitch, Amplitude, Window Length) sang giá trị mục tiêu. |
| Chất lượng âm thanh | Độ chính xác và tự nhiên rất cao khi tập mẫu đủ lớn. | Chất lượng ở mức chấp nhận được, phụ thuộc vào thuật toán nội suy và lọc. |
| Độ phức tạp tính toán | Đòi hỏi dung lượng lưu trữ lớn, thời gian xử lý lâu khi tín hiệu không khớp mẫu. | Tính toán nhanh, tiêu tốn ít bộ nhớ, phù hợp thời gian thực. |
| Khả năng áp dụng | Thường dùng trong các hệ thống chuyên biệt cố định. | Phù hợp triển khai trên thiết bị di động với tài nguyên hạn chế. |
Tác giả lựa chọn phương pháp dựa trên biến đổi (Transformation-based) nhằm bảo đảm tính năng thực thi thời gian thực trên phần cứng di động iPhone.
Phương pháp nghiên cứu thực tế gồm: tổng hợp lý thuyết âm học, mô hình hóa thuật toán biến đổi tham số, thiết kế phần mềm hướng đối tượng trên iOS/Objective-C và đánh giá thực nghiệm chất lượng thông qua đo đạc thời gian đáp ứng và khảo sát thang điểm trung bình MOS (Mean Opinion Score).
Thiết kế và triển khai
Hệ thống được thiết kế và triển khai trên hai thành phần độc lập:
1. Kiến trúc ứng dụng di động trên iOS
- Môi trường phát triển: Sử dụng ngôn ngữ Objective-C, bộ công cụ lập trình Xcode IDE, iOS SDK và trình mô phỏng iOS Simulator trên nền tảng máy tính Mac OS X/Intel. Cấu hình quyền và thuộc tính ứng dụng qua tệp
Info.plist. - Cấu trúc phân tầng: Ứng dụng khai thác các lớp thư viện (Frameworks) từ Cocoa Touch, Media Layer (xử lý âm thanh) đến Core OS để tối ưu việc xử lý và trừu tượng hóa phần cứng ghi âm/phát âm.
- Cấu trúc dữ liệu và xử lý tín hiệu:
- Dữ liệu giọng nói được định nghĩa dưới dạng cấu trúc
struct Voicebao gồm 3 trường thông tin:amplitude: integer(biên độ),pitch: integer(tần số/độ cao), vàwindow_length: integer(độ rộng cửa sổ khung phân tích). - Tín hiệu âm thanh đầu vào được thu nhận theo từng khối (frame). Hệ thống thiết lập độ rộng cửa sổ xử lý cố định là 11 đơn vị (
window_length = 11). - Thuật toán tiến hành lặp nhận tín hiệu vào mảng
source_voices, sau đó nhân tích chập biên độ và dịch chuyển tần số dựa trên bảng tham số mục tiêuVOICES[TARGET]để tạo ra mảng đầu ratarget_voicestrước khi chuyển đổi sang tín hiệu tương tự (DAC) và phát ra loa.
- Dữ liệu giọng nói được định nghĩa dưới dạng cấu trúc
2. Kiến trúc Plugin cho Skype trên máy tính
Do hệ điều hành iOS (phiên bản 2012) có cơ chế đóng và không cho phép can thiệp trực tiếp vào luồng âm thanh của cuộc gọi mạng viễn thông gốc, tác giả xây dựng thêm giải pháp Plugin cho Skype để chứng minh tính khả thi của việc biến đổi giọng đàm thoại trực tiếp:
- Cơ chế giao tiếp API: Sử dụng Skype API thông qua hai tầng chính: Tầng truyền thông (Transport layer - phụ thuộc hệ điều hành Windows/Linux/Mac) và Tầng thông điệp (Message layer - định dạng chuỗi văn bản UTF-8).
- Quy trình hoạt động: Plugin đóng vai trò ứng dụng bên thứ ba (Third-party application), móc nối vào luồng dữ liệu âm thanh của Skype Client để áp dụng bộ lọc tham số trước khi truyền tải qua giao thức VoIP ngang hàng (P2P).
Nội dung chính theo từng chương
Chương 1 – Giới thiệu
Chương này trình bày lý do chọn đề tài dựa trên sự bùng nổ của thị trường smartphone (472 triệu máy, 46% thị phần toàn cầu vào cuối năm 2011) và nhu cầu che giấu danh tính, tạo cuộc gọi giả định phục vụ giải trí hoặc an toàn thông tin cá nhân. Tác giả xác định bài toán, ý nghĩa thực tiễn, phân tích 5 ứng dụng hiện có trên App Store và vạch rõ phạm vi nghiên cứu gồm việc nghiên cứu tham số hóa và xây dựng 2 sản phẩm phần mềm (ứng dụng iOS và plugin Skype).
Chương 2 – Cơ sở lý thuyết và công nghệ
Tập trung làm rõ toàn bộ nền tảng lý thuyết xử lý tín hiệu âm thanh và các công nghệ phát triển:
- Phân tích chi tiết đặc tính vật lý của tiếng nói (Pitch, Amplitude, Duration, Timbre, Noise, Tone).
- Khảo sát các kỹ thuật số hóa tín hiệu: lấy mẫu theo định lý Shannon ($f_{MAX} \le f_0/2$), lượng tử hóa mẫu 8-bit/16-bit, nén tín hiệu thoại qua PCM, DPCM, phân tích tự hồi quy trong khung thời gian ngắn 20 ms và mã hóa tham số LPC xuống mức 2500 bps.
- Trình bày kiến trúc phân tầng của iOS SDK (lớp trừu tượng hóa phần cứng, mô hình ứng dụng bản địa Native Application, các công cụ quản lý dự án trong Xcode).
- Tổng quan về Skype: giao thức VoIP ngang hàng, lịch sử mua bán (eBay mua lại năm 2005 với giá 2,6 tỷ USD; Microsoft mua lại ngày 10/5/2011 với giá 8,5 tỷ USD) và kiến trúc hai tầng của Skype API (Transport layer và Message layer định dạng UTF-8).
Chương 3 – Xây dựng hệ thống biến đổi giọng nói
Chương này đi sâu vào việc giải quyết bài toán kỹ thuật thông qua tiếp cận tham số:
- Thiết lập hệ thống biến đổi cho 17 giọng nói (bao gồm: nam giới, nữ giới, trẻ em mới tập nói, trẻ nhi đồng, phát thanh viên qua loa, giọng vang trong núi...) và 6 hiệu ứng môi trường giả lập (mưa rơi, đường phố, nơi đông người, tiếng vỗ tay, âm thanh trên biển, nơi có còi báo động).
- Phân tích chi tiết thuật toán dịch chuyển tần số (Pitch Shift) kết hợp hiệu chỉnh biên độ (Amplitude) và độ rộng khung cửa sổ (
window_length = 11). - Xây dựng mô hình mã giả và sơ đồ cấu trúc dữ liệu cho quá trình chuyển đổi tín hiệu từ nguồn phát sang đối tượng đích.
Chương 4 – Cài đặt và thực nghiệm
Mô tả quy trình triển khai phần mềm và đánh giá thực nghiệm:
- Minh họa giao diện thực tế của ứng dụng iPhone: màn hình ghi âm, màn hình tùy chọn danh mục 17 giọng nói, màn hình trộn 6 hiệu ứng môi trường nền và màn hình tinh chỉnh hiệu ứng.
- Triển khai Class Diagram và giao diện điều khiển của Plugin Skype trên hệ điều hành Windows.
- Thử nghiệm biến đổi các dạng sóng âm thực tế (sóng âm giọng nữ gốc 20-25 tuổi chuyển đổi sang dạng sóng giọng nam, giọng trẻ em và môi trường hang động).
- Báo cáo kết quả đo đạc thời gian thực thi của các hiệu ứng (Bảng 4.1) và kết quả khảo sát điểm số chất lượng cảm nhận MOS (Mean Opinion Score - Bảng 4.3).
Kết quả và đóng góp
1. Kết quả kỹ thuật đạt được
- Hệ thống hóa bộ tham số âm thanh: Xác định thành công bộ chỉ số kết hợp giữa tần số dao động (Pitch), biên độ (Amplitude) và kích thước khung (
window_length = 11) cho phép tái tạo:- 17 loại giọng đích: nam giới, nữ giới, trẻ em mới tập nói, thiếu nhi/nhi đồng, phát thanh viên qua loa (giữ nguyên tần số nhưng thay đổi độ rộng cửa sổ), tiếng vọng trong núi...
- 6 môi trường âm thanh nền: mưa rơi, đường phố, đám đông, tiếng vỗ tay, tiếng sóng biển, còi báo động.
- Hoàn thiện 02 sản phẩm phần mềm:
- Ứng dụng di động trên iPhone: Cung cấp giao diện trực quan cho phép ghi âm, nghe thử, tùy biến bộ lọc và lưu trữ tệp âm thanh đã qua xử lý.
- Plugin Skype: Cho phép áp dụng trực tiếp các bộ lọc giọng nói trong khi thực hiện cuộc đàm thoại thoại VoIP.
2. Đóng góp của luận văn
- Đưa ra phương pháp tiếp cận có tính hệ thống đối với bài toán biến đổi giọng nói trên thiết bị di động, loại bỏ yêu cầu người dùng cuối phải can thiệp sâu vào các thông số vật lý phức tạp của âm học.
- Đề xuất giải pháp khắc phục hạn chế đóng của hệ điều hành di động bằng cách kết hợp thử nghiệm cuộc gọi thời gian thực thông qua tầng API của ứng dụng thoại Internet (Skype).
Hạn chế và hướng nghiên cứu tiếp
-
Hạn chế được ghi nhận:
- Hệ điều hành iOS tại thời điểm nghiên cứu (2012) áp dụng cơ chế bảo mật nghiêm ngặt (Sandbox), không hỗ trợ API để ứng dụng bên thứ ba can thiệp trực tiếp vào luồng tín hiệu của cuộc gọi mạng di động viễn thông (GSM/CDMA). Do đó, tính năng đàm thoại biến đổi giọng trực tiếp chưa thể tích hợp trực tiếp trên trình gọi điện thoại mặc định của iPhone mà phải chạy qua Skype trên máy tính.
- Phương pháp biến đổi tham số (Transformation-based) tuy tối ưu về tốc độ tính toán nhưng chất lượng âm thanh đầu ra ở một số hiệu ứng phức tạp vẫn còn độ méo nhất định so với phương pháp tra cứu tập mẫu lớn (Codebook-based).
-
Hướng nghiên cứu tiếp:
- Nghiên cứu cơ chế can thiệp tầng sâu hoặc đợi các bản cập nhật API mới từ nhà sản xuất để hỗ trợ trực tiếp cuộc gọi di động thông thường.
- Tối ưu hóa thuật toán lọc để nâng cao điểm đánh giá chất lượng MOS cho các môi trường có độ nhiễu cao.
- Mở rộng thêm danh mục các giọng nói đặc thù và các môi trường âm học giả lập phức tạp hơn.
Giá trị tham khảo
Luận văn là tài liệu tham khảo phù hợp cho sinh viên, học viên cao học và kỹ sư phần mềm thuộc các chuyên ngành Công nghệ phần mềm, Công nghệ thông tin và Kỹ thuật truyền thông:
- Phần xử lý tín hiệu (Chương 2 và 3): Hữu ích cho người làm đề tài liên quan đến xử lý âm thanh số, kỹ thuật dịch tần (Pitch Shift) và các luật nén/lấy mẫu tín hiệu tiếng nói.
- Phần lập trình hệ thống (Chương 2 và 4): Cung cấp tài liệu tham khảo thực tế về kiến trúc phân tầng của iOS SDK thời kỳ đầu, quy trình đóng gói ứng dụng bằng Objective-C/Xcode và mô hình giao tiếp liên tiến trình qua tầng thông điệp UTF-8 của Skype API.
Câu hỏi thường gặp
1. Luận văn sử dụng phương pháp xử lý giọng nói nào và tại sao không chọn phương pháp dựa trên tập mẫu (Codebook-based)?
Tác giả chọn phương pháp dựa trên biến đổi (Transformation-based) vì phương pháp này can thiệp trực tiếp vào các tham số tín hiệu đầu vào (Pitch, Amplitude, Window length), cho tốc độ xử lý nhanh và tiêu tốn ít bộ nhớ. Ngược lại, phương pháp dựa trên tập mẫu đòi hỏi không gian lưu trữ cơ sở dữ liệu mẫu rất lớn và thời gian tra cứu/sinh mẫu lâu, không đáp ứng được yêu cầu thời gian thực trên phần cứng di động iPhone thời điểm đó.
2. Ứng dụng trên iPhone hỗ trợ chính xác bao nhiêu loại giọng nói và môi trường âm thanh?
Ứng dụng hỗ trợ biến đổi sang 17 loại giọng nói khác nhau (như nam, nữ, trẻ em tập nói, nhi đồng, phát thanh viên, tiếng vang...) và 6 hiệu ứng môi trường âm học (mưa rơi, đường phố, nơi đông người, tiếng vỗ tay, âm thanh trên biển, còi báo động).
3. Tại sao tác giả phải cài đặt thêm một Plugin cho ứng dụng Skype thay vì tích hợp trực tiếp vào cuộc gọi di động của iPhone?
Do nền tảng iOS của Apple thời điểm năm 2012 có cơ chế bảo mật khép kín, chưa hỗ trợ API cho phép ứng dụng bên thứ ba can thiệp vào cuộc gọi viễn thông gốc của thiết bị. Vì vậy, tác giả sử dụng Skype API trên máy tính để thử nghiệm và chứng minh tính khả thi của việc biến đổi giọng nói trực tiếp trong cuộc đàm thoại.
4. Dải tần số cơ bản của giọng nói người được tác giả xác định trong nghiên cứu là bao nhiêu?
Theo phân tích lý thuyết ở Chương 2, giọng nói người có miền tần số cơ bản nằm trong khoảng từ 80 Hz đến 800 Hz.
5. Cấu trúc dữ liệu đại diện cho một mẫu giọng nói trong thuật toán của luận văn gồm những trường thông tin nào?
Cấu trúc dữ liệu giọng nói (struct Voice) gồm 3 trường số nguyên: amplitude (biên độ âm thanh), pitch (độ cao/tần số âm thanh) và window_length (độ rộng cửa sổ khung phân tích, mặc định xử lý với độ rộng là 11).
Kết luận
Luận văn "Xây dựng ứng dụng biến đổi giọng nói trên nền tảng di động – iPhone" của tác giả Nguyễn Văn Hiển đã giải quyết trọn vẹn bài toán tham số hóa tín hiệu âm thanh để biến đổi 17 dạng giọng nói và 6 môi trường âm học khác nhau. Đề tài đã hiện thực hóa giải pháp lý thuyết thành hai sản phẩm phần mềm thực tế gồm ứng dụng ghi âm/biến đổi trên hệ điều hành iOS và plugin đàm thoại thời gian thực trên nền tảng Skype. Đây là công trình mang tính ứng dụng cao trong lĩnh vực kỹ thuật phần mềm và xử lý tín hiệu số di động giai đoạn 2011–2012.