SƠ LƯỢC VỀ TIẾNG NÓI VÀ CÁC PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI

17 788 2
SƠ LƯỢC VỀ TIẾNG NÓI VÀ CÁC PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LƯỢC VỀ TIẾNG NÓI CÁC PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI I. 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 cụ diễn đạt thông tin rất uyển chuyển đặ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ếng nó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 giãn ra, áp suất không khí ban đầu lớn 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) â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, 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 đượ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ổng hợp tiếng nói : Text-to-speech là một kỹ thuật dùng để chuyển dạng văn bản (text) sang tiếng nói (speech) . Text–to–speech được phân loại dựa vào phương pháp chuyển văn bản sang tiếng nói :  Concatenated word : Với phương pháp này, những từ 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 ghép lại với nhau , tạo ra một chuỗi tiếng nói liên tục  Tổng hợp : Phương pháp này phức tạp hơn nhiều vì sẽ tổng hợ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ương phá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ị trí lưỡi. Tuy nhiên tiếng nói được tạo bởi kỹ thuật tổng hợ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ương pháp này nối những đoạn ngắn âm thanh được số hóa lại với nhau 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 xác định một cách cẩn thận tỉ mỉ vị trí bắt đầu 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 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ương phá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. 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 ứ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ương pháp tổng hợ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ổng hợp tiếng nói : Khi cần thông báo cho người sử dụng bằng tiếng nói thì những chuỗi tiếng nó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 đạt độ tự nhiên cao nhưng có hai nhược điểm rất lớn là không linh hoạt 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 giảm dung lượng lưu trữ , ta phải dùng kỹ thuật tổng hợp tiếng nói. II.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 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ế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. - Khối lượng lưu trữ không quá lớn để tiện sử dụng có thể phổ biến nhiều nơi 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ố 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. Theo nghiên cứu của các chuyên gia thì hướng này rất phức tạp 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.  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ương pháp này đạt độ tự nhiên cao nhất 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ể 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, 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ương pháp này là khá lớn so với các phương phá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ương pháp này có khối lượng lưu trữ nhỏ nhất vì chỉ có 28 phụ âm 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ương phá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ầ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 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ươ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 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 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ổ đi vào lĩnh vực xử lý tiếng nói, ta mới có thể quan sát 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ươ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 = 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ươ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 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. III.Giới thiệu về file Wave (*.wav) : III.1. Khái niệm về file Wave 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 đượ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ương phá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 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 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ổng số 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ợp cá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 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 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 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 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 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, . 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 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ói 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 nạp các. .. wBlockAlign wChannels * (wBitsPerSample / 8) 8 16 "data" wBlockAlign * Tổng số khung mẫu ? IV .Các phương phá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 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ớ, 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 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ợp cá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 đó 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ổng số byte mà bộ nhớ cần để lưu trữ dữ liệu âm thanh 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 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 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 thiết... waveInClose() Ngoài ra, ta cũng cần cung cấp mã nhận dạng thiết bị âm thanh 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 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

Ngày đăng: 06/10/2013, 23:20

Hình ảnh liên quan

 Tóm lại cấu trúc file Wave được mô tả như bảng sau: - SƠ LƯỢC VỀ TIẾNG NÓI VÀ CÁC PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI

m.

lại cấu trúc file Wave được mô tả như bảng sau: Xem tại trang 12 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan