Tìm hiểu môi trường lập trình SDK windows và ứng dụng trên mạng

70 14 0
  • Loading ...
1/70 trang

Thông tin tài liệu

Ngày đăng: 17/04/2018, 09:21

Công nghệ thông tin là ngành công nghiệp mũi nhọn của thế giới nói chung và của việt nam nói riêng, nó đã phát triển mạnh mẽ không ngừng trong những năm gần đây. Khi đời sống được nâng lên khoa học kỹ thuật phát triển nhu cầu về giải trí cũng đa dạng lên, các loại hình giải trí không ngừng gia tăng và ngày càng phong phú, đa dạng các loại hình giải trí như: trò chơi điện tử, nghe nhạc xem phim, xem ca nhạc(video), và đặc biệt là những trong chơi dạng không gian ba chiều. Sự phát triển ồ ạt này đã dẫn tới ngành công nghệ phần cứng đã không thể đáp ứng được những đòi hỏi về lưu trữ, đồng hành với sự phát triển này là mạng máy tính đó chính là Internet ngày càng phát triển số lượng người tham gia truy cập ngày càng lớn và nhu cầu của họ thì ngày càng phong phú và đa dạng về tất cả các loại hình nói trên. Do đó tốc độ truy cập, tốc độ truyền tải trên mạng được quan tâm hơn để cho người dùng không phải sốt ruột ngồi chờ những trang web mà mình truy cập, họ không phải bực mình khi download những file âm thanh và những bài hát mà họ ưa thích vì đường truyền quá chậm trong khi công nghệ phần cứng đã phát triển mạnh. Chính vì vậy các nhà nghiên cứu phần mềm đã chú ý đến việc phát triển phần mềm để hỗ trợ phần cứng. Họ đã tạo ra những chương trình phần mềm hỗ trợ tích cực phần cứng, từ đó đã ra đời những phần mềm nén âm thanh, hình ảnh, nén video, tách âm thanh từ những file video…để tạo ra những dạng âm thanh, hình ảnh, video như mindi, mpeg, mp3, mp4… những file ảnh dạng gif, jpeg…với dung lượng lưu trữ vô cùng nhỏ mặc dù chất lượng có giảm đi đôi chút nhưng không đáng kể so với những gì nó đạt được để truyền tải, truy cập nhanh hơn. Sự tồn tại của chuẩn JPEG (Joint Photographic Experts Group) chỉ để giảm tốc độ bit và chủ yếu phục vụ cho hình ảnh, rõ ràng là không đủ đáp ứng cho hình ảnh động có kèm âm thanh. Để đáp ứng nhu cầu của thị trường, một nhóm các chuyên gia về hình ảnh động (Moving Picture Experts Group), gọi tắt là MPEG, được thành lập để nghiên cứu đưa ra những lược đồ mã hóa phù hợp cho việc truyền hình ảnh động và ghi lại chúng theo tiêu chuẩn trong các thiết bị lưu trữ số như CDROM, Video CD.. Trang LỜI NÓI ĐẦU Trong năm gần đây, mạng máy tính ngày trở nên phổ biến Việc liên kết máy tính môi trường mạng liên kết mạng lại với đem lại cho nhiều lợi ích công việc việc học tập nghiên cứu, giải trí Chúng ta sử dụng tài nguyên sẵn có chia xẻ file server, printer, máy fax, môi trường mạng môi trường thông tin nhanh chóng tiện lợi nhờ vào chế truyền thông mạng : e-mail, www Bên cạnh đó, tốc độ phát triển máy tính PC nhanh chóng Các kỹ thuật đại giúp tạo máy PC với tốc độ tính toán nhanh hơn, nhớ lớn khả xử lý ngày đa dạng giá thành ngày rẻ Một khả ưu việt máy PC hỗ trợ multimedia Các máy PC ngày giao tiếp với người không text mà kết hợp tất phương tiện khác tiếng nói, hình ảnh Việc đưa kỹ thuật multimedia vào ứng dụng truyền thông mạng giúp tạo nhiều ứng dụng phong phú Chẳng hạn hộp thư điện tử ngày không văn mà bao gồm tiếng nói, hình ảnh Các trang web trở nên sinh động hẳn kèm theo kỹ thuật multimedia Bên cạnh đó, thiết kế ứng dụng tiện ích Video conference, voice mail Thông qua chương trình này, người sử dụng trao đổi thông tin với tiếng nói Chương trình thực nhiều lónh vực thông tin điện thoại, viễn thông, máy tính Tuy nhiên chưa áp dụng phát triển rọâng rãi lónh vực thông tin khác hạn chế thiết bò Ngày nay, công nghệ thông tin phát triển việc thực chương trình hoàn toàn Ứng dụng nhiều lónh vực khác :  •Việc dạy học từ xa  •Việc chẩn đoán, chữa bệnh từ xa  •Hội thảo, thảo luận theo nhóm  •Công cụ trao đổi thông tin hình ảnh âm Mục tiêu đồ án tốt nghiệp tìm hiểu mô hình công nghệ truyền âm mạng máy tính, sở xây dựng ứng dụng truyền thông âm Trang thoại mạng cục Đồ án xây dựng thử nghiệm hệ thống cho phép trao đổi thông tin tiếng nói thoại, tương tác điểm – điểm mạng LAN Đồ án trình bày gồm chương với bố cục sau : Chương I : Tìm hiểu mô hình điện thoại qua mạng, Từ đưa mô hình thực thi đồ án Chương II: Giới thiệu chung giao thức truyền thông mạng Internet vào khảo sát cụ thể giao thức Chương III : Giới thiệu chuẩn mã hoá nén âm Chương IV : Tìm hiều môi trường lập trình SDK Windows ứng dụng mạng Chương V : Thiết kế chương trình truyền tiếng nói qua mạng LAN thông qua trợ giúp công cụ SDK Đánh giá kết thử nghiệm Phần kết luận : Nêu kết đề tài hướng nghiên cứu hướng phát triển Trang CHƯƠNG I TÌM HIỂU MÔ HÌNH ĐIỆN THOẠI QUA MẠNG I.1 CÁC MÔ HÌNH ĐIỆN THOẠI I.1.1 MÁY TÍNH ĐẾN MÁY TÍNH Trong mô hình hai thuê bao sử dụng máy tính nối vào mạng IP thiết bò đầu cuối Tiếng nói mã hoá sau nén trình nhận liệu hoàn toán giống với quy trình ngược lại giải nén, giải mã phần mềm Trong mô hình đòi hỏi hai thuê bao cần phải có soundcard, microphone, loa phần mềm giống nhau.[1] Máy tính Máy tính IP Hình I.1 : Mô hình PC - PC Máy tính Gatewa y I.1.2 MÁY TÍNH ĐẾN ĐIỆN THOẠI HOẶC ĐIỆN THOẠI ĐẾN MÁY TÍNH Trong mô hình này, thuê bao sử dụng máy tính nối mạng với mạng thuê bao sử dụng điện thoại mạng PSTN/ISDN/GSM/TDM Sử dụng gateway để chuyển tiếng nói mạng IP thành tiếng nói mạng PSTN trao đổi thông tin hai mạng Như vậy, máy tính phải đầy đủ thiết bò Soundcard, loa, microphone phần mềm thông qua server mạng IP để kết nối với mạng PSTN thông qua Geteway Điện I PSTN thoại P Hình I.2 : Mô hình Máy tính – Điện thoại I.1.3 ĐIỆN THOẠI ĐẾN ĐIỆN THOẠI Trong mô hình này, hai thuê bao sử dụng điện thoại bình thường mạng IP sử dụng trường hợp gọi đường dài Gateway sử dụng hai đầu để chuyển đổi liệu mạng với nhau.[1] I PST PST Hình I.3 : Mô hình Điện thoại – Điện P N Nthoại Điện thoại Gateway Gateway Điện thoại Trang I.2 YÊU CẦU ỨNG DỤNG TRUYỀN ÂM THANH TRÊN MẠNG LAN Trong phần phân tích yêu cầu xây dựng ứng dụng truyền âm mạng LAN : Từ ba mô hình em nhận thấy mô hình đòi hỏi trình nghiên cứu thiết bò phức tạp, đòi hỏi phải đầu tư công nghệ thực Nên đồ án thức theo mô hình PC – PC, đơn giản không cần đầu tư thiết bò mới, tận dụng thiết bò có sẵn điều quan trọng thử nghiệm hoàn chỉnh phạm vi đồ án Vấn đề đặt với hệ thống mạng LAN, WAN với tài nguyên sẵn có xây dựng chương trình truyền tiếng nói với thời gian thực cho phép từ máy sang máy khác (point to point) với số yêu cầu thích hợp giống việc xử lý truyền tiếng nói thông tin liên lạc (điện thoại hữu tuyến) Chương trình sử dụng giao thức TCP/IP giao thức phổ biến tin cậy để kết nối truyền tiếng nói Do sử dụng giao thức TCP giao thức có liên kết nên dẫn đến độ trễ lớn với ứng dụng mạng LAN chấp nhận Ngay tiếng nói thu qua số xử lý mã hoá tiếng nói nén máy, tiếng nói truyền tới máy cần kết nối qua xử lý ngược so với lúc thu giải nén giải mã để phát loa Chương trình cho phép kết nối hai máy tạo mô hình điện thoại máy tính điện thoại hữu tuyến thông thường Bất kỳ máy mạng chế độ chờ hay chế độ chạy (background) gọi máy P-SERVER; máy chế độ gọi (active) gọi P-CLIENT Như máy mạng P-SERVER P-CLIENT Trên môi trường mạng, muốn nói chuyện người máy đó, tiến hành việc gọi liên kết Việc gọi liên kết tiến hành việc xác đònh đòa IP máy mà cần liên kết Sau chờ việc xác lập liên kết Ở máy gọi có thông báo cho người sử dụng biết có người khác Trang muốn nói chuyện Tùy theo người đònh có chấp nhận hay không Nếu chấp nhận liên kết xác lập hai bên tiến hành trao đổi thông tin với Trong trình trao đổi thông tin, máy truyền tiếng nói người sử dụng đồng thời nhận liệu âm máy liên kết Khi nói chuyện xong, liên kết bò hủy bỏ chương trình kết thúc Nếu máy gọi người trả lời sau thời gian chờ vượt giới hạn liên kết bò huỷ bỏ Vì liệu truyền nhận chương trình liệu dạng liên tục âm có yêu cầu đặt sau: Bảo đảm tính mạch lạc liệu Tiếng nói trình thông tin phải rõ ràng, liền lạc, không bò ngắt quãng Các yêu cầu đặt nhiệm vụ mà phải giải việc xây dựng chương trình Đối với liệu âm thanh, phải xem xét thông số trình lấy mẫu đầu vào Các thông số đặc trưng : tần số lấy mẫu, số bit biểu diễn cho điểm lấy mẫu, kênh lấy mẫu sử dụng kênh (mono) hay hai kênh (stereo) Do phải tổ chức kích thước buffer âm cho phù hợp với việc truyền nhận đạt tốc độ cao Một vấn đề khác đặt với liệu âm việc nhận phát đầu ra, phải quan tâm đến việc xử lý loại bỏ tín hiệu nhiễu giúp cho âm rõ ràng, trung thực Do việc truyền nhận liệu môi trường mạng nên phải quan tâm đến tốc độ, lưu lượng trao đổi liệu, thời gian truyền nhận để đưa cách giải cho phù hợp Ngoài vấn đề trên, số yêu cầu khác đặt cho ứng dụng : chế tạo lập liên kết, việc chọn lựa dạng format liệu, đònh thông số thời gian Tất nhiệm vụ thực thi phải thực thông qua giao diện dễ dàng cho người sử dụng.[3] Trường hợp mở rộng hệ thống cho mạng Internet cần kết nối server mạng với tổng đài mạng PABX, yêu cầu đòi hỏi phức tạp cần có trang thiết bò để thử nghiệm Bởi đồ án em nghiên cứu cách thức truyền tiếng nói mạng nội Trang CHƯƠNG II KHẢO SÁT CÁC GIAO THỨC TRUYỀN THÔNG II.1 KHÁI NIỆM CƠ BẢN GIAO THỨC TCP/IP Trong hệ thống mạng Internet, máy có tên đòa IP (Internet Protocol) Tên hay đòa IP xác đònh máy hệ thống mạng Internet Giữa tên máy đòa IP chuyển đổi thông qua hàm Đòa IP biểu diễn số 32 bits Mỗi giao diện mạng nút có hỗ trợ ngăn xếp IP gán đòa IP Đòa IP gồm phần : số mạng(netid) số máy chủ (hostid) Những bits quan trọng dùng để xác đònh số lượng bits dùng cho netid hostid Có lớp đòa xác đònh A,B,C,D E Trong đó, lớp A,B,C chứa đòa gián Lớp D dành riêng cho kỹ thuật Multicasting sử dụng giao thức đặc biệt để truyền thông điệp đến nhóm nút chọn lọc Lớp E dành riêng cho ứng dụng tương lai.[5] Trang Hình II.1 Các lớp đại IP Hình II.2 TCI/IP mô hình OSI Netid nhận dạng cho mạng riêng biệt Các kiểu lớp đòa IP cho thấy số lượng mạng số lượng nút lớp khác Bảng cho thấy số lượng mạng số lượng nút lớp đòa : Lớp đòa A B C Số lượng mạng 127 16.383 2.097.151 Số lượng nút 16.777.241 65.534 254 Trang Mạng lớp A dùng cho mạng diện rộng Trường netid có bits nên có 127 mạng Mạng lớp B mạng có kích thước trung bình thích hợp cho tổ chức có quy mô lớp vừa Mạng lớp C dùng quan nhỏ, mạng có không 254 nút Con số 32 bits biểu thò chữ số thập phân tương ứng giá trò byte tạo thành đòa IP Những số thập phân cách dấu chấm (.) Một ví dụ tên máy đòa IP máy : Hostname : viethung IP Address : 192.168.0.55 II.1.1 KHÁI NIỆM SOCKET Socket đơn vò cấu trúc truyền thông chiều Chúng đọc hay ghi lên Tuy nhiên socket thành phần mối máy mạng máy tính thao tác đọc ghi thao tác trao đổi liệu ứng dụng nhiều máy khác Socket điểm kết nối cuối cho phép ứng dụng gắn vào mạng Khái niệm socket cung cấp thư viện chứa tất hàm yêu cầu cho chương trình mạng Khi ứng dụng yêu cầu dòch vụ mạng, gọi trình tự tập hợp thư viện để quản lý hoạt động mạng Hai loại socket có sẵn stream datagram.[5] Những socket stream dùng cho TCP (Transmission Control Protocol), socket datagram dùng UDP (User Datagram Protocol) Máy B Máy A Port Mối nối Port TCI/IP Interface Hình II.3 Các socket port mối nối TCP/IP Số hiệu cổng 11 Mô tả Reserved Management Entry Remote Job Entry Echo Discard Systat Trang 13 15 17 20 21 23 25 37 42 49 53 80 102 103 104 111 139 160-223 Daytime Netstat Quoted(quote of the day) FTP data FTP control Telnet SMTP Time Host name server Login host protocol Domain name server World wide web HTTP ISO-TSAP x.4000 X.4000 sending server Sun RPC NetBIOS session source Reserved Ghi chuù : Trò số cổng ứng dụng : - Các ứng dụng chuẩn : – 999 - Các ứng dụng không chuẩn : 1000 – 64000 II.1.2 GIAO THỨC IP Internet protocol (IP) dạng giao thức truyền tin thiết kế cho mạng chuyển mạng gói Vai trò IP tương đương với vai trò tầng mạng mô hình OSI Giao thức IP đảm nhiệm việc chuyển gói mạch liệu (datagram) từ đòa nguồn đến đòa đích Đòa IP có đòa cố đònh (4 byte) dùng để xác đònh trạm làm việc tham gia vào việc truyền, nhận liệu Trong trường hợp mạng truyền tin truyền gói liệu có kích thức nhỏ, giao thức IP đảm nhiệm chức chia nhỏ gói liệu có kích thước lớn trước truyền gộp chúng lại chúng sau nhận được.[5] Giao thức IP thiết kế với chức chuyển gói bit, gọi internet datagram từ đòa nguồn đến đòa đích Đây giao thức theo kiểu không liên kết, nghóa giai đoạn thiết lập liên kết trước truyền liệu, chế bảo đảm thông tin tới đích an toàn, chế điều khiển luồng liệu Trên thực tế việc thông báo lỗi Trang 10 đường truyền thực nhờ giao thức khác có tên ICMP( Internet Control Message Protocol) Đòa IP nói trên, chuỗi bit có độ dài byte, phân chia làm lớp bit dùng làm đònh danh lớp đòa II.2 GIAO THỨC TCP Giao thức TCP giao thức dùng cho tầng tầng IP Đối với mô hình OSI, ta thấy tầng TCP có vai trò tương ứng với tầng giao vận tầng phiên Khác với IP, TCP giao thức có liên kết (connection oriented), nghóa thiết phải có giai đoạn thiết lập liên kết giữ cặp thực thể TCP trước chúng có trao đổi liệu với Giao thức TCP cung cấp khả truyền liệu cách an toàn thực thể mạng Nó cung cấp chức nhằm kiểm tra tính xác liệu gửi đến gửi lại liệu có lỗi xảy ra.[5] Đơn vò liệu TCP gọi segment Trong segment có cặp tham số số hiệu cổng trạm nguồn số hiệu cổng trạm đích Mỗi tiến trình ứng dụng trạm truy cập dòch vụ TCP thông qua cổng Một cổng kết hợp với đòa IP tạo thành socket mạng Dòch vụ TCP cung cấp nhờ liên kết logic cặp socket, socket tham gia liên kết với nhiều socket xa khác Trước truyền liệu chúng thiết lập liên kết nhu cầu truyền liệu liên kết giải phòng Mỗi ứng dụng TCP gồm hai phần client server Lưu đồ sau minh họa bước cần thiết để ứng dụng client server giao tiếp với : Trang 56 Lưu đồ modul thu phát tiếng nói sau : Bắt đầu Khoá buffer DirectSou nd Chép tín hiệu âm vừa lấy mẫu vào Record buffer Play buffer có liệu đú ng Chép play buffer vào Secondary buffer sai Mở khoá buffer DirectSound Kích hoạt modul mã hoá Kết thúc Hình V.3 Lưu đồ modul thu phát tiếng nói V.2.4 MODUL MÃ HOÁ GIẢI MÃ ÂM THANH Modul mã hoá kích hoạt sau modul VAD xác đònh tín hiệu âm có chức tiếng nói Công việc modul mã hoá gọi đến thủ tục mã hoá tiếng nói(GSM,LPC…) Sau đó, chuyển liệu mã hoá vào Send buffer tồi kích hoạt modul truyền Modul nhận nằm thread mã hoá, có mức ưu tiên bình thường Trang 57 Sau lưu đồ giải thuật modul mã hoá : Bắt đầu Play buffer có đúliệu sai Kết thúc ngmột khung Lấy tiếng nói từ Record buffer Mã hoá theo phương pháp PCM Chép khung tiếng nói mã hoá vào Sendbuffer Kích hoạt modul truyền Hình V.4 Lưu đồ giải thuật modul mã hoá Modul giải mã tiếng nói kích hoạt sau modul nhận liệu từ máy xa Loại bỏ Header, liệu thừa đưa vào buffer nhận Modul giải mã xá đònh phương pháp giải mã tương ứng với phương pháp mã hoá sử dụng bên truyền Sau chuyển liệu mã hoá vào buffer phát tiếng nói Trang 58 Lưu đồ giải thuật modul giải mã sau : Bắt đầu Buffer nhận có đúliệu sai Kết thúc ngmột khung Lấy tiếng nói từ buffer nhận Mã hoá theo phương pháp PCM Chép khung tiếng nói vào buffer phát Hình V.5 Lưu đồ giải thuật modul mã hoá V.2.5 MODUL TRUYỀN, NHẬN ÂM THANH Modul có nhiệm vụ giao tiếng máy tính với mạng IP Sử dụng giao thức TCP/IP Khi buffer truyền có liệu cần truyền đi, modul truyền kích hoạt liệu cần truyền có thêm header thông tin cần thiết khác Modul truyền có mức ưu tiên bình thường Khi có liệu đến, winsock gửi thông báo đến chương trình, chương trình nhận thông báo kích hoạt modul nhận Modul nàu có nhiệm vụ nhận liệu, kiểm tra, loại bỏ liệu thừa với header Sau chuyển liệu vào buffer nhận kích hoạt modul giải mã Trang 59 Lưu đồ giải thuật modul truyền nhận : Bắt đầu Buffer truyền có đúliệu sai Kết thúc ngmột khung Lấy tiếng nói từ buffer truyền Truyền theo giao thức TCP Hình V Lưu đồ giải thuật modul truyền Bắt đầu Có goi tin chưa nhận sai Kết thúc đú ng Dùng giao thức TCP Lấy gói tin Kích hoạt modul giải mã Hình V.7 Lưu đồ giải thuật modul nhận V.3 THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH CPHONE Chương trình thực với điều kiện hai máy đàm thoại phải chạy chương trình ứng dụng Giao diện chương trình : Trang 60 Hình V.8 Giao diện chương trình CPhone Khi muốn bắt đầu đàm thoại, người sử dụng vào menu kết nối click vào nhập IP Điều gọi hàm tạo kết nối hai máy PC, hàm hiển thò cửa sổ yêu cầu người sử dụng nhập vào IP máy cần kết nối Sau nhập xong click connect, thông điệp yêu cầu kết nối gửi đến máy cần kết nối Trang 61 Hình V.9 Nhập đòa IP Nếu tín hiệu chưa cho phép trình đàm thoại Khi có tín hiệu phản hồi hàm khởi động sound card, card mạng socket gọi thực cuốc đàm thoại Hình V.10 Cuộc đàm thoại thực IV.4 KẾT QUẢ THỰC NGHIỆM&NHẬN XÉT ĐÁNH GIÁ CHƯƠNG TRÌNH Trang 62 IV.4.1 KẾT QUẢ THỰC NGHIỆM Môi trường thử nghiệm đồ án mạng LAN, sử dụng công nghệ Ethernet 10 Mbps Hiện truyền liệu máy tính mạng LAN ít, phần lớn tài nguyên dải thông mạng chưa sử dụng Phần giải thông lại lớn để truyền tín hiệu tiếng nói, lý nên độ trễ point – to – point mạng nhỏ tương đối đồng (hầu hết < 10ms), giá trò nhỏ so với mức chấp nhận 200ms Vì chất lượng đàm thoại trường hợp phụ thuộc vào chất lượng sound card IV.4.2 ĐÁNH GIÁ KẾT QUẢ Qua thử nghiệm, em thấy chất lượng tiếng nói đầu khác biệt so với chất lượng tiếng nói đầu vào, chất lượng âm sau truyền chấp nhận Như du đánh giá qua cảm nhận tai mà nên chưa thể khảng đònh chất lượng tiếng nói sau truyền có đạt tiêu chuẩn cho phép hay không Nếu sử dụng máy đo thông số liên quan đến chất lượng tiếng nói, phương pháp đảm bảo đánh giá xác chất lượng tiếng nói điều kiện chấp nhận Nhưng luận văn dừng lại mức độ đồ án tốt nghiệp điều kiện không cho phép nên chưa có thiết bò đo thông số tiếng nói Vì vậy, chưa thể đánh giá chất lượng âm cách xác So với số dòch vụ truyền âm thoại : VoIP (dòch vụ 171) , Internet Telephony chất lượng âm tốt Vì mô hình Cphone ứng dụng mạng cục nên tốc độ đường truyền cao, mặt khác khoảng cách ngắn Tuy nhiên độ trễ lớn song với mạng cục vấn đề chấp nhận Còn dòch vụ 171 hay Internet Telephony chất lượng âm giai đoạn đầu nói chung không đạt mong muốn người sử dụng chất lượng âm cải thiện đáng kể đặc biệt ứng dụng ngày đưa vào phục vụ sống Trang 63 KẾT LUẬN Đồ án tốt nghiệp hoàn thành nhiệm vụ đề phạm vi cho phép Do điều kiện thời gian trình độ hạn chế nên đồ án dừng lại mức nghiên cứu số phương pháp mã hoá tiếng nói số giao thức truyền tín hiệu mạng Internet TCP/IP, UDP Trên sở xây dựng phần mềm thử nghiệm truyền tiếng nói thoại mạng LAN Đồ án em sử dụng hàm có sẵn môi trường SDK từ xây dựng ứng dụng CPhone liên kết hai máy lại thực trình trao đổi âm Phần thử nghiệm dừng lại việc xây dựng ứng dụng truyền tiếng nói thực thể PC theo giao thức TCP/IP tiếng nói mã hoá theo phương pháp PCM nên tỷ số nén tốc độ truyền chưa cao Mặt khác, đánh giá chất lượng tiếng nói theo phương pháp chủ quan nên chưa khảng đònh điều độ trễ chất lượng tiếng nói sau truyền Thế đạt đồ án chủ yếu nhằm giúp em nắm bắt vững mặt lý thuyết nắm quyền kiểm soát, quyền điều khiển ứng dụng thực tế, kết qua trọng hữu ích cho hoạt động nghiên cứu sau cho dù nội dung luận văn phần thử nghiệm chưa đầy đủ hoàn chỉnh mong muốn Hiện nay, mô hình truyền tiếng nói mạng(VoIP) nghiên cứu phát triển mạng giới nói chung nước ta nói riêng, vấn đề mới, đặc biệt ứng dụng cho mạng Internet Qua thử nghiệm cho thấy hướng nghiên cứu tiếp tục nâng cấp để đưa vào sử dụng, trước tiên với mô hình nhỏ dùng cho mạng cục phòng ban Từ phát triển đưa vào sử dụng diện rộng nhăm tăng chất lượng đàm thoại, giảm giá thành gọi để thương mại hoá sản phẩm Về lâu dài nghiên cứu, xây dựng giải mã cho ngôn ngữ tiếng việt; nghiên cứu ghép thêm modul nhằm tạo đàm thoại mật để đảm bảo an toàn gọi Trang 64 PHẦN PHỤ LỤC Các từ viết tắt, ký hiệu : AbS : Analysis by Synthesis ADPCM : Adaptive Differential Pulse Code Modulation ATC : Adaptive Transform Coding PABX : Private Automatic Branch eXchange PCM : Pulse Code Modulation GMS : Global System for Mobile telecommucations ETSI : European Telecommunication Standards Institude GSM : Global System for Mobile telecommunication protocol MCI : Media Control Interface TCP : Transmission Control Protocol UDP : User Datagram Protocol IP : Internet protocol RIFF : Resource Interchange File Format IMA : Interactive Multimedia Association ICMP : Internet Control Message Protocol LPC : Linear Prediction Coding OSI : Open System Interconnection Trang 65 Chương trình nguồn : Đoạn chương trình thực hiên chức đợi (chạy nền) UINT Server(LPVOID param) { const PORT=1967; const NO_FLAGS_SET=0; const MAXBUFLEN=500; WSADATA Data; SOCKADDR_IN SvrAddr,CIntAddr; SOCKET SvrSock,CIntSock; int AddrLen=sizeof(SOCKADDR_IN); int status,nbyte,nbsend; char bufferrecv[MAXBUFLEN],buffersend[80]; //Khởi tạo Windows Socket DLL status=WSAStartup(MAKEWORD(1,1),&Data); if(status!=0) { MessageBox(NULL,"ERROR: WSAStartup unsuccessful.", "WSAStartup error!",MB_ICONEXCLAMATION); return(-1); } memset(&SvrAddr,0,sizeof(SvrAddr)); SvrAddr.sin_port=htons(PORT); SvrAddr.sin_family=AF_INET; SvrAddr.sin_addr.s_addr=htonl(INADDR_ANY); SvrSock=socket(AF_INET,SOCK_STREAM,0); if(SvrSock==INVALID_SOCKET) { MessageBox(NULL,"ERROR: Socket unsuccessful.","Socket error !", MB_ICONEXCLAMATION); WSACleanup(); return(-1); } //Kết buộc socket với PORT bind(SvrSock,(LPSOCKADDR)&SvrAddr,sizeof(SvrAddr)); //Chờ client nối vào listen(SvrSock,1); //Xác nhận mối nối có client nối vào CIntSock=accept(SvrSock,(LPSOCKADDR)&CIntAddr,&AddrLen); if(CIntSock==INVALID_SOCKET) { MessageBox(NULL,"ERROR: Connect unsuccessful.","Connect error !", MB_ICONEXCLAMATION); closesocket(CIntSock); WSACleanup(); return(-1); Trang 66 } else { nbyte=recv(CIntSock,bufferrecv,MAXBUFLEN,NO_FLAGS_SET); if((nbyte==0)||(nbyte==SOCKET_ERROR)) { MessageBox(NULL,"Please the end conversation !","The conversation !",MB_ICONEXCLAMATION); closesocket(CIntSock); WSACleanup(); return(-1); } else MessageBox(NULL,bufferrecv,"The coversation !",MB_ICONINFORMATION); strcpy(buffersend,"Receivered the signal Please begin the conversation."); nbsend=send(CIntSock,buffersend,strlen(buffersend)+1,NO_FLAGS_SET); if(nbsend!=(int)strlen(buffersend)+1) { closesocket(CIntSock); WSACleanup(); return(0); } return(0); } } Đoạn mã thực kết nối hai máy : // Tạm dừng trạng thái chờ SuspendThread(Server); // Chuyển sang trạng thái gọi m_DestAddrStr=dialog.m_DestAddrStr; if(m_DestAddrStr=="") { MessageBox("ERROR: Hostname is unknown !","Error hostname !", MB_ICONEXCLAMATION); return(-1); } const PORT=1967; const NO_FLAGS_SET=0; const MAXBUFLEN=256; WSADATA Data; SOCKADDR_IN SockAddr; unsigned long DestAddr; int status,nbyte,nbrecv; char SendBuf[50],RecvBuf[MAXBUFLEN]; // Khởi tạo Windows Socket DLL status=WSAStartup(MAKEWORD(1,1),&Data); if(status!=0) { MessageBox("ERROR :WSAStartup unsuccessf", "Error WSAStarup !",MB_ICONEXCLAMATION); return(-1); } // Nhận đòa internet, chuyển sang dạng byte DestAddr=inet_addr(m_DestAddrStr); Trang 67 //Khởi tạo cấu trúc SOCKADDR_IN SockAddr.sin_addr=*(struct in_addr*)&DestAddr; SockAddr.sin_port=htons(PORT); SockAddr.sin_family=AF_INET; // Tạo socket hSock=socket(AF_INET,SOCK_STREAM,0); if(hSock==INVALID_SOCKET) { MessageBox("ERROR: Socket unsuccessful.","Error Socket", MB_ICONEXCLAMATION); WSACleanup(); return(-1); } // Nối vào máy chạy ứng dụng server status=connect(hSock,(LPSOCKADDR)&SockAddr,sizeof(SockAddr)); if(status==SOCKET_ERROR) { MessageBox("ERROR: Connect unsuccessful !","Error connect !", MB_ICONEXCLAMATION); closesocket(hSock); WSACleanup(); return(-1); } else { strcpy(SendBuf,"There is the signal send to your computer !"); nbyte=send(hSock,SendBuf,strlen(SendBuf)+1,NO_FLAGS_SET); nbrecv=recv(hSock,RecvBuf,MAXBUFLEN,NO_FLAGS_SET); if((nbrecv==0)||(nbrecv==SOCKET_ERROR)) { MessageBox("Please end the conversation !", "The conversation",MB_ICONEXCLAMATION); closesocket(hSock); WSACleanup(); return(-1); } else MessageBox(RecvBuf,"The conversation",MB_ICONINFORMATION); } // Kết thúc trạng thái gọi // Khôi phục lại trạng thái chờ ResumeThread(Server); return(1); } Đoạn chương trình thực chức ghi âm từ micro void CWAveIn::recordWaveData() { HWAVEIN hWaveIn; HWND hwndApp=NULL; HGLOBAL hWaveHdr; LPWAVEHDR lpWaveHdr; HMMIO hmmio=NULL; UINT wResult; Trang 68 HANDLE hFormat=NULL; WAVEFORMAT pFormat; DWORD dwDataSize=1000; // Mở thiết bò wave để phaùt if (!waveInOpen((LPHWAVEIN)&hWaveIn, WAVE_MAPPER, (LPWAVEFORMATEX)&pFormat, (LONG)waveInProc, DWORD(this), CALLBACK_FUNCTION)) { MessageBox( "Failed to open waveform input device.", NULL,MB_OK | MB_ICONEXCLAMATION); LocalUnlock(hFormat); LocalFree(hFormat); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the waveform data hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, dwDataSize ); if (!hData) { MessageBox( "Out of memory.", NULL, MB_OK | MB_ICONEXCLAMATION); mmioClose(hmmio, 0); return; } if ((lpData =(HPSTR)GlobalLock(hData)) == NULL) { MessageBox( "Failed to lock memory for data chunk.", NULL, MB_OK | MB_ICONEXCLAMATION); GlobalFree(hData); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the header hWaveHdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, (DWORD) sizeof(WAVEHDR)); if (hWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox("Not enough memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } lpWaveHdr = (LPWAVEHDR) GlobalLock(hWaveHdr); if (lpWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox( "Failed to lock memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } // After allocation, set up and prepare header lpWaveHdr->lpData = lpData; Trang 69 lpWaveHdr->dwBufferLength = dwDataSize; lpWaveHdr->dwFlags = 0L; lpWaveHdr->dwLoops = 0L; waveInPrepareHeader(hWaveIn, lpWaveHdr, sizeof(WAVEHDR)); // Gởi khối liệu đến thiết bò phát wResult = waveInAddBuffer(hWaveIn, lpWaveHdr, sizeof(WAVEHDR)); if (wResult = 0) { waveInUnprepareHeader(hWaveIn, lpWaveHdr, sizeof(WAVEHDR)); GlobalUnlock( hData); GlobalFree(hData); MessageBox( "Failed to write block to device", NULL, MB_OK | MB_ICONEXCLAMATION); return; } wResult = waveInStart(hWaveIn); if (wResult != 0) return; } Đoạn chương trình play liệu âm void CWAveIn::playbackWaveData() { HWAVEOUT hWaveOut; HWND hwndApp =NULL; HGLOBAL hWaveHdr; LPWAVEHDR lpWaveHdr; HMMIO hmmio=NULL; UINT wResult; HANDLE hFormat=NULL; WAVEFORMAT pFormat; DWORD dwDataSize=1000; // Mở thiết bò wave để phát if (waveOutOpen((LPHWAVEOUT)&hWaveOut, WAVE_MAPPER, (LPWAVEFORMATEX)&pFormat, (LONG)hwndApp, 0L, CALLBACK_WINDOW)) { MessageBox( "Failed to open waveform output device.", NULL,MB_OK | MB_ICONEXCLAMATION); LocalUnlock(hFormat); LocalFree(hFormat); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the waveform data hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, dwDataSize ); if (!hData) { MessageBox( "Out of memory.", NULL, MB_OK | MB_ICONEXCLAMATION); mmioClose(hmmio, 0); return; } if ((lpData =(HPSTR)GlobalLock(hData)) == NULL) Trang 70 { MessageBox( "Failed to lock memory for data chunk.", NULL, MB_OK | MB_ICONEXCLAMATION); GlobalFree(hData); mmioClose(hmmio, 0); return; } // Allocate and lock memory for the header hWaveHdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, (DWORD) sizeof(WAVEHDR)); if (hWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox("Not enough memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } lpWaveHdr = (LPWAVEHDR) GlobalLock(hWaveHdr); if (lpWaveHdr == NULL) { GlobalUnlock(hData); GlobalFree(hData); MessageBox( "Failed to lock memory for header.", NULL, MB_OK | MB_ICONEXCLAMATION); return; } // After allocation, set up and prepare header lpWaveHdr->lpData = lpData; lpWaveHdr->dwBufferLength = dwDataSize; lpWaveHdr->dwFlags = 0L; lpWaveHdr->dwLoops = 0L; waveOutPrepareHeader(hWaveOut, lpWaveHdr, sizeof(WAVEHDR)); // Gởi khối liệu đến thiết bò phát wResult = waveOutWrite(hWaveOut, lpWaveHdr, sizeof(WAVEHDR)); if (wResult != 0) { waveOutUnprepareHeader(hWaveOut, lpWaveHdr, sizeof(WAVEHDR)); GlobalUnlock( hData); GlobalFree(hData); MessageBox( "Failed to write block to device", NULL, MB_OK | MB_ICONEXCLAMATION); return; } } ... thiết lập giá trò cho bit tương tự bước trước CHƯƠNG IV TÌM HIỂU HỖ TR CỦA WINDOWS SDK Trang 25 TRONG XỬ LÝ VÀ TRUYỀN NHẬN ÂM THANH IV.1 MÔI TRƯỜNG LẬP TRÌNH SDK ĐỐI VỚI TRUYỀN ÂM THANH Môi trường. .. nén âm Chương IV : Tìm hiều môi trường lập trình SDK Windows ứng dụng mạng Chương V : Thiết kế chương trình truyền tiếng nói qua mạng LAN thông qua trợ giúp công cụ SDK Đánh giá kết thử nghiệm... thống mạng TCP/IP Chúng ta cần cài đặt ứng dụng client server Ứng dụng client có nhiệm vụ gửi thông báo đến tất instance ứng dụng server chạy hệ thống mạng. [5] II.3.1 CÁCH CÀI ĐẶT ỨNG DỤNG SERVER
- Xem thêm -

Xem thêm: Tìm hiểu môi trường lập trình SDK windows và ứng dụng trên mạng, Tìm hiểu môi trường lập trình SDK windows và ứng dụng trên mạng, TÌM HIỂU MÔ HÌNH ĐIỆN THOẠI QUA MẠNG, II.1 KHÁI NIỆM CƠ BẢN GIAO THỨC TCP/IP, III.1 CÁC PHƯƠNG PHÁP MÃ HOÁ, Mã hoá hỗn hợp, III.2 CÁC PHƯƠNG PHÁP NÉN TIẾNG NÓI, IV.1 MÔI TRƯỜNG LẬP TRÌNH SDK ĐỐI VỚI TRUYỀN ÂM THANH, IV.2 KỸ THUẬT TRUYỀN NHẬN ÂM THANH TRÊN MẠNG IP, TRUYỀN ÂM THANH TRÊN MẠNG LAN, V.1 MÔI TRƯỜNG VÀ CÔNG CỤ LẬP TRÌNH, V.2 THIẾT KẾ CHƯƠNG TRÌNH CPHONE, V.3 THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH CPHONE

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay