国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      字幕數(shù)據(jù)生成方法和裝置的制造方法

      文檔序號:10571092閱讀:238來源:國知局
      字幕數(shù)據(jù)生成方法和裝置的制造方法
      【專利摘要】本發(fā)明涉及一種字幕數(shù)據(jù)生成方法和裝置,該方法包括:獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字幕數(shù)據(jù)中的第一文本內容和對應的第一時間標識,以及獲取原始文本內容中的需發(fā)聲的第二文本內容;提取第二文本內容和第一文本內容相匹配的文本內容;查找相匹配的文本內容在第一文本內容中對應的第一時間標識,為第二文本內容中與相匹配的文本內容對應的文本內容添加上查找到的第一時間標識;根據(jù)第一文本內容和對應的第一時間標識計算出平均語速,根據(jù)平均語速為第二文本內容中未添加上第一時間標識的文本內容添加上第二時間標識;根據(jù)添加了第一和第二時間標識的第二文本內容生成第二字幕數(shù)據(jù)。使生成的字幕數(shù)據(jù)更加準確。
      【專利說明】
      字幕數(shù)據(jù)生成方法和裝置
      技術領域
      [0001] 本發(fā)明涉及計算機技術領域,特別是涉及一種字幕數(shù)據(jù)生成方法和裝置。
      【背景技術】
      [0002] 字蒂,指首視頻文件播放的冋時冋步展不的文本內谷,包含歌詞字蒂、對話字蒂 等。準確的字幕能夠讓人們更好地獲知和理解音視頻作品內容。
      [0003] 傳統(tǒng)方法中,一般采用兩種方式來進行字幕生成,一種是手工編輯制作字幕,一種 是通過ASR(Automatic Speech Recognition,自動語音識別)技術根據(jù)音視頻文件自動生 成字幕。顯然,對于手工編輯制作字幕來說,在需要完成大量的音頻內容的字幕制作時,則 需要投入大量的人力成本,且制作效率非常低。因此,為了提高字幕制作效率,通常采用ASR 技術對音視頻文件自動生成字幕。
      [0004] 然而,在利用ASR技術對音視頻文件自動生成字幕時,由于受到發(fā)音、口音、背景音 等因素的影響,很可能無法準確識別語音內容,所以自動生成的字幕并不是非常準確。

      【發(fā)明內容】

      [0005] 基于此,有必要針對上述問題,提供一種能夠在保證制作效率的同時,提高準確率 的字幕數(shù)據(jù)生成方法和裝置。
      [0006] 一種字幕數(shù)據(jù)生成方法,包括:
      [0007] 獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字幕數(shù)據(jù)中的第一文 本內容和對應的第一時間標識,以及獲取所述發(fā)聲多媒體文件對應的原始文本內容中的需 發(fā)聲的第二文本內容;
      [0008] 提取所述第二文本內容和所述第一文本內容相匹配的文本內容;
      [0009] 查找所述相匹配的文本內容在所述第一文本內容中對應的第一時間標識,為所述 第二文本內容中與所述相匹配的文本內容對應的文本內容添加上查找到的第一時間標識;
      [0010] 根據(jù)所述第一文本內容和對應的第一時間標識計算出平均語速,根據(jù)所述平均語 速為所述第二文本內容中未添加上所述第一時間標識的文本內容添加上第二時間標識; [0011]根據(jù)添加了所述第一時間標識和所述第二時間標識的第二文本內容生成第二字 幕數(shù)據(jù)。
      [0012] 一種字幕數(shù)據(jù)生成裝置,包括:
      [0013] 獲取模塊,用于獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字幕數(shù) 據(jù)中的第一文本內容和對應的第一時間標識,以及獲取所述發(fā)聲多媒體文件對應的原始文 本內容中的需發(fā)聲的第二文本內容;
      [0014] 提取模塊,用于提取所述第二文本內容和所述第一文本內容相匹配的文本內容;
      [0015] 時間標識添加模塊,用于查找所述相匹配的文本內容在所述第一文本內容中對應 的第一時間標識,為所述第二文本內容中與所述相匹配的文本內容對應的文本內容添加上 查找到的第一時間標識;
      [0016] 所述時間標識添加模塊還用于根據(jù)所述第一文本內容和對應的第一時間標識計 算出平均語速,根據(jù)所述平均語速為所述第二文本內容中未添加上所述第一時間標識的文 本內容添加上第二時間標識;
      [0017] 字幕數(shù)據(jù)生成模塊,用于根據(jù)添加了所述第一時間標識和所述第二時間標識的第 二文本內容生成第二字幕數(shù)據(jù)。
      [0018] 上述字幕數(shù)據(jù)生成方法和裝置中,獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理 得到的第一字幕數(shù)據(jù)中的第一文本內容和對應的第一時間標識,以及獲取發(fā)聲多媒體文件 對應的原始文本內容中的需發(fā)聲的第二文本內容;提取第二文本內容和第一文本內容相匹 配的文本內容;查找相匹配的文本內容在第一文本內容中對應的第一時間標識,為第二文 本內容中與相匹配的文本內容對應的文本內容添加上查找到的第一時間標識。即根據(jù)自動 語音識別出的文本內容所具有的時間標識為具有準確文本內容的原始文本中需發(fā)聲的第 二文本內容中相匹配的文本內容添加上對應的第一時間標識。進一步,根據(jù)自動語音識別 出的文本內容及第一時間標識計算出平均語速,根據(jù)平均語速為未添加上時間標識的文本 內容添加上第二時間標識。這樣,使具有準確文本內容的需發(fā)聲的第二文本內容都添加上 時間標識,再根據(jù)添加了時間標識的具有準確文本內容的第二文本內容生成字幕。由于第 二文本內容是基于原始文本內容得到的準確的文本內容,因此將第二文本內容添加上對應 的時間標識后所生成的字幕數(shù)據(jù),不存在文本內容錯誤的問題,更加準確。
      【附圖說明】
      [0019] 圖1為一個實施例中字幕數(shù)據(jù)生成方法的應用環(huán)境圖;
      [0020] 圖2為一個實施例中服務器的結構示意圖;
      [0021 ]圖3為一個實施例中字幕數(shù)據(jù)生成方法的流程示意圖;
      [0022]圖4為一個實施例中第二字幕數(shù)據(jù)在終端的顯示的界面示意圖;
      [0023] 圖5為一個實施例中第一最長公共子序列提取方法的流程示意圖;
      [0024] 圖6為一個實施例中第一文本子序列獲取方法的流程示意圖;
      [0025] 圖7為一個實施例中的最長公共子序列的長度計算的結果示意圖;
      [0026] 圖8為一個實施例中第二時間標識確定方法的流程示意圖;
      [0027] 圖9為一個實施例中字幕數(shù)據(jù)生成裝置的結構示意圖;
      [0028] 圖10為一個實施例中提取模塊的結構示意圖。
      【具體實施方式】
      [0029]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對 本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
      [0030]圖1為一個實施例中字幕數(shù)據(jù)生成方法的應用環(huán)境圖。如圖1所示,該應用環(huán)境包 括服務器110和終端120。服務器110對發(fā)聲多媒體文件生成字幕數(shù)據(jù)時,獲取對該發(fā)聲多媒 體文件經(jīng)過自動語音識別處理后的第一字幕數(shù)據(jù),進一步獲取第一字幕數(shù)據(jù)中的第一文本 內容和對應的第一時間標識。服務器110同時獲取預發(fā)聲多媒體文件對應的原始文本內容 中需發(fā)聲的第二文本內容。進一步,服務器110根據(jù)第一文本內容對應的第一時間標識,為 第二文本中與第一文本內容相匹配的文本內容添加上對應的第一時間標識。并根據(jù)第一文 本內容和對應的第一時間標識計算出平均語速,根據(jù)平均語速為第二文本內容中未添加上 第一時間標識的文本內容計算并添加上第二時間標識,進一步,根據(jù)添加了第一時間標識 和第二時間標識的第二文本內容第二字幕數(shù)據(jù)。當終端120在播放發(fā)聲多媒體文件時,會將 服務器110生成的第二字幕數(shù)據(jù)加配至發(fā)聲多媒體文件中,在終端120的界面上顯示播放加 配了字幕的發(fā)聲多媒體文件。
      [0031] 如圖2所示,在一個實施例中,提供了一種服務器,包括通過系統(tǒng)總線連接的處理 器、非易失性存儲介質、內存儲器、網(wǎng)絡接口。其中,服務器的非易失性存儲介質存儲有操作 系統(tǒng),還包括一種字幕數(shù)據(jù)生成裝置,該字幕數(shù)據(jù)生成裝置用于實現(xiàn)一種字幕數(shù)據(jù)生成方 法。該處理器用于提供計算和控制能力,支撐整個服務器的運行。服務器中的內存儲器為非 易失性存儲介質中的字幕數(shù)據(jù)生成裝置的運行提供環(huán)境,該內存儲器中可儲存有計算機可 讀指令,該計算機可讀指令被所述處理器執(zhí)行時,可使得所述處理器執(zhí)行一種字幕數(shù)據(jù)生 成方法。網(wǎng)絡接口用于與終端進行網(wǎng)絡通信。本領域技術人員可以理解,圖2中示出的結構, 僅僅是與本申請方案相關的部分結構的框圖,并不構成對本申請方案所應用于其上的服務 器的限定,具體的服務器可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者 具有不同的部件布置。
      [0032] 如圖3所示,在一個實施例中,提供了一種字幕數(shù)據(jù)生成方法,以應用于圖1或圖2 中的服務器為例進行舉例說明,包括以下步驟:
      [0033]步驟302,獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字幕數(shù)據(jù)中 的第一文本內容和對應的第一時間標識,以及獲取發(fā)聲多媒體文件對應的原始文本內容中 的需發(fā)聲的第二文本內容。
      [0034]本實施例中,發(fā)聲多媒體文件是指可以發(fā)聲的多媒體文件,包括有聲讀物、音視頻 文件和廣播劇等多媒體文件。
      [0035]服務器會預先獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理后的第一字幕數(shù)據(jù)。 進一步,獲取第一字幕數(shù)據(jù)中的第一文本內容和對應的第一時間標識??梢岳斫?,第一文本 內容即為第一字幕文本內容。比如,自動語音識別出來的第一字幕數(shù)據(jù)形式為(其中,seql 中對應的時間標識是句級別時間標識,w〇rd2對應的時間標識是字級別的時間標識):
      [0036] Seql: 8425 ? 00ms-13225 ? 00ms歷史的車輪找李隆隆而過
      [0037] WordO: 9235 ? 00ms-9435 ? 00ms歷史
      [0038] W〇rd2:9515?00ms-9595?00ms的
      [0039] W〇rd3:9735 ? 00ms-10335 ? 00ms 車輪
      [0040] W〇rd4:10855?00ms-10975?00ms找 [0041 ] W〇rd5:11075?00ms-11225?00ms李
      [0042] W〇rd6:11295.00ms-11715.00ms 隆隆
      [0043] W〇rd7:11895 ? 00ms-12515 ? 00ms 而過
      [0044] 進一步,提取第一字幕數(shù)據(jù)中的第一文本內容和對應的第一時間標識,這里的第 一時間標識是最小單位的時間標識。比如提取的第一文本內容為"歷史的車輪找李隆隆而 過"是一句話,那么獲取的對應的第一時間標識則是上述語音識別結果中最小單位的時間 標識,即以字或詞為單位的時間標識。比如,獲取的是各個字或詞所對應的時間標識。
      [0045] 進一步,獲取的可以是各個字或詞所對應的起始時間戳。比如"歷史"對應的起始 時間戳為"9235.00","的"對應的起始時間戳為"9515.00","車輪"對應的起始時間戳為 "9735.00"等。也可以是時間段。本發(fā)明實施例對此不作限定。
      [0046] 此外,服務器會獲取原始文本內容中的需發(fā)聲的第二文本內容(以下簡稱第二文 本內容)。這里,原始文本內容指針對發(fā)聲多媒體文件所制定的原始文稿內容。比如,廣播劇 和有聲小說所具有的劇本內容。結合上述例子,原始文本內容為"歷史的車輪照例隆隆而 過。
      [0047] 第二文本內容即指原始文本中需發(fā)聲的文本內容??梢岳斫?,當原始文本是純發(fā) 聲文稿,則第二文本內容指原始文本內容本身。
      [0048] 當原始文本內容中包含需發(fā)聲文本內容和非發(fā)聲文本內容,則第二文本內容指原 始文本中的需發(fā)聲文本內容。進一步,服務器可以是直接獲取經(jīng)過預處理后的原始文本內 容中的第二文本內容。也可以是先獲取原始文本內容,然后對原始文本內容進行預處理以 提取出其中的第二文本內容。具體地,獲取預設的過濾邏輯公式,根據(jù)預設的過濾邏輯公式 提取出原始文本內容中的需發(fā)聲的第二文本內容。根據(jù)預設的過濾邏輯公式自動提取出需 發(fā)聲的第二文本內容,不需要手動的從原始文本內容中挑選準備出第二文本內容,提高了 獲取需發(fā)聲第二文本內容的效率。
      [0049] 本發(fā)明實施例對服務器如何獲取原始文本內容中的第二文本內容的具體實現(xiàn)方 式不作限定,只要滿足服務器能夠獲取原始文本內容中的需發(fā)聲的第二文本內容即可。
      [0050] 需要說明的是,因為自動語音識別處理是可以得到含有標點符號的字幕數(shù)據(jù),即 第一字幕數(shù)據(jù)中的第一文本內容是包括標點符號的,所以本實施例中所獲取的原始文本內 容中的需發(fā)聲的第二文本內容也是包含原始文本內容需發(fā)聲語句前后攜帶的標點符號的。 [00511步驟304,提取第二文本內容和第一文本內容相匹配的文本內容。
      [0052]步驟306,查找相匹配的文本內容在第一文本內容中對應的第一時間標識,為第二 文本內容中與相匹配的文本內容對應的文本內容添加上查找到的第一時間標識。
      [0053]具體地,服務器會提取出第一文本內容和第二文本內容中相匹配的文本內容。需 要說明的是,這里的相匹配的文本內容是指第一文本內容中與第二文本內容中相同或可以 近似等同的文本內容。進一步,可以理解,這里相匹配的文本內容,可以是多段內容按序共 同組成的相匹配的文本內容。
      [0054]比如,第一文本內容為"歷史的車輪找李隆隆而過",第二文本內容為"歷史的車輪 照例隆隆而過",那么由"歷史的車輪"和"隆隆而過"共同組成相匹配的文本內容"歷史的車 輪隆隆而過"。
      [0055] 進一步,根據(jù)獲取的第一文本內容和對應的第一時間標識,查找所提取的相匹配 的文本內容所對應的第一時間標識,并為第二文本內容中與相匹配的文本內容對應的文本 內容添加上查找到的第一時間標識。比如根據(jù)第一文本內容"歷史的車輪找李隆隆而過"和 對應的第一時間標識,查找"歷史的車輪隆隆而過"所對應的第一時間標識,并在第二文本 內容"歷史的車輪照例隆隆而過"中與"歷史的車輪隆隆而過"相應的部分添加上對應的第 一時間標識。根據(jù)前文陳述,第一時間標識是以字或詞為單位的時間標識,那么則可以是為 第二文本內容的"歷史"、"的"、"車輪"、"隆隆"以及"而過"添加上了對應的第一時間標識。
      [0056] 步驟308,根據(jù)第一文本內容和對應的第一時間標識計算出平均語速,根據(jù)平均語 速為第二文本內容中未添加上第一時間標識的文本內容添加上第二時間標識。
      [0057] 具體地,服務器會根據(jù)獲取的第一文本內容和對應的第一時間標識計算出平均語 速,即計算單位時間內所經(jīng)過的文字數(shù)量。進一步,根據(jù)平均語速計算出第二文本內容中未 添加上第一時間標識的文本內容所需要的時間長度,并結合其前后相匹配的內容已添加上 的第一時間標識計算出第二文本內容中未添加上第一時間標識的文本內容所對應的第二 時間標識。同樣地,未添加上第一時間標識的文本內容可以是多段文本內容。
      [0058] 其中,未添加上第一時間標識的文本內容包括與第一文本內容未匹配出的文本內 容。此外,未添加上第一時間標識的文本內容,還包括與第一文本內容相匹配的文本內容中 沒有對應第一時間標識的文本內容。比如,相匹配的文本內容中存在文本內容A,在自動語 音識別處理后的第一字幕數(shù)據(jù)中本身就缺失了文本內容A對應的第一時間標識,那么就無 法為第二文本內容中與文本內容A對應的文本內容添加上第一時間標識了。
      [0059] 結合上述例子舉例說明,比如未添加上第一時間標識的文本內容為"照例"那么根 據(jù)平均語速計算出"照例"分別對應的時間為tl,"照例"之后相匹配到的文本內容"隆隆"的 起始時間戳為11295.00,那么"照例"對應的起始時間戳則可以為11295-t 1。
      [0060] 步驟310,根據(jù)添加了第一時間標識和第二時間標識的第二文本內容生成第二字 幕數(shù)據(jù)。
      [0061] 服務器在將第一時間標識和第二時間標識都添加至第二文本內容后,即完成了對 原始文本內容中的需發(fā)聲的文本內容的時間標識的添加。則服務器會根據(jù)完成了時間標識 添加的第二文本內容生成第二字幕數(shù)據(jù)。
      [0062] 具體地,服務器會按照預設的字幕格式將完成時間標識添加的第二文本內容轉換 成對應字幕格式的第二字幕數(shù)據(jù)。
      [0063] 需要說明的是,當原始文本內容中還包括除第二文本內容以外的非發(fā)聲文本內容 時,服務器可以進一步從上述非發(fā)聲文本內容中獲取利于字幕顯示的其他信息,并將獲取 的其他信息也轉換成對應字幕格式的第二字幕數(shù)據(jù)。即第二字幕數(shù)據(jù)可以由完成時間標識 添加的第二文本內容和其他信息共同進行字幕格式轉換生成??梢岳斫?,服務器也可以只 將第二文本內容轉換成第二字幕數(shù)據(jù)。本發(fā)明實施例對此并不做限定。
      [0064]本實施例中,根據(jù)自動語音識別出的文本內容所具有的時間標識為具有準確文本 內容的原始文本中需發(fā)聲的第二文本內容中相匹配的文本內容添加上對應的第一時間標 識,再根據(jù)自動語音識別出的文本內容及第一時間標識計算出平均語速,根據(jù)平均語速為 未添加上時間標識的文本內容添加上第二時間標識。這樣,使具有準確文本內容的需發(fā)聲 的第二文本內容都添加上時間標識,再根據(jù)添加了時間標識的具有準確文本內容的第二文 本內容生成字幕。由于第二文本內容是基于原始文本內容得到的準確的文本內容,因此將 第二文本內容添加上對應的時間標識后所生成的字幕數(shù)據(jù),不存在文本內容錯誤的問題, 更加準確。
      [0065] 在一個實施例中,該字幕數(shù)據(jù)生成方法還包括:獲取原始文本內容中的附屬信息, 附屬信息為原始文本內容中不發(fā)聲但有利于對第二文本內容的理解的信息。
      [0066] 本實施例中,根據(jù)添加了第一時間標識和第二時間標識的第二文本內容生成第二 字幕數(shù)據(jù),包括:根據(jù)添加了第一時間標識和第二時間標識的第二文本內容以及附屬信息 生成第二字幕數(shù)據(jù)。
      [0067]具體地,原始文本內容中還包括附屬信息,附屬信息為原始文本內容中不發(fā)聲但 有利于對第二文本內容的理解的信息。即附屬信息是與對第二文本內容的理解有幫助的非 音頻信息。附屬信息可以包括發(fā)聲對象信息(如發(fā)聲對象名稱),還可以包括情景描述信息、 段落信息等??梢岳斫猓l(fā)聲對象信息、情景描述信息以及段落信息都是可以有利于對第二 文本內容的理解的信息。
      [0068]比如,廣播劇原始的劇本內容為:
      [0069] 旁白:紅紅在媽媽的懷抱中進入了甜蜜的夢鄉(xiāng)。
      [0070] 紅紅:【滾下床】(大呼)?。?br>[0071] 其中,"紅紅在媽媽的懷抱中進入了甜蜜的夢鄉(xiāng)"以及"啊!"是對應的需發(fā)聲的文 本內容。而"旁白"、"紅紅"不發(fā)聲的但是可以表明發(fā)聲對象,使大家可以結合發(fā)聲對象信息 更好地理解文本內容,可以作為附屬信息。進一步,附屬信息也可以包括"滾下床"、"大呼" 等這類無聲的起形容描述作用的詞以及段落信息等。附屬信息的具體類型要根據(jù)實際字幕 需求來確定。本發(fā)明實施例僅用于說明,原始文本內容中包含不發(fā)聲但有利于對第二文本 內容的理解的附屬信息。
      [0072] 因此,服務器還會獲取附屬信息,在完成對需發(fā)聲的第二文本內容中時間標識的 添加之后,服務器會根據(jù)添加了第一時間標識和第二時間標識的第二文本內容以及附屬信 息生成第二字幕數(shù)據(jù)。具體地,服務器會將添加了第一時間標識和第二時間標識的第二文 本內容和附屬信息一起作輸出轉換,轉換成字幕格式得到第二字幕數(shù)據(jù)。
      [0073] 進一步,服務器在獲取附屬信息的時候,會將獲取的第二文本內容與附屬信息的 相對位置關系做保留。比如,通過一個數(shù)據(jù)結構保留第二文本內容與附屬信息的相對位置 關系,如"旁白:紅紅在媽媽的懷抱中進入了甜蜜的夢鄉(xiāng)。",那么就可以通過以下數(shù)據(jù)結構 表不: struct { text "紅紅在媽媽的懷抱中進入了甜蜜的夢鄉(xiāng)。
      [0074] speaker: "旁白:" newline: 'tiue" }
      [0075] 其中,text中的內容即為提取的第二文本內容,speaker、newline等內容即為附屬 fg息。
      [0076] 服務器根據(jù)保留的附屬信息與第二文本內容之間的相對位置關系,將添加了第一 時間標識和第二時間標識的第二文本內容和附屬信息一起作輸出轉換,即輸出轉換的附屬 信息和添加了第一時間標識和第二時間標識的第二文本內容與原始文本內容中的相對位 置保持一致,進而生成第二字幕數(shù)據(jù)。如圖4所示,圖4為一個實施例中的生成的第二字幕數(shù) 據(jù)在終端顯示的界面示意圖。
      [0077] 比如,廣播劇原始的劇本內容為:
      [0078] 旁白:紅紅在媽媽的懷抱中進入了甜蜜的夢鄉(xiāng)。
      [0079] 紅紅:【滾下床】(大呼)?。?br>[0080]媽媽:【立馬起身】孩子,沒有摔傷吧?
      [0081 ] 紅紅:【揉著腿】媽媽,沒事
      [0082]那么,根據(jù)第二文本內容和附屬信息生成的第二字幕數(shù)據(jù)在終端界面顯示的內容 即如圖4所示。其中"旁白"媽媽:" "紅紅:"即為附屬信息。
      [0083]可以理解,服務器可以在提取第二文本內容的同時,提取出附屬信息。具體地,獲 取預設的過濾邏輯公式,根據(jù)預設的過濾邏輯公式提取出原始文本內容中的需發(fā)聲的第二 文本內容和附屬信息。根據(jù)預設的過濾邏輯公式自動獲取需發(fā)聲的第二文本內容和附屬信 息,不需要手動的準備第二文本內容和附屬信息,提高了效率,進而提高了第二字幕數(shù)據(jù)生 成的效率。此外,服務器也可以在生成第二字幕數(shù)據(jù)之前時,獲取對應的附屬信息,本發(fā)明 實施例對此并不做限定。
      [0084]本實施例中,將需發(fā)聲的第二文本內容和附屬信息一起輸出轉換成第二字幕數(shù) 據(jù),使生成的第二字幕數(shù)據(jù)更加的有利于用戶理解文本內容,增強了第二字幕數(shù)據(jù)的完整 性,提高了第二字幕數(shù)據(jù)的表達力。
      [0085] 在一個實施例中,提取第二文本內容和第一文本內容相匹配的文本內容包括:將 第一文本內容和第二文本內容分別根據(jù)字符劃分得到對應的第一文本序列和第二文本序 列,提取第一文本序列和第二文本序列的第一最長公共子序列的步驟。
      [0086] 本實施例中,服務器可以將第一文本內容根據(jù)字符劃分得到對應的第一文本序 列,以及將第二文本內容根據(jù)字符劃分得到第二文本序列。結合前文舉例說明,第一文本內 容為"歷史的車輪找李隆隆而過",第二文本內容為"歷史的車輪照例隆隆而過",那么第一 文本序列則為"歷,史,的,車,輪,找,李,隆,隆,而,過",第二文本序列則為"歷,史,的,車, 輪,照,例,隆,隆,而,過"。
      [0087] 進一步,提取第一文本序列和第二文本序列的第一最長公共子序列。
      [0088] 其中,最長公共子序列(The longest common subsequence)指一個序列,如果分 別是兩個或多個已知序列的子序列,且是所有符合此條件序列中最長的,則該序列稱為已 知序列的最長公共子序列。這里用"第一"對"最長公共子序列"不作任何限定,僅是為了與 下文中的"第二"最長公共子序列進行區(qū)別開來。第一最長公共子序列表示第一文本序列和 第二文本序列的最長公共子序列,下文中所述的第二最長公共子序列表示第一文本子序列 和第二文本子序列的最長公共子序列。
      [0089] 具體地,服務器可以通過蠻力法進行第一文本序列和第二文本序列的第一最長公 共子序列。即通過枚舉第一文本序列的每一個子序列,檢查是否為第二文本序列的子序列, 從而確定其是否為第一文本序列和第二文本序列的公共子序列,并選出最長的公共子序列 作為本實施例中的第一最長公共子序列。
      [0090] 此外,服務器也可以根據(jù)動態(tài)規(guī)劃算法進行第一文本序列和第二文本序列的第一 最長公共子序列的計算。
      [0091] 其中,可以是,根據(jù)動態(tài)規(guī)劃算法求出第一文本序列與第二文本序列中完全相同 的最長公共子序列,即第一最長公共子序列。
      [0092] 也可以是,根據(jù)動態(tài)規(guī)劃算法進行第一文本序列和第二文本序列進行第一最長公 共子序列的模糊計算。即指將第二文本序列與第一文本序列中通過動態(tài)規(guī)劃算法進行匹配 時,作匹配兩個文本序列相同或者近似等同,則判定這兩個文本序列相匹配,即可作為第二 文本序列與第一文本序列的公共子序列。
      [0093] 其中,近似等同,可以當兩個作匹配的文本序列的發(fā)音相同,或者發(fā)音近似相同的 情況下(比如前鼻音與后鼻音、或者平舌或翹舌等可以認為是近似相同),判定這兩個作匹 配的文本序列近似等同。
      [0094] 進一步,可以按照動態(tài)規(guī)劃狀態(tài)迀移方程進行第一最長公共子序列的計算:
      [0095] if similar(str_l[i],str_2[ j]) =True:
      [0096] Score[i,j]=max(Score[i~l,j]),Score[i,j-1],Score[i~l,j-1]+l)
      [0097] else:
      [0098] Score[i , j] =max(Score[i~l, j]),Score[i , j-1 ])
      [0099] 其中,str_l為第一文本序列,str_2為第二文本序列,i和j分別為str_]JPIstr_2的 長度,similar(strj [ i ],str_2[j ])即指對第一文本序列和第二文本序列作模糊匹配, Sc〇re[i,j]即為對匹配的字符個數(shù)的計數(shù),即最長公共子序列的長度計數(shù)。
      [0100] 進一步,根據(jù)得到的Sc〇re[i,j]最長公共子序列的長度,結合路徑中的公共子序 列的節(jié)點標記得到最長公共子序列??梢岳斫?,Sc 〇re[i,j]得到的一個最長公共子序列的 長度值可以對應多個最長公共子序列。
      [0101] 本實施例中,將第二文本內容和第一文本內容根據(jù)字符劃分成對應的第一文本序 列和第二文本序列,進而提取第一文本序列和第二文本序列的第一最長公共子序列,能夠 更快的得到第一文本內容和第二文本內容相匹配的文本內容,提高了匹配效率。且將第一 最長公共子序列來作為相匹配的文本內容,使匹配結果更加的準確、全面。
      [0102] 如圖5所不,在一個實施例中,提取第一文本序列和第二文本序列的第一最長公共 子序列(簡稱第一最長公共子序列提取步驟)包括以下步驟:
      [0103] 步驟502,將第二文本序列進行按序分段處理得到至少兩個有序的第二文本子序 列。
      [0104] 本實施例中,可以按照預設規(guī)則對第二文本序列進行按序分段處理得到至少兩個 有序的第二文本子序列。具體地,前文有說明,第一和第二文本序列中包含標點符號,因此 可以以標點符號為分段依據(jù),比如,以逗號或者句話為分段依據(jù),又比如,將標點符號達到 預設數(shù)量的文本序列劃分為一個段。還可以是將第二文本序列按照字符個數(shù)進行劃分,當 字符個數(shù)達到預設字符數(shù)量時,則進行一個分段處理。這里,對具體的分段方式不作限定, 只需滿足對第二文本序列進行按序分段處理即可。
      [0105] 其中,按序是指將第二文本序列進行分段后的各段第二文本子序列之間是有序 的。進而在作匹配處理時,先對分段后的前一個第二文本子序列作匹配,完成之后再對后一 個的第二文本子序列作匹配處理。比如第二文本序列={歷,史,的,車,輪,呀,照,例,隆, 隆,而,過},將其劃分為:第一個第二文本子序列={歷,史,的,車,輪,呀}和第二個第二文 本子序列={照,例,隆,隆,而,過},其中,第一個第二文本子序列與第二個第二文本子序列 之間有順序關系,即在作匹配處理時,先對第一個第二文本子序列作匹配處理,之后再對第 二個第二文本子序列作匹配處理。
      [0106] 步驟504,獲取與每個第二文本子序列作匹配的第一文本序列中的第一文本子序 列,提取第一文本子序列和第二文本子序列的第二最長公共子序列。
      [0107] 具體地,服務器在進行分段處理得到至少兩個的第二文本子序列之后,會從第一 文本序列中獲取與每個第二文本子序列作匹配的對應的第一文本子序列??梢允菑牡谝晃?本序列中選取與第二文本子序列的長度一致的文本序列作為第一文本子序列,也可以是通 過懲罰函數(shù)選取出與第二文本子序列匹配率最高的文本序列作為第一文本子序列。本實施 例對此不作限定。
      [0108] 進一步,服務器會提取第二文本子序列和獲取的對應的第一文本子序列的第二最 長公共子序列。即分別提取每個第二文本子序列和對應的第一文本子序列的第二最長公共 子序列。
      [0109] 可以理解,因為至少兩個的第二文本子序列之間是有序的。因此,服務器在從第一 文本序列中獲取與上一個第二文本子序列作匹配的第一文本子序列,并提取上一個第二文 本子序列和獲取的對應的第一文本子序列的第二最長公共子序列之后,會繼續(xù)從第一文本 序列中獲取與下一個第二文本子序列作匹配的下一個第一文本子序列,同樣地提取下一個 第二文本子序列和獲取的對應的下一個第一文本子序列的第二最長公共子序列。
      [0110]比如,第一個第二文本子序列={:歷,史,的,車,輪,呀}和第二個第二文本子序列 ={照,例,隆,隆,而,過},第一文本序列={歷,史,的,車,輪,呀,找,李,隆,隆,而,過},那 么獲取的與第一個第二文本子序列={歷,史,的,車,輪,呀}作匹配的第一個第一文本子序 列可以是{:歷,史,的,車,輪,呀},提取第一個第二文本子序列與第一個第一文本子序列的 最長公共子序列之后,再從第一文本子序列中選取與第二個第二文本子序列={照,例,隆, 隆,而,過H乍匹配的第二個第一文本子序列,可以是{:找,李,隆,隆,而,過},進而再提取第 二個第二文本子序列和第二個第一文本子序列的最長公共子序列。
      [0111] 同樣地可以理解,提取至少兩個有序的第二文本子序列與對應的第一文本子序列 的最長公共子序列之后,得到至少兩個的第二最長公共子序列之間是有序的。
      [0112] 步驟506,將第二最長公共子序列按序組成第一最長公共子序列。
      [0113]進一步,將經(jīng)過步驟504處理后所得到的有序的所有第二最長公共子序列按序組 合,組成第一最長公共子序列。
      [0114] 本實施例中,將第二文本序列進行按序分段處理得到至少兩個有序的第二文本子 序列,從第一文本序列中選取與第二文本子序列作匹配的第一文本子序列,提取第一文本 子序列與第二文本子序列的第二最長公共子序列,進而將所有的第二最長公共子序列按序 組合得到第一最長公共子序列。通過分段處理,在將當前的第二文本子序列和第一文本子 序列進行匹配計算時,不需要上一個第二文本子序列及上一個第一文本子序列參與匹配計 算,節(jié)省了匹配處理的計算步驟,提高了匹配速度。
      [0115] 如圖6所示,在一個實施例中,獲取與第二文本子序列作匹配的第一文本序列中的 第一文本子序列(簡稱第一文本子序列獲取步驟)包括以下步驟:
      [0116]步驟602,當?shù)诙谋咀有蛄袨榈谝粋€第二文本子序列時,將第一文本序列的起點 作為選取參照文本子序列的起始點。
      [0117]步驟604,當?shù)诙谋咀有蛄胁粸榈谝粋€第二文本子序列時,根據(jù)上一個獲取的第 一文本子序列的終點確定第一文本序列中選取參照文本子序列的起始點。
      [0118]可以理解,如步驟502中所述,第二文本子序列是至少兩個的有序的序列,因此,對 應的,獲取的與第二文本子序列作匹配的第一文本子序列也是至少兩個的有序的序列。
      [0119]當?shù)诙谋咀有蛄袨榈谝粋€第二文本子序列時,則將第一文本序列的起點作為選 取參照文本子序列的起始點。比如,第一文本序列是ASDFGHJ,則將A作為選取參照文本子序 列的起始點。
      [0120] 當?shù)诙谋咀有蛄胁粸榈谝粋€第二文本子序列時,則說明已經(jīng)從第一文本序列中 獲取了與上一個第二文本子序列作匹配的第一文本子序列,即已經(jīng)獲取了上一個第一文本 子序列。則根據(jù)上一個獲取的第一文本子序列的終點確定第一文本序列中選取參照文本子 序列的起始點,具體地,將第一文本序列中與上一個獲取的第一文本子序列的終點對應位 置后的第一個序列元素作為獲取參照文本子序列的起始點。
      [0121] 同樣地,比如第一文本序列是ASDFGHJKL匪Q,獲取的與上一個第二文本子序列作 匹配的第一文本子序列(即上一個第一文本子序列)為ASDF,那么,則將第一文本序列中與 ASDF的終點對應位置F后的第一個序列元素 G作為選取參照文本子序列的起始點。
      [0122] 步驟606,從確定的起始點開始從第一文本序列中選取長度大于第二文本子序列 的連續(xù)的參照文本子序列。
      [0123] 進一步,服務器會從第一文本序列中所確定起始點開始選取長度大于第二文本子 序列的連續(xù)的參照文本子序列。具體地,可以根據(jù)預設規(guī)則從第一文本序列中所確定起始 點開始選取長度大于第二文本子序列的連續(xù)的參照文本子序列。比如,選取的參照文本子 序列的長度是第二文本子序列的長度的預設倍數(shù),或者是第二文本子序列長度與預設長度 之和。還可以是第二文本子序列的長度的預設倍數(shù)與動態(tài)調整參數(shù)之積。其中,動態(tài)調整參 數(shù)的值可以根據(jù)第二文本子序列的長度來進行動態(tài)變換。
      [0124] 步驟608,對參照文本子序列和第二文本子序列進行最長公共子序列的長度的計 算,根據(jù)計算結果從參照文本子序列中選取與第二文本子序列匹配率最高的文本子序列作 為第一文本子序列。
      [0125] 具體地,服務器在選取參照文本子序列之后,會按照動態(tài)規(guī)劃算法對參照文本子 序列和第二文本子序列進行兩者的最長公共子序列的長度計算。其中,在計算過程中,會計 算得到在對所選取的參照文本子序列進行不同長度取值時,所對應的與第二文本子序列相 匹配的序列元素的個數(shù)。具體地,會生成一個根據(jù)參照文本子序列和第二文本子序列組成 的二維數(shù)組。根據(jù)這個二維數(shù)組進行最長公共子序列的長度的計算。進一步,在根據(jù)二維數(shù) 組計算最長公共子序列的長度的過程中,會計算得到在對所選取的參照文本子序列進行不 同長度取值時,所對應的與第二文本子序列相匹配的序列元素的個數(shù)。
      [0126] 進一步,服務器會根據(jù)所得到的相匹配的序列元素個數(shù),分別計算對所選取的參 照文本子序列進行不同長度取值時,與第二文本子序列的匹配率。進而,確定對所選取的參 照文本子序列取多少的長度值時,與第二文本子序列的匹配率最高。
      [0127] 現(xiàn)舉例對上述步驟進行解釋說明。如圖7所示,圖7為一個實施例中按照動態(tài)規(guī)劃 算法對參照文本子序列和第二文本子序列進行最長公共子序列的長度的計算的結果示意 圖,其中豎直方向表示的是第二文本子序列(簡稱S1)的各個序列元素,水平方向表示的是 參照文本子序列(簡稱S2)的各個序列元素,S1 = {A,B,C,B,D}和S2={B,D,C,A,B,A}。
      [0128] 其中,i和j表示的是序列長度。當i = 5(即第二文本子序列S1 = {A,B,C,B,D})時, 對應的這一行的數(shù)據(jù)可以看出,當j = 1時,S2 = {B},S1與S2所匹配上的字符個數(shù)為1個,當j =2時,S2={B,D},S1與S2所匹配上的字符個數(shù)為2個,當j = 3時,32={8,0,(:},31與32所匹 配上的字符個數(shù)為2個……當j = 6時,32={8,0,(:4,84},31與32所匹配上的字符個數(shù)為3 個。
      [0129] 進一步,會計算j取多長時,所對應的S2與S1的匹配率最高。其中,將對參照文本子 序列進行長度取值后得到的序列簡稱為取值文本子序列,那么,匹配率則根據(jù)第二文本子 序列與取值文本子序列的最長公共子序列的長度與第二文本子序列與取值文本子序列的 長度和的比值得到。
      [0130] 具體地,match_rate = len(LCS(segment(LST_ASR參),segment(LST_TXT)) )*2/ (len(segment(LST_ASR參))+len(segment(LST_TXT)))〇
      [0131] 其中,match_rate即為匹配率,LST_TXT即為第二文本序列,segment(LST_TXT)即 為第二文本子序列,LST_ASR參即為參照文本子序列, segment(LST_ASR參)即為取值文本子序 列。
      [0132] 比如,j =丄時,匹配率=丨x 2/(5+1) = 1/3,j = 2時,匹配率=2*2/(5+2) =4/7…… 以此依次計算出各個匹配率,從中確定最高的匹配率。
      [0133] 進一步,從參照文本序列中選取匹配率最高的文本子序列,即為確定出的與第二 文本子序列作匹配的第一文本子序列。結合圖7,即選取匹配率最高為j = 5時,匹配率=2* 3/ (5+5) = 0.6,該最高匹配率對應的文本子序列S2={B,D,C,A,B},則從參照文本序列中選 取{B,D,C,A,B}作為確定出的與第二文本子序列作匹配的第一文本子序列。
      [0134] 可以理解,會在第一文本序列中對應標記上第一文本子序列的位置,以便下一個 參照文本子序列的選取起始點的確定。
      [0135] 本實施例中,根據(jù)參照文本子序列和第二文本子序列選取出匹配率最高的第一文 本子序列,使所選取與第二文本子序列作匹配的第一文本子序列的長度更加合適,避免出 現(xiàn)由于選取的第一文本子序列過長造成過擬合,而降低匹配結果的準確性。同時也避免了 由于先前的第一文本子序列過短造成第二文本子序列中過多內容匹配不到,而降低匹配結 果的準確性。
      [0136] 在其它實施例中,可以用以下步驟替代步驟608:對參照文本子序列進行不同長度 的取值,計算各個不同長度取值得到的文本序列與第二文本子序列的匹配率,從參照文本 子序列中選取與第二文本子序列匹配率最高的文本序列作為第一文本子序列。
      [0137] 具體地,可以按照預設間隔值對參照文本子序列進行不同長度的取值,預設間隔 值根據(jù)實際需要確定,可以是1也可以是非1的正整數(shù)。
      [0138] 比如,第二文本子序列(簡稱31)31 = 0,8,(:,8,〇},參照文本子序列(簡稱32)32 = 0,〇,(:4,84},對參照文本子序列進行不同長度取值可以分別得到序列521 = {8},522 = {B,D}……S25 = {B,D,C,A,B},526={8,0,(:4,84},分別計算521、522……S25、S26與S1 的 匹配率,從中確定出S25與S1的匹配率最高,進而從參照文本子序列中選取與S25對應的文 本序列作為第一文本子序列。
      [0139] 在一個實施例中,提取第一文本序列和第二文本序列的第一最長公共子序列包 括:將第一文本序列和第二文本序列中的中文字符轉換成拼音,將轉換后的第一文本序列 和第二文本序列以拼音為最小單位進行匹配處理,得到第一文本序列和第二文本序列的第 一最長公共子序列的步驟。
      [0140] 具體地,可以指將作匹配的第一文本序列和第二文本序列中的中文字符轉換成拼 音。將轉換后的第一文本序列和第二文本序列以拼音為最小單位進行匹配處理,即將轉換 后的拼音作為一個整體進行匹配,第二文本序列和第一文本序列的第一最長公共子序列。
      [0141] 比如,第二文本序列={照,例,隆,隆,而,過},第一文本序列={找,李,隆,隆,而, 過},那么將第二文本序列和第一文本序列中的中文字符轉換成拼音,得到第二文本序列= {zhao,1 i,long,long,er,guo},第一文本序列={zhao,1 i,long,long,er,guo} 〇進一步,以 拼音為最小單位進行匹配處理,即將"zhao"或"li"等轉換后的拼音作為一個整體進行匹 配,比如將第二文本序列中的"zhao"作為一個整體與第一文本序列中的"zhao"做匹配。
      [0142] 本實施例中,將中文字符轉換成拼音后,以拼音為單位進行匹配處理,避免了因自 動語音識別時字詞挑選錯誤造成的匹配不成功,然而這些發(fā)音相同的字詞所對應的第一時 間標識往往是可以作為參考的,因此在提高匹配率的同時,提高了匹配結果的可參考性,價 值性。
      [0143] 進一步,服務器會將第二文本序列中作匹配處理后的拼音還原回中文字符。需要 說明的是,這里指將之前由中文字符轉換成的拼音轉換回中文字符,對原先就是拼音形式 或者英文形式的文本內容不需要轉換成中文字符。
      [0144] 可以理解,在其它實施例中,在提取第一文本子序列和第二文本子序列的第二最 長公共子序列的時候,也可以使用上述方法,只需將上述步驟的第一文本序列替換為第一 文本子序列,將第二文本序列替換為第二文本子序列,第一最長公共子序列替換為第二最 長公共子序列即可。
      [0145] 在一個實施例中,將轉換后的第一文本序列和第二文本序列以拼音為最小單位進 行匹配處理包括:當待匹配的第一文本序列中的第一拼音和/或待匹配的第二文本序列中 的第二拼音的字母數(shù)超過第一預設閾值時,則判斷第一拼音和第二拼音是否近似等同或相 同。若是,則判定兩個待匹配的拼音相匹配,若否,則判定兩個待匹配的拼音不匹配。
      [0146] 具體地,可以是當待匹配的第一文本序列中的第一拼音(可簡稱第一拼音)中的字 母數(shù)超過預設的字母數(shù)閾值時,則進一步判斷第一拼音和第二拼音是否近似等同或相同。 也可以是,當待匹配的第二文本序列中的第二拼音(可簡稱第二拼音)中的字母數(shù)是否超過 預設的字母數(shù)閾值時,則進一步判斷第一拼音和第二拼音是否近似等同或相同。還可以是, 當?shù)谝黄匆艉偷诙匆魞蓚€的字母總數(shù)是否超過預設的字母數(shù)閾值時,則進一步判斷第一 拼音和第二拼音是否近似等同或相同。本發(fā)明實施例對具體以哪個文本序列中的拼音字母 數(shù)作為判斷依據(jù)不作限定,只用于表明,當待匹配的文本序列中的拼音的字母數(shù)過長時(即 超過預設字母數(shù)閾值時),則進一步判斷第一拼音和第二拼音是否近似等同或相同??梢岳?解,這里對具體的預設字母數(shù)閾值不作限定。
      [0147] 進一步,可以根據(jù)第一拼音和第二拼音的編輯距離和/或字符個數(shù)差值來判斷第 一拼音和第二拼音是否近似等同或相同。
      [0148] 本實施例中,當待匹配的拼音字母數(shù)超過預設值時,即字母數(shù)過多時,可以通過判 斷第一拼音和第二拼音之間是否相同或近似等同,來判定兩者是否相匹配。避免了因自動 語音識別時因發(fā)音問題造成的匹配不成功,然而這些發(fā)音相同或近似等同的字詞所對應的 第一時間標識往往是可以作為參考的,因此在提高匹配率的同時,提高了匹配結果的可參 考性,價值性。
      [0149] 可以理解,在其它實施例中,在提取第一文本子序列和第二文本子序列的第二最 長公共子序列的時候,也可以使用上述方法,只需將上述步驟的第一文本序列替換為第一 文本子序列,將第二文本序列替換為第二文本子序列,第一最長公共子序列替換為第二最 長公共子序列即可。
      [0150]在一個實施例中,將轉換后的第一文本序列和第二文本序列以拼音為最小單位進 行匹配處理包括:當待匹配的第一文本序列中的第一拼音和/或待匹配的第二文本序列中 的第二拼音的字母數(shù)超過第一預設閾值時,則計算第一拼音與第二拼音之間的編輯距離, 當?shù)谝黄匆艉偷诙匆糁g的編輯距離未超出第二預設閾值時,則判定第一拼音和第二拼 音相匹配。
      [0151 ] 編輯距離(Edit Distance),又稱Levenshtein距離,是指兩個字串之間,由一個轉 成另一個所需的最少編輯操作次數(shù)。
      [0152]具體地,服務器中預先設置了第二預設閾值。當待匹配的第一文本序列中的第一 拼音和/或待匹配的第二文本序列中的第二拼音的字母數(shù)超過第一預設閾值時,則計算第 一拼音和第二拼音之間的編輯距離,當?shù)谝黄匆艉偷诙匆糁g的編輯距離小于或等于第 二預設閾值時,則判定第一拼音和第二拼音相匹配。當?shù)谝黄匆艉偷诙匆糁g的編輯距 離大于第二預設閾值時,則判定第一拼音和第二拼音不匹配。
      [0153]比如,第二拼音是"shi",第一拼音是"si",則很有可能是由于發(fā)聲多媒體文件中 發(fā)聲人的發(fā)音受方言影響,將"Shi"發(fā)成了 "si",這樣進行自動語音識別處理時得到的就是 "Si",就會出現(xiàn)識別錯誤。為了避免這種情況發(fā)生,可以根據(jù)編輯距離來進行模糊近似匹 配,比如正確讀音"Shi"和錯誤讀音"si"之間的編輯距離僅為1,比如預設的編輯距離為2, 那么小于預設編輯距離,則可以判定第一拼音和第二拼音相匹配??梢岳斫猓@里只是發(fā)音 習慣的不同,"s i"對應的時間標識還是可以作為"shi"對應的時間標識的參考的,因此,s i 與shi是近似等同,可以判定兩者相匹配。
      [0154] 本實施例中,通過第一拼音和第二拼音的編輯距離來判斷兩個拼音之間是否相同 或近似等同,以判定兩者是否相匹配。使判定結果更加的準確,進而,提高了匹配結果的可 參考性,價值性。
      [0155] 可以理解,在其它實施例中,在提取第一文本子序列和第二文本子序列的第二最 長公共子序列的時候,也可以使用上述方法,只需將上述步驟的第一文本序列替換為第一 文本子序列,將第二文本序列替換為第二文本子序列,第一最長公共子序列替換為第二最 長公共子序列即可。
      [0156] 在一個實施例中,將轉換后的第一文本序列和第二文本序列以拼音為最小單位進 行匹配處理包括:當待匹配的第一文本序列中的第一拼音和/或待匹配的第二文本序列中 的第二拼音的字母數(shù)超過第一預設閾值時,則計算第一拼音與第二拼音之間的字母數(shù)差 值,當?shù)谝黄匆艉偷诙匆糁g的字母數(shù)差值未超出第三預設閾值時,則判定第一拼音和 第二拼音相匹配。
      [0157] 具體地,服務器中預先設置了第三預設閾值。當待匹配的第一文本序列中的第一 拼音和/或待匹配的第二文本序列中的第二拼音的字母數(shù)超過第一預設閾值時,則計算第 一拼音與第二拼音之間的字母數(shù)差值。將計算得到的字母數(shù)差值與第三預設閾值作比較, 當?shù)谝黄匆艉偷诙匆糁g的字母數(shù)差值小于或等于第三預設閾值時,則判定第一拼音和 第二拼音相匹配。當?shù)谝黄匆艉偷诙匆糁g的字母數(shù)差值大于第三預設閾值時,則判定 第一拼音和第二拼音不匹配。
      [0158] 比如,比如,第二拼音是"shi",字母數(shù)為3,第一拼音是"si"字母數(shù)為2,第三預設 閾值為1,那么計算得到字母數(shù)差值為1,等于第三預設閾值1,因此,因此,si與Shi是近似等 同,判定兩者相匹配。
      [0159] 本實施例中,通過第一拼音和第二拼音的字母數(shù)差值來判斷兩個拼音之間是否相 同或近似等同,以判定兩者是否相匹配。使判定結果更加的準確,進而,提高了匹配結果的 可參考性,價值性。
      [0160] 可以理解,在其它實施例中,在提取第一文本子序列和第二文本子序列的第二最 長公共子序列的時候,也可以使用上述方法,只需將上述步驟的第一文本序列替換為第一 文本子序列,將第二文本序列替換為第二文本子序列,第一最長公共子序列替換為第二最 長公共子序列即可。
      [0161]在其它實施例中,可以將第一拼音和第二拼音之間的編輯距離與第二預設閾值的 判斷和將第一拼音和第二拼音之間的字母數(shù)差值與第三預設閾值的判斷相結合。比如,可 以是,當?shù)谝黄匆艉偷诙匆糁g的字母數(shù)差值未超出第三預設閾值時,則進一步判斷第 一拼音和第二拼音之間的編輯距離是否未超出第二預設閾值,若是,則判定第一拼音和第 二拼音相匹配,若否,則判定第一拼音和第二拼音不匹配。還可以是,當?shù)谝黄匆艉偷诙?音之間的編輯距離未超出第二預設閾值時,則進一步判斷第一拼音和第二拼音之間的字母 數(shù)差值是否未超出第三預設閾值,若是,則判定第一拼音和第二拼音相匹配,若否,則判定 第一拼音和第二拼音不匹配。經(jīng)過多重判斷,使判定結果更加的準確,進而,提高了匹配結 果的可參考性,價值性。
      [0162] 如圖8所示,在一個實施例中,根據(jù)平均語速為第二文本內容中未添加上第一時間 標識的文本內容計算并添加上第二時間標識(第二時間標識確定步驟)包括:
      [0163] 步驟802,獲取預設的文本內容與文字數(shù)量之間的等同轉化關系,根據(jù)等同轉化關 系,將第二文本內容中未添加上第一時間標識的文本內容歸一轉化成對應的文字數(shù)量。
      [0164] 具體地,服務器中預先設置了文本內容與文字數(shù)量之間的等同轉化關系。其中,文 本內容包括文字、標點符號、段落等多種不同類型的內容。其中,不同的標點符號所等同轉 化的文字數(shù)量可以有所不同,具體根據(jù)各個標點符號停頓時間的長短來設置對應的等同轉 化的文字數(shù)量。比如,句號對應的等同轉化的文字數(shù)量為2個,逗號對應的等同轉化的文字 數(shù)量為1個。
      [0165] 進一步,根據(jù)該等同轉化關系,將第二文本內容中未添加上第一時間標識的文本 內容歸一轉化成對應的文字數(shù)量。比如,第二文本內容為"時間從來不會以人們的意念為轉 移,歷史的車輪照例隆隆而過",其中,未添加上第一時間標識的文本內容為"轉移,歷史", 那么根據(jù)預設的文本內容與文字數(shù)量之間的等同轉化關系,各個文字對應的文字數(shù)量為1, 逗號對應的文字數(shù)量也為1,那么將未添加上第一時間標識的文本內容歸一轉化成所對應 的文字數(shù)量為5。
      [0166] 步驟804,根據(jù)歸一轉化的文字數(shù)量及平均語速為第二文本內容中未添加上第一 時間標識的文本內容添加上所對應的第二時間標識。
      [0167] 進一步,根據(jù)歸一轉化的文字數(shù)量及平均語速為第二文本內容中未添加上第一時 間標識的文本內容添加上所對應的第二時間標識。
      [0168] 可以理解,平均語速為單位時間內所經(jīng)過的文字數(shù)量,那么根據(jù)平均語速和歸一 轉化后的文字數(shù)量可以計算出第二文本內容中未添加上第一時間標識的文本內容所對應 的時間標識,即為第二時間標識。進一步,為第二文本內容中未添加上第一時間標識的文本 內容添加上計算出來的第二時間標識。
      [0169] 本實施例中,通過將未添加上第一時間標識的文本內容歸一轉化成對應的文字數(shù) 量,根據(jù)歸一轉化的文字數(shù)量和平均語速為未添加上第一時間標識的文本內容添加上對應 的第二時間標識。通過將歸一轉化和平均語速相結合生成第二時間標識,使第二時間標識 和第一時間標識的銜接過渡更加的平穩(wěn)、自然,避免了極大的跳躍性或滯頓性。
      [0170] 如圖9所示,提供了一種字幕數(shù)據(jù)生成裝置,該裝置包括:獲取模塊902,提取模塊 904,時間標識添加模塊906以及字幕數(shù)據(jù)生成模塊908,其中:
      [0171] 獲取模塊902,用于獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字 幕數(shù)據(jù)中的第一文本內容和對應的第一時間標識,以及獲取發(fā)聲多媒體文件對應的原始文 本內容中的需發(fā)聲的第二文本內容。
      [0172 ]提取模塊904,用于提取第二文本內容和第一文本內容相匹配的文本內容;
      [0173] 時間標識添加模塊906,用于查找相匹配的文本內容在第一文本內容中對應的第 一時間標識,為第二文本內容中與相匹配的文本內容對應的文本內容添加上查找到的第一 時間標識。
      [0174] 時間標識添加模塊906還用于根據(jù)第一文本內容和對應的第一時間標識計算出平 均語速,根據(jù)平均語速為第二文本內容中未添加上第一時間標識的文本內容添加上第二時 間標識。
      [0175] 字幕數(shù)據(jù)生成模塊908,用于根據(jù)添加了第一時間標識和第二時間標識的第二文 本內容生成第二字幕數(shù)據(jù)。
      [0176] 上述字幕數(shù)據(jù)生成裝置,根據(jù)自動語音識別出的文本內容所具有的時間標識為具 有準確文本內容的原始文本中需發(fā)聲的第二文本內容中相匹配的文本內容添加上對應的 第一時間標識,再根據(jù)自動語音識別出的文本內容及第一時間標識計算出平均語速,根據(jù) 平均語速為未添加上時間標識的文本內容添加上第二時間標識。這樣,使具有準確文本內 容的需發(fā)聲的第二文本內容都添加上時間標識,再根據(jù)添加了時間標識的具有準確文本內 容的第二文本內容生成字幕。由于第二文本內容是基于原始文本內容得到的準確的文本內 容,因此將第二文本內容添加上對應的時間標識后所生成的字幕數(shù)據(jù),不存在文本內容錯 誤的問題,更加準確。
      [0177] 在一個實施例中,獲取模塊902還用于獲取原始文本內容中的附屬信息,附屬信息 為原始文本內容中不發(fā)聲但有利于對第二文本內容的理解的信息;
      [0178] 字幕數(shù)據(jù)生成模塊908還用于根據(jù)添加了第一時間標識和第二時間標識的第二文 本內容以及附屬信息生成第二字幕數(shù)據(jù)。
      [0179] 在一個實施例中,提取模塊904還用于將第一文本內容和第二文本內容分別根據(jù) 字符劃分得到對應的第一文本序列和第二文本序列;提取第一文本序列和第二文本序列的 第一最長公共子序列。
      [0180]在一個實施例中,提取模塊904還用于將第二文本序列進行按序分段處理得到至 少兩個有序的第二文本子序列;獲取與每個第二文本子序列作匹配的第一文本序列中的第 一文本子序列,提取第一文本子序列和第二文本子序列的第二最長公共子序列;將第二最 長公共子序列按序組成第一最長公共子序列。
      [0181 ]如圖10所示,在一個實施例中,提取模塊904還包括:
      [0182] 起始點選取模塊1002,用于當?shù)诙谋咀有蛄袨榈谝粋€第二文本子序列時,將第 一文本序列的起點作為選取參照文本子序列的起始點;當?shù)诙谋咀有蛄胁粸榈谝粋€第二 文本子序列時,根據(jù)上一個獲取的第一文本子序列的終點確定第一文本序列中選取參照文 本子序列的起始點。
      [0183] 參照文本子序列確定模塊1004,用于從確定的起始點開始從第一文本序列中選取 長度大于第二文本子序列的連續(xù)的參照文本子序列。
      [0184] 第一文本子序列確定模塊1006,用于對參照文本子序列和第二文本子序列進行最 長公共子序列的長度的計算,根據(jù)計算結果從參照文本子序列中選取與第二文本子序列匹 配率最高的文本子序列作為第一文本子序列。
      [0185] 在一個實施例中,提取模塊904還用于將第一文本序列和第二文本序列中的中文 字符轉換成拼音,將轉換后的第一文本序列和第二文本序列以拼音為最小單位進行匹配處 理,得到第一文本序列和第二文本序列的第一最長公共子序列。
      [0186] 在一個實施例中,提取模塊904還用于當待匹配的第一文本序列中的第一拼音和/ 或待匹配的第二文本序列中的第二拼音的字母數(shù)超過第一預設閾值時,則計算第一拼音與 第二拼音之間的編輯距離或計算第一拼音與第二拼音之間的字母數(shù)差值;當?shù)谝黄匆襞c第 二拼音之間的編輯距離未超出第二預設閾值或第一拼音與第二拼音之間的字母數(shù)差值未 超出第三預設閾值時,則判定第一拼音與第二拼音相匹配。
      [0187] 在一個實施例中,時間標識添加模塊906還用于獲取預設的文本內容與文字數(shù)量 之間的等同轉化關系,根據(jù)等同轉化關系,將第二文本內容中未添加上第一時間標識的文 本內容歸一轉化成對應的文字數(shù)量,根據(jù)歸一轉化的文字數(shù)量及平均語速為第二文本內容 中未添加上第一時間標識的文本內容添加上所對應的第二時間標識。
      [0188] 本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以 通過計算機程序來指令相關的硬件來完成,該計算機程序可存儲于一計算機可讀取存儲介 質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,前述的存儲介質可為 磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等非易失性存儲介質,或隨機存儲記 憶體(Random Access Memory,RAM)等。
      [0189] 以上所述實施例的各技術特征可以進行任意的組合,為使描述簡潔,未對上述實 施例中的各個技術特征所有可能的組合都進行描述,然而,只要這些技術特征的組合不存 在矛盾,都應當認為是本說明書記載的范圍。
      [0190]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并 不能因此而理解為對發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來 說,在不脫離本發(fā)明構思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護 范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。
      【主權項】
      1. 一種字幕數(shù)據(jù)生成方法,包括: 獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字幕數(shù)據(jù)中的第一文本內 容和對應的第一時間標識,以及獲取所述發(fā)聲多媒體文件對應的原始文本內容中的需發(fā)聲 的第二文本內容; 提取所述第二文本內容和所述第一文本內容相匹配的文本內容; 查找所述相匹配的文本內容在所述第一文本內容中對應的第一時間標識,為所述第二 文本內容中與所述相匹配的文本內容對應的文本內容添加上查找到的第一時間標識; 根據(jù)所述第一文本內容和對應的第一時間標識計算出平均語速,根據(jù)所述平均語速為 所述第二文本內容中未添加上所述第一時間標識的文本內容添加上第二時間標識; 根據(jù)添加了所述第一時間標識和所述第二時間標識的第二文本內容生成第二字幕數(shù) 據(jù)。2. 根據(jù)權利要求1所述的方法,其特征在于,還包括: 獲取所述原始文本內容中的附屬信息,所述附屬信息為原始文本內容中不發(fā)聲但有利 于對所述第二文本內容的理解的信息; 所述根據(jù)添加了所述第一時間標識和所述第二時間標識的第二文本內容生成第二字 幕數(shù)據(jù),包括: 根據(jù)所述添加了所述第一時間標識和所述第二時間標識的第二文本內容以及所述附 屬信息生成第二字幕數(shù)據(jù)。3. 根據(jù)權利要求1所述的方法,其特征在于,所述提取所述第二文本內容和所述第一文 本內容相匹配的文本內容,包括: 將所述第一文本內容和所述第二文本內容分別根據(jù)字符劃分得到對應的第一文本序 列和第二文本序列; 提取所述第一文本序列和所述第二文本序列的第一最長公共子序列。4. 根據(jù)權利要求3所述的方法,其特征在于,所述提取所述第一文本序列和所述第二文 本序列的第一最長公共子序列包括: 將所述第二文本序列進行按序分段處理得到至少兩個有序的第二文本子序列; 獲取與每個所述第二文本子序列作匹配的第一文本序列中的第一文本子序列,提取所 述第一文本子序列和所述第二文本子序列的第二最長公共子序列; 將所述第二最長公共子序列按序組成所述第一最長公共子序列。5. 根據(jù)權利要求4所述的方法,其特征在于,所述獲取與所述第二文本子序列作匹配的 第一文本序列中的第一文本子序列,包括: 當所述第二文本子序列為第一個第二文本子序列時,將所述第一文本序列的起點作為 選取參照文本子序列的起始點; 當所述第二文本子序列不為第一個第二文本子序列時,根據(jù)上一個獲取的第一文本子 序列的終點確定第一文本序列中選取參照文本子序列的起始點; 從確定的所述起始點開始從所述第一文本序列中選取長度大于所述第二文本子序列 的連續(xù)的參照文本子序列; 對所述參照文本子序列和所述第二文本子序列進行最長公共子序列的長度的計算,根 據(jù)計算結果從所述參照文本子序列中選取與第二文本子序列匹配率最高的文本子序列作 為所述第一文本子序列。6. 根據(jù)權利要求3所述的方法,其特征在于,所述提取所述第一文本序列和所述第二文 本序列的第一最長公共子序列,包括: 將所述第一文本序列和所述第二文本序列中的中文字符轉換成拼音,將所述轉換后的 第一文本序列和所述第二文本序列以拼音為最小單位進行匹配處理,得到第一文本序列和 所述第二文本序列的第一最長公共子序列。7. 根據(jù)權利要求6所述的方法,其特征在于,所述將所述轉換后的第一文本序列和所述 第二文本序列以拼音為最小單位進行匹配處理,包括: 當待匹配的第一文本序列中的第一拼音和/或待匹配的第二文本序列中的第二拼音的 字母數(shù)超過第一預設閾值時,則計算所述第一拼音與所述第二拼音之間的編輯距離或計算 所述第一拼音與所述第二拼音之間的字母數(shù)差值; 當所述第一拼音與所述第二拼音之間的編輯距離未超出第二預設閾值或所述第一拼 音與所述第二拼音之間的字母數(shù)差值未超出第三預設閾值時,則判定所述第一拼音與所述 第二拼音相匹配。8. 根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)平均語速為所述第二文本內容中 未添加上所述第一時間標識的文本內容計算并添加上第二時間標識,包括: 獲取預設的文本內容與文字數(shù)量之間的等同轉化關系,根據(jù)所述等同轉化關系,將所 述第二文本內容中未添加上所述第一時間標識的文本內容歸一轉化成對應的文字數(shù)量; 根據(jù)歸一轉化的文字數(shù)量及所述平均語速為所述第二文本內容中未添加上所述第一 時間標識的文本內容添加上所對應的第二時間標識。9. 一種字幕數(shù)據(jù)生成裝置,其特征在于,包括: 獲取模塊,用于獲取對發(fā)聲多媒體文件經(jīng)過自動語音識別處理得到的第一字幕數(shù)據(jù)中 的第一文本內容和對應的第一時間標識,以及獲取所述發(fā)聲多媒體文件對應的原始文本內 容中的需發(fā)聲的第二文本內容; 提取模塊,用于提取所述第二文本內容和所述第一文本內容相匹配的文本內容; 時間標識添加模塊,用于查找所述相匹配的文本內容在所述第一文本內容中對應的第 一時間標識,為所述第二文本內容中與所述相匹配的文本內容對應的文本內容添加上查找 到的第一時間標識; 所述時間標識添加模塊還用于根據(jù)所述第一文本內容和對應的第一時間標識計算出 平均語速,根據(jù)所述平均語速為所述第二文本內容中未添加上所述第一時間標識的文本內 容添加上第二時間標識; 字幕數(shù)據(jù)生成模塊,用于根據(jù)添加了所述第一時間標識和所述第二時間標識的第二文 本內容生成第二字幕數(shù)據(jù)。10. 根據(jù)權利要求9所述的裝置,其特征在于,所述獲取模塊還用于獲取所述原始文本 內容中的附屬信息,所述附屬信息為原始文本內容中不發(fā)聲但有利于對所述第二文本內容 的理解的信息; 所述字幕數(shù)據(jù)生成模塊還用于根據(jù)所述添加了所述第一時間標識和所述第二時間標 識的第二文本內容以及所述附屬信息生成第二字幕數(shù)據(jù)。11. 根據(jù)權利要求9所述的裝置,其特征在于,所述提取模塊還用于將所述第一文本內 容和所述第二文本內容分別根據(jù)字符劃分得到對應的第一文本序列和第二文本序列;提取 所述第一文本序列和所述第二文本序列的第一最長公共子序列。12. 根據(jù)權利要求11所述的裝置,其特征在于,所述提取模塊還用于將所述第二文本序 列進行按序分段處理得到至少兩個有序的第二文本子序列;獲取與每個所述第二文本子序 列作匹配的第一文本序列中的第一文本子序列,提取所述第一文本子序列和所述第二文本 子序列的第二最長公共子序列;將所述第二最長公共子序列按序組成所述第一最長公共子 序列。13. 根據(jù)權利要求12所述的裝置,其特征在于,所述提取模塊還包括: 起始點選取模塊,用于當所述第二文本子序列為第一個第二文本子序列時,將所述第 一文本序列的起點作為選取參照文本子序列的起始點;當所述第二文本子序列不為第一個 第二文本子序列時,根據(jù)上一個獲取的第一文本子序列的終點確定第一文本序列中選取參 照文本子序列的起始點; 參照文本子序列確定模塊,用于從確定的所述起始點開始從所述第一文本序列中選取 長度大于所述第二文本子序列的連續(xù)的參照文本子序列; 第一文本子序列確定模塊,用于對所述參照文本子序列和所述第二文本子序列進行最 長公共子序列的長度的計算,根據(jù)計算結果從所述參照文本子序列中選取與第二文本子序 列匹配率最高的文本子序列作為所述第一文本子序列。14. 根據(jù)權利要求11所述的裝置,其特征在于,所述提取模塊還用于 將所述第一文本序列和所述第二文本序列中的中文字符轉換成拼音,將所述轉換后的 第一文本序列和所述第二文本序列以拼音為最小單位進行匹配處理,得到第一文本序列和 所述第二文本序列的第一最長公共子序列。15. 根據(jù)權利要求14所述的裝置,其特征在于,所述提取模塊還用于當待匹配的第一文 本序列中的第一拼音和/或待匹配的第二文本序列中的第二拼音的字母數(shù)超過第一預設閾 值時,則計算所述第一拼音與所述第二拼音之間的編輯距離或計算所述第一拼音與所述第 二拼音之間的字母數(shù)差值;當所述第一拼音與所述第二拼音之間的編輯距離未超出第二預 設閾值或所述第一拼音與所述第二拼音之間的字母數(shù)差值未超出第三預設閾值時,則判定 所述第一拼音與所述第二拼音相匹配。16. 根據(jù)權利要求9所述的裝置,其特征在于,所述時間標識添加模塊還用于獲取預設 的文本內容與文字數(shù)量之間的等同轉化關系,根據(jù)所述等同轉化關系,將所述第二文本內 容中未添加上所述第一時間標識的文本內容歸一轉化成對應的文字數(shù)量,根據(jù)歸一轉化的 文字數(shù)量及所述平均語速為所述第二文本內容中未添加上所述第一時間標識的文本內容 添加上所對應的第二時間標識。
      【文檔編號】G10L25/54GK105931641SQ201610355247
      【公開日】2016年9月7日
      【申請日】2016年5月25日
      【發(fā)明人】許俊偉
      【申請人】騰訊科技(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1