[發(fā)明專利]一種語音識別服務(wù)器的軟件設(shè)計方法有效
| 申請?zhí)枺?/td> | 201811638895.6 | 申請日: | 2018-12-29 |
| 公開(公告)號: | CN109727595B | 公開(公告)日: | 2021-08-03 |
| 發(fā)明(設(shè)計)人: | 張琨;趙耀;李雪楓;朱錦雷 | 申請(專利權(quán))人: | 神思電子技術(shù)股份有限公司 |
| 主分類號: | G10L15/22 | 分類號: | G10L15/22;G10L15/30;H04L29/08;H04L29/06;H04L12/26 |
| 代理公司: | 濟南泉城專利商標(biāo)事務(wù)所 37218 | 代理人: | 趙玉鳳 |
| 地址: | 250000 山東省濟南市*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 語音 識別 服務(wù)器 軟件設(shè)計 方法 | ||
1.一種語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:包括以下步驟:
S01)、通信模塊設(shè)計,socket用來連接服務(wù)端與客戶端,服務(wù)端建立socket連接并進行監(jiān)聽,當(dāng)收到客戶端的連接請求,則建立連接,然后接收消息、解析,經(jīng)過處理后立即返回給客戶端;
S02)、應(yīng)用層設(shè)計,建立在socket上的自定義的數(shù)據(jù)協(xié)議,數(shù)據(jù)頭描述數(shù)據(jù)包的信息、包含類型、長度,數(shù)據(jù)包中包含音頻數(shù)據(jù);
S03)、進程池設(shè)計,包括主進程和子進程,主進程監(jiān)聽socket,并在運行之初創(chuàng)建所有子進程,同時建立主進程與子進程之間的通道,主進程向子進程分配客戶端連接,子進程接受以后利用任務(wù)池完成相應(yīng)的數(shù)據(jù)處理;
S04)、任務(wù)池設(shè)計,任務(wù)池是某個子進程內(nèi)的所有可以執(zhí)行的任務(wù),它保存某個客戶端所有有用的信息,每當(dāng)子進程檢測到某個連接上有數(shù)據(jù)到來,它會去執(zhí)行相應(yīng)的任務(wù);
S05)、線程池設(shè)計,每個子進程包含一個線程池,每個線程池里面運行一個獨立的語音識別引擎,任務(wù)池執(zhí)行任務(wù)時,將接收到的數(shù)據(jù)推進到相應(yīng)線程池里面運行的語音識別引擎,然后在回調(diào)函數(shù)里實現(xiàn)識別結(jié)果返回;
線程池在子進程開始運行時即創(chuàng)建完畢,然后等待子進程的主線程利用任務(wù)池給相應(yīng)的線程推送數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:進程池、任務(wù)池、線程池的大小是與語音識別引擎占用的資源和服務(wù)器硬件配置相匹配的,程序運行期間固定。
3.根據(jù)權(quán)利要求1所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:服務(wù)端與客戶端之間的socket為全雙工通信,兩個線程可以同時對服務(wù)端和客戶端進行操作,一個接受數(shù)據(jù),另一個發(fā)送數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:應(yīng)用層的數(shù)據(jù)包采用壓縮格式,同時帶有驗證身份的客戶端的唯一標(biāo)識。
5.根據(jù)權(quán)利要求1所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:主進程利用epoll機制復(fù)用IO,將監(jiān)聽socket、信號加入epoll核心事件表。
6.根據(jù)權(quán)利要求5所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:主進程的消息處理過程為:A、主進程收到監(jiān)聽socket的消息時,說明有客戶端請求連接,它計算當(dāng)前是否還有子進程可以接收,如果有,則通過robin算法選擇一個子進程并通知它,否則,通知客戶端服務(wù)器已經(jīng)達到負載;B、主進程接收到關(guān)閉信號時,將向所有子進程發(fā)出停止信號,結(jié)束所有子進程;C、主進程接收到子進程結(jié)束信號時,對子進程退出碼進行分析,如果為異常退出,則重新創(chuàng)建該序號對應(yīng)的子進程,如果是正常退出,則計算當(dāng)前正在運行的進程個數(shù),當(dāng)全部退出時,主進程退出。
7.根據(jù)權(quán)利要求1所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:子進程利用epoll機制復(fù)用IO,將與客戶端連接、主進程之間的通道、信號加入epoll核心事件表。
8.根據(jù)權(quán)利要求1所述的語音識別服務(wù)器的軟件設(shè)計方法,其特征在于:子進程的消息處理過程為:A、當(dāng)與主進程之間的通道接收到數(shù)據(jù)時,從監(jiān)聽socket接受新的連接,將其加入核心事件表進行監(jiān)聽;B、當(dāng)客戶端連接接收到數(shù)據(jù)時,解析數(shù)據(jù)后,選擇一個空閑的任務(wù),將數(shù)據(jù)發(fā)送到與之對應(yīng)的線程進行語音識別,該線程將識別結(jié)果返回給客戶端;C、當(dāng)接收到停止信號時,進程將立即退出消息循環(huán),停止工作;D、當(dāng)接收到定時信號時,子進程將分析整個任務(wù)池狀態(tài),如果發(fā)現(xiàn)有異常事件發(fā)生,首先將該進程置為異常,然后等待其他線程處理完畢,最終退出進程,主進程檢測到異常退出的子進程,將重新創(chuàng)建新的子進程加入進程池,如果發(fā)現(xiàn)某個任務(wù)一段時間內(nèi)沒有上傳數(shù)據(jù),則釋放該客戶端連接占用的資源然后關(guān)閉該連接。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于神思電子技術(shù)股份有限公司,未經(jīng)神思電子技術(shù)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811638895.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:語音處理方法及裝置
- 下一篇:控制遙控器的方法和遙控器
- 營養(yǎng)查詢軟件設(shè)計
- 基于狀態(tài)機的冰箱主控軟件設(shè)計方法
- 一種軟件設(shè)計咨詢綜合服務(wù)管理系統(tǒng)
- 一種軟件技術(shù)綜合服務(wù)管理系統(tǒng)
- 一種基于數(shù)據(jù)流和元件的軟件設(shè)計方法、軟件設(shè)計工具和軟件運行平臺
- 一種基于本體的控制軟件模型的自動生成方法
- 一種軟件設(shè)計方法、系統(tǒng)及電子設(shè)備和存儲介質(zhì)
- 一種工業(yè)軟件設(shè)計與應(yīng)用平臺及其使用方法
- 一種核電廠安全級軟件設(shè)計系統(tǒng)和方法
- 面向DDD的軟件設(shè)計方法及系統(tǒng)





