一種音頻剪輯的方法及裝置的制造方法
【專利摘要】本發明涉及音頻處理領域,尤其涉及一種音頻剪輯的方法及裝置,該方法為,獲取待播放的音頻文件;依次讀取所述音頻文件中的每一個數據幀,其中,每讀取一個數據幀,判斷當前讀取的數據幀中指定字段的取值是否為設定數值,若是,則跳過所述當前讀取的數據幀,否則,播放所述當前讀取的數據幀,這樣,在播放音頻文件時,添加一個判斷,使得播放的數據幀為用戶期望的音頻部分,不僅滿足了用戶的剪輯需求,而且,不需要丟棄數據幀,保留了音頻文件的完整信息,具有可恢復性,更能滿足用戶需求。
【專利說明】
一種音頻剪輯的方法及裝置
技術領域
[0001 ]本發明涉及音頻處理領域,尤其涉及一種音頻剪輯的方法及裝置。
【背景技術】
[0002] 目前,隨著手機行業競爭加劇,用戶體驗對企業生存和發展來說越來越重要。用戶 對個性化要求越來越高,能否提供定制化服務成為各大應用滿足用戶的標志之一。用戶在 聽音樂時,往往希望將其中喜歡的一句或一段音樂剪輯出來,作為手機鈴聲,這種音樂剪輯 可提供給用戶所需的私人定制鈴聲,滿足不同用戶對鈴聲的需求。
[0003] 現有技術下,音頻剪輯的方法是對原始音頻數據進行處理,解析出每一個音頻數 據幀,對剪輯范圍之外的數據幀丟棄,將保留下的音頻數據幀及頭文件打包成一個新的體 積較小的音頻文件,在播放時,直接播放剪輯后的音頻文件即可。
[0004] 但是,現有技術下,對音頻文件進行剪輯時,將不需要的數據幀丟棄,這樣使得剪 輯后的音頻文件不具有可恢復性,不可反復進行所需的剪輯操作。
【發明內容】
[0005] 本發明實施例提供一種音頻剪輯的方法及裝置,以解決現有技術中剪輯后的音頻 文件不可恢復的問題。
[0006] 本發明實施例提供的具體技術方案如下:
[0007] -種音頻剪輯的方法,包括:
[0008] 獲取待播放的音頻文件;
[0009] 依次讀取上述音頻文件中的每一個數據幀,其中,每讀取一個數據幀,判斷當前讀 取的數據幀中指定字段的取值是否為設定數值,若是,則跳過上述當前讀取的數據幀,否 貝1J,播放上述當前讀取的數據幀。
[0010] 一種音頻剪輯的裝置,包括:
[0011] 獲取單元,用于獲取待播放的音頻文件;
[0012] 處理單元,用于依次讀取上述音頻文件中的每一個數據幀,其中,每讀取一個數據 幀,判斷當前讀取的數據幀中指定字段的取值是否為設定數值,若是,則跳過上述當前讀取 的數據幀,否則,播放上述當前讀取的數據幀。
[0013] 本發明的有益效果如下:
[0014] 本發明實施例中,獲取待播放的音頻文件,依次讀取音頻文件中的每一個數據幀, 其中,每讀取一個數據幀,判斷當前讀取的數據幀中指定字段的取值是否為設定數值,若 是,則跳過上述當前讀取的數據幀,否則,播放上述當前讀取的數據幀,這樣,在播放音頻文 件時,添加一個判斷,使得播放的數據幀為用戶期望的音頻部分,不僅滿足了用戶的剪輯需 求,而且,不需要丟棄數據幀,保留了音頻文件的完整信息,更能滿足用戶需求。
[0015] 并且,預先將不屬于剪輯時間范圍的數據幀中指定字段的取值修改為設定數值, 在播放時,進行判斷即可以獲取用戶期望的剪輯音頻,無需丟棄數據幀,使得剪輯之后的音 頻文件可以恢復為原始音頻文件,也可以進行反復剪輯,更加靈活,可以更好地滿足用戶的 需求。
【附圖說明】
[0016] 圖1為本發明實施例中,mp3格式的音頻文件的結構;
[0017] 圖2為本發明實施例中,音頻剪輯的方法概述流程圖;
[0018] 圖3為本發明實施例中,音頻剪輯的方法詳細流程圖;
[0019] 圖4為本發明實施例中,音頻剪輯的裝置結構示意圖。
【具體實施方式】
[0020] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,并不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0021] 為了解決現有技術中剪輯后的音頻文件不可恢復的問題,本發明實施例中,無須 將不需要的數據幀丟棄,而只是修改指定字段的值,在播放音頻文件時,分別判斷每一個當 前讀取數據幀中指定字段的取值是否為設定數值,若確定不是,則播放當前讀取的數據幀。
[0022] 下面通過具體實施例對本發明方案進行詳細描述,當然,本發明并不限于以下實 施例。
[0023]值得說明的是,本發明實施例,以mp3格式的音頻文件為例,當然也可以應用于其 它和mp3格式類似的音頻文件,即音頻文件的每一個數據幀都有一個幀頭信息,且在幀頭信 息中包含有類似于指定字段作用的字段,例如,amr格式的音頻文件。下面簡單介紹下mp3格 式的音頻文件的結構。
[0024]具體參閱圖1所示,mp3格式的音頻文件是由幀構成,幀是mp3格式的音頻文件的最 小組成單位。每幀都包含幀頭,并可以計算幀的長度。根據幀的性質不同,mp3文件大體主要 分為三個部分:TAG_V2(ID3V2)標簽幀,數據幀和TAG_V1 (ID3V1)標簽幀,其中,具體參閱表1 所示,
[0025]表lmp3格式的音頻文件結構
[0026]
[0027] 1)TAG_V2(ID3V2)標簽幀,是由一個標簽頭和若干個標簽幀或一個擴展標簽頭組 成,標簽頭和標簽幀一起順序存放在mp3格式的音頻文件的首部。
[0028] 2)TAG_V1 (ID3V1)標簽幀,包括總共128個字節,包括歌曲的標題,歌手,專輯等詳 細信息,放在mp3格式的音頻文件的尾部。
[0029]其中,目前mp3格式的音頻文件一般都包含ID3V2和ID3V1,但不是必需的,可以沒 有。
[0030] 3)數據幀,一般有多個,由mp3格式的音頻文件大小和數據幀大小來決定。一個數 據幀是由幀頭、附加信息、音頻數據三部分組成的。幀頭是重要的信息,位于每一個數據幀 的開始處,大小通常是32位(bit)(若Protect ion bit為1,則還要幀頭最后添加16bit的校 驗位),其中,幀頭的詳細格式具體參閱表2所示。
[0031 ]表2mp3格式的音頻文件的數據幀的幀頭的格式
[0034]參閱圖2所示,本發明實施例中,音頻剪輯方法的具體流程如下:
[0035]步驟100:獲取待播放的音頻文件。
[0036]在執行步驟100之前,進一步包括:根據預設的剪輯時間范圍,在上述音頻文件中 篩選出不屬于上述剪輯時間范圍的數據幀,并將篩選出的數據幀中指定字段的取值修改為 設定數值。
[0037] 其中,上述指定字段為數據幀中的保留字段,或者,為數據幀中的空閑字段;或者, 為數據幀中的指定標志位。對于mp3格式的音頻文件,上述指定字段為數據幀的幀頭中的保 留字。
[0038] 進一步地,也需要修改ID3V2標簽幀中的相關信息,例如,根據篩選出的數據幀的 長度,修改ID3V2標簽幀中記錄的音頻文件長度的取值,即修改后的取值為:原始值-篩選出 的數據幀的長度,修改后的取值表示剪輯后的音頻文件的長度。
[0039] 實際中,數據幀中記錄的保留字的取值,默認為0,并且,這個位置沒有被用來表示 任何信息,因此,對該位置上的取值進行修改不會對音頻文件的播放產生影響。例如,對于 篩選出的不屬于剪輯時間范圍的數據幀,可以將相應的保留字的取值修改為1。
[0040] 步驟110:依次讀取上述音頻文件中的每一個數據幀,其中,每讀取一個數據幀,判 斷當前讀取的數據幀中指定字段的取值是否為設定數值,若是,則跳過上述當前讀取的數 據幀,否則,播放上述當前讀取的數據幀。
[0041 ]以mp3格式的音頻文件為例,執行步驟110時,具體包括:
[0042] 首先,讀取上述音頻文件中的數據幀。
[0043] 然后,解析當前讀取的數據幀的幀頭信息,并獲取幀頭信息中的保留字的取值。 [0044]最后,判斷當前讀取的數據幀中記錄的保留字的取值是否為設定數值,若是,則跳 過,并讀取下一個數據幀,否則,播放當前讀取的數據幀。
[0045]這樣,播放出音頻為預設的剪輯時間范圍內的部分音頻,滿足用戶的剪輯需求,并 且,本發明實施例中的音頻剪輯方法,可以保留音頻文件的完整信息,不用丟棄不需要的數 據幀,剪輯后的音頻文件可以恢復,可以對音頻文件進行反復的剪輯或恢復操作,更加靈 活,更能滿足用戶需求。
[0046]下面采用一個具體的應用場景對上述實施例作出進一步詳細說明。具體參閱圖3 所示,以mp3格式的音頻文件為例,本發明實施例中,音頻剪輯方法的執行過程具體如下: [0047]步驟200:讀取數據幀。
[0048]具體為:獲取待播放的音頻文件,并依次讀取該音頻文件中的每一個數據幀。
[0049]步驟201:解析數據幀的幀頭信息。
[0050]步驟202:讀取幀頭中記錄的保留字的取值。
[0051]步驟203:判斷保留字的取值是否為設定數值,若是,則執行步驟205,否則,執行步 驟204。
[0052]實際中,數據幀中記錄的保留字的取值為0,且沒有被用來表示任何信息,根據預 設的剪輯時間范圍,將不屬于剪輯時間范圍的數據幀中記錄的保留字的取值修改為設定數 值。
[0053]步驟204:播放當前讀取的數據幀。
[0054]也就是說,確定保留字的取值不是設定數值,說明該數據幀屬于剪輯時間范圍內, 為需要的數據幀。
[0055]步驟205:跳過當前讀取的數據幀。
[0056]也就是說,確定保留字的取值是設定數值,說明該數據幀不屬于剪輯時間范圍內, 為不需要的數據幀,直接跳過,這樣,播放出的音頻文件即為用戶預設的剪輯時間范圍內的 部分。
[0057]基于上述實施例,參閱圖4所示,本發明實施例中,音頻剪輯裝置,具體包括:
[0058]獲取單元30,用于獲取待播放的音頻文件;
[0059]處理單元31,用于依次讀取上述音頻文件中的每一個數據幀,其中,每讀取一個數 據幀,判斷當前讀取的數據幀中指定字段的取值是否為設定數值,若是,則跳過上述當前讀 取的數據幀,否則,播放上述當前讀取的數據幀。
[0060] 較佳的,獲取待播放的音頻文件之前,進一步包括:
[0061] 修改單元32,用于根據預設的剪輯時間范圍,在上述音頻文件中篩選出不屬于上 述剪輯時間范圍的數據幀,并將篩選出的數據幀中上述指定字段的取值修改為上述設定數 值。
[0062] 較佳的,上述指定字段為上述數據幀中的保留字段,或者,為上述數據幀中的空閑 字段;或者,為上述數據幀中的指定標志位。
[0063]較佳的,上述音頻文件,包含有多個數據幀,且每一個數據幀都有一個幀頭信息。 [0064]較佳的,每讀取一個數據幀,判斷當前讀取的數據幀中指定字段的取值是否為設 定數值時,處理單元31具體用于:
[0065] 每讀取一個數據幀,解析當前讀取的數據幀的幀頭信息,并獲取幀頭信息中的指 定字段的取值,以及判斷當前讀取的數據幀中上述指定字段的取值是否為設定數值。
[0066] 綜上所述,本發明實施例中,獲取待播放的音頻文件;依次讀取上述音頻文件中的 每一個數據幀,其中,每讀取一個數據幀,判斷當前讀取的數據幀中記錄的保留字的取值是 否為設定數值,若是,則跳過上述當前讀取的數據幀,否則,播放上述當前讀取的數據幀,這 樣,播放的數據幀為用戶期望的音頻部分,不僅滿足了用戶的剪輯需求,并且,沒有丟棄數 據幀,保留了音頻文件的完整信息,使得剪輯之后的音頻文件可以恢復為原始音頻文件,也 可以進行反復剪輯,更加靈活,更好地滿足了用戶的需求。
[0067] 并且,預先將不屬于剪輯時間范圍的數據幀中記錄的保留字的取值修改為設定數 值,在播放時,進行判斷即可以只播放剪輯時間范圍內的數據幀,無需丟棄數據幀。
[0068] 本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序 產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實 施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機 可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產 品的形式。
[0069] 本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程 圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流 程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序 指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產 生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實 現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0070] 這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指 令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0071]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計 算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或 其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一 個方框或多個方框中指定的功能的步驟。
[0072]盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造 性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優 選實施例以及落入本發明范圍的所有變更和修改。
[0073]顯然,本領域的技術人員可以對本發明實施例進行各種改動和變型而不脫離本發 明實施例的精神和范圍。這樣,倘若本發明實施例的這些修改和變型屬于本發明權利要求 及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
【主權項】
1. 一種音頻剪輯的方法,其特征在于,包括: 獲取待播放的音頻文件; 依次讀取所述音頻文件中的每一個數據幀,其中,每讀取一個數據幀,判斷當前讀取的 數據幀中指定字段的取值是否為設定數值,若是,則跳過所述當前讀取的數據幀,否則,播 放所述當前讀取的數據幀。2. 如權利要求1所述的方法,其特征在于,獲取待播放的音頻文件之前,進一步包括: 根據預設的剪輯時間范圍,在所述音頻文件中篩選出不屬于所述剪輯時間范圍的數據 幀,并將篩選出的數據幀中所述指定字段的取值修改為所述設定數值。3. 如權利要求1所述的方法,其特征在于,所述指定字段為所述數據幀中的保留字段, 或者,為所述數據幀中的空閑字段;或者,為所述數據幀中的指定標志位。4. 如權利要求1-3任一項所述的方法,其特征在于,所述音頻文件,包含有多個數據幀, 且每一個數據幀都有一個幀頭信息。5. 如權利要求4所述的方法,其特征在于,每讀取一個數據幀,判斷當前讀取的數據幀 中指定字段的取值是否為設定數值,具體包括: 每讀取一個數據幀,解析當前讀取的數據幀的幀頭信息,并獲取幀頭信息中的指定字 段的取值,以及判斷當前讀取的數據幀中所述指定字段的取值是否為設定數值。6. -種音頻剪輯的裝置,其特征在于,包括: 獲取單元,用于獲取待播放的音頻文件; 處理單元,用于依次讀取所述音頻文件中的每一個數據幀,其中,每讀取一個數據幀, 判斷當前讀取的數據幀中指定字段的取值是否為設定數值,若是,則跳過所述當前讀取的 數據幀,否則,播放所述當前讀取的數據幀。7. 如權利要求6所述的裝置,其特征在于,獲取待播放的音頻文件之前,進一步包括: 修改單元,用于根據預設的剪輯時間范圍,在所述音頻文件中篩選出不屬于所述剪輯 時間范圍的數據幀,并將篩選出的數據幀中所述指定字段的取值修改為所述設定數值。8. 如權利要求6所述的裝置,其特征在于,所述指定字段為所述數據幀中的保留字段, 或者,為所述數據幀中的空閑字段;或者,為所述數據幀中的指定標志位。9. 如權利要求6-8任一項所述的裝置,其特征在于,所述音頻文件,包含有多個數據幀, 且每一個數據幀都有一個幀頭信息。10. 如權利要求9所述的裝置,其特征在于,每讀取一個數據幀,判斷當前讀取的數據幀 中指定字段的取值是否為設定數值時,處理單元具體用于: 每讀取一個數據幀,解析當前讀取的數據幀的幀頭信息,并獲取幀頭信息中的指定字 段的取值,以及判斷當前讀取的數據幀中所述指定字段的取值是否為設定數值。
【文檔編號】G11B27/031GK105931656SQ201610231146
【公開日】2016年9月7日
【申請日】2016年4月14日
【發明人】潘偉, 彭迎
【申請人】青島海信移動通信技術股份有限公司