MODUL THU VÀ PHÁT ÂM THANH

Một phần của tài liệu TÌM HIỂU MÔ HÌNH ĐIỆN THOẠI QUA MẠNG.doc (Trang 50 - 54)

TRUYỀN ÂM THANH TRÊN MẠNG LAN

V.2.3 MODUL THU VÀ PHÁT ÂM THANH

Modul xử lý âm thanh làm nhiệm vụ giao tiếp với soundcard, ghi vào bộ nhớ và truyền cho modul II để mã hố, đồng thời nhận các mẫu đã giải mã ở modul II để đưa ra soundcard trong quá trình nhận.

Quá trình thu và phát tiếng nĩi thơng qua vùng đệm (buffer), cĩ 2 loại vùng đệm trong Direct sound : Primary buffer và Secondary buffer. Primary buffer chứa tiếng nĩi mà người nghe sẽ nghe thấy. Chỉ cĩ duy nhất một Primary buffer và buffer này do DirectSound tạo ra, secondary buffer chứa tiếng nĩi hoặc đoạn tiếng cần đưa ra. Chương trình cĩ thể tạo ra một hoặc nhiều Secondary buffer. Khi phát tiếng nĩi trong secondary buffer, DerectSound sẽ chuyển tiếng nĩi sang Primary buffer và đưa ra soundcard. Chương trình ứng dụng cĩ thể dùng DirectSoundCapture để ghi tiếng nĩi vào một Capturebuffer. Cũng như khi phát tiếng nĩi, chương trình cĩ thể báo con trỏ đến một vị trí nào đĩ và khi nĩ đến cuối của buffer thì nĩ tự động quay lại vị trí đầu của buffer.

Khi thao tác với các buffer, DirectSound cho phép khĩ một phần của buffer lại để đảm bảo khơng bị ghi đè lên phần này.

Modul thu và phát tiếng nĩi nằm trong cùng một Record thread. Thread cĩ mức ưu tiên cao nhất. Mỗi khi cĩ một dịng thơng báo từ DirectSound gửi đến tức là khi con trỏ Capture buffer đi đến vị trí quy định trước thì thread này sẽ được gọi đến. Lúc này, modul thu tiếng nĩi sẽ khố phần Capture buffer vừa ghi xong. Néu trong buffer của modul phát tiếng nĩi cĩ tín hiệu tiếng nĩi thì sẽ chép vào Secondary buffer của DirectSound.

Lưu đồ của modul thu và phát tiếng nĩi như sau :

Hình V.3 Lưu đồ của modul thu và phát tiếng nĩi V.2.4 MODUL MÃ HỐ VÀ GIẢI MÃ ÂM THANH

Modul mã hố được kích hoạt sau khi modul VAD xác định tín hiệu âm thanh cĩ chức tiếng nĩi. Cơng việc của modul mã hố gọi đến các thủ tục mã hố tiếng nĩi(GSM,LPC…). Sau đĩ, chuyển dữ liệu đã mã hố vào Send buffer tồi kích hoạt modul truyền. Modul nhận nằm trong thread mã hố, cĩ mức ưu tiên bình thường.

Bắt đầu Khố buffer DirectSound

Chép tín hiệu âm thanh vừa lấy mẫu vào Record buffer

Play buffer cĩ dữ liệu

Chép play buffer vào Secondary buffer Mở khố buffer DirectSound Kích hoạt modul mã hố Kết thúc đúng sai

Sau đây là lưu đồ giải thuật modul mã hố :

Hình V.4 Lưu đồ giải thuật modul mã hố

Modul giải mã tiếng nĩi được kích hoạt sau khi modul nhận được dữ liệu từ máy ở xa. Loại bỏ Header, các dữ liệu thừa và đưa vào trong buffer nhận. Modul giải mã sẽ xá định phương pháp giải mã tương ứng với phương pháp mã hố được sử dụng ở bên truyền. Sau đĩ chuyển dữ liệu đã mã hố vào buffer phát tiếng nĩi.

Bắt đầu

Kết thúc

Lấy một khung tiếng nĩi từ Record buffer

Play buffer cĩ dữ liệu

Mã hố theo phương pháp PCM

Chép khung tiếng nĩi đã mã hố vào Sendbuffer

Kích hoạt modul truyền đúng

Lưu đồ giải thuật modul giải mã như sau :

Hình V.5 Lưu đồ giải thuật modul mã hố V.2.5 MODUL TRUYỀN, NHẬN ÂM THANH

Modul này cĩ nhiệm vụ giao tiếng giữa máy tính với mạng IP. Sử dụng giao thức TCP/IP.

Khi buffer truyền cĩ dữ liệu cần truyền đi, modul truyền sẽ kích hoạt . dữ liệu cần truyền sẽ cĩ thêm các header và các thơng tin cần thiết khác. Modul truyền cĩ mức ưu tiên bình thường.

Khi cĩ dữ liệu đến, winsock sẽ gửi thơng báo đến chương trình, chương trình nhận được thơng báo và kích hoạt modul nhận. Modul nàu cĩ nhiệm vụ nhận dữ liệu, kiểm tra, loại bỏ dữ liệu thừa cùng với header. Sau khi chuyển dữ liệu vào buffer nhận và kích hoạt modul giải mã.

Bắt đầu

Kết thúc

Lấy một khung tiếng nĩi từ buffer nhận

Buffer nhận cĩ dữ liệu

Mã hố theo phương pháp PCM

Chép khung tiếng nĩi vào buffer phát

đúng

Lưu đồ giải thuật của modul truyền và nhận :

Hình V. 6 Lưu đồ giải thuật modul truyền

Hình V.7 Lưu đồ giải thuật modul nhận

Một phần của tài liệu TÌM HIỂU MÔ HÌNH ĐIỆN THOẠI QUA MẠNG.doc (Trang 50 - 54)

Tải bản đầy đủ (DOC)

(68 trang)
w