• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      實時交互支持系統(tǒng)的設(shè)計與實現(xiàn)

      2024-08-13 00:00:00張玲玲
      中國新通信 2024年9期

      摘要:實時交互支持系統(tǒng)(Real-time Interactive Support System,RISS)是一種基于人工智能技術(shù)的自動響應(yīng)系統(tǒng),旨在為用戶提供實時的、個性化的交互式支持。本文將對實時交互支持系統(tǒng)的核心設(shè)計與實現(xiàn)進行探討。

      關(guān)鍵詞:實時交互;支持系統(tǒng);設(shè)計;實現(xiàn)

      一、引言

      作為師生之間交流的工具,實時交互支持系統(tǒng)可以為他們提供最大限度的保障和服務(wù),提升學生學習的積極性和學習效率,從而能夠幫助實現(xiàn)最終的教學目的。

      二、實時交互支持系統(tǒng)的需求分析

      考慮到遠程系統(tǒng)中可能的應(yīng)用場景,可以列出如下需求:

      (1)考慮到系統(tǒng)后期的可擴展性,可以按照需求構(gòu)建系統(tǒng)的基本元件庫,后期可以進行增補。

      (2)為了方便用戶對矢量圖中元素的選取和修改,需要提供矢量圖的拾取功能。

      (3)為圖片的各種操作,比如旋轉(zhuǎn)、平移、縮放、添加、編輯、刪除等功能提供方便易用的操作界面。

      (4)為了實現(xiàn)交互對象在多個用戶端同步顯示和實時更新,以提供較好的異地瀏覽和討論體驗,系統(tǒng)需要保證在多人參與的環(huán)境中操作信息能夠及時同步。

      (5)為方便用戶隨時復習和查看已經(jīng)保存的信息,需要將文件保存為系統(tǒng)能識別的自定義格式。

      (6)為了能夠進行多人語音討論,需要提供容納多人語音通信的網(wǎng)絡(luò)通話功能。

      (7)教師在其機器上進行的操作,如果有需求,可以讓其操作在學生機器上重現(xiàn),以實現(xiàn)遠程桌面功能。

      (一)實時交互支持系統(tǒng)的解決方案

      上面提到的大部分功能都能夠直接基于.NET框架實現(xiàn),但有部分功能需要對內(nèi)存進行操作,而.NET這方面較難實現(xiàn)。對這部分功能,選擇VC++進行COM開發(fā)以最終完成更為底層和復雜的工作。

      (二).NET框架簡介

      .NET框架簡化了當前復雜網(wǎng)絡(luò)環(huán)境下應(yīng)用程序的開發(fā),具有如下優(yōu)點:

      (1)它是一種基于網(wǎng)絡(luò)的應(yīng)用服務(wù),基于該框架的軟件開發(fā)、維護和升級都可以在互聯(lián)網(wǎng)上完成,并且兼容多種類型的網(wǎng)絡(luò)設(shè)備。這得益于該框架基于XML語言對幾個常用協(xié)議進行了定義,包括網(wǎng)頁服務(wù)描述語言(WSDL)、網(wǎng)頁服務(wù)發(fā)現(xiàn)協(xié)議(DISCO)和簡單對象訪問協(xié)議(SOAP)等。

      (2)該框架基于公共語言運行時(Common Language Runtime,CLR)與類庫完美結(jié)合,所以可以支持多種編程語言,其強大的跨語言和跨平臺特性(繼承、異常處理、調(diào)試)使得多平臺交互變得非常容易。

      (3)可以自動管理內(nèi)存和進行垃圾回收,不必編寫內(nèi)存管理代碼手動管理內(nèi)存,可以避免編程過程中疏忽導致的內(nèi)存泄漏和非法引用錯誤。

      (4)由于避開了對注冊表的操作,并強制安全地執(zhí)行方式,讓代碼能夠在安全環(huán)境中執(zhí)行,這樣有效避免了惡意軟件代碼對系統(tǒng)的影響。

      (5).NET與COM組件具有很好的互操作性,不僅可以通過生成代理的技術(shù)在.NET工程中使用COM組件,還能在其他的應(yīng)用中使用.NET的組件。

      (6)框架的通信部分完全按照工業(yè)級別的標準產(chǎn)生,所以該框架下的代碼能夠很好地集成在其他代碼中。

      .NET框架的獨特之處在于它有兩個重要的組成組件,即.NET框架類庫和公共語言運行時庫。前者是一個綜合的面相對象類型集合,利用這些可重用的庫,開發(fā)者可以開發(fā)出從最簡單的命令行程序到復雜的ASP.NET最新程序;后者主要提供了一些核心的底層功能,比如線程管理、內(nèi)存回收、線程處理等,公共語言運行時庫還可以對運行的程序進行強制的類型檢查和安全檢查。

      C#語言是微軟專為.NET框架開發(fā)的一種簡單的、面向?qū)ο蟮?、類型安全的現(xiàn)代編程語言,它身上同時有VB運行高效的特點和C語言功能強大的特點,但是又避免了這兩種語言的一些缺點。比如,C#的代碼可以方便地與其他語言交互,還能夠直接使用.NET框架的諸多基本類庫,這讓項目的開發(fā)非常高效。另外,從語法的角度來看,C#比這兩種傳統(tǒng)編程語言更為簡潔明了。為了避免C語言開發(fā)過程中出現(xiàn)的指針混亂問題,C#放棄了指針和相關(guān)算法,轉(zhuǎn)而采用完全面向?qū)ο蟮脑O(shè)計,還提供了Windows下開發(fā)圖形界面程序的工具。

      三、實時交互支持系統(tǒng)功能模塊的劃分

      根據(jù)上面提到的需求分析,可以將整個實時交互系統(tǒng)分為以下幾種模塊:界面模塊、通信模塊、電子白板模塊、語音模塊和遠程桌面模塊。

      (一)界面與通信控制模塊

      這個模塊主要負責信息的交換和通信,如上傳本地端對圖形的操作信息、下載和同步遠程端的圖形操作信息、語音的采集、語音的接收、語音的回放、圖像的收和發(fā)等,甚至用戶與主界面之間的交互也是需要該模塊負責上傳和下載的。由于這些信息的通信需要同時進行,采用多線程技術(shù)對于每個任務(wù)建立一個線程。

      基于socket的網(wǎng)絡(luò)程序開發(fā)在TCP/IP網(wǎng)絡(luò)協(xié)議下非常普遍,很多基于互聯(lián)網(wǎng)的應(yīng)用都使用了socket。在TCP/IP網(wǎng)絡(luò)協(xié)議下,socket有些類似于計算機中的文件描述符,通過對文件描述符操作可以讀取和寫入文件,而對于socket進行類似的操作可以發(fā)送和接收數(shù)據(jù)。為了簡化通信協(xié)議和提高通信的安全性,本系統(tǒng)的網(wǎng)絡(luò)通信信道有兩個,分別是控制信道和數(shù)據(jù)信道。前者負責指令的傳輸、身份的驗證等工作,后者用來傳輸電子白板數(shù)據(jù)和語音圖像等數(shù)據(jù)。由于白板的圖像對于準確性的要求較高,所以采用了面向連接的socket,對于語音來說,實時性要求較高,所以采用了無連接的socket。不同的服務(wù)都在數(shù)據(jù)通道中建立了自己的連接,這種采用多個信道的通信方式與很多經(jīng)典的軟件和服務(wù)非常相似。

      系統(tǒng)的通信邏輯如下:①學生所在的客戶端主動與教師所在的服務(wù)端主動建立TCP連接,該連接用來傳輸命令;②客戶端發(fā)送帶用戶名和密碼的驗證報文,教師端則對其進行驗證,如果正確則發(fā)送“接受連接”的報文,否則發(fā)送“拒絕連接”的報文,并告訴客戶端拒絕的原因;③在任何情況下,學生在斷開連接的時候都需要向教師端發(fā)送“退出”的報文,其中包含需要退出的賬號信息;④學生的客戶端可以向服務(wù)端請求多種類型的服務(wù)(如電子白板服務(wù)、語音服務(wù)、遠程桌面服務(wù)等),如果請求被教師端接受,學生端會受到來自教師端的“回應(yīng)”報文,這個報文里包含該服務(wù)對應(yīng)的端口號和傳輸層所使用的協(xié)議(UDP或TCP),如果不同意,教師端不需要做任何回應(yīng);⑤學生根據(jù)收到的報文使用相應(yīng)的協(xié)議連接到對應(yīng)的端口上,并啟動本地端的相關(guān)服務(wù),在接收服務(wù)的過程中,如果學生需要停止服務(wù),也需要向服務(wù)端發(fā)送“停止”報文。

      (二)電子白板模塊

      數(shù)據(jù)預(yù)處理子模塊主要負責讀取系統(tǒng)的和用戶自定義的圖庫文件。為了方便用戶隨時取用,這些圖庫元素通常被放在模具面板的左邊。如果用戶有更多繪圖方面的需求,可以自定義相應(yīng)的模具以提升圖形的繪制速度和圖像的質(zhì)量。這種方式不僅可以提供較好的擴展性,還能方便用戶后期對圖庫進行修改。這些自定義圖庫通常采用XML語言進行描述,每個圖庫由多個模具文件組成,大量的圖元信息包含在這些模具文件中。為了同時滿足信息傳輸和交換的便利性及較為普遍的繪圖需求,需要精心設(shè)計圖元信息的描述方式。這個模塊負責繪圖的顯示和可能的交互,如旋轉(zhuǎn)、平移、縮放、裁剪等。電子白板的主要功能也就是對圖像的操作和同步顯示,所以這個模塊是整個系統(tǒng)的核心。為了方便對圖像的操作和管理,本系統(tǒng)劃分了連線圖元、標注文本圖元、結(jié)構(gòu)圖元這三個基本的圖形元素,它們每個都是一個獨立的對象。

      對圖像的元素進行選擇和拾取是交互操作的基礎(chǔ),如果不能正確實現(xiàn)拾取操作,整個系統(tǒng)就沒有實用性。本系統(tǒng)先采用選擇框進行篩選,然后判斷選擇框里面的元素與其距離,如果距離較近則選擇該元素,如果較遠則拾取失敗。為了讓電子白板的內(nèi)容和操作在教師和所有學生之間實現(xiàn)同步顯示,需要預(yù)先制定好同步機制來同步所有對矢量圖(SVG)元素的操作。這里的同步有兩種方式:發(fā)送坐標和發(fā)送操作指令(或變換矩陣)。前者需要將每個修改過后的圖形發(fā)送給客戶端,客戶端接收到信息之后對圖形進行重繪;后者只需要在最開始的時候發(fā)送坐標給客戶端,后面每次對圖形的操作只需要發(fā)送相應(yīng)的操作指令或變換矩陣即可。顯然,發(fā)送變換矩陣的方法在傳輸效率上要高得多,所以本文采用傳輸變換矩陣的方法,每個圖形實例只需要維護一個變換矩陣即可得到所有對該圖形的操作。

      這里有一個比較關(guān)鍵的問題,即如果多個用戶在同一時間對某個圖像進行操作,會導致操作上的沖突。例如,A想要修改某個圖形元素,而B想刪除該元素,到底是該刪除還是進行修改則需要教師端決定。在本系統(tǒng)中,是學生端先將操作發(fā)送到教師端,這些操作被放入一個隊列,采用先到先服務(wù)的原則,教師端對該隊列中的操作逐個審閱,最后將最終的結(jié)果發(fā)送給所有學生端。例如,兩個學生在同一時間分別想要刪除和修改,則最終的結(jié)果就是圖形中的該元素被刪除。這種利用隊列維護操作的方法不僅實現(xiàn)簡單,還能夠產(chǎn)生較為合理的結(jié)果。

      (三)語音通信模塊

      學生之間或?qū)W生與教師之間需要經(jīng)常進行溝通,而文字信息在課堂上的溝通效率太低,所以一般采用語音的方式。系統(tǒng)的語音模塊提供了多人同時進行語音的環(huán)境,這種交互方式對于小組討論非常有用。假設(shè)需要同時進行語音的人分別為A、B、C、D,可以用兩種方法實現(xiàn)多人語音。第一種方法,每個人對其他所有人發(fā)送廣播,將自己的語音數(shù)據(jù)發(fā)送給每個人。這樣每個人都會得到三份數(shù)據(jù),這三份數(shù)據(jù)在本地端緩存,然后混合在一起形成較為真實的聊天室語音。很容易算出,這種方式對網(wǎng)絡(luò)產(chǎn)生的負載o(n2)。第一種方法,B、C、D三個人的數(shù)據(jù)都發(fā)送給A,A端在接收完數(shù)據(jù)之后進行緩存并對三組聲音進行混音,最后將得到的最終結(jié)果分別發(fā)送給B、C、D三個人。這種方法一個明顯的優(yōu)勢是網(wǎng)絡(luò)負荷小很多,非常適合較多人同時進行的語音聊天。這種方法的網(wǎng)絡(luò)帶寬負荷只有o(n)。對比這兩種方法,第一種方法沒有中心節(jié)點,所以不依賴于某一個節(jié)點,最直接的表現(xiàn)就是延時較低,但是對網(wǎng)絡(luò)帶寬的占用較大;第二種方法有一個或多個中心節(jié)點,能夠在很大程度上解決網(wǎng)絡(luò)帶寬的問題,但是帶來了較大的延時。

      經(jīng)過測試,本系統(tǒng)中語音聊天的單向延時只要控制在150ms內(nèi)即可,雙向的延時只要不超過300ms就可以接受。對比了兩種方案,后者的延時完全能滿足要求,并且需要的帶寬更小,所以選擇第二種方法實現(xiàn)多人語音模塊。該模塊分為教師端和學生端,教師端扮演A的角色,學生端扮演B、C、D的角色,具體的流程如下:①學生的聲卡采集語音,并進行編碼和壓縮,網(wǎng)卡則負責把壓縮后的數(shù)據(jù)發(fā)送給教師端;②教師端接收到來自不同學生的語音壓縮數(shù)據(jù)包之后對其進行解壓縮操作;③等到所有學生端的數(shù)據(jù)接收完畢之后,教師端將多個語音進行混音,并進行編碼和壓縮;④教師端將處理過后的壓縮語音數(shù)據(jù)包發(fā)送出去,學生端在接收之后解壓縮并播放出來。為了進一步減少所需要的網(wǎng)絡(luò)帶寬,該模塊在發(fā)送語音數(shù)據(jù)的時候采用了壓縮比很好且碼率較低的Cx729標準進行壓縮,處理后的數(shù)據(jù)碼率大概只有8kbps。同時為了解決多臺電腦之間的時鐘誤差問題,需要在每臺電腦的緩存區(qū)域進行一定的調(diào)整。

      (四)遠程桌面模塊

      遠程桌面模塊的主要作用就是共享屏幕,可以讓學生顯示教師的屏幕,也可以讓教師顯示某個學生的屏幕。由于屏幕的主要信息為靜態(tài)圖片或動態(tài)圖片,如果在傳輸這些圖形對象的時候不進行壓縮,會產(chǎn)生超大量的數(shù)據(jù)量,最終會導致整個網(wǎng)絡(luò)的堵塞。

      在這種應(yīng)用場景下,傳輸?shù)膱D像主要為窗口圖像,比較適合這種圖像壓縮的算法為基于LZ的字典算法,不僅壓縮比較高,還能基本保證無損壓縮。本模塊的實現(xiàn)采用了基于LZ算法的Gzip壓縮,這是由于Gzip壓縮較為理想,還具有不錯的性能。但是,在實際應(yīng)用中發(fā)現(xiàn),一張完整的桌面圖片經(jīng)過這種方式進行壓縮大概需要消耗300ms的時間,這個時間對于遠程桌面這種要求具有較好及時性的應(yīng)用來說非常致命。經(jīng)過分析,發(fā)現(xiàn)桌面圖片不同于普通視頻中的圖片,雖然桌面上的元素會動,但是大部分的圖像元素是沒有變化的,這些躍變的像素只占整個圖片非常小的一部分。連續(xù)的幀之間相同的像素占主要部分,對于相鄰的兩幀來講,大部分地方的像素差值為0。基于這一特點,采用了幀間差分遠程編碼方式對桌面圖像數(shù)據(jù)進行編碼,可以大大降低數(shù)據(jù)的傳輸量。傳輸之前,最好是對數(shù)據(jù)進行Gzip壓縮,這樣可以將每次壓縮需要的時間控制在10多個毫秒以內(nèi),保證了桌面圖像的流暢性。需要注意的是,這種編碼方式是一種差分方式,每次傳輸?shù)臄?shù)據(jù)都是基于上次圖像的差值,所以一旦某個包傳送失敗或傳送錯誤,就會導致所有后續(xù)桌面圖像的錯誤合成。為了避免這一問題,本系統(tǒng)會定期傳送一次完整的桌面圖像。

      四、結(jié)束語

      本文設(shè)計了實時交互系統(tǒng)中的核心模塊,詳細分析了每個模塊中需要解決的關(guān)鍵問題,提出了較為合理的解決方案,供相關(guān)人員參考。

      作者單位:張玲玲 江蘇省宿城中等專業(yè)學校

      參考文獻:

      [1]詹立彩,徐鶴,曠玲麗,等.遠程教學的元宇宙應(yīng)用及其新生態(tài)構(gòu)建[J].福建開放大學學報,2023(03):20-24.

      [2]董向東.衛(wèi)星遠程教學應(yīng)用研究[J].電化教育研究,2009(04):59-61.

      [3]李文文.構(gòu)建與學生的特征尺度相適應(yīng)的遠程教學環(huán)境[J].江蘇廣播電視大學學報,2007(05):44-47.

      [4]李相海,牛詠梅.淺談流媒體技術(shù)及其在遠程教學中的應(yīng)用[J].中國科技信息,2007(21):213-214.

      [5]張蕾.互聯(lián)網(wǎng)遠程教學與開放教育的融合分析[J].電子技術(shù),2022,51(08):256-257.

      宝鸡市| 巴林右旗| 沙坪坝区| 枣阳市| 宁南县| 南和县| 崇义县| 东源县| 札达县| 晋州市| 阳西县| 广安市| 登封市| 伊金霍洛旗| 吴堡县| 宜章县| 明水县| 霸州市| 略阳县| 安福县| 高平市| 旬阳县| 额济纳旗| 七台河市| 桦南县| 密山市| 亚东县| 桂平市| 文山县| 从化市| 廉江市| 丹巴县| 江阴市| 克东县| 乐陵市| 中卫市| 沧源| 乐山市| 渝北区| 遵化市| 上虞市|