CạC PHƯƠNG PHạP, TIấU CHUẨN TỔNG HỢP

Một phần của tài liệu Tài liệu Giải pháp bán tự động dịch vụ 116 docx (Trang 61)

THỐNG TIẾNG VIỆT:

1. Nguyởn Nhĩn Cần Phải Tổng Hợp Tiếng Nụi

Xuất phõt từ những nhu cầu trao đổi thừng tin giữa người sử dụng với mõy tợnh: thay vớ nhập yởu cầu bằng cõc inputbox vỏ mõy tợnh đõp ứng bằng cõch hiển thị cõc message; hoặc cho phờp cả tiếng nụi vỏ giao tiếp dữ liệu diễn ra trong cỳng một cuộc gọi telephone thừng qua sự điều khiển của mõy tợnh. Để thỏa mọn nhu cầu trởn, thừng thường người ta dỳng phương phõp thu ĩm trước (prerecording) nghĩa lỏ ta thu ĩm toỏn bộ cĩu nụi; khi cần đọc cĩu nỏo, ta mở file ĩm thanh tương ứng với cĩu đụ. Cõch lỏm nỏy cụ ưu điểm lỏ đạt độ tự nhiởn cao nhưng cụ 2 nhược điểm lớn lỏ khừng linh hoạt vỏ tốn nhiều dung lượng nhớ để lưu trữ cõc file ĩm thanh.

Để tăng tợnh linh hoạt cho hệ thống tự động vỏ giảm dung lượng lưu trữ ta dỳng kỹ thuật tổng hợp tiếng nụi

2. Cõc Tiởu Chuẩn Cần Thỏa Mọn Khi Tổng Hợp Tiếng Nụi:

Tiếng nụi tổng hợp dỳ sao cũng khừng phải lỏ tiếng nụi thực cho nởn khừng thể giống hoỏn toỏn tiếng nụi tự nhiởn. Tuy nhiởn khi sử dụng kỹ thuật nỏy, cần thỏa một số tiởu chuẩn tối thiểu:

− Đạt độ trung thực tương đối : mọi người cụ thể hiểu được mỏ khừng cần học hỏi hoặc tập trung nghe cao độ. Nếu khừng đạt được điều nỏy thớ tiếng nụi tổng hợp sẽ khừng thể sử dụng được trong thực tế vớ sẽ lỏm người nghe khụ chịu.

− Cụ thể thay thế con người để phục vụ trong cõc hệ thống điện thoại, hệ thống dịch vụ cừng cộng, robot .

− Khối lượng lưu trữ khừng qũ lớn để tiện sử dụng vỏ cụ thể phổ biến nhiều nơi

3. Cõc Phương Phõp Tổng Hợp ằm Cho Tiếng Việt .

Cụ 2 hướng tổng hợp tiếng nụi chợnh lỏ tổng hợp dựa vỏo việc phĩn tợch tần số vỏ tổng hợp dựa vỏo việc ghờp ĩm.

Đối với hướng phĩn tợch tần số, ta phĩn tợch cõc đặc trưng tiếng nụi để tớm ra tần số, pha. Khi tổng hợp sẽ tõi tạo tiếng nụi từ cõc đặc tợnh nỏy. Hướng nỏy rất phức tạp vỏ chất lượng ĩm cún kờm. Trong khi đụ, hướng tổng hợp dựa vỏo việc ghờp ĩm dễ dỏng được hiện thực trởn mõy tợnh hơn.

3.1. Ghờp từng từ đơn:

Tợnh chất tiếng Việt lỏ ĩm của từ đầu khừng ảnh hưởng ĩm cõc từ sau. Do đụ ta cụ thể ghờp cõc từ thỏnh một cĩu.

Phương phõp nỏy đạt độ tự nhiởn cao nhất vỏ cõch hiện thực đơn giản nhất.

