(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-20
(45)【発行日】2022-04-28
(54)【発明の名称】プレイリストの構成に基づいて曲の再生長さを予測する方法およびシステム
(51)【国際特許分類】
G10K 15/02 20060101AFI20220421BHJP
G06N 3/08 20060101ALI20220421BHJP
G06N 20/00 20190101ALI20220421BHJP
G10L 19/00 20130101ALI20220421BHJP
H04L 67/02 20220101ALI20220421BHJP
【FI】
G10K15/02
G06N3/08
G06N20/00
G10L19/00 312Z
H04L67/02
(21)【出願番号】P 2020544826
(86)(22)【出願日】2018-02-26
(86)【国際出願番号】 KR2018002318
(87)【国際公開番号】W WO2019164041
(87)【国際公開日】2019-08-29
【審査請求日】2021-02-18
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
【住所又は居所原語表記】11th Fl.,42,Hwangsaeul-ro 360beon-gil,Bundang-gu,Seongnam-si,Gyeonggi-do.13591
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェー,ジンウォン
(72)【発明者】
【氏名】ジョン,ジェホン
(72)【発明者】
【氏名】チョウ,ミンギョン
(72)【発明者】
【氏名】チョウ,ソンヨン
(72)【発明者】
【氏名】リュ,デウォン
【審査官】大石 剛
(56)【参考文献】
【文献】特開2017-168034(JP,A)
【文献】特開2006-079198(JP,A)
【文献】特開2000-134371(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10K 15/02
G10L 19/00
G06N 20/00
G06N 3/08
H04L 67/02
(57)【特許請求の範囲】
【請求項1】
コンピュータシステムが実行する方法であって、
前記コンピュータシステムは、少なくとも1つのプロセッサを含み、
当該方法は、
前記少なくとも1つのプロセッサが、各プレイリストに対して曲構成情報と再生履歴情報を管理する段階と、
前記少なくとも1つのプロセッサが、電子機器から特定のプレイリストに対する再生要求を受信すると、前記曲構成情報と前記再生履歴情報を利用して前記特定のプレイリストの曲ごとに該当の曲が再生される確率である再生長さを予測する段階と
を含む、方法。
【請求項2】
前記管理する段階は、
前記プレイリストそれぞれに対し、曲の再生順序と曲ごとの全体の再生長さを含む曲構成情報、および曲ごとの前記全体の再生長さに対してユーザそれぞれが実際に再生した割合を示す実際の再生長さを含む再生履歴情報を管理する段階
を含む、請求項1に記載の方法。
【請求項3】
前記予測する段階は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、
前記取得したプレイリストの再生履歴情報を利用して前記特定のプレイリストの曲ごとに予想再生長さを算出する段階と
を含む、請求項1または2に記載の方法。
【請求項4】
前記取得する段階は、
曲どうしの類似度に基づき、前記特定のプレイリストに含まれる曲と同一あるいは類似の曲で構成されたプレイリストを取得すること
を特徴とする、請求項3に記載の方法。
【請求項5】
前記取得する段階は、
各曲に対し、該当の曲の音源データをディープラーニング学習モデルによって学習して固有の音源特徴を生成する段階と、
前記音源特徴を利用して曲どうしの類似度を算出する段階と、
前記曲どうしの類似度に基づき、前記特定のプレイリストに含まれる曲と同一あるいは類似の曲で構成されたプレイリストを取得する段階と
を含む、請求項3に記載の方法。
【請求項6】
前記予測する段階は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、
前記取得したプレイリストで前記特定のプレイリストの各曲と対応する曲に対する全体ユーザの実際の再生長さを平均する方式により、前記特定のプレイリストの曲ごとの予想再生長さを算出する段階と
を含む、請求項2に記載の方法。
【請求項7】
前記予測する段階は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、
前記取得したプレイリストで前記特定のプレイリストの各曲と対応する曲に対する前記電子機器のユーザの実際の再生長さを平均する方式により、前記特定のプレイリストの曲ごとの予想再生長さを算出する段階と
を含む、請求項2に記載の方法。
【請求項8】
前記管理する段階は、
前記プレイリストの各曲に対して該当の曲が再生された時点の時間、天気、位置のうちの少なくとも1つを含む追加情報を前記再生履歴情報とともに管理する段階
をさらに含み、
前記予測する段階は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、
前記取得したプレイリストのうちで前記特定のプレイリストを要求した時点の追加情報とマッチングするプレイリストの再生履歴情報を利用して、前記特定のプレイリストの曲ごとの予想再生長さを算出する段階と
を含む、請求項2に記載の方法。
【請求項9】
当該方法は、
前記少なくとも1つのプロセッサが、前記特定のプレイリストの曲ごとの再生長さに従って曲の再生に必要なリソースを分配し、前記特定のプレイリストの再生のための音源データを前記電子機器に提供する段階
をさらに含む、請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
前記提供する段階は、
前記特定のプレイリストの曲ごとに、該当の曲の予測された再生長さに対応する単位でプリフェッチを実行すること
を特徴とする、請求項9に記載の方法。
【請求項11】
請求項1~10のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項12】
コンピュータシステムであって、
メモリ、および
前記メモリに接続され、前記メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
各プレイリストに対して曲構成情報と再生履歴情報を管理する情報管理部と、
電子機器から特定のプレイリストに対する再生要求が受信されれば、前記曲構成情報と前記再生履歴情報を利用して前記特定のプレイリストの曲ごとに該当の曲が再生される確率である再生長さを予測する再生長さ予測部と
を含む、コンピュータシステム。
【請求項13】
前記情報管理部は、
前記プレイリストそれぞれに対し、曲再生順序と曲ごとの全体の再生長さを含む曲構成情報、および曲ごとに前記全体の再生長さに対してユーザそれぞれが実際に再生した割合を示す実際の再生長さを含む再生履歴情報を管理すること
を特徴とする、請求項12に記載のコンピュータシステム。
【請求項14】
前記再生長さ予測部は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得し、
前記取得したプレイリストの再生履歴情報を利用して前記特定のプレイリストの曲ごとに予想再生長さを算出すること
を特徴とする、請求項12または13に記載のコンピュータシステム。
【請求項15】
前記再生長さ予測部は、
曲どうしの類似度に基づき、前記特定のプレイリストに含まれる曲と同一あるいは類似の曲で構成されたプレイリストを取得すること
を特徴とする、請求項14に記載のコンピュータシステム。
【請求項16】
前記再生長さ予測部は、
各曲に対し、該当の曲の音源データをディープラーニング学習モデルによって学習して固有の音源特徴を生成し、
前記音源特徴を利用して曲どうしの類似度を算出し、
前記曲どうしの類似度に基づき、前記特定のプレイリストに含まれる曲と同一あるいは類似の曲で構成されたプレイリストを取得すること
を特徴とする、請求項14に記載のコンピュータシステム。
【請求項17】
前記再生長さ予測部は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得し、
前記取得したプレイリストで前記特定のプレイリストの各曲と対応する曲に対する全体ユーザの実際の再生長さを平均する方式により、前記特定のプレイリストの曲ごとに予想再生長さを算出すること
を特徴とする、請求項13に記載のコンピュータシステム。
【請求項18】
前記再生長さ予測部は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得し、
前記取得したプレイリストで前記特定のプレイリストの各曲と対応する曲に対する前記電子機器のユーザの実際の再生長さを平均する方式により、前記特定のプレイリストの曲ごとに予想再生長さを算出すること
を特徴とする、請求項13に記載のコンピュータシステム。
【請求項19】
前記情報管理部は、
前記プレイリストの各曲に対して該当の曲が再生された時点の時間、天気、位置のうちの少なくとも1つを含む追加情報を前記再生履歴情報とともに管理し、
前記再生長さ予測部は、
前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得し、
前記取得したプレイリストのうちで前記特定のプレイリストを要求した時点の追加情報とマッチングするプレイリストの再生履歴情報を利用して、前記特定のプレイリストの曲ごとに予想再生長さを算出すること
を特徴とする、請求項13に記載のコンピュータシステム。
【請求項20】
前記少なくとも1つのプロセッサは、
前記特定のプレイリストの曲ごとの再生長さにしたがって曲の再生に必要なリソースを分配し、前記特定のプレイリストの再生のための音源データを前記電子機器に提供するデータ提供部
をさらに含む、請求項12乃至19のいずれか一項に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、ストリーミング(streaming)基盤の音楽サービスを提供する技術に関する。
【背景技術】
【0002】
デジタル技術の発達により、音源をデジタル形態で生成して保存および管理することができるようになった。これにより、音源の作成、配布、管理が容易となり、PC、ノート型PC、タブレット、スマートフォンのような多様な端末機を利用して容易に鑑賞することができるようになった。
【0003】
音楽を鑑賞するための方法が多様化している中、例えば、通信網を介して音楽をダウンロードして利用したり、インターネットによるストリーミングサービスでリアルタイム受信したりすることで、音楽を鑑賞することができるようになった。
【0004】
一例として、特許文献1(公開日2014年2月14日)には、ユーザのプレイリストに基づいてユーザカスタムされた音楽放送サービスを提供する、プレイリスト基盤の音楽放送サービス方法およびこの装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】韓国公開特許第10-2014-0019123号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
プレイリスト(playlist)の曲の構成に基づき、曲ごとに該当の曲が最後まで再生される確率である再生長さを予測することを目的とする。
【0007】
プレイリストに含まれる各曲の再生長さに基づいて曲ごとにプリフェッチ(pre-fetching)を効果的に実行することで、滑らかな(seamless)再生環境を提供することを他の目的とする。
【0008】
プレイリストの曲ごとの再生長さに基づくことで不必要なデータフェッチを減らすことができ、サービス全般にわたって消耗されるリソースを効率的に利用することをさらに他の目的とする。
【課題を解決するための手段】
【0009】
コンピュータシステムが実行する方法であって、前記コンピュータシステムは、少なくとも1つのプロセッサを含み、当該方法は、前記少なくとも1つのプロセッサが、各プレイリストに対して曲構成情報と再生履歴情報を管理する段階と、前記少なくとも1つのプロセッサが、電子機器から特定のプレイリストに対する再生要求を受信すると、前記曲構成情報と前記再生履歴情報を利用して前記特定のプレイリストの曲ごとに該当の曲が再生される確率である再生長さを予測する段階とを含む方法を提供する。
【0010】
一側面によると、前記管理する段階は、前記プレイリストそれぞれに対し、曲の再生順序と曲ごとの全体の再生長さを含む曲構成情報、および曲ごとの前記全体の再生長さに対してユーザそれぞれが実際に再生した割合を示す実際の再生長さを含む再生履歴情報を管理する段階を含んでよい。
【0011】
他の側面によると、前記予測する段階は、前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、前記取得したプレイリストの再生履歴情報を利用して前記特定のプレイリストの曲ごとに予想再生長さを算出する段階とを含んでよい。
【0012】
また他の側面によると、前記取得する段階は、曲どうしの類似度に基づき、前記特定のプレイリストに含まれる曲と同一あるいは類似の曲で構成されたプレイリストを取得してよい。
【0013】
また他の側面によると、前記取得する段階は、各曲に対し、該当の曲の音源データをディープラーニング学習モデルによって学習して固有の音源特徴を生成する段階、前記音源特徴を利用して曲どうしの類似度を算出する段階、および前記曲どうしの類似度に基づき、前記特定のプレイリストに含まれる曲と同一あるいは類似の曲で構成されたプレイリストを取得する段階を含んでよい。
【0014】
また他の側面によると、前記予測する段階は、前記曲構成情報を利用して前記特定のプレイリストの曲の構成と対応するプレイリストを取得する段階と、前記取得したプレイリストで前記特定のプレイリストの各曲と対応する曲に対する全体ユーザの実際の再生長さを平均する方式により、前記特定のプレイリストの曲ごとに予想再生長さを算出する段階とを含んでよい。
【0015】
また他の側面によると、前記予測する段階は、前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、前記取得したプレイリストで前記特定のプレイリストの各曲と対応する曲に対する前記電子機器のユーザの実際の再生長さを平均する方式により、前記特定のプレイリストの曲ごとに予想再生長さを算出する段階とを含んでよい。
【0016】
また他の側面によると、前記管理する段階は、前記プレイリストの各曲に対し、該当の曲が再生された時点の時間、天気、位置のうちの少なくとも1つを含む追加情報を前記再生履歴情報とともに管理する段階をさらに含み、前記予測する段階は、前記曲構成情報を利用して前記特定のプレイリストの曲構成と対応するプレイリストを取得する段階と、前記取得したプレイリストのうちで前記特定のプレイリストを要求した時点の追加情報とマッチングするプレイリストの再生履歴情報を利用して、前記特定のプレイリストの曲ごとに予想再生長さを算出する段階とを含んでよい。
【0017】
また他の側面によると、当該方法は、前記少なくとも1つのプロセッサが、前記特定のプレイリストの曲ごとの再生長さに従って曲再生に必要なリソースを分配し、前記特定のプレイリストの再生のための音源データを前記電子機器に提供する段階をさらに含んでよい。
【0018】
さらに他の側面によると、前記提供する段階は、前記特定のプレイリストの曲ごとに、該当の曲の予測された再生長さに対応する単位でプリフェッチ(pre-fetching)を実行してよい。
【0019】
前記方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、非一時的なコンピュータ読み取り可能な記録媒体を提供する。
【0020】
コンピュータシステムであって、メモリ、および前記メモリに接続され、前記メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、各プレイリストに対して曲構成情報と再生履歴情報を管理する情報管理部と、電子機器から特定のプレイリストに対する再生要求が受信されれば、前記曲構成情報と前記再生履歴情報を利用して前記特定のプレイリストの曲ごとに該当の曲が再生される確率である再生長さを予測する再生長さ予測部とを含む、コンピュータシステムを提供する。
【図面の簡単な説明】
【0021】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図である。
【
図4】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【
図5】本発明の一実施形態における、プレイリストの曲構成情報を含む管理テーブルの例を示した図である。
【
図6】本発明の一実施形態における、プレイリストの再生履歴情報を含む管理テーブルの例を示した図である。
【
図7】本発明の一実施形態における、曲どうしの類似度に基づいてプレイリストの曲ごとに予想再生長さを算出する過程の一例を示したフローチャートである。
【
図8】本発明の一実施形態における、特定のプレイリストの曲構成と対応するプレイリストを取得する過程を説明するための例示図である。
【
図9】本発明の一実施形態における、特定のプレイリストの曲ごとに予想再生長さを算出する過程を説明するための例示図である。
【
図10】本発明の一実施形態における、特定のプレイリストの曲ごとの予想再生長さによるプリフェッチ過程を説明するための例示図である。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【0023】
本発明の実施形態は、ストリーミング基盤の音楽サービスを提供する技術に関する。
【0024】
本明細書において具体的に開示される事項を含む実施形態は、プレイリスト構成に基づいて曲の再生長さを予測することができ、これによって効率性、リソース節減、費用節減、サービス品質、利便性などの側面において相当な長所を達成することができる。
【0025】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0026】
複数の電子機器110、120、130、140は、コンピュータシステムによって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレット、ゲームコンソール、ウェアラブルデバイス、IoT(internet of things)デバイス、VR(virtual reality)デバイス、AR(augmented reality)デバイスなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータシステムのうちの1つを意味してよい。
【0027】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0028】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってよい。より具体的な例として、サーバ150は、複数の電子機器110、120、130、140においてインストールされて実行されるコンピュータプログラムであるアプリケーションを通じ、該当のアプリケーションが目的とするサービス(一例として、音楽サービスなど)を第1サービスとして複数の電子機器110、120、130、140に提供してよい。他の例として、サーバ160は、上述したアプリケーションのインストールおよび実行のためのファイルを複数の電子機器110、120、130、140に配布するサービスを第2サービスとして提供してよい。
【0029】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、電子機器に対する例として電子機器110の内部構成およびサーバ150の内部構成について説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器110またはサーバ150と同一または類似の内部構成を有してよい。
【0030】
電子機器110およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、非一時的なコンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような永続的大容量記録装置を含んでよい。ここで、ROM、SSD、フラッシュメモリ、ディスクドライブのような永続的大容量記録装置は、メモリ211、221とは区分される別の永続的記録装置として電子機器110やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器110においてインストールされて実行されるブラウザや特定のサービスの提供のために電子機器110にインストールされるアプリケーションなどのためのコード)が記録されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータ読み取り可能な記録媒体からロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるコンピュータプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0031】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に記録されたプログラムコードに従って受信される命令を実行するように構成されてよい。
【0032】
通信モジュール213、223は、ネットワーク170を介して電子機器110とサーバ150とが互いに通信するための機能を提供してもよいし、電子機器110および/またはサーバ150が他の電子機器(一例として、電子機器120)または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器110のプロセッサ212がメモリ211のような記録装置に記録されたプログラムコードに従って生成した要求が、通信モジュール213の制御に従ってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御に従って提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器110の通信モジュール213を通じて電子機器110に受信されてよい。例えば、通信モジュール213を通じて受信されたサーバ150の制御信号や命令、コンテンツ、ファイルなどは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器110がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0033】
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボード、マウス、マイクロフォン、カメラなどの装置を、出力装置は、ディスプレイ、スピーカ、触覚フィードバックデバイスなどのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器110と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150に接続するかサーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってよい。より具体的な例として、電子機器110のプロセッサ212がメモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器120が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0034】
また、他の実施形態において、電子機器110およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器110は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器110がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が、電子機器110にさらに含まれるように実現されてよい。
【0035】
以下では、プレイリスト構成に基づいて曲の再生長さを予測する方法およびシステムの具体的な実施形態について説明する。
【0036】
一般的なプレイリストは、単純な規則によって曲が順に再生される。ユーザが最後まで再生せずに途中でスキップ(skip)する確率が高い曲に対しても再生のためのリソースが消耗されるようになるため、このような不必要なリソースの消耗により、全体的なサービスが円滑になされないことがある。
【0037】
本発明は、プレイリストの再生の流れを確率的モデルによって予測し、これに合わせて曲の再生に必要なリソースを効果的に配分することを目的とする。
【0038】
図3は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示したブロック図であり、
図4は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【0039】
本実施形態に係るサーバ150は、クライアント(client)である複数の電子機器110、120、130、140を対象にストリーミング基盤の音楽サービスを提供するプラットフォームの役割をする。サーバ150は、電子機器110、120、130、140上にインストールされるアプリケーションと連動して音楽サービスを提供してよい。
【0040】
サーバ150のプロセッサ222は、
図4に係る音楽提供方法を実行するための構成要素として、
図3に示すように、情報管理部310、再生長さ予測部320、およびデータ提供部330を含んでよい。実施形態によって、プロセッサ222の構成要素は、選択的にプロセッサ222に含まれても除外されてもよい。また、実施形態によって、プロセッサ222の構成要素は、プロセッサ222の機能の表現のために分離されても併合されてもよい。
【0041】
このようなプロセッサ222およびプロセッサ222の構成要素は、
図4の音楽提供方法が含む段階410~段階440を実行するようにサーバ150を制御してよい。例えば、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードと少なくとも1つのプログラムのコードとによる命令(instruction)を実行するように実現されてよい。
【0042】
ここで、プロセッサ222の構成要素は、サーバ150に記録されたプログラムコードが提供する命令に従ってプロセッサ222によって実行される、プロセッサ222の互いに異なる機能(different functions)の表現であってよい。例えば、サーバ150がプレイリストと関連する情報を管理するように上述した命令に従ってサーバ150を制御するプロセッサ222の機能的表現として、情報管理部310が利用されてよい。
【0043】
段階410において、プロセッサ222は、サーバ150の制御と関連する命令がロードされたメモリ221から必要な命令を読み取ってよい。この場合、読み取られた命令は、以下で説明する段階420~段階440をプロセッサ222が実行するように制御するための命令を含んでよい。
【0044】
段階420において、情報管理部310は、プレイリストそれぞれに対して曲構成情報と再生履歴情報を調査および集計して、記録および管理してよい。プレイリストとは、少なくとも1つの音楽コンテンツ(曲)で構成されたトラック集であって、ユーザが直接構成するか他人から共有された再生リスト、あるいはサービス上で自動推薦された再生リストなどを含んでよい。情報管理部310は、音楽サービスでユーザが消費した履歴のあるプレイリストを対象に、各プレイリストの曲構成に関する全般的な情報、またはユーザによる再生ログデータを記録および管理してよい。
図5は、プレイリスト_Aの曲構成情報500を含む管理テーブルの例を示した図である。
図5に示すように、song_1->song_2->song_3->song_4の順に構成されたプレイリスト_Aに対し、曲構成情報500は、曲再生順序501、曲構成のテーマやタイトルなどのような主題502、全体の再生長さ503、平均の再生長さ504、曲ごとの再生長さ505、ジャンル506、BPM(beat per minute)507などを含んでよい。
図6は、プレイリスト_Aの再生履歴情報600を含む管理テーブルの例を示した図である。プレイリスト_Aに対してすべてのユーザが同じ順序で曲を再生すると仮定する。
図6に示すように、song_1->song_2->song_3->song_4の順に構成されたプレイリスト_Aに対し、再生履歴情報600は、曲再生順序601と、ユーザそれぞれが曲ごとの全体の再生長さに対して実際にどのくらい再生したかを示す再生の割合である実際の再生長さ602などを含んでよい。さらに、情報管理部310は、プレイリスト_Aの各曲に対し、該当の曲が再生された時点に関する追加情報として、曲再生時点の時間帯、天気、位置、社会的イシューなどを追加で収集して各ユーザの実際の再生長さ602とともに管理してよい。このような追加情報は、音楽サービスを利用するユーザの電子機器110、120、130、140から取得した情報、または電子機器110、120、130、140から取得した情報を利用してインターネット上で取得した情報を包括したものを意味してよい。
【0045】
再び
図4を参照すると、段階430において、再生長さ予測部320は、電子機器110から特定のプレイリストに対する再生要求が受信されれば、段階420で管理されているプレイリストの曲構成情報と再生履歴情報を利用して、特定のプレイリストの曲構成による曲ごとの再生長さを予測してよい。再生長さ予測部320は、電子機器110のユーザが要求した特定のプレイリストの再生の流れを確率的モデルによって予測してよい。本発明では、各プレイリストの曲構成情報と再生履歴情報とを関連付けることのできるモデルを設計し、このようなモデルを利用して予め計算されたデータを確保してよい。例えば、Track1の後にTrack2が配置される曲構成を含むプレイリストのうち、主題Aのプレイリストでは平均的にTrack2が全体再生時間120秒のうちの90秒が再生され、主題Bのプレイリストでは平均的にTrack2が全体再生時間120秒のうちの80秒が再生されることがある。再生長さ予測部320は、ユーザが特定のプレイリストの再生を要求すれば、該当のプレイリストの曲構成に対応する既存のプレイリストのログデータを取得して電子機器110と共有してよい。一例として、再生長さ予測部320は、曲どうしの類似度に基づき、ユーザによる再生履歴があるプレイリストのうちから電子機器110が要求した特定のプレイリストの曲構成と対応する既存のプレイリストを探索し、該当のプレイリストの再生履歴情報を利用して特定のプレイリストの曲ごとに予想再生長さを算出してよい。
【0046】
図7は、本発明の一実施形態における、曲どうしの類似度に基づいてプレイリストの曲ごとに予想再生長さを算出する過程の一例を示したフローチャートである。
【0047】
段階701において、再生長さ予測部320は、各曲に対して該当の曲の音源データが入力されると、入力された音源データを学習データ形態で処理してよい。このとき、音楽コンテンツである曲は、オーディオファイルフォーマットを有するすべてのデジタルデータを意味してよく、例えば、MP3(MPEG AudioLayer-3)、WAVE(Waveform AudioFormat)、FLAC(Free Lossless AudioCodec)などを含んでよい。また、再生長さ予測部320には、曲に関するテキスト情報がともに入力されてよいが、このとき、テキスト情報は、歌詞を含むか、あるいは歌手、ジャンル、曲名、アルバム名などのようなメタ情報、さらに曲の分類や検索などと関連して入力されたハッシュタッグ(hashtag)、クエリ(query)などの情報を含んでよい。続いて、再生長さ予測部320は、前処理によって音源データを時間-周波数で表現してよい。例えば、再生長さ予測部320は、音源データをメルスペクトログラム(Mel-spectrogram)やMFCC(Mel Frequency Cepstral Coefficient)のような時間-周波数-大きさ形態のデータに変換してよい。再生長さ予測部320に各曲に対するテキスト情報がともに入力された場合には、テキスト情報を前処理してよい。一例として、再生長さ予測部320は、形態素分析器、索引語抽出器などのような言語前処理器により、入力されたテキスト情報から無意味なテキストをフィルタリングしてよい。言い換えれば、再生長さ予測部320は、テキスト情報に含まれる助詞や助動詞などのような品詞の単語、特殊記号(例えば、!、?、/など)などを除去し、体言や語根に該当する単語を抽出してよい。
【0048】
段階702において、再生長さ予測部320は、音源データに対して前処理された学習データを学習モデルによって学習して固有の特徴を生成した後、生成された固有の特徴をデータベース(図示せず)に記録してよい。再生長さ予測部320は、ディープラーニングを利用して音源データ自体の固有の音響特徴(acoustic features)を生成してよい。一例として、再生長さ予測部320は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)基盤の学習モデルを利用してよい。再生長さ予測部320は、CNN学習モデルを利用して音源データを多次元実数ベクトルで表現してよい。CNN学習モデルは音源データ学習層を含んでよく、以下の過程1~3は、音源データ学習層で音源データに対応する実数ベクタルを生成する過程の例であってよい。
【0049】
過程1において、曲の音源データ(一例として、mp3ファイル)は、前処理によってメルスペクトログラムやMFCCのような時間-周波数-大きさ形態のデータに変換されてよい。
【0050】
過程2において、変換された音源データから1つ以上の短い時間区間(1~10秒)の複数の周波数フレームがサンプリングされて音源データの学習モデルに対する入力データとして使用されてよい。例えば、再生長さ予測部320は、複数のフレームをサンプリングし、音源データ学習層で音楽モデルの例として提示されるCNNモデルの入力として活用してよい。これにより、音源データの学習のためのCNNモデルは、サンプリングされたフレームと同じ数のチャネルを有するモデルとなる。あるいは、生成されたフレームそれぞれを単一チャンネルとして使用し、各フレームに対して固有の畳み込み/プーリング過程を経た後、生成された各フレームの特徴ベクトルを接合することで全結合層の入力として使用可能となる。
【0051】
過程3において、音源データ学習層が含むことのできる複数の畳み込み(convolution)およびプーリング(pooling)層を繰り返し構成することにより、音楽フレームから抽象化された特徴(feature)を生成してよい。畳み込みではパッチの大きさが多様に構成されてよく、プーリングも最大値(max)を利用したプーリング技法、平均値(average)を利用したプーリング技法、および前記2つのプーリング技法を接合したハイブリッドプーリング技法などのような多様なプーリング技法のうちの少なくとも1つが使用されてよい。
【0052】
複数の畳み込みおよびプーリング層上には音響特徴を生成するための全結合層(fully-connected layer)があり、各層別の関数は、シグモイド(sigmoid)関数、双曲線(Hyperbolic Tangent:tanh)関数、ReLU(Rectified Linear Unit)関数などのような多様な関数が使用されてよい。結局、音源データに対して1つの多次元実数ベクトルが生成されてよい。例えば、与えられた最初の音源データm0は、音楽学習モデルの出力層において、x0={0.2、-0.1、0.3、・・・}の形態のように1つの多次元実数ベクトルで表現されてよい。
【0053】
また、再生長さ予測部320は、各曲に対してテキスト情報がともに入力された場合、テキスト情報も多次元実数ベクトルで表現してよい。一例として、再生長さ予測部320は、テキスト情報に対する前処理によってフィルタリングされたテキストを事前学習された学習モデルによってワードベクトル(word vector)として生成してよい。例えば、ワードベクトルは、数値型(numerical)多次元ベクトル形態で表現されてよい。ワードベクトル生成のために、単語出現頻度ヒストグラム、TF(term frequency)/IDF(inverse document frequency)、言語学習モデル(例えば、word2vec、phrase2vec、document2vecなど)などが使用されてよい。例えば、「イ・スンファン 良い日 バラード 1992」などのような歌手/ジャンル/曲名/年度は、1つのn次元実数ベクトルv={0.3、-1.2、1.2、・・・}のように表現可能である。このとき、言語学習モデルのためのテキスト情報フィールド(歌手、ジャンル、曲名、年度など)の順に固定する必要はなく、目的に合うように変更可能である。
【0054】
上述した再生長さ予測部320は、音源データの特徴ベクトルとテキスト情報のワードベクトルを曲ごとにデータベースに記録および維持してよい。音源データの特徴ベクトルとテキスト情報のワードベクトルはそれぞれ、個別のデータベースで構築されてもよいし、あるいは1つのデータベースで構築されてもよい。このようなデータベースは、サーバ150に含まれる構成要素によって実現されてもよいし、あるいはサーバ150と連動可能な個別のシステム上に構築された外部データベースとして存在してもよい。
【0055】
段階703において、再生長さ予測部320は、曲それぞれに対してデータベースに記録された音源データに対する固有の特徴を利用して曲どうしの類似度を算出してよく、曲どうしの類似度に基づき、ユーザによる再生履歴があるプレイリストのうちから電子機器110が要求した特定のプレイリストの曲構成と対応するプレイリストを取得してよい。他の例として、再生長さ予測部320は、音源データの特徴ベクトルとともに、テキスト情報のワードベクトルを複合的に利用して曲どうしの類似度を算出することも可能である。言い換えれば、再生長さ予測部320は、曲どうしの類似度に基づき、電子機器110が要求した特定のプレイリストの曲と同一あるいは類似の曲で構成されたプレイリストを取得してよい。
【0056】
段階704において、再生長さ予測部320は、段階703で取得したプレイリストの再生履歴情報を利用して特定のプレイリストを構成している各曲と対応する曲の多数のユーザによる実際の再生長さを平均する方式により、特定のプレイリストの曲ごとの予想再生長さを算出してよい。
【0057】
図8に示すように、再生長さ予測部320は、電子機器110が要求した特定のプレイリストが、song_i->song_ii->song_iii->song_ivの順に構成されたPlaylist_I 800であるとするとき、曲の構成がsong_i、song_ii、song_iii、song_ivと同一あるいは類似の曲(song_i’、song_i’’、・・・、song_ii’、song_ii’’、・・・、song_iii’、song_iii’’、・・song_iv’、song_iv’’、・・・)を含むプレイリスト(Playlist_1~N)810を探索する。プレイリスト(Playlist_1~N)810にはPlaylist_I800の曲構成song_i->song_ii->song_iii->song_ivのうちの少なくとも2曲以上が連続する曲構成(例えば、song_i->song_ii、song_ii->song_iii、song_iii->song_iv)と対応するプレイリストが含まれてよい。
【0058】
図9を参照すると、再生長さ予測部320は、電子機器110が要求した特定のプレイリスト800に対応するプレイリスト810を探索し、該当のプレイリスト810の曲ごとに再生長さを平均してよい。例えば、特定のプレイリストの最初の曲であるsong_iと同一あるいは類似の曲(song_i、song_i’、song_i’’)の実際の再生長さを平均し、特定のプレイリストの再生を要求したユーザによってsong_iがどのくらい再生されるかを予測してよい。特定のプレイリスト800の曲構成と同一あるいは類似のプレイリスト810の再生履歴情報に基づくユーザによる再生長さが平均的に90%、10%、20%、75%である場合、song_i->song_ii->song_iii->song_ivの順に構成されたPlaylist_I800に対する曲ごとの再生長さを90%、10%、20%、75%と予測してよい。
【0059】
したがって、再生長さ予測部320は、ユーザが要求した特定のプレイリストに対して曲構成が同一あるいは類似のプレイリストを消費した他のユーザの再生ログを平均することにより、特定のプレイリストの曲ごとに再生長さを予測することができる。このとき、再生長さ予測部320は、プレイリストに対するユーザの再生ログが十分に蓄積されている場合には、他のユーザの再生ログではなくユーザの再生ログだけを利用して特定のプレイリストの曲ごとの再生長さを個人化して予測することも可能である。また、再生長さ予測部320は、電子機器110が特定のプレイリストを要求した時点の時間帯、天気、位置、社会的イシューなどとマッチングする追加情報を有する再生ログを利用することで、ユーザ状況による特定のプレイリストの曲ごとに再生長さを予測することも可能である。
【0060】
再び
図4を参照すると、段階440において、データ提供部330は、電子機器110が要求した特定のプレイリストに対して段階430で予測した曲ごとの再生長さに対応するリソースを分配し、特定のプレイリストの再生のための音源データを電子機器110に提供してよい。データ提供部330は、特定のプレイリストに対して予測された曲ごとの再生長さに合わせて曲の再生に必要なリソースを効果的に分配してプリフェッチを実施してよい。例えば、
図10に示すように、曲の構成が同一あるいは類似のプレイリストを消費した他のユーザの再生ログに基づき、song_i->song_ii->song_iii->song_ivの順に構成されたPlaylist_I800の再生長さが曲ごとに90%、10%、20%、75%と予測された場合、電子機器110ではsong_iの音源データを9.0秒単位のチャンク(chunk)で受信して再生すると同時に、song_iiは1.0秒、song_iiiは2.0秒、song_ivは7.5秒単位で該当の音源データを予めダウンロードして次の再生を準備するようにする。言い換えれば、データ提供部330は、電子機器110のユーザが要求した特定のプレイリスト800に対し、最後まで再生される確率が高い曲の場合にはより多くのデータをより早くプリフェッチし、最後まで再生される確率が低い曲の場合にはより少ないデータをよりゆっくりプリフェッチする。
【0061】
このように、本発明の実施形態によると、プレイリストの曲構成に基づき、曲ごとに該当の曲が最後まで再生される確率である再生長さを予測することができ、これに基づいて曲ごとにプリフェッチを効率的に実行することで、滑らかな再生環境を提供することができる。さらに、本発明の実施形態によると、プレイリストに対し、曲ごとの再生長さに基づいて不必要なデータフェッチを減らすことができ、これによってサービス全般にわたって消耗されるリソースを効率的に利用することができる。
【0062】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0063】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0064】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。ここで、媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0065】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0066】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。