(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-05
(54)【発明の名称】復号化方法および装置、ならびにコンピュータ可読記憶媒体
(51)【国際特許分類】
G10L 19/00 20130101AFI20240227BHJP
【FI】
G10L19/00 330C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023553356
(86)(22)【出願日】2022-01-04
(85)【翻訳文提出日】2023-10-04
(86)【国際出願番号】 CN2022070088
(87)【国際公開番号】W WO2022183841
(87)【国際公開日】2022-09-09
(31)【優先権主張番号】202110229441.9
(32)【優先日】2021-03-02
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】522380893
【氏名又は名称】北京沃▲東▼天▲駿▼信息技▲術▼有限公司
【氏名又は名称原語表記】Beijing Wodong Tianjun Information Technology Co.,Ltd.
【住所又は居所原語表記】Room A402,4/f,No.2 Building,No.18 Kechuang 11th Street,Economic and Technological Development Zone,Beijing 100176,China
(71)【出願人】
【識別番号】517241916
【氏名又は名称】北京京東世紀貿易有限公司
【氏名又は名称原語表記】BEIJING JINGDONG CENTURY TRADING CO., LTD.
【住所又は居所原語表記】Room 201, 2/F, Block C, No.18, Kechuang 11th Street, Beijing Economic and Technological Development Zone, Beijing 100176, China
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】崔 午▲陽▼
(72)【発明者】
【氏名】▲呉▼ 俊▲儀▼
(72)【発明者】
【氏名】蔡 玉玉
(72)【発明者】
【氏名】全 ▲剛▼
(72)【発明者】
【氏名】▲楊▼ 帆
(72)【発明者】
【氏名】丁 国宏
(57)【要約】
本開示は、コンピュータ技術の分野に関する、復号化方法、装置、およびコンピュータ可読記憶媒体に関する。本開示の方法は、受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするステップであって、データストリームがオーディオストリームを含む、ステップと、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するステップと、ヘッダ情報を記憶するステップと、オーディオストリームが完全に復号化されるまで、ヘッダ情報に従って、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するステップとを含む。
【特許請求の範囲】
【請求項1】
受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするステップであって、前記データストリームがオーディオストリームを含む、ステップと、
ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析するステップと、
前記ヘッダ情報を記憶するステップと、
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを、前記オーディオストリームが完全に復号化されるまで復号化するステップと
を含む復号化方法。
【請求項2】
ヘッダ情報が前記構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析する前記ステップが、
現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを判定するステップと、
現在バッファリングされているすべての前記ストリームセグメントの前記全データ長が前記プリセットフレーム長に達した場合、現在バッファリングされている前記ストリームセグメント内の開始位置からの前記プリセットフレーム長のデータを構文解析するステップと、
前記ヘッダ情報が成功裏に構文解析されたかどうかを判定するステップと、
前記ヘッダ情報が成功裏に構文解析されない場合、前記プリセットフレーム長をプリセット値だけ増加させることによって前記プリセットフレーム長を更新するステップと、
前記ヘッダ情報が構文解析されるまで上記ステップを反復するステップと
を含む、請求項1に記載の復号化方法。
【請求項3】
ヘッダ情報が前記構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析する前記ステップが、
現在バッファリングされているすべての前記ストリームセグメントの前記全データ長が前記プリセットフレーム長に達しない場合、次のストリームセグメントを受信してバッファリングした後、現在バッファリングされているすべての前記ストリームセグメントの前記全データ長が前記プリセットフレーム長に達したかどうかを再判定するステップ
をさらに含む、請求項2に記載の復号化方法。
【請求項4】
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを復号化する前記ステップが、
前記ヘッダ情報に従ってオーディオフレームの長さを判定するステップと、
前記オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された前記様々なストリームセグメントの中の前記オーディオストリームの前記ストリームセグメントを復号化するステップと
を含む、請求項1に記載の復号化方法。
【請求項5】
前記オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された様々なストリームセグメントの中の前記オーディオストリームの前記ストリームセグメントを復号化する前記ステップが、
データカプセル化フォーマットによって定義されたシーケンスに従って、および前記オーディオフレームの長さに従って、前記オーディオストリームの現ストリームセグメントを分割し、1つまたは複数の完全なオーディオフレームを取得するステップと、
前記1つまたは複数の完全なオーディオフレームを復号化するステップと、
前記オーディオストリームの前記現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかを判定するステップと、
前記オーディオストリームの前記現ストリームセグメントの終わりの前記データが前記不完全なオーディオフレームに属する場合、前記不完全なオーディオフレームをバッファリングするステップと、
前記オーディオフレームの次のストリームセグメントを受信した後、前記次のストリームセグメントを前記不完全なオーディオフレームとスプライシングし、スプライシング後ストリームセグメントを取得するステップと、
前記スプライシング後ストリームセグメントを前記オーディオストリームの前記現ストリームセグメントとして取るステップと、
前記オーディオストリームの最後のストリームセグメントが完全に復号化されるまで上記ステップを反復するステップと
を含む、請求項4に記載の復号化方法。
【請求項6】
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを、前記オーディオストリームが完全に復号化されるまで復号化する前記ステップが、
前記ヘッダ情報に基づく前記オーディオストリームの現ストリームセグメントの前記復号化において障害が発生した場合、新たなヘッダ情報が構文解析を通じて取得されるまで、前記現ストリームセグメントを構文解析し、または前記現ストリームセグメントおよび前記現ストリームセグメントに続くストリームセグメントを構文解析するステップと、
前記オーディオストリームが完全に復号化されるまで、前記新たなヘッダ情報に従って、前記現ストリームセグメントに続く前記ストリームセグメントを復号化するステップと
を含む、請求項1に記載の復号化方法。
【請求項7】
ヘッダ情報が前記構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析する前記ステップが、
前記ヘッダ情報が前記構文解析を通じて取得されるまで、FFmpegにおいてOpen avformat methodを呼び出すことによって、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析するステップ
を含む、請求項1に記載の復号化方法。
【請求項8】
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを復号化する前記ステップが、
前記ヘッダ情報に従って、前記データストリームが前記オーディオストリーム以外のデータストリームを含むかどうかを判定するステップと、
前記データストリームが前記オーディオストリーム以外の前記データストリームを含む場合、前記オーディオストリーム以外の前記データストリームを前記オーディオストリームから分離するステップと、
前記ヘッダ情報に従って前記オーディオストリームのフォーマット情報を判定するステップと、
前記オーディオストリームの前記フォーマット情報に従って、前記オーディオストリームの前記ストリームセグメントを元のオーディオストリームにトランスコーディングするステップと、
前記元のオーディオストリームをプリセットビットレートで再サンプリングするステップと
を含む、請求項1に記載の復号化方法。
【請求項9】
前記オーディオストリーム以外の前記データストリームが、FFmpegにおいてSeparate stream methodを呼び出すことによって前記オーディオストリームから分離され、
前記オーディオストリームの前記フォーマット情報が、前記ヘッダ情報に従って判定され、前記オーディオストリームの前記ストリームセグメントが、前記オーディオストリームの前記フォーマット情報に従って前記元のオーディオストリームにトランスコーディングされ、前記元のオーディオストリームが、FFmpegにおいてParse format methodを呼び出すことによって前記プリセットビットレートで再サンプリングされる、請求項8に記載の復号化方法。
【請求項10】
受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするように構成されたバッファリングモジュールであって、前記データストリームがオーディオストリームを含む、バッファリングモジュールと、
ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析するように構成されたヘッダ情報構文解析モジュールと、
前記ヘッダ情報を記憶するように構成されたヘッダ情報記憶モジュールと、
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを、前記オーディオストリームが完全に復号化されるまで復号化するように構成された復号化モジュールと
を備える復号化装置。
【請求項11】
プロセッサと、
前記プロセッサによって実行されるとき、請求項1から9のいずれか一項に記載の復号化方法を前記プロセッサに実行させる命令を記憶するための、前記プロセッサに結合されたメモリと
を備える復号化装置。
【請求項12】
コンピュータプログラムが記憶される非一時的コンピュータ可読記憶媒体であって、前記プログラムが、プロセッサによって実行されるとき、請求項1から9のいずれか一項に記載の方法のステップを前記プロセッサに実装させる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本開示は、参照によりその開示全体が本開示に組み込まれる、2021年3月2日に出願された中国特許出願第202110229441.9号に基づき、その優先権を主張する。
【0002】
本開示はコンピュータの技術分野に関し、詳細には、復号化方法、装置、およびコンピュータ可読記憶媒体に関する。
【背景技術】
【0003】
人工知能(AI)の急速な発展と共に、AI顧客サービスロボットが、ますます広範な適用分野を得ている。AI顧客サービスロボットは、前提条件としてリアルタイムオーディオストリームの入力に依拠する音声認識技術を使用する。一般には、AI顧客サービスの分野では、ユーザによって話されるワードをロボットで識別し、ワードをシステム内にオーディオストリームとしてリアルタイムに送ることが必要である。したがって、オーディオストリームのリアルタイム復号化が、解決すべき問題となっている。
【0004】
オーディオストリームのリアルタイム復号化は、オーディオストリームのヘッダ情報内に通常は含まれる、オーディオストリームのフォーマットおよびパラメータを取得することを必要とする。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示のいくつかの実施形態によれば、受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするステップであって、データストリームがオーディオストリームを含む、ステップと、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するステップと、ヘッダ情報を記憶するステップと、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを、オーディオストリームが完全に復号化されるまで復号化するステップとを含む復号化方法が提供される。
【0006】
いくつかの実施形態では、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するステップは、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを判定するステップと、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達した場合、現在バッファリングされているストリームセグメント内の開始位置からのプリセットフレーム長のデータを構文解析するステップと、ヘッダ情報が成功裏に構文解析されたかどうかを判定するステップと、ヘッダ情報が成功裏に構文解析されない場合、プリセットフレーム長をプリセット値だけ増加させることによってプリセットフレーム長を更新するステップと、ヘッダ情報が構文解析されるまで上記ステップを反復するステップとを含む。
【0007】
いくつかの実施形態では、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するステップは、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達しない場合、次のストリームセグメントを受信してバッファリングした後、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを再判定するステップをさらに含む。
【0008】
いくつかの実施形態では、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するステップは、ヘッダ情報に従ってオーディオフレームの長さを判定するステップと、オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するステップとを含む。
【0009】
いくつかの実施形態では、オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するステップは、データカプセル化フォーマットによって定義されたシーケンスに従って、およびオーディオフレーム長に従って、オーディオストリームの現ストリームセグメントを分割し、1つまたは複数の完全なオーディオフレームを取得するステップと、1つまたは複数の完全なオーディオフレームを復号化するステップと、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかを判定するステップと、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属する場合、不完全なオーディオフレームをバッファリングするステップと、オーディオフレームの次のストリームセグメントを受信した後、次のストリームセグメントを不完全なオーディオフレームとスプライシングし、スプライシング後ストリームセグメントを取得するステップと、スプライシング後ストリームセグメントをオーディオストリームの現ストリームセグメントとして取るステップと、オーディオストリームの最後のストリームセグメントが完全に復号化されるまで上記ステップを反復するステップとを含む。
【0010】
いくつかの実施形態では、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを、オーディオストリームが完全に復号化されるまで復号化するステップは、ヘッダ情報に基づくオーディオストリームの現ストリームセグメントの復号化において障害が発生した場合、新たなヘッダ情報が構文解析を通じて取得されるまで、現ストリームセグメントを構文解析し、または現ストリームセグメントおよび現ストリームセグメントに続くストリームセグメントを構文解析するステップと、オーディオストリームが完全に復号化されるまで、新たなヘッダ情報に従って、現ストリームセグメントに続くストリームセグメントを復号化するステップとを含む。
【0011】
いくつかの実施形態では、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するステップは、ヘッダ情報が構文解析を通じて取得されるまで、FFmpegにおいてOpen avformat methodを呼び出すことによって、バッファリングされた1つまたは複数のストリームセグメントを構文解析するステップを含む。
【0012】
いくつかの実施形態では、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するステップは、ヘッダ情報に従って、データストリームがオーディオストリーム以外のデータストリームを含むかどうかを判定するステップと、データストリームがオーディオストリーム以外のデータストリームを含む場合、オーディオストリーム以外のデータストリームをオーディオストリームから分離するステップと、ヘッダ情報に従ってオーディオストリームのフォーマット情報を判定するステップと、オーディオストリームのフォーマット情報に従って、オーディオストリームのストリームセグメントを元のオーディオストリームにトランスコーディングするステップと、元のオーディオストリームをプリセットビットレートで再サンプリングするステップとを含む。
【0013】
いくつかの実施形態では、オーディオストリーム以外のデータストリームが、FFmpegにおいてSeparate stream methodを呼び出すことによってオーディオストリームから分離され、オーディオストリームのフォーマット情報が、ヘッダ情報に従って判定され、オーディオストリームのストリームセグメントが、オーディオストリームのフォーマット情報に従って元のオーディオストリームにトランスコーディングされ、元のオーディオストリームが、FFmpegにおいてParse format methodを呼び出すことによってプリセットビットレートで再サンプリングされる。
【0014】
本開示の別の実施形態によれば、受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするように構成されたバッファリングモジュールであって、データストリームがオーディオストリームを含む、バッファリングモジュールと、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するように構成されたヘッダ情報構文解析モジュールと、ヘッダ情報を記憶するように構成されたヘッダ情報記憶モジュールと、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを、オーディオストリームが完全に復号化されるまで復号化するように構成された復号化モジュールとを備える復号化装置が提供される。
【0015】
本開示のさらに別の実施形態によれば、プロセッサと、プロセッサによって実行されるとき、前述の実施形態のうちのいずれか1つの復号化方法をプロセッサに実行させる命令を記憶するための、プロセッサに結合されたメモリとを備える復号化装置が提供される。
【0016】
本開示のさらに別の実施形態によれば、コンピュータプログラムが記憶される非一時的コンピュータ可読記憶媒体であって、プログラムが、プロセッサによって実行されるとき、前述の実施形態のうちのいずれか1つの復号化方法を実装する、非一時的コンピュータ可読記憶媒体が提供される。
【0017】
本発明の他の特徴および利点は、添付の図面を参照しながら、本開示の例示的実施形態の以下の詳細な説明から明らかとなるであろう。
【0018】
本開示の一層の理解を与えるために含められ、本明細書に組み込まれ、本明細書の一部を構成する添付の図面は、本発明の実施形態を示し、本開示の限定ではないが、本出願の例示的実施形態と共に、本開示を説明する働きをする。
【図面の簡単な説明】
【0019】
【
図1】本開示のいくつかの実施形態による復号化方法のフローチャートである。
【
図2】本開示のいくつかの実施形態によるオーディオストリームの構造図である。
【
図3】本開示の別の実施形態による復号化方法のフローチャートである。
【
図4】本開示のいくつかの実施形態による復号化装置の構造図である。
【
図5】本開示の別の実施形態による復号化装置の構造図である。
【
図6】本開示のさらに別の実施形態による復号化装置の構造図である。
【発明を実施するための形態】
【0020】
以下では、実施形態の図を参照しながら、本開示の実施形態の技術的解決策について明快で完全な説明が与えられる。明らかに、本開示のすべての実施形態ではなく、本開示のいくつかの実施形態が本明細書で与えられるに過ぎない。実際に、少なくとも1つの例示的実施形態の以下の説明は例示的なものに過ぎず、決して本発明、本発明の応用、または使用に対する限定ではないものとする。創造的な努力なしに本開示の実施形態に基づいて当業者によって得られるすべての他の実施形態は、本開示の保護範囲内に包含されるものとする。
【0021】
AI顧客サービスの実際のシナリオにおいて、オーディオをストリーミングする必要があること、すなわちオーディオファイルのファイルが送信のためにストリームセグメントに分割されることを本発明者らは発見した。このケースでは、最初のストリームセグメントまたは最初のいくつかのストリームセグメントが、オーディオコーディング中に生成されたヘッダ情報を含む。後続のストリームセグメントは、どんなヘッダ情報も含まない。様々なストリームセグメントを復号化するためにFFmpegツールが使用されるときは特に、大部分のストリームセグメントはヘッダ情報を含まず、復号化することができないので、エラー情報が返され得、このことは、AI顧客サービスの実際のシナリオにおいてストリームセグメントのリアルタイム復号化要件を満たすことができない。
【0022】
本開示によって解決されるべき技術的問題は、オーディオストリームのリアルタイム復号化をどのように達成するかということである。
【0023】
本開示は、
図1から
図3を参照しながら以下で説明される、AI顧客サービスシナリオにおいてオーディオストリームのリアルタイム復号化のために使用され得る復号化方法を提供する。
【0024】
図1は、本開示のいくつかの実施形態による復号化方法のフローチャートである。
図1に示されるように、こうした実施形態の方法は、ステップS102からS108を含む。
【0025】
ステップS102では、受信されたデータストリームの1つまたは複数のストリームセグメントがバッファリングされる。
【0026】
データストリームはオーディオストリームを含み、オーディオストリーム以外のデータストリームをさらに含み得る。たとえば、ビデオストリームなどの非オーディオデータストリームである。オーディオストリームがオーディオストリーム以外のデータストリームと混合される場合、以下の実施形態において説明される後続のステップにおいて、相異なるストリームを分離することが必要である。送信中に、データストリームが複数のストリームセグメントに分割され、ストリームセグメントのそれぞれが、送信のためにデータパッケージにパッケージ化され得る。データパケットを受信した後、復号化装置(本開示の復号化方法を実行中の装置)がデータパケットを構文解析し、ストリームセグメントのそれぞれを取得し、バッファリングする。
【0027】
本開示の方式はFFmpeg APIに基づいて実装され得る。まず、2つのモジュール(Init avformat / Init avio context)が、それぞれヘッダ情報を構文解析し、オーディオストリームを読み取るために初期化され得る。Buffer stream methodが、1つまたは複数のストリーミングセグメントをバッファリングするために呼び出され得る。
【0028】
ステップS104では、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントが構文解析される。
【0029】
ヘッダ情報は、たとえば、オーディオストリームのフォーマット情報と、少なくとも1つのパラメータとを含む。たとえば、少なくとも1つのパラメータは、限定はしないが、サンプリングレート、ビット深さ、チャネル数、および圧縮比のうちの少なくとも1つを含む。ストリームセグメントの不確定な分割のために、1つのストリームセグメントは完全なヘッダ情報、または部分的なヘッダ情報のみを含み得、完全なヘッダ情報を取得するために複数のストリームセグメントが必要とされ得る。いくつかの実施形態では、ストリームセグメントがバッファリングされると、バッファリングされたすべてのストリームセグメントを構文解析して、ヘッダ情報を成功裏に構文解析することができるかどうかを判定するための試みが行われる。ヘッダ情報を成功裏に構文解析することができない場合、次のストリームセグメントが継続的にバッファリングされ、ヘッダ情報を成功裏に構文解析することができるまで、上記のプロセスが反復される。
【0030】
いくつかの実施形態では、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかが判定され、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達した場合、現在バッファリングされているストリームセグメント内の開始位置からのプリセットフレーム長のデータが構文解析され、ヘッダ情報が成功裏に構文解析されたかどうかが判定され、ヘッダ情報が成功裏に構文解析されない場合、プリセットフレーム長をプリセット値だけ増加させることによってプリセットフレーム長が更新され、ヘッダ情報が構文解析されるまで上記が反復される。
【0031】
履歴オーディオストリームのヘッダ情報の長さについての統計を通じて、プリセットフレーム長が取得され得る。ストリームセグメントがバッファリングされると、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかが判定される。現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達しない場合、次のストリームセグメントを受信してバッファリングした後、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかが再判定される。現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達するまで、現在バッファリングされているストリームセグメント内の開始位置からのプリセットフレーム長のデータが構文解析される。
【0032】
たとえば、プリセットフレーム長が200バイトである場合、最初のバッファリングされたストリームセグメントの最初のバイトから長さ200バイトを有するデータが、構文解析されるべきデータとして使用される。構文解析されるべきデータが構文解析され、ヘッダ情報を成功裏に構文解析することができるかどうかが判定される。ヘッダ情報を成功裏に構文解析することができる場合、ヘッダ情報の構文解析プロセスが停止される。ヘッダ情報の構文解析が失敗した場合、プリセットフレーム長がプリセット値だけ増加され、プリセットフレーム長が更新される。たとえば、プリセットフレーム長は、200バイトから300バイトまで増加され得る。その後に、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを判定するステップからプロセスが再実施される。
【0033】
ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントが、FFmpegにおいてOpen avformat methodを呼び出すことによって構文解析され得る。バッファリングされたストリームセグメントのヘッド情報を構文解析することを継続的に試みることにより、上記の方法は、ヘッダ情報が相異なるストリームセグメントに分割される場合にヘッダ情報を成功裏に構文解析することに失敗するという問題を回避し得る。プリセットフレーム長を判断し、更新することにより、構文解析の数が削減され得、効率が改善され得る。
【0034】
ステップS106では、ヘッダ情報が記憶される。
【0035】
ステップS108では、オーディオストリームが完全に復号化されるまで、ヘッダ情報に従って、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントが復号化される。
【0036】
データストリームがオーディオストリームのみを含む場合、ヘッダ情報が、受信された各ストリームセグメントを直接的に復号化するために使用される。データストリームがオーディオストリームおよびオーディオストリーム以外のデータストリーム(非オーディオデータストリーム)を含む場合、ストリームを分離するための動作を実施することが必要である。いくつかの実施形態では、ヘッダ情報に従って、データストリームがオーディオストリーム以外のデータストリームを含むかどうかが判定され、データストリームがオーディオストリーム以外のデータストリームを含む場合、オーディオストリーム以外のデータストリームが、オーディオストリームから分離される。たとえば、オーディオストリーム以外のデータストリームが、FFmpegにおいてSeparate stream methodを呼び出すことによってオーディオストリームから分離される。
【0037】
受信された様々なストリームセグメントからオーディオストリームのストリームセグメントを分離した後、オーディオストリームのストリームセグメントが、ヘッダ情報を使用して復号化される。いくつかの実施形態では、ヘッダ情報による、オーディオストリームのフォーマット情報が判定され、オーディオストリームのストリームセグメントが、オーディオストリームのフォーマット情報に従って、元のオーディオストリームにトランスコーディングされ、元のオーディオストリームがプリセットビットレートで再サンプリングされる。再サンプリングされたビットレートは、再生装置のビットレートに適しており、オーディオストリームの再生を容易にする。たとえば、オーディオストリームのフォーマット情報がヘッダ情報に従って判定され、オーディオストリームのストリームセグメントが、オーディオストリームのフォーマット情報に従って元のオーディオストリームにトランスコーディングされ、元のオーディオストリームが、FFmpegにおいてParse format methodを呼び出すことによってプリセットビットレートで再サンプリングされる。
【0038】
オーディオストリームが完全なオーディオファイルのみを含む場合、オーディオストリーム全体の正しい復号化が、記憶されたヘッダ情報を使用して達成され得る。オーディオストリームが複数の完全なオーディオファイルを含む場合、相異なるオーディオファイルが相異なるヘッダ情報を有し得、その結果、復号化プロセス中に障害が生じる。上記の問題に鑑みて、いくつかの実施形態では、ヘッダ情報に基づくオーディオストリームの現ストリームセグメントの復号化において障害が発生した場合、新たなヘッダ情報が構文解析を通じて取得されるまで、現ストリームセグメントが構文解析され、または現ストリームセグメントおよび現ストリームセグメントに続くストリームセグメントが構文解析され、オーディオストリームが完全に復号化されるまで、新たなヘッダ情報に従って、現ストリームセグメントに続くストリームセグメントが復号化される。
【0039】
新たなヘッダ情報を構文解析して取得する方法について、前述の実施形態においてヘッダ情報を構文解析する方法に対する参照が行われ得る。新たなヘッダ情報が記憶され、以前に記憶されたヘッダ情報が削除され得る。オーディオストリームが完全に復号化されるまで、その後で受信されたストリームセグメントが、新たなヘッダ情報を使用して復号化される。
【0040】
上記の実施形態の方法では、データストリームの1つまたは複数のストリームセグメントがまずバッファリングされ、次いで、ヘッダ情報が取得されるまで、バッファリングされた1つまたは複数のストリームセグメントが構文解析される。ヘッダ情報が記憶され、オーディオストリームが完全に復号化されるまで、その後で受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するために使用される。上記の実施形態の方法は、オーディオストリームのリアルタイム復号化を達成し、AI顧客サービスシナリオにおいてリアルタイムオーディオストリームのリアルタイム復号化の必要を満たし得る。
【0041】
具体的には、オーディオ復号化を達成するためにFFmpegツールが使用されるシナリオでは、上記の実施形態における方法は、オーディオストリームバッファ内にストリームセグメントをバッファリングし、構文解析を通じてヘッダ情報(オーディオストリームのフォーマット情報および少なくとも1つのパラメータを含む)を抽出および記憶し得、オーディオストリームのフォーマット情報および少なくとも1つのパラメータが、ヘッダ情報に基づいて構文解析され得、デコーダタイプが、オーディオストリームのフォーマット情報を通じて取得され得、その後で受信されたオーディオストリームのストリームセグメントが、オーディオストリームの少なくとも1つのパラメータに従って、バッファリングされたデコーダタイプによってリンクされるデコーダエンジンによって復号化され得る。このケースでは、標準オーディオエンコーダを使用して生成されたオーディオストリームがリアルタイムに復号化され得、したがって、大部分のストリームセグメントがヘッダ情報を含まないのでFFmpegツールを使用して復号化することができないという問題が解決され得る。
【0042】
オーディオストリームの送信中に、送信されたストリームセグメントが、オーディオフレームの長さの整数倍である長さに従ってセグメント化されない場合、不完全なオーディオフレームの問題が存在し得る。
図2に示されるように、オーディオストリームのストリームセグメント1が、オーディオフレーム1、オーディオフレーム2、およびオーディオフレーム3の一部を含み、ストリームセグメント2が、オーディオフレーム3の別の部分を含む。このケースでは、デコーダがヘッダ情報に基づいてストリームセグメント1および2を復号化するために使用されるとき、エラーがレポートされることになる。本開示は、上記の問題に対する解決策をさらに提供する。いくつかの実施形態では、オーディオフレームの長さがヘッダ情報に従って判定され、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントが、オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって復号化される。オーディオフレームの長さが、ヘッダ情報内に含まれるパラメータに従って判定され得る。たとえば、オーディオフレームの長さが、サンプリングレート、ビット深さ、チャネル数などのパラメータに従って判定され得る。詳細について従来技術に対する参照が行われ得、本明細書ではその詳細は繰り返されない。
【0043】
さらに、
図3に示されるように、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化することは、ステップS302からS316を含む。
【0044】
ステップS302では、オーディオフレームの長さが、ヘッダ情報に基づいて判定される。
【0045】
ステップS304では、ヘッダ情報が配置されるストリームセグメントがオーディオデータも含む場合、ストリームセグメントは、オーディオストリームの現ストリームセグメントとして取られる。
【0046】
ステップS306では、現ストリームセグメントが、オーディオフレームの長さと、データカプセル化フォーマットによって定義されたシーケンスとに従って、オーディオフレームに分割される。すなわち、オーディオストリームの現ストリームセグメントが、データカプセル化フォーマットによって定義されたシーケンスに従って、およびオーディオフレーム長に従って分割され、1つまたは複数の完全なオーディオフレームが取得される。
【0047】
たとえば、左から右へ、または前から後ろへのシーケンスでデータがストリームセグメント内に配置される。
図2に示されるように、ストリームセグメント1がオーディオフレームに分割された後、ストリームセグメント1の終わりのデータは、不完全なオーディオフレーム3に属する。
【0048】
ステップS308では、1つまたは複数の完全なオーディオフレームが復号化される。
【0049】
ステップS310では、現ストリームセグメントが最後のストリームセグメントであるかどうかが判定され、そうである場合、プロセスが停止され、そうでない場合、ステップS312が実行される。
【0050】
ステップS312では、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかが判定される。そうである場合、ステップS314が実行され、そうでない場合、ステップS313が実行される。
【0051】
ステップS313では、オーディオストリームの次のストリームセグメントを受信した後、次のストリームセグメントが現ストリームセグメントとして取られ、プロセスはステップS306に戻り、ステップS306から再実行する。
【0052】
ステップS314では、不完全なオーディオフレームがバッファリングされる。
【0053】
ステップS316では、オーディオストリームの次のストリームセグメントを受信した後、次のストリームセグメントが不完全なオーディオフレームとスプライシングされ、スプライシング後ストリームセグメントが取得され、スプライシング後ストリームセグメントが現オーディオフレームとして取られ、プロセスはステップS306に戻り、ステップS306から再実行する。
【0054】
図2に示されるように、ストリームセグメント2が、ストリームセグメント1内に含まれるオーディオフレーム3の最初の半分とスプライシングされ、完全なフレームが形成される。
【0055】
上記の実施形態の方法では、不完全なフレームがバッファリングされ、次のストリームセグメントの受信時にスプライシングプロセスが実施され、それによって、ストリームセグメントが不完全なオーディオフレームを含むときの誤った復号化の問題が解決され得る。
【0056】
本開示は、
図4を参照しながら以下で説明される復号化装置をさらに提供する。
【0057】
図4は、本開示のいくつかの実施形態による復号化装置の構造図である。
図4に示されるように、この実施形態の装置40は、バッファリングモジュール410、ヘッダ情報構文解析モジュール420、ヘッダ情報記憶モジュール430、および復号化モジュール440を備える。
【0058】
バッファリングモジュール410は、受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするように構成され、データストリームはオーディオストリームを含む。
【0059】
ヘッダ情報構文解析モジュール420は、ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた1つまたは複数のストリームセグメントを構文解析するように構成される。
【0060】
いくつかの実施形態では、ヘッダ情報構文解析モジュール420は、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを判定し、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達した場合、現在バッファリングされているストリームセグメント内の開始位置からのプリセットフレーム長のデータを構文解析し、ヘッダ情報が成功裏に構文解析されたかどうかを判定し、ヘッダ情報が成功裏に構文解析されない場合、プリセットフレーム長をプリセット値だけ増加させることによってプリセットフレーム長を更新し、ヘッダ情報が構文解析されるまで上記を反復するように構成される。
【0061】
いくつかの実施形態では、ヘッダ情報構文解析モジュール420は、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達しない場合、次のストリームセグメントを受信してバッファリングした後、現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを再判定するように構成される。
【0062】
いくつかの実施形態では、ヘッダ情報構文解析モジュール420は、ヘッダ情報が構文解析を通じて取得されるまで、FFmpegにおいてOpen avformat methodを呼び出すことによって、バッファリングされた1つまたは複数のストリームセグメントを構文解析するように構成される。
【0063】
ヘッダ情報記憶モジュール430はヘッダ情報を記憶するように構成される。
【0064】
復号化モジュール440は、ヘッダ情報に従って受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを、オーディオストリームが完全に復号化されるまで復号化するように構成される。
【0065】
いくつかの実施形態では、復号化モジュール440は、ヘッダ情報に従ってオーディオフレームの長さを判定し、オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するように構成される。
【0066】
いくつかの実施形態では、復号化モジュール440は、データカプセル化フォーマットによって定義されたシーケンスに従って、およびオーディオフレーム長に従って、オーディオストリームの現ストリームセグメントを分割し、1つまたは複数の完全なオーディオフレームを取得し、1つまたは複数の完全なオーディオフレームを復号化し、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかを判定し、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属する場合、不完全なオーディオフレームをバッファリングし、オーディオフレームの次のストリームセグメントを受信した後、次のストリームセグメントを不完全なオーディオフレームとスプライシングし、スプライシング後ストリームセグメントを取得し、スプライシング後ストリームセグメントをオーディオストリームの現ストリームセグメントとして取り、オーディオストリームの最後のストリームセグメントが完全に復号化されるまで上記を反復するように構成される。
【0067】
いくつかの実施形態では、復号化モジュール440は、ヘッダ情報に基づくオーディオストリームの現ストリームセグメントの復号化において障害が発生した場合、新たなヘッダ情報が構文解析を通じて取得されるまで、現ストリームセグメントを構文解析し、または現ストリームセグメントおよび現ストリームセグメントに続くストリームセグメントを構文解析し、オーディオストリームが完全に復号化されるまで、新たなヘッダ情報に従って、現ストリームセグメントに続くストリームセグメントを復号化するように構成される。
【0068】
いくつかの実施形態では、復号化モジュール440は、ヘッダ情報に従って、データストリームがオーディオストリーム以外のデータストリームを含むかどうかを判定し、データストリームがオーディオストリーム以外のデータストリームを含む場合、オーディオストリーム以外のデータストリームをオーディオストリームから分離し、ヘッダ情報に従ってオーディオストリームのフォーマット情報を判定し、オーディオストリームのフォーマット情報に従って、オーディオストリームのストリームセグメントを元のオーディオストリームにトランスコーディングし、元のオーディオストリームをプリセットビットレートで再サンプリングするように構成される。
【0069】
いくつかの実施形態では、復号化モジュール440は、FFmpegにおいてSeparate stream methodを呼び出すことによって、オーディオストリーム以外のデータストリームをオーディオストリームから分離し、ヘッダ情報による、オーディオストリームのフォーマット情報を判定し、オーディオストリームのフォーマット情報に従って、オーディオストリームのストリームセグメントを元のオーディオストリームにトランスコーディングし、FFmpegにおいてParse format methodを呼び出すことによって、元のオーディオストリームをプリセットビットレートで再サンプリングするように構成される。
【0070】
本開示のこの実施形態の復号化装置は、
図5および
図6を参照しながら以下で説明される様々なコンピューティング装置またはコンピュータシステムによって実装され得る。
【0071】
図5は、本開示のいくつかの実施形態による復号化装置の構造図である。
図5に示されるように、この実施形態の装置50は、メモリ510と、メモリ510に結合されたプロセッサ520とを備え、プロセッサ520は、メモリ510内に記憶された命令に基づいて、本開示の実施形態のうちのいずれか1つによる復号化方法を実施するように構成される。
【0072】
メモリ510は、たとえば、システムメモリ、固定不揮発性記憶媒体などを含み得る。システムメモリは、たとえば、オペレーティングシステム、アプリケーション、ブートローダ、データベース、および他のプログラムを記憶する。
【0073】
図6は、本開示の別の実施形態による復号化装置の構造図である。
図6に示されるように、この実施形態の装置60は、メモリ510およびプロセッサ520とそれぞれ類似するメモリ610およびプロセッサ620を備える。装置60は、入出力インターフェース630、ネットワークインターフェース640、ストレージインターフェース650などをさらに備え得る。こうしたインターフェース630、640、650、メモリ610、およびプロセッサ620は、たとえばバス660を通じて接続され得る。入出力インターフェース630は、ディスプレイ、マウス、キーボード、タッチスクリーンなどの入出力装置のための接続インターフェースを提供する。ネットワークインターフェース640は、様々なネットワーク化装置のための接続インターフェースを提供し、たとえば、ネットワークインターフェース640は、データベースサーバまたはクラウドストレージサーバに接続され得る。ストレージインターフェース650は、SDカードやUSBフラッシュディスクなどの外部記憶装置のための接続インターフェースを提供する。
【0074】
本開示の実施形態が方法、システム、またはコンピュータプログラム製品として提供され得ることを当業者は理解されたい。したがって、本開示の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素の両方を含む実施形態の形態を取り得る。さらに、本開示は、コンピュータ使用可能プログラムコードがその中に実施された1つまたは複数のコンピュータ使用可能非一時的記憶媒体(限定はしないが、ディスクストレージ、CD-ROM、光記憶装置などを含む)上で実施されたコンピュータプログラム製品の形態を取り得る。
【0075】
本開示は、本開示の実施形態による方法、装置(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照しながら説明される。フローチャートおよび/またはブロック図中の各プロセスおよび/またはブロックと、フローチャートおよび/またはブロック図中のプロセスおよび/またはブロックの組合せが、コンピュータプログラム命令によって実装され得ることを理解されたい。コンピュータプログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャートの1つまたは複数のフローならびに/あるいはブロック図の1つまたは複数のブロックにおいて指定される機能を実装する手段を生成するように、汎用コンピュータ、専用コンピュータのプロセッサ、組込み型プロセッサ、または他のプログラム可能データ処理装置に与えられ、マシンが生成され得る。
【0076】
コンピュータプログラム命令はまた、コンピュータ可読記憶装置内に記憶された命令がフローチャートの1つまたは複数のフローならびに/あるいはブロック図の1つまたは複数のブロックにおいて指定される機能を実装する命令手段を備える製造品を生み出すように、コンピュータまたは他のプログラム可能データ処理装置に特定の方式で動作するように指示することのできるコンピュータ可読記憶装置内に記憶され得る。
【0077】
こうしたコンピュータプログラム命令はまた、コンピュータまたは他のプログラム可能装置上で実行される命令がフローチャートの1つまたは複数のフローならびに/あるいはブロック図の1つまたは複数のブロックにおいて指定される機能を実装するステップを提供するように、コンピュータまたは他のプログラム可能装置上にロードされ、コンピュータまたは他のプログラム可能装置上で一連の動作ステップが実施され、コンピュータ実装プロセスが生成され得る。
【0078】
上記は本開示の好ましい実施形態に過ぎず、本開示に対する限定ではない。本開示の趣旨および原理の範囲内で、任意の修正、置換、改良などが本開示の保護範囲内に含まれるものとする。
【符号の説明】
【0079】
40 装置
410 バッファリングモジュール
420 ヘッダ情報構文解析モジュール
430 ヘッダ情報記憶モジュール
440 復号化モジュール
50 装置
510 メモリ
520 プロセッサ
60 装置
610 メモリ
620 プロセッサ
630 入出力インターフェース
640 ネットワークインターフェース
650 ストレージインターフェース
660 バス
【手続補正書】
【提出日】2023-11-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするステップであって、前記データストリームがオーディオストリームを含む、ステップと、
ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析するステップと、
前記ヘッダ情報を記憶するステップと、
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを、前記オーディオストリームが完全に復号化されるまで復号化するステップと
を含む復号化方法。
【請求項2】
ヘッダ情報が前記構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析する前記ステップが、
現在バッファリングされているすべてのストリームセグメントの全データ長がプリセットフレーム長に達したかどうかを判定するステップと、
現在バッファリングされているすべての前記ストリームセグメントの前記全データ長が前記プリセットフレーム長に達した場合、現在バッファリングされている前記ストリームセグメント内の開始位置からの前記プリセットフレーム長のデータを構文解析するステップと、
前記ヘッダ情報が成功裏に構文解析されたかどうかを判定するステップと、
前記ヘッダ情報が成功裏に構文解析されない場合、前記プリセットフレーム長をプリセット値だけ増加させることによって前記プリセットフレーム長を更新するステップと、
前記ヘッダ情報が構文解析されるまで上記ステップを反復するステップと
を含む、請求項1に記載の復号化方法。
【請求項3】
ヘッダ情報が前記構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析する前記ステップが、
現在バッファリングされているすべての前記ストリームセグメントの前記全データ長が前記プリセットフレーム長に達しない場合、次のストリームセグメントを受信してバッファリングした後、現在バッファリングされているすべての前記ストリームセグメントの前記全データ長が前記プリセットフレーム長に達したかどうかを再判定するステップ
をさらに含む、請求項2に記載の復号化方法。
【請求項4】
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを復号化する前記ステップが、
前記ヘッダ情報に従ってオーディオフレームの長さを判定するステップと、
前記オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された前記様々なストリームセグメントの中の前記オーディオストリームの前記ストリームセグメントを復号化するステップと
を含む、請求項1に記載の復号化方法。
【請求項5】
前記オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された様々なストリームセグメントの中の前記オーディオストリームの前記ストリームセグメントを復号化する前記ステップが、
データカプセル化フォーマットによって定義されたシーケンスに従って、および前記オーディオフレームの長さに従って、前記オーディオストリームの現ストリームセグメントを分割し、1つまたは複数の完全なオーディオフレームを取得するステップと、
前記1つまたは複数の完全なオーディオフレームを復号化するステップと、
前記オーディオストリームの前記現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかを判定するステップと、
前記オーディオストリームの前記現ストリームセグメントの終わりの前記データが前記不完全なオーディオフレームに属する場合、前記不完全なオーディオフレームをバッファリングするステップと、
前記オーディオフレームの
前記現ストリームセグメントの次のストリームセグメントを受信した後、前記次のストリームセグメントを前記不完全なオーディオフレームとスプライシングし、スプライシング後ストリームセグメントを取得するステップと、
前記スプライシング後ストリームセグメントを前記オーディオストリームの前記現ストリームセグメントとして取るステップと、
前記オーディオストリームの最後のストリームセグメントが完全に復号化されるまで上記ステップを反復するステップと
を含む、請求項4に記載の復号化方法。
【請求項6】
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを、前記オーディオストリームが完全に復号化されるまで復号化する前記ステップが、
前記ヘッダ情報に基づく前記オーディオストリームの現ストリームセグメントの前記復号化において障害が発生した場合、新たなヘッダ情報が構文解析を通じて取得されるまで、前記現ストリームセグメントを構文解析し、または前記現ストリームセグメントおよび前記現ストリームセグメントに続くストリームセグメントを構文解析するステップと、
前記オーディオストリームが完全に復号化されるまで、前記新たなヘッダ情報に従って、前記現ストリームセグメントに続く前記ストリームセグメントを復号化するステップと
を含む、請求項1に記載の復号化方法。
【請求項7】
ヘッダ情報が前記構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析する前記ステップが、
前記ヘッダ情報が前記構文解析を通じて取得されるまで、FFmpegにおいてOpen avformat methodを呼び出すことによって、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析するステップ
を含む、請求項1に記載の復号化方法。
【請求項8】
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを復号化する前記ステップが、
前記ヘッダ情報に従って、前記データストリームが前記オーディオストリーム以外のデータストリームを含むかどうかを判定するステップと、
前記データストリームが前記オーディオストリーム以外の前記データストリームを含む場合、前記オーディオストリーム以外の前記データストリームを前記オーディオストリームから分離するステップと、
前記ヘッダ情報に従って前記オーディオストリームのフォーマット情報を判定するステップと、
前記オーディオストリームの前記フォーマット情報に従って、前記オーディオストリームの前記ストリームセグメントを元のオーディオストリームにトランスコーディングするステップと、
前記元のオーディオストリームをプリセットビットレートで再サンプリングするステップと
を含む、請求項1に記載の復号化方法。
【請求項9】
前記オーディオストリーム以外の前記データストリームが、FFmpegにおいてSeparate stream methodを呼び出すことによって前記オーディオストリームから分離され、
前記オーディオストリームの前記フォーマット情報が、前記ヘッダ情報に従って判定され、前記オーディオストリームの前記ストリームセグメントが、前記オーディオストリームの前記フォーマット情報に従って前記元のオーディオストリームにトランスコーディングされ、前記元のオーディオストリームが、FFmpegにおいてParse format methodを呼び出すことによって前記プリセットビットレートで再サンプリングされる、請求項8に記載の復号化方法。
【請求項10】
受信されたデータストリームの1つまたは複数のストリームセグメントをバッファリングするように構成されたバッファリングモジュールであって、前記データストリームがオーディオストリームを含む、バッファリングモジュールと、
ヘッダ情報が構文解析を通じて取得されるまで、バッファリングされた前記1つまたは複数のストリームセグメントを構文解析するように構成されたヘッダ情報構文解析モジュールと、
前記ヘッダ情報を記憶するように構成されたヘッダ情報記憶モジュールと、
前記ヘッダ情報に従って受信された様々なストリームセグメントの中の前記オーディオストリームのストリームセグメントを、前記オーディオストリームが完全に復号化されるまで復号化するように構成された復号化モジュールと
を備える復号化装置。
【請求項11】
プロセッサと、
前記プロセッサによって実行されるとき、請求項1から9のいずれか一項に記載の復号化方法を前記プロセッサに実行させる命令を記憶するための、前記プロセッサに結合されたメモリと
を備える復号化装置。
【請求項12】
コンピュータプログラムが記憶される非一時的コンピュータ可読記憶媒体であって、前記プログラムが、プロセッサによって実行されるとき、請求項1から9のいずれか一項に記載の方法のステップを前記プロセッサに実装させる、非一時的コンピュータ可読記憶媒体。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
いくつかの実施形態では、オーディオフレームの長さに従って、相異なるオーディオフレームを区別することによって、受信された様々なストリームセグメントの中のオーディオストリームのストリームセグメントを復号化するステップは、データカプセル化フォーマットによって定義されたシーケンスに従って、およびオーディオフレーム長に従って、オーディオストリームの現ストリームセグメントを分割し、1つまたは複数の完全なオーディオフレームを取得するステップと、1つまたは複数の完全なオーディオフレームを復号化するステップと、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかを判定するステップと、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属する場合、不完全なオーディオフレームをバッファリングするステップと、オーディオフレームの現ストリームセグメントの次のストリームセグメントを受信した後、次のストリームセグメントを不完全なオーディオフレームとスプライシングし、スプライシング後ストリームセグメントを取得するステップと、スプライシング後ストリームセグメントをオーディオストリームの現ストリームセグメントとして取るステップと、オーディオストリームの最後のストリームセグメントが完全に復号化されるまで上記ステップを反復するステップとを含む。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0051
【補正方法】変更
【補正の内容】
【0051】
ステップS313では、オーディオストリームの現ストリームセグメントの次のストリームセグメントを受信した後、次のストリームセグメントが現ストリームセグメントとして取られ、プロセスはステップS306に戻り、ステップS306から再実行する。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0053
【補正方法】変更
【補正の内容】
【0053】
ステップS316では、オーディオストリームの現ストリームセグメントの次のストリームセグメントを受信した後、次のストリームセグメントが不完全なオーディオフレームとスプライシングされ、スプライシング後ストリームセグメントが取得され、スプライシング後ストリームセグメントが現オーディオフレームとして取られ、プロセスはステップS306に戻り、ステップS306から再実行する。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0066
【補正方法】変更
【補正の内容】
【0066】
いくつかの実施形態では、復号化モジュール440は、データカプセル化フォーマットによって定義されたシーケンスに従って、およびオーディオフレーム長に従って、オーディオストリームの現ストリームセグメントを分割し、1つまたは複数の完全なオーディオフレームを取得し、1つまたは複数の完全なオーディオフレームを復号化し、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属するかどうかを判定し、オーディオストリームの現ストリームセグメントの終わりのデータが不完全なオーディオフレームに属する場合、不完全なオーディオフレームをバッファリングし、オーディオフレームの現ストリームセグメントの次のストリームセグメントを受信した後、次のストリームセグメントを不完全なオーディオフレームとスプライシングし、スプライシング後ストリームセグメントを取得し、スプライシング後ストリームセグメントをオーディオストリームの現ストリームセグメントとして取り、オーディオストリームの最後のストリームセグメントが完全に復号化されるまで上記を反復するように構成される。
【手続補正7】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】