ASR項目實戰-架構設計

      網友投稿 754 2022-05-29

      一般而言,業務訴求作為架構設計的輸入。

      需求清單

      對于語音識別產品而言,需滿足的需求,舉例如下:

      功能需求

      文件轉寫。

      長文件轉寫,時長大于60秒,小于X小時,X可以指定為5。

      短文件轉寫,時長小于60秒。

      實時語音識別。

      長語音識別,時長大于60秒,小于Y小時,Y可以指定為5。

      短語音識別,時長小于60秒。

      支持多個語種。

      其它功能需求,比如:

      前處理

      支持多種音頻文件格式。

      支持多種采樣率和位深。

      支持去回聲和抗噪。

      支持在音頻文件中處理多個聲道。

      中間處理

      支持VAD。

      支持區分音頻文件中的多個講話人。

      支持輸出文本對應的時間偏移。

      支持使用熱詞提高字準率。

      后處理

      支持輸出標點符號。

      支持輸出拼音類語言的大、小寫。

      支持數字、符號的歸一化處理。

      非功能需求

      集成多個合作伙伴。

      云云對接,即將請求轉發給合作伙伴開放在公網的API服務,通過公網API訪問的形式集成其語音識別能力。

      集成軟件包,即將合作伙伴的語音識別服務部署在相同的機房內,通過內網API訪問的方式集成其語音識別能力。

      集成算法庫,集成合作伙伴的語音識別能力。

      集成算法模型,基于相同的算法庫,合作伙伴提供模型,進而集成其語音識別能力。

      控制并發路數。

      通過接口接入的基礎設施,限制并發TPS。

      基于當前可用的并發路數,限制可以接入的請求數量。

      基于各個應用的業務推廣情況,定義并發路數的最低、最高配額,保證基本的并發路數。

      基于各個應用的業務實際情況,定義調用量的最高配額,控制調用量。

      支持擴容。

      通過擴容硬件的方式,增加服務能力。

      針對某具體應用的實際情況,通過擴容,滿足其業務訴求。

      針對某具體業務場景的實際情況,通過擴容,滿足其業務訴求。

      技術指標

      文件轉寫場景下的時延類指標,比如

      轉寫比,即端到端處理時長與語音文件時長的比值。這個指標不是越小越好,需結合投入的硬件成本綜合考慮,定義符合預期的指標目標值。

      語音識別場景下的時延類指標,比如

      首字時延

      尾字時延

      蹦字時延

      模型文件的大小,影響如下:

      決定了軟件包版本構建的時間、安裝服務的時間、啟動服務的時間,是影響版本交付效率的直觀因素。

      模型文件占用的空間越大,則加載模型后,進程占用的內存空間則越大。這對硬件規格和技術方案、部署方案有直接的影響。

      一定載荷下可提供的并發路數。

      運營類需求

      支持記錄具體應用使用語音識別服務的業務調用量。

      支持基于調用量,對具體應用進行計費。

      運維類需求

      提供日志,比如:

      提供業務調試日志。

      提供接口訪問日志。

      提供監控能力。

      提供對基礎設施的監控,比如CPU使用率、內存使用率、硬盤使用率等,以及必要的告警。

      提供對業務組件的監控,比如進程是否存在,進程的CPU、內存使用率等,以及必要的告警。

      提供對關鍵業務指標的監控,比如當前各服務實例在用、可用的并發路數,各業務可用、在用的并發路數等。

      安全類需求

      在云服務API層面增加保護,比如:

      提供鑒權能力。

      提供參數校驗能力。

      抵御DOS攻擊的能力。

      對用戶數據的管理,包括但不限于:

      使用安全通道傳輸用戶數據。

      使用加密方式保存用戶數據。

      允許用戶刪除數據。

      允許用戶指定數據的保存周期。

      用戶未提供數據保存周期時,系統支持自動刪除。

      架構方案

      基于前述舉例列出的需求,整體方案中包括如下組件:

      業務類組件

      接入網關

      安全網關

      業務網關

      算法服務

      支撐類組件

      ASR項目實戰-架構設計

      運維服務

      運營服務

      開發者服務

      接入網關

      主要職責有:

      對外提供安全協議的請求通道,比如HTTPS。

      限制業務請求的速率。

      基于協議規則的請求流控。

      安全網關

      主要的職責是對外部發來的請求進行鑒權,攔截非法請求。

      當鑒權通過時,補充必要的數據字段,比如應用標識等。

      業務網關

      主要的職責有:

      對請求消息中的字段,進行校驗,從而攔截非法請求。

      依據請求消息,依據一定的業務規則,選擇合適的算法服務來提供服務。

      依據一定的業務規則,從指定的算法服務的集群中,挑選一個實例來提供服務。

      記錄業務調用量。

      記錄計費數據。

      記錄必要的運維數據。

      記錄必要的調試日志。

      基于業務規則的請求流控。

      算法服務

      算法服務,提供語音識別的基本能力。

      依據與合作伙伴的協作方式,算法服務包含如下類型:

      云云集成,請求轉發至合作伙伴開放在公網的API服務。

      軟件包集成,合作伙伴的軟件包和自有的組件部署在相同的基礎設施上,算法服務與其通過內網API的方式集成。

      算法庫集成,使用JNI方式,算法服務集成合作伙伴提供的算法庫文件。

      算法模型集成,算法服務集成模型,提供服務。

      運維管理服務

      主要職責是供運維人員管理、分析業務系統運行情況,包含的內容比較廣,比如:

      軟件倉庫

      部署管理

      配置管理

      運維數據管理

      采集系統

      離線監控系統

      在線監控系統

      告警系統

      運營服務

      主要職責是供產品、運營人員分析業務運行現狀,比如:

      運營數據管理

      采集系統

      報表系統

      告警系統

      開發者服務

      主要職責是供開發者管理業務的運行情況,比如:

      訂閱服務

      計費報表

      技術決策點

      劃分業務組件中各個組件的職責時,存在一些決策點,對設計方案存在影響,因此需要深入考慮。

      語音識別過程可以劃分為前、中、后三階段的處理操作,依據前述架構方案,結合業務場景,需要思考這三個階段在分別哪個業務組件上交付。

      關于前處理

      對于實時語音識別,假如使用手機作為錄音設備,則可以限定錄制時使用的音頻文件格式、采樣頻率、位深、聲道的數量,去回聲和搞噪可以交給錄音設備來完成,因此不涉及復雜的前處理。

      對于文件轉寫,則無法限定音頻數據文件的錄制設備、文件格式、采樣頻率、位深、聲道數量、錄制環境等,因此需要支持前處理。相關的前處理特性,可能的實現位置有業務網關或者算法服務。

      假如前處理在業務網關組件上實現,則下載文件、提取音頻時長、記錄計費數據、記錄計量數據、基于業務規則的請求流控等可以一并實現。前處理的音頻文件,需要將上傳至公共存儲,由算法服務下載。

      本方案的優點:

      在業務網關層面可以實現文件有效性的檢查,避免將非法文件傳遞至算法服務,浪費算法服務器的算力。

      在業務網關層面實現基于業務規則的請求流控,提前攔截非法請求,避免浪費算法服務的算力。

      本方案的缺點:

      業務網關和算法服務需要通過存儲服務來傳遞音頻文件,算法服務多了一次下載文件的操作。

      假如前處理在算法服務上實現,業務網關組件只需轉發請求,而下載文件、提取音頻時長、記錄計費數據、記錄計量數據、基于業務規則的請求流控等特性均需要在算法服務來實現。

      本方案的優點:

      只涉及一次下載文件的操作。

      本方案的缺點:

      算法服務組件的數量比較多,假如音頻文件保存在公網的存儲服務上,則均需要開放外網訪問權限。

      對于文件有效性的檢查延遲到了算法服務組件,惡意的請求可能會占用算法服務的算力資源。

      基于業務規則的請求流控延遲到了算法服務組件,同樣占用了算法服務的算力資源。

      關于提取音頻文件中音頻數據的時長,處理音頻文件中多個聲道,目前比較簡單的方案是使用開源軟件FFmpeg來實現。但這款軟件存在一些問題,比如:

      License非商業友好。

      處理音頻文件時,比較消耗CPU。

      為支持某些特定的音頻格式時,需要增加一些額外的編碼、解碼庫,編譯FFmpeg的過程比較曲折。此外,音頻格式涉及到的開源軟件,其License可能非商業友好。此外,部分項目的代碼比較舊,長期無人維護,遇到問題時會比較尷尬。

      偶爾會不穩定,對音頻文件執行操作時會失敗,但事后使用相同的音頻文件重現問題時,發現問題無法復現。

      關于后處理

      語音識別的結果中沒有標點符號,作為書面形式閱讀時會增加很多障礙,不同的句讀可能會產生不同的理解,從而出現不必要的歧義。對于中文而言,這個現象尤其嚴重。因此為了提升可讀性,需要在語音識別輸出的結果進行處理,增加必要的標點符號,比如句號、逗號、探號、問號等。

      對于拼音類語言,比如英語、法語等,相同的單詞在不同場景下,其大小寫形式可能會不同,比如the President和the president,前者指代現總統,而后者僅為泛指。為了提升可讀性,需要對語音識別輸出的結果進行處理,增加合理的大、小寫形式。

      對于數字、單位等詞匯,語音識別的結果中均表示為文字,與通常使用的書面表達形式不同,閱讀體驗比較差,因此有必要依據一定的規則或者場景將其還原為常見的表達形式,改善閱讀體驗。

      針對上述三個特性,決策點有:

      實現方案,使用機器學習模型實現,還是使用代碼基于一定的規則來實現。

      實現位置,在業務網關實現,還是在算法服務實現。

      架構設計 一句話識別

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【Android 應用開發】Android 數據存儲 之 SQLite數據庫詳解
      下一篇:華為鯤鵬云calico網絡組件適配aarch64架構攻關報告
      相關文章
      久久精品国产亚洲精品2020| 亚洲AV伊人久久青青草原 | 亚洲国产成人无码AV在线影院| 亚洲人成网站看在线播放| 亚洲永久中文字幕在线| 91亚洲精品第一综合不卡播放| 亚洲国产精华液网站w| 久久亚洲精品中文字幕三区| 亚洲日韩精品一区二区三区 | 亚洲人成电影在线播放| 亚洲麻豆精品国偷自产在线91| 亚洲国产精品成人| 久久久久亚洲AV成人网人人软件| 亚洲av成人一区二区三区在线观看| 国产精品亚洲а∨天堂2021| mm1313亚洲国产精品美女| 亚洲成年看片在线观看| av在线亚洲欧洲日产一区二区| 亚洲无码视频在线| 亚洲欧洲日产国码无码久久99| 亚洲精品无码Av人在线观看国产| 亚洲成AV人片天堂网无码| 亚洲av成人无码久久精品| 日韩精品一区二区亚洲AV观看| 亚洲色偷偷av男人的天堂| 亚洲一级视频在线观看| 亚洲欧美日韩中文无线码| 久久亚洲AV成人无码国产电影 | 亚洲 小说区 图片区 都市| 亚洲综合色成在线播放| 亚洲级αV无码毛片久久精品| 亚洲AV无码AV男人的天堂| 亚洲理论片在线中文字幕| 中中文字幕亚洲无线码| 亚洲国产成人无码AV在线影院 | 亚洲乱码一区av春药高潮| 亚洲日韩国产欧美一区二区三区| 国产在亚洲线视频观看| 红杏亚洲影院一区二区三区| 久久综合图区亚洲综合图区| 亚洲国产精品综合福利专区|