antony_9x

New Member

Download miễn phí Đề tài Xây dhựng ứng dụng truyền thông âm thanh trên mạng cục bộ





Đồ án tốt nghiệp đã hoàn thành các nhiệm vụ đề ra trong phạm vi cho phép. Do điều kiện về thời gian cùng như trình độ còn hạn chế nên đồ án này dừng lại ở mức nghiên cứu một số phương pháp mã hoá tiếng nói và một số giao thức truyền tín hiệu trên mạng Internet như TCP/IP, UDP. Trên cơ sở đó xây dựng phần mềm thử nghiệm truyền tiếng nói thoại trên mạng LAN.

Đồ án này của em sử dụng các hàm có sẵn trong môi trường SDK từ đó xây dựng ứng dụng CPhone có thể liên kết hai máy lại và thực hiện quá trình trao đổi âm thanh.

Phần thử nghiệm mới chỉ dừng lại ở việc xây dựng một ứng dụng truyền tiếng nói giữa 2 thực thể PC theo giao thức TCP/IP và tiếng nói mới chỉ được mã hoá theo phương pháp PCM nên tỷ số nén và tốc độ truyền chưa cao. Mặt khác, do mới chỉ đánh giá được chất lượng tiếng nói theo phương pháp chủ quan nên chưa khảng định được điều gì về độ trễ và chất lượng tiếng nói sau khi truyền. Thế nhưng những gì đạt được trong đồ án này chủ yếu là nhằm giúp em có thể nắm bắt được vững hơn về mặt lý thuyết cũng như nắm quyền kiểm soát, quyền điều khiển ứng dụng trong thực tế, các kết quả này rất qua trọng và hữu ích cho mọi hoạt động nghiên cứu sau này cho dù những nội dung trong bài luận văn và phần thử nghiệm chưa được đầy đủ và hoàn chỉnh như mong muốn.

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