Tiếng Việt phổ thừng cụ khoảng 6000 từ. Nếu ta thu với tần số lấy mẫu 8KHz, 8 bit/mẫu, mono, nờn PCM. Mỗi từ thu trong 0.8 giĩy (tốc độ đọc chậm nhất) thớ khối lượng ĩm thanh cần lưu trữ lỏ:

6000 * 8000 * 1 * (1/2) * 0.8 = 19,200,000 bytes .

Khối lượng dữ liệu của phương phõp nỏy lỏ khõ lớn. Mặt khõc ta khừng thể thu ĩm hết đủ cõc từ đọ cụ trong tiếng Việt vớ tiếng Việt cụ rất nhiều từ vay mượn từ cõc thứ tiếng khõc.

Nhận xờt:

− Với phương phõp nỏy, khối lượng lưu trữ ĩm dỳng cho ứng dụng khõ lớn(khoảng 2000 từ) so với phương phõp ghờp ĩm loại một. Nhưng với dung lượng đĩa cứng ngỏy nay thớ vấn đề lưu trữ khừng lỏ vấn đề đõng lo ngại.

− Mức độ ảnh hưởng của từ đi trước với từ đi sau lỏ khừng đõng kể vỏ cụ thể chấp nhận được.

3.2. Ghờp ĩm theo cõc ĩm tiết cơ bản nhất:

Vợ dụ: "bằng" được ghờp từ [b]+[ằ]+[ng]

Phương phõp nỏy cụ khối lượng lưu trữ nhỏ nhất vớ chỉ cụ 28 phụ ĩm vỏ 68 nguyởn ĩm cỳng cõc biến thể thanh. Khối lượng lưu trữ:

(16+68) * 8000 * 1 * (1/2) *0.8 = 268,800 bytes Tuy nhiởn, phương phõp nỏy rất khụ hiện thực vớ:

Khi phụ ĩm cụ vai trú lỏm phụ ĩm cuối, chỷng được phõt ĩm khõc với khi chỷng lỏm phụ ĩm đầu. Phụ ĩm đầu mở ra để kết hợp với nguyởn ĩm, phụ ĩm cuối khờp lại khừng kết hợp với nguyởn ĩm nữa.

Cần chỷ ý khi phõt ĩm nguyởn ĩm trong trường hợp ĩm cuối lỏ loại tắc (vừ thanh) vợ dụ như p, t, c.Khi nỏy thanh điệu khừng thể hiện trởn phụ ĩm cuối mỏ thể hiện ở giai đoạn chuyển tiếp từ nguyởn ĩm sang ĩm cuối.

Do đụ chất lượng ĩm của phương phõp nỏy cũng cún hạn chế.

3.3. Ghờp ĩm từ hai ĩm loại 1:

Vợ du: "bằng" được ghờp từ [b] + [ ằng] .

Một từ được tõch ra lỏm hai phần lỏ phụ ĩm đầu vỏ vần. điều nỏy căn cứ trởn đặc điểm tiếng Việt lỏ phụ ĩm đầu ợt phụ thuộc vỏo phần vần vỏ thanh điệu. Trong phụ ĩm đầu được cắt rất ngắn chỉ cún lại ĩm bật (thừng thường vỏo khoảng 0.15 giĩy). Phần vần cũng được cắt bỏ ở phần đầu một lượng tưng ứng. (adsbygoogle = window.adsbygoogle || []).push({});

Phương phõp nỏy cho chất lượng ĩm thanh tương đương so với phương phõp ghờp từ đơn. Theo phương phõp nỏy ta tõch được 28 phụ ĩm đầu vỏ 650 phần vần. Với cõch thu ĩm như trước thớ khối lượng lưu trữ sẽ lỏ:

650 * 8000 * 1 * (1/2) * (0.8 - 0.15) + 28 * 8000 * 1 * (1/2) * 0.15 = 1,706,800 ~ 1.7 Mbytes

HèNH Mễ TẢ CạCH GHẫP HAI ằM THáNH TỪ

Để dỳng phương phõp ghờp hai từ ĩm loại 1 ta cụ bảng thống kở cõc phần vần như sau:

