1.10.1 Giới thiệu về hệ thống tổng hợp tiếng nói
1.10.1.1 Khái niệm
Hệ thống Text-To-Speech (TTS) là một hệ thống chuyển đổi văn bản thô về dạng tiếng nói. Hệ thống TTS điển hình gồm hai phần: phần xử lý văn bản và phần tổng hợp tiếng nói. Nhiệm vụ của phần xử lý văn bản là xử lý văn bản thô đầu vào (có thể là chữ viết tay, chữ tượng hình, hay là một dạng ngôn ngữ nào đó) thành các ngữ âm bao gồm chuỗi các âm vị và một số thông tin ngữ điệu, khoảng thời gian và trọng âm. Phần tổng hợp tiếng nói dựa trên các thông tin về ngữ âm và ngữ điệu đã được đặc tả để tạo ra âm thanh phù hợp nhất.
Chương 3. Cơ sở lý thuyết
Hình 3.13 Hệ thống Text-To-Speech đơn giản
1.10.1.2 Các hướng tiếp cận trong tổng hợp tiếng nói
Hai tính chất quan trọng của chất lượng hệ thống tổng hợp giọng nói là mức độ tự nhiên và mức độ dễ nghe. Mức độ tự nhiên của giọng nói tổng hợp là sự giống nhau giữa giọng tổng hợp và giọng nói tự nhiên của người thật. Mức độ dễ nghe là việc câu phát âm có thể hiểu được dễ dàng. Một máy tổng hợp giọng nói lý tưởng cần vừa tự nhiên vừa dễ hiểu, và mục tiêu xây dựng máy tổng hợp giọng nói là làm gia tăng đến mức tối đa hai tính chất này. Một số hệ thống thiên về mức độ dễ nghe hơn, hoặc mức độ tự nhiên hơn; tùy thuộc vào mục đích mà công nghệ lựa chọn. Có hai công nghệ chính được dùng là tổng hợp bằng phương pháp ghép nối và tổng hợp Formant dựa trên luật, ngoài ra cũng có một số phương pháp khác.
Tổng hợp bằng phương pháp ghép nối: Tổng hợp ghép nối dựa trên việc nối vào nhau các đoạn của một giọng nói đã được ghi âm. Thông thường, tổng hợp ghép nối đòi hỏi bộ nhớ lưu trữ lớn nhưng tạo ra giọng nói tương đối tự nhiên. Tuy nhiên, giọng nói tự nhiên được ghi âm có sự thay đổi từ lần phát âm này sang lần phát âm khác, và công nghệ thực hiện ghép nối
Chương 3. Cơ sở lý thuyết
tự động các đoạn của sóng âm thỉnh thoảng tạo ra những tiếng cọ xát không tự nhiên ở phần ghép nối. Có ba kiểu tổng hợp ghép nối.
Tổng hợp lựa chọn đơn vị: Dùng một cơ sở dữ liệu lớn các giọng nói ghi âm (thông thường dài hơn một giờ đồng hồ ghi âm). Trong quá trình ghi âm, mỗi câu được tách ra thành các đơn vị nhỏ hơn như: các âm tiết, hình vị, từ, cụm từ, câu văn. Thông thường việc phân tách như vậy cần dùng đến bộ phân tích tiếng nói đặt ở chế độ so khớp văn bản viết tương ứng với đoạn ghi âm, và sử dụng đến các đặc trưng song âm và phổ âm thanh. Một bảng tra các đơn vị trong cơ sở dữ liệu âm thanh được tạo ra dựa trên các phân đoạn đã tách và các thông số âm học như tần số cơ bản, độ dài phát âm, vị trí của âm tiết và các âm tiết gần đó. Khi chạy, các câu phát biểu được tạo ra bằng cách xác định chuỗi đơn vị phù hợp nhất từ cơ sở dữ liệu. Quá trình này gọi là quá trình chọn đơn vị, và thường dùng đến cây quyết định để thực hiện.
Tổng hợp âm kép (diphones): Tổng hợp âm kép dùng một cơ sở dữ liệu giọng nói nhỏ chứa tất cả các âm kép (phần chuyển tiếp âm thanh giữa hai từ kế cận nhau) xuất hiện trong ngôn ngữ đang xét. Số lượng âm kép phụ thuôc vào đặc tính nối ghép âm học của từng ngôn ngữ. Ví dụ, tiếng Tây Ban Nha có 800 âm kép, tiếng Đức có 2500. Trong tổng hợp âm kép, mỗi âm kép có một và chỉ một, được chứa trong cơ sở dữ liệu. Khi chạy, ngữ điệu của câu văn đích được chồng lên trên các đơn vị tối thiểu này bằng kỹ thuật xử lý tín hiệu số như PSOLA hay MBROLA.
PSOLA (Pitch Synchronous Overlap Add) là phương pháp tổng hợp dựa trên sự phân tích một tín hiệu thành một chuỗi các tín hiệu thành phần. Khi cộng xếp chồng (overlap-add) các tín hiệu thành phần
Chương 3. Cơ sở lý thuyết
ta có thể khôi phục lại tín hiệu ban đầu.
PSOLA thao tác trực tiếp với tín hiệu dạng sóng, không dùng bất cứ loại mô hình nào nên không làm mất thông tin của tín hiệu. PSOLA cho phép điều khiển độc lập tần số cơ bản, chu kỳ cơ bản và các formant của tín hiệu. Ưu điểm chính của phương pháp PSOLA là giữ nguyên đường bao phổ khi thay đổi tần số cơ bản (pitch shifting). Phương pháp này cho phép biến đổi tín hiệu ngay trên miền thời gian nên chi phí tính toán rất thấp. PSOLA đã được dùng rất phổ biến với tín hiệu tiếng nói.
Các phiên bản của PSOLA:
TD-PSOLA (Time Domain- Pitch Synchronous Overlap Add) là phiên bản miền thời gian của PSOLA (TD-PSOLA). Phương pháp này thao tác với tín hiệu trên miền thời gian nên được sử dụng nhiều vì hiệu quả trong tính toán của nó.
FD-PSOLA (Frequency Domain- Pitch Synchronous Overlap Add) là phương pháp bao gồm các bước giống như TD- PSOLA nhưng thao tác trên miền tần số. Phương pháp này có chi phí tính toán cao hơn TD-PSOLA. Đối với mỗi trường hợp riêng biệt thì mỗi phương pháp sẽ cho hiệu quả khác nhau, nên phải dựa vào từng hoàn cảnh để chọn phương pháp thích hợp.
LP-PSOLA (Linear Prediction–Pitch Synchronous Overlap Add). Phương pháp dự đoán tuyến tính được thiết kế để mã hoá tiếng nói nhưng phương pháp này cũng có thể dùng cho tổng hợp.
Chương 3. Cơ sở lý thuyết
Chất lượng của âm thanh tổng hợp theo cách này thường không cao bằng phương pháp chọn đơn vị nhưng tự nhiên hơn tổng hợp Formant.
Tổng hợp âm kép tạo ra các tiếng cọ xát ở phần ghép nối và đôi khi giọng nói kiểu Robot do các kỹ thuật xử lý tín hiệu số gây ra. Lợi thế của phương pháp này là kích thước cơ sở dữ liệu nhỏ. Các ứng dụng thương mại của phương pháp này đang ít dần, mặc dù nó vẫn tiếp tục được sử dụng trong nghiên cứu và được phân phát tự do.
Tổng hợp chuyên ngành (domain- specific synthesis): Tổng hợp chuyên ngành thực hiện ghép nối các từ và cụm từ đã được ghi âm trước đó để tạo ra câu văn hoàn chỉnh. Nó được dùng trong các ứng dụng có các văn bản chuyên biệt cho một chuyên ngành, sử dụng lượng từ vựng hạn chế, như các thông báo chuyến bay hay dự báo thời tiết.
Kỹ thuật này được thiết kế rất đơn giản, và được sử dụng trong thương mại một thời gian dài, và cũng đã được dùng trong các thiết bị như đồng hồ biết nói, máy tính bỏ túi biết nói. Mức độ tự nhiên của hệ thống này rất cao vì số lượng các câu nói không nhiều và chúng gần như khớp với lời văn và ngữ điệu của giọng nói ghi âm. Tuy nhiên, các hệ thống này bị hạn chế bởi cơ sở dữ liệu chuyên ngành, không phục vụ cho mọi mục đích mà chỉ hoạt động với các câu nói mà chúng đã được lập trình sẵn.
Tổng hợp Formant: Tổng hợp cộng hưởng tần số không sử dụng bất cứ mẫu giọng thật nào khi chạy. Thay vào đó, tín hiệu âm thanh tạo ra dựa trên một mô hình âm thanh. Các thông số như tần số cơ bản, cách phát âm, và mức độ nhiễu được thay đổi theo thời gian để tạo ra dạng sóng âm cho giọng nói nhân tạo. Phương pháp này đôi khi còn gọi là tổng hợp dựa trên luật, mặc
Chương 3. Cơ sở lý thuyết
dù nhiều hệ thống ghép nối mẫu âm thanh cũng có dùng các thành phần dựa trên luật.
Phương pháp tổng hợp Formant (Formant synthesis) yêu cầu phải tổng hợp được tối thiểu 3 formant để hiểu được tiếng nói, và để có được tiếng nói chất lượng cao thì cần tới 5 formant. Tiếng nói được tạo ra từ các bộ tổng hợp Formant với thành phần chính là các bộ cộng hưởng. Tùy theo cách bố trí các bộ cộng hưởng mà ta có bộ tổng hợp Formant là nối tiếp hay song song.
Bộ tổng hợp Formant nối tiếp: bộ tổng hợp Formant nối tiếp là một bộ tổng hợp formant có các tầng nối tiếp, đầu ra của bộ cộng hưởng này là đầu vào của bộ cộng hưởng kia.
Bộ tổng hợp Formant song song: bao gồm các bộ cộng hưởng mắc song song. Đầu ra là kết hợp của tín hiệu nguồn và tất cả các formant. Cấu trúc song song cần nhiều thông tin để điều khiển hơn.
Nhiều hệ thống dựa trên tổng hợp Formant tạo ra giọng nói nhân tạo, như giọng rôbốt, không tự nhiên và phân biệt rõ ràng với giọng người thật. Tuy nhiên độ tự nhiên cao không phải lúc nào cũng là mục đích của hệ thống tổng hợp tiếng nói và hệ thống tổng hợp Formant cũng có các ưu điểm riêng của nó.
Hệ thống này nói khá dễ nghe, ngay cả tốc độ cao, không có tiếng cọ xát do ghép âm tạo ra. Các hệ thống này hoạt động ở tốc độ cao, có thể hướng dẫn người khiếm thị dò dẫm nhanh chóng trên máy tính, bằng cách đọc to những gì hiện ra trên màn hình. Các hệ thống này cũng nhỏ gọn hơn các hệ thống ghép nối âm, vì không phải chứa cơ sở dữ liệu mẫu âm thanh
Chương 3. Cơ sở lý thuyết
lớn. Nó có thể dùng trong các hệ thống nhúng khi bộ nhớ và tốc độ xử lý có hạn. Hệ thống này cũng có khả năng điều khiển mọi khía cạnh của tín hiệu âm thanh đi ra, nên nó có thể cho ra nhiều ngữ điệu và ngữ âm khác nhau, và không chỉ thể hiện được câu phát biểu thông thường hay câu hỏi, mà cả các trạng thái tình cảm thông qua âm điệu của giọng nói.
Tổng hợp mô phỏng cách phát âm (Articulatory): Phương pháp mô phỏng hệ thống phát âm (Articulatory synthesis) cố gắng mô phỏng hệ thống phát âm của con người một cách hoàn hảo nhất, do đó có thể đạt tới chất lượng cao trong tổng hợp tiếng nói. Nhưng cũng chính vì vậy mà phương pháp này khó có thể thực hiện được, vì việc mô phỏng hệ thống phát âm của con người rất khó thực hiện.
Mô hình tổng hợp mô phỏng cách phát âm đã từng chỉ là hệ thống giành cho nghiên cứu khoa học cho mãi đến những năm gần đây. Lý do là rất ít mô hình tạo ra âm thanh chất lượng đủ cao hoặc có thể chạy hiệu quả trên các ứng dụng thương mại. Một ngoại lệ là hệ thống dựa trên NeXT, vốn được phát triển và thương mại hóa bởi Trillium Sound Research Inc, một công ty tách từ đại học Calgary nơi các nghiên cứu ban đầu đã được thực hiện. Hệ thống này được thương mại hóa lần đầu tiên năm 1994, tạo ra một máy tổng hợp giọng nói dựa trên mô phỏng cách phát âm hoàn chỉnh, sử dụng mô hình ống dẫn sóng tương đương với cơ quan phát âm của người.
Tổng hợp dựa trên HMM (Hide Markov Model): Tổng hợp dựa trên HMM – Hidden Markov Model là một phương pháp dựa vào mô hình Markov ẩn. Trong hệ thống này, phổ tần số của giọng nói, tần số cơ bản và độ dài phát âm một từ đều được mô phỏng cùng lúc bởi HMM. Dạng sóng của giọng nói được tạo từ mô hình Markov ẩn dựa trên tiêu chí khả năng cực đại (Maximum Likelihood Criterian).
Chương 3. Cơ sở lý thuyết
Tổng hợp lai (SinWave): Các hệ thống tổng hợp lai kết hợp các yếu tố của tổng hợp Formant với tổng hợp ghép nối để giảm thiểu các tiếng cọ xát khi ghép nối các đoạn âm thanh. Một ví dụ là RecSimCat, phát triển bởi Shakti Singh Parmar có thể tạo ra giọng dễ nghe và tự nhiên.
1.10.1.3 Các ứng dụng của tổng hợp tiếng nói
Khả năng ứng dụng của hệ thống tổng hợp tiếng nói lớn và cho nhiều lĩnh vực như: truyền thông, tự động hóa, giáo dục.
Với truyền thông, hệ thống có thể được áp dụng trong các ứng dụng truy vấn thông tin qua tổng đài điện thoại. Khi đó yêu cầu của người dùng sẽ được hệ thống tiếp nhận và xử lý thành dạng văn bản. Thông tin này sẽ được hệ thống chuyển thành dạng âm thanh và trả về cho người dùng. Các hệ thống này có khả năng ứng dụng cao do quá trình xử lý hoàn toàn tự động, có thể hoạt động liên tục, đáp ứng được nhu cầu về thông tin của người dùng, đặc biệt là các thông tin nóng, cập nhật.
Trong lĩnh vực tự động hóa, hệ thống có thể được tích hợp với hệ thống định vị GPS cho các ứng dụng tìm đường đi, gắn trên xe hơi để cung cấp chỉ dẫn dạng âm thanh, hạn chế việc lái xe phải liên tục theo dõi màn hình GPS.
Công nghệ tổng hợp tiếng nói cũng được sử dụng trong các hệ thống dịch tiếng nói. Ngoài ra, những người khiếm thị có thể sử dụng hệ thống này để cập nhật kiến thức, tin tức thời sự, giúp họ hòa nhập tốt với xã hội.
1.10.1.4 Cách tiếp cận của nhóm
Dựa vào từng mục đích cụ thể của các hệ thống mà ta có thể chọn ra phương pháp tổng hợp tiếng nói phù hợp. Với mục tiêu của đề tài, nhóm đã
Chương 3. Cơ sở lý thuyết
chọn cách tiếp cận tổng hợp bằng phương pháp ghép nối. Cụ thể hơn đó là phương pháp lựa chọn đơn vị (Unit Selection).
Để tạo ra chất lượng âm thanh tốt, ý tưởng đơn giản là lưu trữ số lượng lớn những phân đoạn âm thanh của tiếng nói con người trong cơ sở dữ liệu và trong quá trình tổng hợp, nối tất cả các phân đoạn âm thanh cần thiết lại với nhau mà không có bất cứ sự điều chỉnh nào cho các unit. Càng nhiều phân đoạn được chọn lựa để kết nối, càng tạo ra âm thanh tự nhiên hơn. Với sự phát triển của phần cứng, sử dụng tập dữ liệu âm thanh lớn, việc tổng hợp các đơn vị âm thanh bằng cách kết nối trực tiếp là rất hiệu quả.
1.10.2 Phân tích văn bản
1.10.2.1 Các vấn đề trong phân tích văn bản
Vấn đề tách câu: Nhiều thuật toán của hệ thống Text-To-Speech làm việc với duy nhất một câu tại một thời điểm. Mỗi câu đều độc lập với nhau. Trong khi đó các đơn vị ngôn ngữ nhỏ hơn như “từ, âm tiết” lại bị ảnh hưởng bởi các “từ, âm tiết” phía trước hoặc sau nó trong văn bản. Dữ liệu đầu vào của hệ thống Text-To-Speech không nhất thiết là một câu. Trong nhiều trường hợp chúng ta nhận được một tài liệu có chứa rất nhiều câu. Do đó nhiệm vụ của tách câu là làm thế nào để tách một văn bản thô thành tập các câu.
Câu là một đơn vị ngôn ngữ gồm tập các ký tự được kết thúc bằng dấu “.”, “!”, “?”.
Thuật giải tách câu:
• Bước 0: Tạo danh sách rỗng để chứa tập câu. • Bước 1: Bắt đầu từ ký tự ở đầu câu .
Chương 3. Cơ sở lý thuyết
• Bước 2: Duyệt qua các ký tự kế tiếp trong văn bản để tìm các ký tự “.”, “?”, “!”.
• Bước 3: Xem các ký tự “.”, “?”, “!” vừa tìm được ở bước 2 có phải là các ký tự kết thúc câu đang xét hay không. Nếu có thì qua bước 4, ngược lại quay lại bước 2.
• Bước 4: Đưa câu tìm được vào danh sách đã tạo ở bước 0. Nếu hết văn bản thì kết thúc thuật giải, ngược lại quay lại bước 1.
Yếu tố chính của thuật giải là làm sao biết được các ký tự “.”, “?”, “!” có kết thúc câu hay không. Ví dụ, một dấu chấm câu có thể biểu diễn như là dấu phân cách ngày tháng, số thập phân.
Xét ví dụ: “Tính đến thời điểm hiện tại chỉ số VN-Index là 34.5 điểm.”
Vấn đề tách từ: Từ một văn bản ban đầu ta sẽ dựa vào các khoảng trắng trong văn bản để tách ra thành các chuỗi con nhỏ hơn. Tuy nhiên những chuỗi con này có thể là một từ cũng có thể là nhiều từ gộp lại. Chính vì vậy, sau khi tách văn bản theo khoảng trắng ta còn phải làm một bước nữa để xác định xem chuỗi có phải là một từ hay