bị thực thi bằng các handles và Identifiers.
IV.1.3 SỬ DỤNG CÁC THIẾT BỊ XUẤT NHẬP, HỖ TRỢ WAVEFORM AUDIO
Chúng ta dùng hàm waveOutOpen để mở thiết bị đầu ra nhằm xuất dữ liệu dạng waveform. Hàm sẽ mở thiết bị waveOut và trả handle về cho ứng dụng. Hệ thống multimedia sẽ hỗ trợ nhiều dạng output dữ liệu khác nhau do đó khi mở thiết bị nếu cần chúng ta phải chỉ định rõ thông số dữ liệu. Ví dụ chúng ta dùng cờ WAVE_MAPPER để xác định thiết bị output sẽ xuất âm thanh dạng waveform.
Dò tìm thiết bị
Windows cung cấp các hàm sau giúp chúng ta xác định các thiết bị trong hệ thống phù hợp cho yêu cầu của mình.
Hàm
Chức năng
AuxGetNumDevs
Truy xuất số lượng các thiết bị sẵn có trong hệ thống
WaveInGetNumDevs
Truy xuất số lượng các thiết bị nhập hỗ trợ waveform audio sẵn có trong hệ thống
WaveOutGetNumDevs
Truy xuất số lượng các thiết bị xuất hỗ trợ waveform audio sẵn có trong hệ thống
Các thiết bị khai báo trong hệ thống được đánh các chỉ số nhận dạng bắt đầu từ 0. Sau khi xác định số lượng các thiết bị sẵn có trong hệ thống, chúng ta có thể dò tìm khả năng của từng thiết bị bằng các hàm sau:
Hàm
Chức năng
AuxGetDevCaps
Truy xuất khả năng của thiết bị xuất
WaveInGetDevCaps
Truy xuất khả năng của thiết bị nhập dạng waveform
WaveOutGetDevCaps
Truy xuất khả năng của thiết bị xuất dạng waveform
Các hàm truy xuất này sẽ truy xuất này sẽ lấy các cấu trúc liên quan đến khả năng của thiết bị. Các cấu trúc dưới đây sẽ tương ứng với các hàm liệt kê ở trên:
Hàm
Structure
AuxGetDevCaps
AUXCAPS
WaveInGetDevCaps
WAVEINCAPS
WaveOutGetDevCaps
WAVEOUTCAPS
Thiết bị waveform có khả năng hỗ trợ các dạng format không chuẩn. Dạng format không chuẩn này được dùng trong cấu trúc WAVEFORMATEX.
Handle và Identifier của thiết bị
Khi mở thiết bị, chúng ta sẽ nhận được handle hay thông số Identify của thiết bị. Chúng ta sẽ điều khiển thiết bị qua các thông số này.
Sự khác biệt giữa handle và identify là khó thấy nhưng rất quan trọng.
Identitier của thiết bị được chỉ định ngầm định từ số lượng các thiết bị sẵn có trong hệ thống. Identifier sẽ được trả về khi chúng ta dùng các hàm auxGetNumDevs, waveInGetNumDevs, or waveOutGetNumDevs Hàm.
Handle của thiết bị là thông số trả về của device driver khi chúng ta dùng các hàm waveInOpen hay waveOutOpen.
Waveform-Audio Output Data Types
Các thông số dưới đây được dùng cho thiết bị waveform output
Cấu trúc
Chức năng
HWAVEOUT
Handle của thiết bị waveform output
WAVEFORMATEX
Cấu trúc dùng chỉ định dạng format thiết bị output/ input
WAVEHDR
Cấu trúc dùng làm header cho khối dữ liệu waveform. Cấu trúc được dùng cho cả thiết bị output và input
WAVEOUTCAPS
Cấu trúc dò hỏi khả năng của thiết bị output.
Chỉ định dạng format của dữ liệu waveform audio
Khi chúng ta mở thiết bị output bằng hàm waveOutOpen, thông số pwfx sẽ chỉ định cấu trúc WAVEFORMATEX xác định dạng format của dữ liệu waveform. Đây là cấu trúc mở rông của cấu trúc WAVEFORMAT.
Ghi dữ liệu waveform
Sau khi mở thiết bị xuất, chúng ta có thể xuất dữ liệu bằng cách gọi hàm waveOutWrite. Hàm sẽ gửi khối dữ liệu âm thanh ra thiết bị xuất. Chúng ta dùng cấu trúc WAVEHDR để chỉ định header của khối dữ liệu được gửi ra. Header này gồm con trỏ tới khối dữ liệu đã lock, chiều dài khối dữ liệu và một số thông số cờ. Khối dữ liệu phải được prepare trước khi đem ra sử dụng.
Sau khi gửi khối dữ liệu đến thiết bị output, chúng ta phải chờ driver hoàn tất việc xử lý khối dữ liệu trước khi giải phóng nó. Khi chúng ta cần gửi nhiều khối dữ liệu liên tục, chúng ta sẽ phải theo dõi việc xử lý hoàn tất khối dữ liệu để có thể gửi khối tiếp theo.
PCM Waveform-Audio Data Format
Thông số lpData trong cấu trúc WAVEHDR sẽ trỏ đến dữ liệu đã được lấy mẫu. Đối với dữ liệu PCM 8-bit, mỗi giá trị lấy mẫu được biểu diễn bằng một số 8 bit không dấu. Đối với dữ liệu PCM 16-bit, mỗi giá trị lấy mẫu được biểu diễn bằng một số 16 bit không dấu. Bảng dưới đây cho chúng ta thấy các giá trị cao nhất, thấp nhất cũng như giá trị trung bình của dữ liệu PCM:
Data format
Maximum value
Minimum value
Midpoint value
8-bit PCM
255(0xFF)
0
128 (0x80)
16-bit PCM
32,767 (0x7FFF)
-32,768 (0x8000)
0
Các gói dữ liệu PCM
Thứ tự của dữ liệu thay đổi tùy theo dạng format 8-bit hay 16-bit, stereo hay mono. Bảng dưới đây trình bày các gói dữ liệu của các dạng PCM khác nhau:
PCM waveform
Chức năng
8-bit mono
Mỗi giá trị lấy mẫu là 1 byte tương ứng một kênh. Các giá trị mẫu xếp theo thứ tự 1, 2, 3, 4 . . .
8-bit stereo
Mỗi giá trị lấy mẫu là 2 byte. Các giá trị mẫu xếp theo thứ tự 1, 2, 3, 4 . . . Với mỗi giá trị mẫu byte đầu là kênh 0 (trái) còn byte sau là kênh 1 (phải).
16-bit mono
Mỗi giá trị lấy mẫu là 2 byte. Các giá trị mẫu xếp theo thứ tự 1, 2, 3, 4 . . . Với mỗi giá trị mẫu byte đầu là byte thấp của kênh 0 còn byte sau là byte cao của kênh 0.
16-bit stereo
Mỗi giá trị lấy mẫu là 4 byte. Các giá trị mẫu xếp theo thứ tự 1, 2, 3, 4 . . . Với mỗi giá trị mẫu byte đầu là byte thấp của kênh 0 (trái), byte thứ 2 là byte cao của kênh 0, byte thứ 3 là byte thấp của kênh 1 (phải) còn byte thứ 4 là byte cao của kênh 1.
Đóng thiết bị waveform-Audio Output
Sau khi thực thi công việc xong, chúng ta sẽ gọi hàm waveOutClose để đóng thiết bị. Khi thiết bị đang thực thi mà gọi hàm này thì lỗi sẽ xảy ra. Nếu chúng ta muốn đóng thiết bị giữa chừng thì đầu tiên chúng ta nên gọi hàm waveOutReset trước khi đóng thiết bị. Nhưng trước đó cũng cần gọi hàm waveOutUnprepareHeader để unprepare tất cả các khối dữ liệu.
Playing Waveform-Audio Files
Chúng ta có thể dùng các hàm sau đây để xuất dữ liệu dạng âm thanh ra loa:
Hàm
Chức năng
MessageBeep
Xuất âm thanh dưới dạng thông báo của hệ thống
SndPlaySound
Xuất âm thanh dưới dạng đăng ký trước trong hệ thống hay là nội dung của một file wave
PlaySound
Giống như hàm trên và thêm cơ chế truy xuất trực tiếp tài nguyên.
Các hàm PlaySound và sndPlaySound sẽ nạp hoàn toàn nội dung file wave vào bộ nhớ và xuất ra ngõ output. Khả năng bộ nhớ của chúng có giới hạn nên chúng chỉ quản lý được các nội dung dưới 100KB. Khi làm việc với các file có nội dung lớn hơn thì chúng ta có thể sử dụng các dịch vụ do MCI cung cấp.
Sử dụng Windows message trong việc quản lý khi playback
Các Thông báo dưới đây có thể được sử dụng trong quá trình xuất dữ liệu:
Thông báo
Chức năng
MM_WOM_CLOSE
Được gửi đi khi đóng thiết bị bằng hàm waveOutClose
MM_WOM_DONE
Được gửi đi sau khi driver hoàn tất việc xuất dữ liệu bằng hàm wafveOutWrite.
MM_WOM_OPEN
Được gửi đi khi thiết bị được mở bằng hàm waveOutOpen.
Các thông số wParam và lParam cũng rất cần thiết. Thông số wParam luôn luôn xác định handle của thiết bị waveform-audio. Đối với thông số lParam, Thông báo MM_WOM_DONE dùng thông số này trỏ tới cấu trúc WAVEHDR chỉ định sụ hoàn tất của dữ liệu trong khi thông số này không được hai Thông báo còn lại dùng. Việc dùng này rất hữu hiệu, Thông báo MM_WOM_DONE sẽ là tín hiệu được báo về sau khi việc playback khối dữ liệu hoàn tất. Ta sẽ tiếp nhận Thông báo này và giải phóng các biến có liên quan.
Thay đổi volume của quá trình playback dữ liệu waveform audio
Chúng ta sẽ dùngcác hàm sau đây để lấy thông số volume cũng như thiết ...

 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D kế toán nguyên vật liệu tại công ty cổ phần thương mại đầu tư xây dựng nam phát Luận văn Kinh tế 0