BẢNG THỐNG Kấ VẦN TIẾNG VIỆT a õ ỏ ạ ả ọ e ờ ộ ẽ ẻ ẽ ở ế ề ệ ể ễ I ợ ớ ị ỉ Ĩ o ụ ú ọ ỏ ử ừ ố ồ ộ ổ ỗ ơ ớ ờ ợ ở ỡ u ỷ ỳ ụ ủ ũ ư ứ ừ ự ử ữ y ỳ ỳ ỵ ỷ ỹ

õc ạc ai ỏi õi ải

ọi ại am õm ỏm ảm

ọm ạm an õn ỏn ản

ọn ạn ao õo ỏo ảo

ọo ạo õp ạp õt ạt

au õu ỏu ay õy ỏy

ảy ọy ắc ặc ăm ắm

ằm ẳm ẵm ặm ăn ắn

ằn ẳn ắp ặp ắt ặt

ấc ậc ĩm ấm ầm ẩm

ẫm ậm ĩn ấn ần ẩn

ẫn ận ấp ập ất ật

ĩu ấu ầu ẩu ẫu ậu

ĩy ấy ầy ẩy ẫy ậy

ờc em ờm ộm ẻm ẽm

ẹm en ờn ộn ẻn ẽn

ẹn eo ờo ộo ẻo ẽo

ẹo ờp ẹp ờt ẹt ởm

ếm ệm ễm ởn ến ển

ếp ệp ết ệt ởu ếu

ều ểu ệu ia ợa ớa

ỉa ĩa ịa im ợm ớm

ỉm ịm in ợn ớn ỉn

ịn ip ợp ịp ợt ịt

iu ợu ớu ỉu ĩu oa (adsbygoogle = window.adsbygoogle || []).push({});

ụa úa ỏa ửa ọa oe

ụe úe ỏe oi ụi úi

ỏi ửi ọi om ụm úm

ỏm ửm ọm on ụn ún

ỏn ửn ọn ụp ọp ụt

ọt ốc ộc ừi ối ồi

ội ổi ỗi ục ọc ừm

ốm ồm ổm ỗm ộm ừn

ốn ồn ổn ỗn ộn ốp

ộp ốt ột ơi ới ời

ởi ỡi ợi ơm ớm ờm

ởm ỡm ợm ơn ớn ờn

ởn ỡn ợn ớp ợp ớt

ợt ua ỷa ỳa ủa ũa

ụa ỷc ục uế uề uể

uễ uệ ui ỷi ỳi ủi

ũi ụi um ỷm ỳm ủm

ũm ụm un ỷn ỳn ủn

ũn ụn ỷp ụp ỷt ụt

uy ỷy ỳy ủy ũy ụy

ưa ứa ừa ửa ữa ựa

ức ực ừm ứt ựt ưu

ừu ứu ựu ửu ữu ýt

ỵt õch ạch ang õng ỏng ảng ọng ạng anh õnh ỏnh ảnh ọnh ạnh ăng ắng ằng ẳng ẵng ặng ĩng ấng ầng ẩng ẫng ậng eng ờng ộng ẻng ẽng ẹng ếch ệch ởnh ếnh ềnh ểnh ễnh ợch ịch

iếc iệc iểm iễm iệm iếm

iềm iởn iến iền iển iễn

iện iếp iệp iết iệt iởu

iếu iều iểu iễu iệu inh

ợnh ớnh ỉnh ĩnh ịnh õc

oạc oai õi oại oỏi oải (adsbygoogle = window.adsbygoogle || []).push({});

oọi oỏm oạm oan õn oỏn

oạn oản oọn õp õt oạt

oay õy oạy oảy oắc oặc

oăm oắm oằm oặm oăn oắn

oằn oẳn oẵn oắt oặt oen

oộn oẻn oeo oộo oờt oẹt

ong ụng úng ỏng ửng ọng

oục ừng ống ồng ổng ỗng

