Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (853.9 KB, 156 trang )
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
− Multiple driver và datasource có thể tồn tại cho phép ứng dụng truy xuất dữ liệu từ
nhiều datasource.
− ODBC API được sử dụng ở hai nơi : giữa Application với Driver Manager, giữa
Driver Manager với mỗi driver. Giao tiếp giữa Driver Manager và driver có khi được xem
như là Service provide interface hoặc SPI với ODBC API và SPI là giống nhau.
∗ .Nhiệm vụ của các phần:
Application :
Là một chương trình gọi ODBC API để truy xuất data. Mặc dù có nhiều loại ứng
dụng nhưng được phân thành ba loại như sau :
− Generic Application : là những ứng dụng shrink÷wrapped hoặc off –the÷shell.
Generic Application được thiết kế để làm việc với những DBMS khác nhau. Ví dụ : bảng
tính hoặc gói tĩnh (statictics pakage) sử dụng DBMS để nhập data cho những phân tích về
sau và một word processor sử dụng ODBC để lấy dah sách các thư từ một database.
Một phạm trù con quan trọng của Generic Application là môi trường phát triển ứng
dụng, chẳng hạn như Power Builder hoặc Microsof Visual Basic. Mặc dù ứng dụng được
tạo với những môi trường sẽ chỉ làm việc với những DBMS đơn, bản thân môi trường cần
làm việc với multi DBMSs.
− Vertical Application : biểu hiện một loại công việc đơn, chẳng hạn như yêu cầu dữ
liệu và làm việc với một sơ đồ database được điều khiển bởi người phát triển ứng dụng. Ví
dụ : một doanh nghiệp nhỏ dùng ứng dụng với dBase trong khi một doanh nghiệp lớn dùng
ứng dụng với Oracle.
Ưng dụng sử dụng ODBC theo cách mà ứng dụng bị ràng buộc vào bất cứ một
DBMS nào mặc dù có thể bị ràng buộc với một số giới hạn do DBMS.
− Custom Application : được sử dụng để thực hiện những công việc đặc biệt trên một
công ti đơn.
Một ứng dụng sử dụng giao diện ODBC thực hiện những nhiệm vụ sau, không quan
tâm chúng dùng loại DBMS nào:
+ Yêu cầu kết nối với data source.
+ Gởi các yêu cầu SQL tới data source đó.
+ Định nghĩa vùng lưu trữ và các dạng dữ liệu cho các kết quả trả về từ các yêu
cầu.
+ Lấy kết quả.
+ Xử lý lỗi.
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 49
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
+ Báo kết quả cho user nếu cần.
+ Chấp nhận hoặc hủy bỏkết quả cho các điều khiển giao dịch.
+ Kết thúc kết nối tới data source.
Driver Manager:
Là thư viện quản lý việc liên lạc giữa ứng dụng và driver. Trong nến Windows,
Driver Manager là thư viện liên kết động (dynamic link library viết tắt là dll).
Sự tồn tại của Driver Manager rất tiện lợi cho người viết ứng dụng và giải quyết một
số vấn đề chung đối với tất cả các ứng dụng bao gồm xác định driver nào được nạp hay gỡ
bỏ và gọi hàm trong driver.
Hãy xem điều gì xảy ra nếu ứng dụng gọi hàm một cách trực tiếp trong driver. Trừ
khi nó được liên kết tới một driver cụ thể, nó sẽ phải tạo một bảng những con trỏ trỏ tới
những hàm trong driver đó và gọi những hàm thông qua con trỏ. Sử dụng cùng một source
code cho nhiều driver tại một thời điểm sẽ gây phức tạp, ứng dụng phải thiết lập con trỏ
hàm trỏ tới những hàm trong driver tương ứng và gọi hàm thông qua con trỏ.
Driver Manager giải quyết vấn đề trên bằng cách cung cấp một nơi để gọi mỗi hàm.
Ưng dụng được liên kết với Driver Manager và gọi những hàm ODBC trong Driver
Manager chứ không phải trong driver.
Ưng dụng xác định driver đích và datasource với một thẻ kết nối (connection handle)
khi nó nạp Driver, Driver Manager sẽ tạo một bảng những con trỏ trỏ tới những hàm trong
driver đó và nó dùng thẻ kết nối để tìm địa chỉ của hàm trong driver và gọi hàm đó thông
qua địa chỉ.
Như vậy, nhiệm vụ của Driver Manager như sau:
− Sử dụng file ODBC.INI để ánh xạ một tên của data source thành một thư viện liên
kết động driver.
− Xử lý các lời gọi khởi động ODBC.
− Cung cấp các điểm nhập tới các hàm ODBC cho mỗi driver.
− Cung cấp các tham số và chuỗi hợp lệ cho các lời gọi ODBC.
Driver :
Là những thư viện hiện thực các hàm trong ODBC API và mỗi ODBC API tương
ứng với một DBMS riêng biệt. Ví dụ 1 driver cho Oracle không thể truy cập trực tiếp data
trên một DBMS Informix. Driver cho thấy khả năng của DBMS lớp dưới. Driver không bị
đòi hỏi phải hiện thực những khả năng không được hỗ trợ bởi DBMS.
Driver chia làm hai loại:
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 50
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
− File÷based driver : driver truy cập data vật lý một cách trực tiếp. Trong trường hợp
này driver hoạt động vừa là driver vừa là datasource, nghĩa là nó xử lý lời gọi ODBC và câu
SQL.
− DBMS÷based driver : driver truy xuất dữ liệu vật lý thông qua một cơ chế database
riêng biệt. Trong trường hợp này driver chỉ xử lý câu ODBC, và gởi câu SQL sang cơ chế
database xử lý.
Một driver thực hiện những nhiệm vụ sau để đáp ứng tới các lời gọi hàm từ một ứng
dụng:
− Thiết lập một kết nối tới một data source.
− Gởi các yêu cầu tới data source.
− Chuyển đổi dạng dữ liệu tới hoặc từ các dạng khác, nếu ứng dụng yêu cầu. Trả
kết quả cho ứng dụng
− Định dạng các lỗi thành các mã lỗi chuẩn để trả về cho ứng dụng.
− Khai báo và thao tác các cursor nếu cần. for access to a cursor name.)
− Khởi tạo các giao dịch nếu data source yêu cầu.
Data source:
Một datasource đơn giản là nguồn dữ liệu, có thể là một file, một database trên một
DBMS. Mục đích của datasource là tập trung tất cả thông tin cần thiết để truy xuất data :
drivername, địa chỉ network, networdsoftware. Như vậy một data source là một thể hiện
(instance) của một kết hợp giữa một DBMS vàhệ điều hành cùng với mạng cần để truy xuất
nó.
Một ứng dụng kết nối với một DBMS trên một hệ điều hành nào đó, được cho phép
truy xuất bởi một mạng nào đó. Ví dụ:
− Một DBMS Oracle chạy trên hệ điều hành Windows NT , được truy xuất thông qua
mạng Windows
3. Cấu Hình Một ODBC Data Source;
Để sử dụng một data source với một ứng dụng mà ta đã phát triễn, ta phải sử dụng
ODBC Administrator để cấu hình nó. Một ODBC Administrator đăng ký và cấu hình các
data source sẵn có tại máy cục bộ hoặc trên mạng. Ta sử dụng ODBC Administrator để
thêm, hiệu chỉnh, và hủy bỏ các data source trong hộp thoại Data Source, thêm và hủy bỏ
các ODBC driver.
4. Hướng Dẫn Gọi Các Hàm ODBC:
Mỗi hàm ODBC được bắt đầu bằng SQL, để sử dụng ta phải include các file SQL.H,
SQLEXT.H, and WINDOWS.H. Những file này chứa các hằng số và các nguyên mẫu của
các hàm ODBC.
Buffer:
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 51
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
− Một ứng dụng truyền dữ liệu tới một driver thông qua một buffer nhập. Driver này
trả dữ liệu về thông qua buffer xuất. Ứng dụng phải cấp phát bộ nhớ cho cả buffer nhập lẫn
buffer xuất.
− Đối với buffer nhập, chiều dài của nó phải lớn hơn hoặc bằng 0. Đây là chiều dài
thực sự của dữ liệu trong buffer nhập. Đói với dữ liệu chuỗi, thì chiều dài bằng 0 biểu thị
chuỗi rỗng. Nếu nó có giá trị SQL_NULL_DATA thì driver sẽ bỏ qua giá trị trong buffer
nhập.
− Đối với buffer xuất, để ứng dụng trả về kết quả ta cần truyền các đối số sau:
− Địa chỉ của buffer xuất.
− Chiều dài của buffer xuất. Driver sẽ bỏ qua thông số này nếu kiểu dữ liệu trả về có
độ rộng cố định như integer, real.
− Địa chỉ của biến mà driver trả về chiều dài của dữ liệu. Giá trị trả về sẽ là
SQL_NULL_DATA nếu dữ liệu đó có giá trị NULL trong tập kết quả. Ngược lại, nó sẽ là
số bytes dữ liệu (không bao gồm byte kết thúc nếu là chuỗi)
− Nếu buffer xuất quá nhỏ, driver sẽ cắt bớt dữ liệu và trả về
SQL_SUCCESS_WITH_INFO nếu dữ liệu bị cắt không bị mất ý nghĩa. Nó sẽ trả về
SQL_ERROR nếu dữ liệu mất ý nghĩa. Ứng dụng có thể gọi SQLError để lấy thông tin về
kết quả cắt hoặc lỗi.
− Môi trường, kết nối và các handle của phát biểu SQL
ODBC định nghĩa 3 kiểu handle:
− Handle môi trường: chỉ ra vùng bộ nhớ lưu trữ thông tin toàn cục. Bao gồm các
handle kết nối, có kiểu HENV.
− Handle kết nối: chỉ ra vùng nhớ chứa thông tin về một kết nối cụ thể, có kiểu
HDBC. Mỗi handle kết nối được kết hợp với một handle môi trường. Tuy nhiên, handle môi
trường có thể có nhiều handle kết nối.
− Handle phát biểu: chỉ ra vùng nhớ chứa phát biểu SQL, có kiểu HSTMT. Như trên,
mỗi handle phát biểu chỉ được kết nối với một handle kết nối nhưng handle kết có thể có
nhièu handle phát biểu.
Sử dụng các kiểu dữ liệu
− Dữ liệu được lưu trữ trên data source có một kiểu dữ liệu SQL. Một driver sẽ ánh
xạ các kiểu dữ liệu của SQL sang các kiểu dữ liệu của ODBC SQL tương ứng.
− Mỗi kiểu dữ liệu ODBC SQL tương ứng với một kiểu dữ liệu ODBC C. Trước khi
trả kết quả về từ data source, driver sẽ tiến hành chuyển kiếuang kiểu C. Trước khi gởi dữ
liệu đi, driver cũng tiến hành đổi nó sang kiểu dữ liệu tương ứng.
Các mã kết quả của các hàm ODBC
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 52
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
Khi một ứng dụng gọi một hàm ODBC, driver thực hiện sẽ trả về một mã được định
nghĩa trước. Đó là:
SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_NO_DATA_FOUND
SQL_ERROR
SQL_INVALID_HANDLE
SQL_EXECUTING
SQL_NEED_DATA
Nếu hàm trả về SQL_ SUCCESS_WITH_INFO hoặc SQL_ERROR, ứng dụng có
thể gọi SQLError để lấy thông tin về lỗi.
5. Các Bước Ưng Dụng Căn Bản:
Để tương tác với một data source, một ứng dụng cần thực hiện các công việc:
− Bước một :kết nối tới Datasource : nạp driver và cấp environment handle. Sau đó,
ứng dụng đăng ký version của ODBC, cấp handle kết nối và kết nối tới datasource.
− Bước hai: khởi động ứng dụng.
− Bước ba : Xây dựng và thực thi câu lện SQL.
Nếu câu lệnh chứa dựng thông số, ứng dụng ràng buộc chúng vào ứng dụng bằng
cách gọi hàm SQLBindParameter.
Sau khi SQL statement được tạo và các thông số được ràng buộc, câu lệnh được thực
thi với SQLExecDirect. Nếu câu lệnh được thực thi với nhiều lần nó có thể được chuẩn bị
với SQLPrepare và thực thi với SQLExecute.
− Bước bốn : lấy kết quả .
Nếu câu lệnh thực hiện ở bước ba là câu lệnh SELECT hoặc một hàm tra cứu, ứng
dụng gọi hàm SQLNumResultCols để lấy số cột trong tập kết quả. Điều này không cần thiết
nếu ứng dụng đã biết số cột trong tập kết quả. Tiếp theo, ứng dụng lấy tên, loại dữ liệu, độ
chính xác, trình tự của mỗi cột kết quả với SQLDescribleCol. Điều này cũng không cần
thiết nếu ứng dụng là kiểu custom hay vertical. Sau đó, ứng dụng gọi SQLFetch để lấy cột
đầu tiên của data và đặt vào biến được ràng buộc với hàm SQLBindCol. Nếu còn data trong
hàng đó, ứng dụng sẽ gọi SQLGetdata để lấy data. Sau khi lấy dữ liệu xong, ứng dụng gọi
hàm SQLCloseCursor để kết thúc.
− Bước năm : Kết thúc kết nối với datasource.
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 53
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
CHƯƠNG III
SƠ LƯỢC VỀ TIẾNG NÓI
VÀ CÁC PHƯƠNG PHÁP
TỔNG HỢP ÂM
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 54
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
I. SƠ LƯỢC VỀ TIẾNG NÓI :
1. Đặc Tính Chung Của Tiếng Nói:
Tiếng nó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 rất nhiều bộ phận để tạo ra âm thanh này do đó â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 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 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 để tạo nên âm thanh voice/unvoice plosive
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 55
Tự Động Hóa Đài 116
GVHD:
Phan Đình Mãi – Nguyễn Thanh Liêm
2. Cách Thức Tổng Hợp Tiếng Nói Dùng Trong Text – To – Speech :
Module xử lý tiếng nói được hiện thực trong đề tài là một ứng dụng của Text – to –
speech nên chúng em phải tìm hiểu về nó.
Vậy Text - to - speech là gì :
Text-to-speech là một bộ phận của nhận dạng tiếng nói (Speech Recognition). Text to
speech là một quá trình chuyển dạng văn bản (text) sang tiếng nói (speech)
Phân loại Text – to – speech :
Text – to – speech được phân loại dựa vào phương pháp được sử dụng để chuyển văn
bản sang tiếng nói.Text – to – speech được phân thành các loại sau:
a). Concatenated Word:
Trong một hệ thống Concatenated word, những từ và ngữ được thu âm trước, khi
nhận được một chuỗi cần đọc, hệ thống sẽ tách ra thành các từ, tìm các từ đã được thu âm,
kết hợp với nhau và phát âm.
b). Tổng hợp:
Text – to – speech sử dụng phương pháp tổng hợp tạo âm giống những gì được tạo
bởi giọng con người và 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.Âm thanh được tạo bởi kỹ thuật tổng hợp hiện tại có xu hướng
ít giống giọng con người hơn âm được tạo bởi diphone concatenation 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ố.
c). 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 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.
3. Tại Sao Sử Dụng Text – To – Speech ?
SVTH: Nguyễn Hữu Phú – Trần Lê Trung
Trang 56