D Hoàn thiện kế toán nguyên vật liệu tại công ty cổ phần đầu tư xây dựng fast việt nam Luận văn Kinh tế 0
D điều chỉnh cục bộ quy hoạch chung xây dựng thành phố uông bí đến năm 2030, tầm nhìn đến năm 2050 Văn hóa, Xã hội 0
D thiết kế và xây dựng Website thương mại điện tử Công nghệ thông tin 0
D Xây dựng và quản lý hồ sơ địa chính bằng công nghệ phần mềm ViLIS tại thị trấn Thắng – huyện Hiệp Hòa – tỉnh Bắc Giang Khoa học Tự nhiên 0
D Kế toán vốn bằng tiền và các nghiệp vụ thanh toán tại Công ty Vật Liệu và Xây Dựng Quảng Nam Kế toán & Kiểm toán 0
D Kế toán tiền lương và các khoản trích theo lương tại Công ty cổ phần xây dựng số 1 Vinaconex Luận văn Kinh tế 0
D Báo cáo thực tập tổng hợp của Công ty Cổ phần Xây dựng số 2 vinaconex 1 Luận văn Kinh tế 0
D Hoàn thiện công tác trả lương theo sản phẩm tại Công Ty xây dựng số 1 Vinaconex Luận văn Kinh tế 0
D Một số biện pháp để quản lý tài chính của công ty xây dựng số 1 - Vinaconex Luận văn Kinh tế 0

Các chủ đề có liên quan khác

Top