ộng uĩn uấn uần uẩn uẫn

uận uất uật uĩy uấy uầy

uậy uẩy ung ỷng ỳng ủng

ũng ụng uốc uộc uừi uội

uối uồi uổi uỗi uừm uốm

uồm uổm uỗm uộm uừn uốn

uồn uổn uỗn uộn uốt uột

uya uyn uýp uỵp uýt uỵt

uỷu uỵu ưng ừng ứng ựng

ửng ững ước ược ươi ưới

ưởi ượi ưỡi ươm ướm ườm

ượm ươn ướn ườn ưởn ưỡn

ượn ướp ượp ướt ượt ươu

ướu ưộu yếm yểm yởn yến

iởng iếng iềng iểng iễng iệng

oang õng oỏng oảng oọng oanh

õnh oỏnh oảnh oọnh oạnh oăng

oắng oẳng oẵng oong oụng oúng

uĩng uếch uệch uởnh uềnh uừng

uống uồng uổng uỗng uộng uých

uỵch uyởn uyến uyền uyển uyễn

uyện uyết uyệt uynh uýnh uỳnh (adsbygoogle = window.adsbygoogle || []).push({});

ương ướng ường ưởng ưỡng ượng

yởng yểng

Nhận xờt:

Một từ tiếng việt bao gồm 2 phần: phần ĩm đầu vỏ phần vần. ằm đầu chủ yếu lỏ cõc phụ ĩm trong tiếng việt. Qua nghiởn cứu vỏ tớm hiểu thởm, chỷng em thấy rằng:

- ứng với một loại ĩm đầu ( ở đĩy chủ yếu lỏ phụ ĩm ) phần vần ở phợa sau sẽ thay đổi theo một quy luật nỏo đụ so với phần vần chuẩn khi chưa cụ ĩm đầu tuỳ theo cõch phõt ĩm của phụ ĩm. Chẳng hạn :

/t/ /am/ t

/ch/ /am/ ch

nếu đem /ch/ rõp với /am/ t thớ tiếng phõt ra sẽ khừng trung thực tức lỏ khi xĩy dựng mừ hớnh ĩm thanh phần vần độc lập với so với ĩm đầu sẽ khừng tận dụng được hết tợnh phĩn biệt giữa cõc từ do sự biến đổi phổ tợn hiệu phần vần so với tõc động của cõc ĩm đầu khõc nhau.

Để tớm ra quy luật biến đổi phổ tợn hiệu nỏy đúi hỏi ta phải cụ mõy phĩn tợch phổ vỏ đi vỏo lĩnh vực xử lý tiếng nụi, ta mới cụ thể quan sõt vỏ phĩn tợch mẫu sụng ĩm tại từng thời điểm

nhằm tớm ra quy luật. Tuy nhiởn, với phạm vi của đề tỏi, việc nghiởn cứu nỏy lỏ chưa cần thiết.

3.4. Ghờp ĩm từ hai ĩm loại 2:

Vợ dụ "bằng" được ghờp từ [bỏ]+[ằng]

Phương phõp nỏy gần giống phương phõp trởn nhưng phần phụ ĩm đầu được cắt lấn sang phần vần. Theo đụ, ta sẽ cụ 28*650 phần phụ ĩm đầu tương ứng với 650 phần vần. Trong thực tế, ta cụ khoảng 1400 phần đầu. Như vậy khối lượng lưu trữ tổng cộng sẽ lỏ:

(1400+650)* 8000 *1 * (1/2) * 0.8 = 6,560,000 bytes Phương phõp nỏy mắc phải một số khuyết điểm:

− Vị trợ cắt lấn sang phần vần khụ xõc định vớ đĩy lỏ vỳng trộn lẫn giữa hai ĩm.

− Tuy khối lượng lưu trữ lỏ nhỏ so với ghờp từ (3 lần) nhưng lớn hơn nhiều so với ghờp ĩm loại 1 (4 lần).

Khi dỳng phương phõp ghờp ĩm thớ việc chuẩn bị cõc ĩm mất thời gian rất lớn. Việc chuẩn bị ĩm được thực hiện thủ cừng do khừng thể xõc định chợnh xõc vị trợ cần cắt. Do đụ nếu phương phõp nỏy cụ số lượng ĩm lớn gấp 4 lần thớ thời gian vỏ chi phợ bỏ ra cũng lớn gấp 4 lần so với phương phõp ghờp ĩm loại một.

Ngoỏi ra chất lượng ĩm của phương phõp nỏy cũng chưa được kiểm nghiệm để cụ thể đõnh giõ ưu điểm về chất lượng so với phương phõp loại 1.

IV. Sơ lược về cõc dạng file ĩm thanh dỳng trong Card Dialogic

Card Dialogic chơi được hai loại file ĩm thanh : file wav vỏ file vox. Theo như tớm hiểu qua tỏi liệu cung cấp theo card, card Dialogic chơi file vox tốt hơn file wav, nhưng nhỏ cung cấp khừng cung cấp tỏi liệu về file vox nởn chỷng em dỳng file wav thay thế. Do đụ chỷng em phải cụ những tớm hiểu sơ lược về file wav.

Tớm hiểu sơ lược về file wave:

1. Cấu Trỷc Wave File:

RIFF file.

Wave File lỏ tập tin chứa cõc dữ liệu của mẫu ĩm thanh đọ được số hõ. Phương phõp số hõ ĩm thanh hiện nay lỏ phương phõp PCM. Phương phõp nỏy sẽ lấy mẫu ĩm thanh với tần số khoảng 11.025 kHz cho đến 44.1 kHz. Mỗi lần lấy mẫu , số liệu nỏy lại được lượng tử hõ bằng 1 hoặc 2 byte cho một mẫu ĩm thanh . Như vậy tần số lấy mẫu cỏng cao, số byte dỳng lượng tử hụa cỏng nhiều thớ ĩm thanh phõt lại cỏng trung thực, nhưng lại tăng số byte cần lưu trữ. Với một mẫu ĩm thanh phõt ra trong 1 phỷt cần phải lưu trữ ợt nhất 660 kB. Đụ lỏ lý do tại sao cõc Wave File luừn cụ kợch thước khõ lớn so với MIDI File.

Cấu trỷc của Wave File thuộc vỏo lớp file được sử dụng bỡi cõc hỏm Multimedia của Windows : đụ lỏ RIFF file. RIFF lỏ chữ viết tắt của Resource Interchange File Format ( Dạng file trao đổi tỏi nguyởn). Một RIFF file gồm một hoặc nhiều loại chunks, trong mỗi

chunk lại chứa con trỏ để chỉ đến chunk kế tiếp. Mỗi chunk bao gồm loại chunk vỏdữ liệu theo sau loại chunk đụ. Một ứng dụng muốn đọc RIFF file cụ thể đi qua lần lượt từng chunk, đọc dữ liệu ở những chunk nụ quan tĩm vỏ cụ thể bỏ qua cõc chunk mỏ nụ khừng quan tĩm. Một chunk của RIFF file luừn bắt đầu bởi một header cụ cấu trỷc như sau:

Typedef struct {

FOURCC ckID; DWORD ckSize; } CK;

Trường FOURCC cụ 4 bytes chỉ ra loại chunk. Đối với Wave File, trường nỏy cụ giõ trị lỏ "WAVE". Nếu loại chunk ợt hơn 4 ký tự thớ cõc ký tự cún lại bởn phải sẽ được đệm thởm vỏo cõc khoảng trắng. Cần chỷ ý lỏ cõc ký tự trong FOURCC cụ phĩn biệt chữ hoa vỏ chữ thuờng.

Trường ckSize chứa kợch thước vỳng dữ liệu của chunk, vỳng dữ liệu nỏy nằm ngay sau header vỏ cụ kợch thước lỏ ckSize bytes. (adsbygoogle = window.adsbygoogle || []).push({});

