Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
68,02 KB
Nội dung
SƠLƯỢCVỀTIẾNGNÓIVÀ CÁC PHƯƠNGPHÁPTỔNGHỢP TIẾNG NÓI I. Sơlượcvềtiếngnói : I.1. Đặc t ính c hung c ủa t iếng n ói : Tiếngnói là công cụ diễn đạt thông tin rất uyển chuyển và đặc biệt. Khi chúng ta phát ra một tiếng thì có rất nhiều bộ phận như lưỡi, thanh môn, môi, họng, thanh quản…kết hợp với nhau để tạo thành âm thanh. Âm thanh này lan truyền trong không khí để đến tai người nhận; chính vì sự kết hợp của rất nhiều bộ phận để tạo ra âm thanh này nên âm thanh được phát ra ở mỗi lần hầu như là khác nhau. Vì vậy việc phân chia tiếngnói thành những loại có đặc tính riêng là rất khó. Ở đây người ta tạm chia thành ba loại: • Voiced sound : Khi chúng ta nói chữ "a" hay chữ "o" thanh môn của ta rung và giãn ra, áp suất không khí ban đầu lớn và từ từ giảm xuống, lúc này âm phát ra có dạng sóng wave đặc trưng như hình vẽ. • Unvoiced sound : Là âm khi ta phát ra một tiếng mà thanh môn không rung. Có hai loại cơ bản: phụ âm sát (fricative) và âm bật hơi (aspirate). Đối với phụ âm sát (khi phát âm vần "s"), điểm co thắt được tạo ra tại vài điểm trên bộ máy phát âm, và không khí được đẩy qua nó. Vì điểm co thắt có khuynh hướng xảy ra gần miệng, tiếng dội của bộ máy phát âm có ảnh hưởng nhỏ trong việc tạo nên phụ âm sát. Đối với âm bật hơi (khi phát âm vần "h") sự dao động không khí xảy ra tại thanh môn bởi vì dây thanh âm được giữ lại một phần. Trong trường hợp này, tiếng dội của bộ máy phát âm điều chỉnh phổ của tiếng ồn. Điều này được thấy rõ nhất khi chúng ta nghe những âm thanh nhỏ, xì xào. • Plosive sound : Trong trường hợp này, bộ máy phát âm được đóng kín, áp suất không khí bị nén và được giải thoát thình lình. Sự giải thoát nhanh chóng áp suất này tạo nên một sự kích thích ngắn cho bộ máy phát âm. Sự kích thích ngắn này có thể xảy ra với sự có rung / không rung của dây thanh môn để tạo nên âm thanh voice/unvoice plosive I.2. Công nghệ Text–to–speech dùng để tổnghợptiếngnói : Text-to-speech là một kỹ thuật dùng để chuyển dạng văn bản (text) sang tiếngnói (speech) . Text–to–speech được phân loại dựa vào phươngpháp chuyển văn bản sang tiếngnói : Concatenated word : Với phươngpháp này, những từ và ngữ phải được thu âm trước. Khi nhận được một chuỗi cần đọc, máy sẽ tách ra thành từng từ một. Sau đó, máy sẽ tìm các từ đã được thu âm tương ứng và ghép lại với nhau , tạo ra một chuỗi tiếngnói liên tục Tổnghợp : Phươngpháp này phức tạp hơn nhiều vì sẽ tổnghợp tạo âm giống như những gì được tạo bởi giọng nói của con người phát ra. Phươngpháp này cần cung cấp nhiều bộ lọc mô phỏng chiều dài, cổ họng, khoang miệng, hình dạng môi và vị trí lưỡi. Tuy nhiên tiếngnói được tạo bởi kỹ thuật tổnghợp này thường ít giống giọng con người , nhưng có thể đạt được những chất lượng khác nhau của giọng bằng cách thay đổi một vài thông số. Hai âm tố (Diphone Concatenation) : Phươngpháp này nối những đoạn ngắn âm thanh được số hóa lại với nhau và tạo ra âm thanh liên tục. Mỗi diphone bao gồm hai âm vị (phonemes), một âm vị bắt đầu âm ,âm vị còn lại kết thúc âm. Ví dụ từ "hello" bao gồm những âm vị sau: " h eh l oe" .Những diphone tương ứng là "silence - h h -eh eh -l l-oe oe-silence” . Diphone được tạo bằng cách thu giọng người và xác định một cách cẩn thận tỉ mỉ vị trí bắt đầu và kết thúc của những âm vị. Mặc dù kỹ thuật này có thể tạo âm giống thật, phải tốn công sức để làm việc này và giọng không cố định bởi những âm vị chỉ đặc trưng bởi ngôn ngữ của người phát âm. I.3. Sự cần thiết của công nghệ Text–to–speech (TTS) : Một ứng dụng sử dụng TTS khi nó cần chuyển dạng văn bản mang tính chất động sang dạng tiếng nói. Đó là những văn bản có thể thay đổi thường xuyên, không cố định. Nếu chúng ta sử dụng phươngpháp ghi âm cho toàn văn bản thì trước hết là không gian lưu trữ sẽ cần rất lớn nếu như văn bản đó dài hoặc có nhiều văn bản khác nhau. Và sau đó nếu ta thay đổi văn bản khác thì sẽ phải tiến hành ghi âm lại. Nói tóm lại TTS có một số lợi ích và ứng dụng như sau : - Đọc văn bản động : TTS hữu dụng cho những văn bản thay đổi thường xuyên. Ví dụ : sau khi nhận được e-mail, ta có thể yêu cầu máy tự đọc cho mình nghe. - Kiểm tra văn bản : Với một văn bản chi chít chữ, ta có thể yêu cầu máy đọc để phát hiện những từ gõ sai - Tiết kiệm không gian lưu trữ - Thông báo bằng giọng nói thay cho chuỗi thông báo trên màn hình - Ứng dụng truyền thông : TTS được ứng dụng trong hộp thư thoại, hệ thống trả lời tự động II. Các phươngpháptổnghợp tiếng nói trong hệ thống tiếng Việt : II.1.Sự cần thiết của việc tổnghợptiếngnói : Khi cần thông báo cho người sử dụng bằng tiếngnói thì những chuỗi tiếngnói này phải được thu âm trước. Cách đơn giản nhất là mỗi câu nói ta thu âm lại thành một file. Khi cần đọc câu nào thì ta mở file âm thanh tương ứng với câu đó. Cách làm này có ưu điểm là trung thực và đạt độ tự nhiên cao nhưng có hai nhược điểm rất 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. Nhằm tăng tính linh hoạt cho hệ thống tự động và giảm dung lượng lưu trữ , ta phải dùng kỹ thuật tổnghợptiếng nói. II.2.Các tiêu chuẩn cần thỏa mãn khi tổnghợptiếngnói : Tiếngnóitổnghợp dù sao cũng không phải là tiếngnói thực cho nên không thể giống hoàn toàn tiếngnói tự nhiên. Tuy nhiên khi sử dụng kỹ thuật này, cần thỏa 2 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ếngnóitổnghợp sẽ không thể sử dụng được trong thực tế vì sẽ làm người nghe khó chịu. - Khối lượng lưu trữ không quá lớn để tiện sử dụng và có thể phổ biến nhiều nơi II.3.Các phươngpháptổnghợp tiếng nói cho tiếng Việt : Có 2 hướng tổnghợptiếngnói chính là tổnghợp dựa vào việc phân tích tần sốvàtổnghợ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ếngnói để tìm ra tần số, pha. Khi tổnghợp sẽ tái tạo tiếngnói từ các đặc tính này. Theo nghiên cứu của các chuyên gia thì 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ổnghợ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. 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. Tiếng Việt phổ thông có khoảng hơn 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 thì khối lượng âm thanh cần lưu trữ là: 6000 * 8000 * 1 * 1 * 0.8 = 38,400,000 byte Nhận xét : - Phươngpháp này đạt độ tự nhiên cao nhất và cách hiện thực đơn giản nhất. - 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. - Không thể thu âm đầy đủ các từ 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, và có từ không có trong từ điển tiếng Việt nhưng vẫn có thể phát âm ra được. - Khối lượng dữ liệu của phươngpháp này là khá lớn so với cácphươngpháp khác. Tuy nhiên, với dung lượng đĩa cứng ngày nay thì vấn đề dung lượng như thế không phải là vấn đề đáng lo ngại. 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ươngphá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ữ: (28+68) * 8000 * 1 * 1 * 0.8 = 614,400 byte Nhận xét : - Khối lượng lưu trữ rất nhỏ - 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. - Chất lượng âm của phươngpháp này rất thấp. Ghép âm từ hai âm (loại 1): Ví dụ : "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. Phần vần cũng được cắt bỏ ở phần đầu một lượng tưng ứng. Phươngpháp này cho chất lượng âm thanh tương đương so với phươngpháp ghép từ đơn. Theo phươngphá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 * (0.8 - 0.15) + 28 * 8000 * 1 * 1 * 0.15 = 3,143,600 byte Âm của phụ âm “tr” Âm của vần “inh” Vần “inh” sau khi được xén bớt phần thừa Âm “tr” sau khi được xén bớt phần thừa Âm của từ “trinh” HÌNH MÔ TẢ CÁCH GHÉP HAI ÂM THÀNH TỪ 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. Ứ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. Ghép âm từ hai âm (loại 2): Ví dụ "bằng" được ghép từ [bà]+[ằng] Phươngpháp này gần giống phươngphá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 = 18,200 phần phụ âm đầu tương ứng với 650 phần vần. Trong thực tế, chỉ cần 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 * 0.8 = 13,120,000 byte Nhận xét : - Vị trí cắt lấn sang phần vần nê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ừ (2.5 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ươngphá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ươngphá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ươngpháp ghép âm loại một. - Ngoài ra chất lượng âm của phươngphá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ươngpháp loại 1. III.Giới thiệu về file Wave (*.wav) : III.1. Khái niệm về file Wave và file RIFF : File Wave là một dạng file theo chuẩn của Microsoft cho phép lưu trữ dữ liệu sóng âm được số hóa. Nó hỗ trợ rất đa dạng các thông số của âm thanh như số bit lượng tử hóa, tốc độ lấy mẫu, số kênh. Dạng file này rất phổ biến trên các thế hệ máy tính IBM và được sử dụng rộng rãi trong các chương trình chuyên nghiệp để xử lý các sóng âm được số hóa. File Wave là một trong sốcác file thuộc chuẩn của file RIFF (Resource Interchange File Format - Dạng file trao đổi tài nguyên). File RIFF sử dụng phươngpháp lưu trữ dữ liệu trong các chunk. Mỗi chunk sẽ gồm 3 trường : • Tên nhận dạng của chunk (ID) : gồm 4 byte kiểu Char • Kích thước của chunk (Size) : Kiểu DoubleWord. Giá trị này không bao gồm 4 byte của ID và 4 byte của Size • Dữ liệu của chunk đó (Data) Đặc biệt, chunk RIFF có thể chứa các chunk khác trong trường dữ liệu. Các chunk này được gọi là subchunk và chunk RIFF lúc này được gọi là parent chunk. Một file RIFF luôn bắt đầu bằng một chunk RIFF. Kích thước của chunk RIFF là kích tổngsố byte mà trường dữ liệu của nó chiếm, nói cách khác chính là kích thước của file RIFF - 8 . Tất cả các chunk khác trong file RIFF đều là subchunk của chunk RIFF. Chunk RIFF có thêm một trường bổ sung nằm ở 4 byte đầu tiên trong trường dữ liệu của nó. Trường bổ sung này được gọi là kiểu định dạng (form type) , gồm 4 byte kiểu Char. Nó cho biết dạng dữ liệu được lưu trữ bên trong file RIFF là gì. Ví dụ, đối với các file Wave trường này sẽ có tên là “WAVE” , đối với các file Avi trường này sẽ có tên là “AVI ” Trường dữ liệu (Data) của chunk RIFF Hình sau minh họa 2 subchunk trong chunk RIFF của file RIFF : III.2. Cấu trúc file Wave : Một file wave là một tập hợpcác loại chunk khác nhau. Vì file Wave chính là file RIFF nên chunk đầu tiên sẽ là chunk RIFF. Ngoài ra, có 2 chunk rất quan trọng không thể thiếu là chunk Format mô tả các thông số của sóng âm như tốc độ lấy mẫu, số bit lượng tử hóa, vv . Chunk thứ hai là chunk Data để chứa dữ liệu âm thanh đã được số hóa. Các chunk khác tùy trường hợp có thể có, có thể không. III.2.1. Chunk Format : Cấu trúc của chunk Format được định nghĩa như sau : Trước hết chunk Format luôn có tên nhận dạng là “fmt ”. Kích thước của chunk Format có thể thay đổi tùy theo giá trị của wFormatTag. Giá trị này cho biết chuẩn nén âm thanh. Có hơn 50 chuẩn của Microsoft vàcác hãng khác được định nghĩa trong file mmreg.h . Thông thường chuẩn PCM (Pulse Code Modulation) của Microsoft là chuẩn phổ biến nhất. Với chuẩn này, các mẫu âm thanh được lưu trữ sẽ không được nén và có giá trị được định nghĩa là 1. wChannels là số kênh âm thanh. Giá trị 1 cho âm thanh mono, 2 cho âm thanh stereo, 4 cho âm thanh 4 kênh, vv . dwSamplesPerSec là tốc độ lấy mẫu, nghĩa là số mẫu được phát trong một giây, đơn vị là Hertz . Có 3 giá trị thông dụng là : 11025, 22050 và 44100 Hz mặc dù các tốc độ khác vẫn được dùng. typedef struct { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wBitsPerSample; WORD cbSize; dwAvgBytesPerSec sẽ chỉ ra có bao nhiêu byte được phát mỗi giây. Nếu là chuẩn PCM thì giá trị này chính là dwSamplesPerSec * wBlockAlign . Ngược lại, giá trị này phải được tính toán phù hợp với chuẩn tương ứng. wBlockAlign là kích thước của một khung mẫu âm thanh, tính theo byte. Ví dụ một khung mẫu âm thanh 16-bit mono là 2 byte, 16-bit stereo là 4 byte. Nếu chuẩn là PCM thì giá trị này bằng wChannels * (wBitsPerSample / 8) wBitsPerSample cho biết số bit dùng để lượng tử hóa mỗi điểm lấy mẫu. Nếu chuẩn là PCM thì giá trị này là 8 hoặc 16. Vì các mẫu phải được lưu dạng BYTE hoặc WORD nên khi lưu trữ vẫn phải lưu hẳn 1 BYTE hoặc 1 WORD. Ví dụ số bit lượng tử hóa là 12 thì sẽ có 4 bit thừa không dùng tới. cbSize là kích thước của những thông tin mở rộng thêm được thêm vào cuối cấu trúc WAVEFORMATEX. Thông tin này được dùng khi chuẩn khác PCM. Với chuẩn PCM thì giá trị này bẳng 0 III.2.2. Chunk Data : Sau chunk Format là chunk Data. Chunk này chỉ đơn giản chứa các mẫu âm thanh đã được số hóa. Tùy theo số kênh được chọn vàsố bit dùng để lượng tử hóa mà các mẫu âm thanh này được sắp xếp khác nhau trong chunk Data. Có 2 khái niệm về điểm mẫu và khung mẫu ♦ Một điểm mẫu chính là một giá trị đại diện cho một mẫu âm thanh được lấy tại một thời điểm nào đó. Nếu số bit dùng để lượng tử hóa là 8 thì giá trị của một điểm mẫu dao động từ 0 đến 255. Nếu số bit dùng để lượng tử hóa là 16 thì giá trị của một điểm mẫu dao động từ đến -32768 đến 32767. Đối với âm thanh có nhiều kênh, các điểm mẫu từ mỗi kênh sẽ được xếp xen kẽ. Ví dụ với âm thanh stereo, các điểm mẫu sẽ được lưu trữ như sau : mẫu đầu tiên của kênh trái rồi tới mẫu đầu tiên của kênh phải, tiếp đó là mẫu thứ hai của kênh trái rồi tới mẫu thứ hai của kênh phải, . và cứ như thế. ♦ Một khung mẫu bao gồm nhiều điểm mẫu được phát đồng thời. Ví dụ, với âm thanh stereo, 2 điểm mẫu thuộc 2 kênh sẽ tạo thành một khung mẫu [...]... PlaySound hoặc MCI) ta không cần quan tâm đến việc đọc file Wave và nạp các mẫu âm thanh vào bộ nhớ Riêng cách thứ ba thì điều này là bắt buộc Phần dưới đây sẽ nóisơvề cách đọc dữ liệu âm thanh vào bộ nhớ trước khi gọi các hàm đó V Cách đọc file Wave vào bộ nhớ : Để thao tác với file Wave, Windows cung cấp hàng loạt các hàm được chứa trong thư viện Winmm.lib Sau đây là một số hàm chính thực hiện công... về 3 cách phát file Wave : - Theo thứ tự của 3 cách nêu trên thì tính đơn giản tỷ lệ nghịch với tính linh động, uyển chuyển trong việc phát một file Wave, nghĩa là ta muốn nắm quyền kiểm soát, điều khiển càng nhiều thì phải thực hiện càng nhiều thao tác - Trong 3 cách phát file Wave trên thì 2 cách đầu (dùng hàm sndPlaySound, PlaySound hoặc MCI) ta không cần quan tâm đến việc đọc file Wave và nạp các. .. wBlockAlign wChannels * (wBitsPerSample / 8) 8 16 "data" wBlockAlign * Tổngsố khung mẫu ? IV .Các phươngpháp phát một file Wave : IV.1 Dùng hàm sndPlaySound hoặc PlaySound : Windows cung cấp 2 hàm sau để phát một file wave : sndPlaySound và PlaySound Hai hàm này tuy gọn, nhẹ, đơn giản nhưng sẽ nạp toàn bộ dữ liệu âm thanh vào bộ nhớ, và cũng vì vậy mà kích thước của file sẽ bị giới hạn đến 100 KB Ngoài... ứng dụng và thiết bị âm thanh để thu hoặc phát rất nhiều loại file âm thanh như : phát các bản nhạc từ CD Audio, các file Wave, Midi, Video, vv MCI là tập hợpcác hàm, mỗi hàm có một chức năng riêng biệt Điều đặc biệt là MCI sử dụng các chuỗi lệnh để nhận biết công việc cần làm Ví dụ, hàm mciSendString() sẽ gửi các chuỗi lệnh sau để phát 10000 mẫu âm thanh : mciSendString( "open c:\Sound\MyWave.wav... định vị vào chunk ta cần bằng hàm : mmioDescend() Lúc này con trỏ file sẽ trỏ vào đầu phần dữ liệu của chunk đó và ta sẽ đọc dữ liệu vào bộ nhớ bằng hàm : mmioRead() Khi làm việc xong với 1 chunk, trước khi muốn định vị vào một chunk khác, ta phải ra khỏi chunk cũ bằng hàm : mmioAscend() Sau khi hoàn tất công việc, ta sẽ đóng file Wave đã mở bằng hàm : mmioClose() Trước khi đọc dữ liệu âm thanh vào bộ... có thể dùng MCI để thu âm Cách thứ hai là dùng các hàm cấp thấp của Windows Như đã giới thiệu, các hàm này sẽ cho ta sự linh hoạt trong mọi thao tác Trước hết ta phải mở thiết bị âm thanh bằng hàm : waveInOpen() Tương tự như khi phát, ta phải cung cấp địa chỉ của một hàm gọi là hàm CallBack mà sẽ phát ra các sự kiện liên quan đến quá trình thu âm Các thông điệp tương ứng với các sự kiện này là : MM_WIM_OPEN... này ta sẽ xác định tổngsố byte mà bộ nhớ cần để lưu trữ dữ liệu âm thanh và tiến hành cấp phát bộ nhớ bằng hàm : GlobalAlloc() Sau đó ta chỉ việc đọc dữ liệu vào vùng nhớ đó Bất cứ lúc nào cần ta cũng có thể giải phóng vùng nhớ đó bằng hàm : GlobalFree() Ngoài ra, nếu ta muốn thay đổi vị trí hiện tại của con trỏ file sau khi đã mở file, ta có thể dùng hàm : mmioSeek() VI Phương pháp thu âm : Với MCI... thanh và chỉ phát ra soundcard IV.2 Dùng MCI (Media Control Interface) : Các hàm của MCI được chứa trong thư viện Winmm.lib của Windows Các khai báo đặc tả liên quan được cung cấp trong 2 file Mmsystem.h và Windows.h Để phát một file Wave có kích thước lớn hơn, Windows cung cấp một giao tiếp MCI (Media Control Interface) Đây là một giao tiếp rất mạnh thực hiện công việc giao tiếp giữa ứng dụng và thiết... waveInClose() Ngoài ra, ta cũng cần cung cấp mã nhận dạng thiết bị âm thanh và một cấu trúc mô tả các thông số định dạng của file Wave Để chọn thiết bị âm thanh mặc định, ta dùng hằng WAVE_MAPPER thay cho mã nhận dạng thiết bị âm thanh Một việc khác không thể thiếu là cấp phát bộ nhớ để lưu các mẫu âm thanh thu được Dựa vào các thông số được mô tả trong cấu trúc file Wave, ta phải tính toán dung lượng... lstrlen(lpszReturnString), NULL); mciSendString("close finch", lpszReturnString, lstrlen(lpszReturnString), NULL); IV.3 Dùng các hàm cấp thấp của Windows : Các hàm này được chứa trong thư viện Winmm.lib của Windows Các khai báo đặc tả liên quan được cung cấp trong 2 file Mmsystem.h và Windows.h 4 hàm chính sau đây sẽ luôn được dùng để điều khiển việc phát một file Wave : waveOutOpen() waveOutPrepareHeader() . SƠ LƯỢC VỀ TIẾNG NÓI VÀ CÁC PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI I. Sơ lược về tiếng nói : I.1. Đặc t ính c hung c ủa t iếng n ói : Tiếng nói là công. II.3 .Các phương pháp tổng hợp tiếng nói 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