Chunk cụ thể chứa cõc subchunks. Subchunk cũng lỏ một chunk. Một RIFF file luừn bắt đầu bằng một chunk loại "RIFF"

Cấu trỷc Wave file

Wave file bắt đầu lỏ chunk loại "RIFF"

Hai subchunk trong Wave chunk đặc tả thừng tin về ĩm thanh của wave file vỏ tiếp đụ lỏ dữ liệu của từng subchunk. Đụ lỏ subchunk "fmt " vỏ subchunk "data".

+ Subchunk "fmt"

Dữ liệu của "fmt " chunk lỏ đối tượng WAVEFORMAT cụ cấu trỷc như sau:

Typedef struct waveformat_tag { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; } WAVEFORMAT;

wFormatTag thường cụ giõ trị lỏ WAVE_FORMAT_PCM được định nghĩa trong tập tin MMSYSTEM.H như sau:

#define WAVE_FORMAT_PCM 1

Giõ trị nỏy bõo cho phần mềm đang đọc Wave File biết kiểu mọ hụa dữ liệu ĩm thanh sang dữ liệu số lỏ kiểu mọ hụa PCM. Hiện nay đĩy lỏ kiểu mọ hụa duy nhất của Wave File.

nChannels cụ hai giõ trị: bằng 1 cho ĩm thanh mono vỏ bằng 2 cho ĩm thanh sterờo.

nSamplesPerSec cho biết tốc độ lấy mẫu. Giõ trị thừng thường của trường nỏy lỏ:

 11025 -- 11.025 kHz •

 22050 -- 22.05 kHz •

 44100 -- 44.1 kHz

nAvgBytesPerSec cho biết số byte trung bớnh yởu cầu trong 1 giĩy để phõt lại mẫu dữ liệu của sụng ĩm.

nBlockAlign cho biết số byte dỳng để chứa một mẫu ĩm thanh. Như vậy, mẫu 8 bit hoặc ợt hơn sẽ yởu cầu 1 byte, mẫu 9 đến 16 bit sẽ yởu cầu 2 bytes. Nếu ĩm thanh lỏ sterờo thớ yởu cầu gấp 2 lần số byte dỳng trong ĩm thanh mono.

Ta thấy trong WAVEFORMAT chưa cụ thừng tin về số bit dỳng để lượng tử hụa một mẫu dữ liệu của sụng ĩm. Thực tế, Wave File sẽ xõc lập số bit dỳng cho một mẫu dữ liệu bằng một trường gắn vỏo cuối cấu trỷc của WAVEFORMAT. Cấu trỷc đụ cụ thể được định nghĩa như sau:

typedef struc pcmwaveformat_tag {

WAVEFORMAT wf; WORD wBitsPerSample; } PCMWAVEFORMAT;

wBitsPerSample cho biết số bit trong một mẫu dữ liệu. Chỷ ý rằng cõc mẫu dữ liệu vẫn phải lưu trữ ở dạng byte hoặc word. Do đụ, nếu một Wave File dỳng 12 bit để lượng tử hụa một mẫu sụng ĩm thớ sẽ phải lưu trữ cả 4 bit thừa khừng dỳng đến.

+ Subchunk "data"

Dữ liệu của "data" subchunk của Wave File chứa cõc số liệu của ĩm thanh đọ được số hụa. Đối với mẫu ĩm thanh 8 bit, dữ liệu của "data" subchunk bao gồm cõc giõ trị 1 byte (cụ giõ trị từ 0 – 255) của cõc mẫu ĩm thanh. Đối với mẫu ĩm thanh 16 bits, mỗi mẫu dữ liệu gồm 2 bytes (cụ giõ trị từ -32768 tới 32767). Điều nỏy khừng cụ nghĩa lỏ file wave 16

Một phần của tài liệu Tài liệu Giải pháp bán tự động dịch vụ 116 docx (Trang 61)