以下、本発明の一実施形態を図面に基づいて説明する。なお、本発明は下記の実施形態に何ら限定されるものではなく様々な態様にて実施することが可能である。
[カラオケネットワークシステム1の構成の説明]
図1に示すように、カラオケネットワークシステム1は、カラオケセンタの楽曲配信サーバ2及びSNSサーバ3と、カラオケ店舗のカラオケ演奏機器4及びリモコン端末5と、ユーザが利用するスマートフォン6及びパソコン7とが、インターネット10を介して通信可能に接続されることで形成される。なお、図1においては、説明を簡潔にするため、カラオケ演奏機器4やリモコン端末5、スマートフォン6、パソコン7等の機器をそれぞれ1台ずつ記載した。しかしながら、実際には、これらの機器が数多くの接続された態様で実施される。
カラオケセンタには、楽曲配信サーバ2及びSNSサーバ3が設置されている。このうち、楽曲配信サーバ2は、カラオケ演奏機器4やスマートフォン6からの要求に応じてカラオケ楽曲データ等のコンテンツを配信するカラオケコンテンツ配信用のサーバ装置である。楽曲配信サーバ2は、カラオケセンタ内のルータ50を介して、インターネット10経由でカラオケ演奏機器4、スマートフォン6及びパソコン7とデータ通信を行う。楽曲配信サーバ2は、サーバ機能を有する情報処理装置で構成されている。楽曲配信サーバ2は、外部記憶装置としてのハードディスクドライブに配信用の楽曲データ及び楽曲データに関連する各種情報を蓄積するための楽曲データデータベースを備える。
SNSサーバ3は、カラオケのユーザ固有の蓄積データに基づくソーシャルネットワーキングサービス(以下、SNS)を提供するSNS用のサーバ装置である。本実施形態のカラオケネットワークシステム1は、カラオケ店舗に設置されたカラオケ演奏機器4を用いてカラオケを楽しむサービスの他に、ユーザが携帯するスマートフォン6にインストールされたカラオケアプリケーションを用いてカラオケを楽しむサービスを提供する。そこで、カラオケ演奏機器4、スマートフォン6又はパソコン7の何れを用いても、ユーザがユーザ固有の蓄積データにアクセスすることを可能にするため、カラオケセンタに設置されたSNSサーバ3がユーザの蓄積データを一元的に管理する。ユーザ固有の蓄積データを利用する際には、何れかの端末からSNSサーバ3にアクセスし、ユーザを一意に識別可能なアカウント情報を用いてカラオケ会員サービスのシステムにログインするようになっている。
SNSサーバ3は、CPU31、RAM32、ROM33、ハードディスクドライブ(HDD)34、及び通信部35等を備えた、サーバ機能を有する情報処理装置で構成されている。CPU31は、RAM32やROM33に記憶されたデータに従って、SNSサーバ3各部に対する制御及び各種演算を実行する装置である。RAM32は、CPU31から直接アクセスされるメインメモリとして利用される記憶装置である。ROM33は、不揮発性の記憶装置であり、BIOSや読出し専用のデータ等を記憶している。HDD34は、プログラムや、各種データベース等を保存しておくための記憶装置である。通信部35は、SNSサーバ3をインターネット10に接続してカラオケ演奏機器4や、リモコン端末5、スマートフォン6、パソコン7とデータ通信を行うための通信インタフェースである。なお、SNSサーバ3は、カラオケセンタ内のルータ50を介して、インターネット10経由でカラオケ演奏機器4、リモコン端末5、スマートフォン6、パソコン7とデータ通信を行う。
SNSサーバ3は、本システムが提供するSNSであるカラオケ会員サービスを利用する権限を有する個々のユーザごとのデータを蓄積するための、ユーザデータベースをHDD34に記憶している。このユーザデータベースには、分析データ、録音データ、ユーザアカウント等の情報が蓄積されている。分析データは、カラオケ演奏機器4やスマートフォン6のカラオケアプリケーションを利用して行われたカラオケの歌唱の巧拙度合を精密に分析した分析結果が、その歌唱を行ったユーザの識別情報や楽曲の識別情報に対応付けて登録されたものである。録音データは、カラオケ演奏機器4やスマートフォン6のカラオケアプリケーションを利用して行われたカラオケの歌唱音声を録音した音声データが、その歌唱を行ったユーザの識別情報や楽曲の識別情報に対応付けて登録されたものである。ユーザアカウントは、カラオケ会員サービスを利用する権限を有するユーザの識別情報(ユーザ識別子)や、ログイン認証用のパスワード、ユーザ名、ユーザのプロファイル、連絡先の電子メールアドレス等を含む個人情報がユーザごとに登録されたものである。
SNSサーバ3は、上述のユーザデータベースに蓄積された各種情報に基づき、ユーザの端末(スマートフォン6又はパソコン7)宛てに、ユーザの歌唱の上達を支援するため各種情報を、インターネット10を介して送信する機能を有する。その主な機能として、SNSサーバ3は、ログイン中のユーザの端末から歌唱技能のレベルが類似するユーザのグループの紹介を要求されることで、当該ログイン中のユーザの歌唱の分析データに対して類似性を示すユーザのグループリストを生成して要求元の端末へ返信する。この処理の詳細な内容については後述する。
一方、カラオケ店舗には、カラオケサービス用の機器として、カラオケ演奏機器4、モニタ41及びリモコン端末5が設置されている。また、カラオケ店舗には、通信用の機器として、無線LANアクセスポイント51、スイッチングハブ52、ルータ53が設置されている。
カラオケ演奏機器4は、カラオケ店舗内の各カラオケルームに設置される業務用のカラオケ装置である。カラオケ演奏機器4は、スイッチングハブ52及びルータ53を介して、インターネット10経由でカラオケセンタの楽曲配信サーバ2及びSNSサーバ3とデータ通信を行う。カラオケ演奏機器4には、カラオケセンタの楽曲配信サーバ2から定期的にカラオケの楽曲データがダウンロード配信される。カラオケ演奏機器4は、リモコン端末5からユーザのリクエスト指示を受信し、リクエストされたカラオケ楽曲の演奏を行う。
また、カラオケ演奏機器4は、カラオケの演奏を行ったときに、ユーザによる歌唱の巧拙度合を精密に分析した分析データを作成する。分析データは、ユーザによる歌唱の音程の正確さや、「しゃくり」、「ビブラート」といった特定の歌唱技巧の出現頻度を、所定の演奏区間ごとに検出した結果を数値化したものである。カラオケ演奏機器4は、ユーザの歌唱の分析結果を得点化し、分析採点結果としてモニタ41に表示する。
さらに、カラオケ演奏機器4は、歌唱を分析した分析データを、歌唱を行ったユーザの識別情報及び楽曲の識別情報と対応付けてSNSサーバ3に送信する。また、カラオケ演奏機器4は、ユーザの歌唱音声を録音した録音データを、歌唱を行ったユーザの識別情報及び楽曲の識別情報と対応付けてSNSサーバ3に送信する。これにより、多くのユーザの分析データ及び録音データがSNSサーバ3に蓄積される。
リモコン端末5は、カラオケルーム内でカラオケ演奏機器4を遠隔操作するための端末である。リモコン端末5は、ユーザが演奏を希望する楽曲のリクエストを行うための操作をユーザから受付ける。そして、その操作信号を無線LAN通信や赤外線通信によって操作対象のカラオケ演奏機器4に送信する。また、リモコン端末5は、無線LANアクセスポイント51に無線接続してインターネット10経由でカラオケセンタのSNSサーバ3とデータ通信を行う。リモコン端末5は、リモコン端末5を使ってカラオケ会員サービスにログインしようとするユーザに対する認証をSNSサーバ3に依頼し、その認証結果を受信する。なお、カラオケ演奏機器4及びリモコン端末5のその他の機能や構成については公知技術に従っているので、ここではその詳細な説明は省略する。
スマートフォン6は、様々なアプリケーションをインストールして利用可能な周知の高機能携帯電話端末である。本実施形態では、スマートフォン6は、カラオケ演奏機器4の一部機能を提供するスマートフォン向けのカラオケアプリケーションがインストールされたものを想定している。このカラオケアプリケーションが提供する機能として、カラオケ会員サービスへのログイン/ログアウト手続、楽曲の検索、楽曲のカラオケ演奏、歌唱音声の録音・再生、歌唱の分析データの作成、他ユーザとの情報交換等が挙げられる。
スマートフォン6は、公共の無線WAN基地局54に無線接続して、インターネット10経由でカラオケセンタの楽曲配信サーバ2及びSNSサーバ3とデータ通信を行う。スマートフォン6は、ユーザから楽曲のリクエスト指示を受付け、リクエストされた楽曲のストリーミング再生を行う。スマートフォン6には、カラオケセンタの楽曲配信サーバ2からオンデマンドで楽曲データがストリーミング配信される。
また、スマートフォン6は、ユーザによるカラオケの歌唱の巧拙度合を精密に分析した分析データを作成する。歌唱の分析方法や分析データの構成については、カラオケ演奏機器4と同様である。また、スマートフォン6は、歌唱を分析した分析データを、歌唱を行ったユーザの識別情報や楽曲の識別情報と対応付けてSNSサーバ3に送信する。また、スマートフォン6は、ユーザの歌唱音声を録音した録音データを、歌唱を行ったユーザの識別情報や楽曲の識別情報と対応付けてSNSサーバ3に送信する。これにより、多くのユーザの分析データ及び録音データがSNSサーバ3に蓄積される。
さらに、スマートフォン6は、ユーザの歌唱の上達を支援するため各種情報をSNSサーバ3から受信し、その情報をユーザに対して提示する機能を有する。その主な機能として、スマートフォン6は、ログイン中のユーザからの操作指示に基づいて、当該ユーザと歌唱技能のレベルが類似するユーザのグループの紹介をSNSサーバ3に対して要求する。そして、SNSサーバ3から返信されたグループ情報に基づき、当該グループのメンバーの一覧を表示する。さらに、スマートフォン6は、グループ情報に基づいて表示されたグループのメンバー中から、ユーザが指定した相手との情報交換に関する処理を行う。これらの処理の詳細な内容については後述する。
パソコン7は、周知のパーソナルコンピュータである。本実施形態では、パソコン7は、カラオケ会員サービス向けの機能として、カラオケ会員サービスへのログイン/ログアウト手続、他ユーザとの情報交換等の各種機能が実装されたものを想定している。パソコン7は、ユーザ宅に設置されたルータ55を介して、インターネット10経由でカラオケセンタのSNSサーバ3とデータ通信を行う。パソコン7は、ユーザの歌唱の上達を支援するため各種情報をSNSサーバ3から受信し、その情報をユーザに対して提示する。その主な機能は、スマートフォン6について上述したものと同様である。
ユーザは、スマートフォン6やパソコン7を用いて、自身とカラオケの歌唱技能のレベルが類似する他のユーザと情報交換をしたり、他のユーザの歌唱の録音音声を聴きながら歌唱を練習する。
[楽曲データの構成例]
本実施形態で前提としているカラオケの楽曲データの構成について、図2を参照しながら説明する。
図2(a)に示すように、カラオケ演奏機器4やスマートフォン6で演奏される楽曲データには、メタデータ、MIDIメッセージ、及びメロディ区間情報が含まれている。メタデータには、楽曲の識別情報である楽曲識別子や、楽曲のジャンルを示す情報等が登録されている。楽曲のジャンルを示す情報は、例えば、演歌、童謡、ロック、バラード、ジャズ、アニメ、登場作品別等が挙げられる。MIDIメッセージには、カラオケの伴奏パートのメロディを演奏するためのMIDI形式の演奏データや、歌唱パートとして歌唱すべきメロディを示すガイドメロディデータが含まれる。ガイドメロディデータは、歌唱の採点や分析を行うための評価基準として用いられる。
メロディ区間情報は、楽曲のリフレイン形式に基づいて決められる演奏区間を定義する情報である。このメロディ区間情報には、楽曲を構成する個々のメロディ区間ごとにメロディの種別と演奏時刻に関する情報が定義されている。図2(b)に、楽曲のリフレイン形式に基づくメロディ区間の一例を示す。日本の歌謡曲におけるリフレイン形式を例に挙げると、AメロやBメロと呼ばれる前半部分と、サビと呼ばれる後半部分との繰返しに、間奏や終結部を含んだメロディ区間で楽曲が構成されているのが一般的である。ただし、楽曲によっては、メロディ区間の構成が図2(b)に示す一例とは異なる場合もある。あるいは、所定の演奏時間ごとに、演奏区間が設定されてもよい。例えば、5秒間の演奏時間ごとに演奏区間が設定されてもよい。
カラオケ演奏機器4やスマートフォン6においてユーザの歌唱の分析が行われる際、楽曲データに含まれるメロディ区間情報に基づいて、Aメロ、Bメロ、サビ等の個々のメロディ区間ごとに歌唱の音程の正確さや、ビブラート及びしゃくりといった歌唱技巧の出現回数が判定される。
[分析データの蓄積例]
SNSサーバ3のユーザデータベースに蓄積される分析データの構成について、図3を参照しながら説明する。SNSサーバ3のユーザデータベースには、カラオケ演奏機器4及びスマートフォン6の各端末から送信されてきた歌唱の分析データが多数蓄積される。図3に示すとおり、各分析データには、ユーザ識別子、楽曲識別子、音程ずれパターン、しゃくり数、ビブラート数等の各種情報が含まれている。
ユーザ識別子は、カラオケ会員サービスの会員を一意識別するための固有の識別情報である。ユーザ識別子には、例えば、当該ユーザが所有する電子メールアドレスや、ランダムな文字数列等が用いられる。楽曲識別子は、カラオケの楽曲を一意に識別するための固有の識別情報(例えば、楽曲番号等)である。音程ずれパターンは、当該楽曲が最近歌唱されたときのガイドメロディの対する歌唱の音程のずれの度合を数値化したパターンデータである。音程ずれパターンは、歌唱された楽曲のメロディ区間情報で示される個々のメロディ区間ごとに判定された分析結果の数列で構成されている。しゃくり数は、当該楽曲が最近歌唱されたときに検出された「しゃくり」の出現回数を示すパターンデータである。しゃくり数は、歌唱された楽曲のメロディ区間情報で示される個々のメロディ区間ごとにカウントされたしゃくりの出現回数の数列で構成されている。ビブラート数は、当該楽曲が最近歌唱されたときに検出された「ビブラート」の出現回数を示すパターンデータである。ビブラート数は、歌唱された楽曲のメロディ区間情報で示される個々のメロディ区間ごとにカウントされたビブラートの出現回数の数列で構成されている。
[グループメンバー紹介画面の一例]
スマートフォン6やパソコン7のディスプレイに表示されるグループメンバー紹介画面の一例について、図4を参照しながら説明する。スマートフォン6やパソコン7のディスプレイには、当該端末による要求に応じてSNSサーバ3から返信されてきたグループ情報に基づき、図4に示すようなグループメンバー紹介画面が表示される。
図4に示すとおり、グループメンバー紹介画面には、グループメンバーの紹介を要求した要求元ユーザと歌唱の技能レベルが近いユーザ(歌唱が同程度に上手、もしくは下手なグループのメンバー)の一覧が表示される。ここで表示されるグループのメンバーは、全てカラオケ会員サービスのアカウントを有する会員ユーザである。各メンバーの項目には、当該メンバーの名前や、類似度、該当する楽曲の識別情報、当該メンバーから寄せられたコメント等の情報が表示される。メンバーの名称は、例えば、カラオケ会員サービス内での通称やニックネーム等が用いられる。また、類似度は、要求元ユーザの分析データと、当該メンバーの分析データとのの類似度合を示す数値である。類似度の数値が大きい程、分析データの一致度合が高いことを意味する。
グループメンバー紹介画面に表示されたグループのメンバーの一覧の中から、要求元ユーザが端末において特定のメンバーを選択することができる。これにより、選択されたメンバーのプロファイルの閲覧や、当該メンバーとの間の情報交換(チャットやメッセージの送受信)、当該ユーザによる歌唱の録音データを聴くことができるようになっている。
[カラオケアプリケーション処理の説明]
スマートフォン6が実行するカラオケアプリケーション処理の手順について、図5のフローチャートを参照しながら説明する。
ユーザからカラオケアプリケーションの実行を指示する操作を受付けると、スマートフォン6は、S100でカラオケアプリケーションを起動する。つぎのS102では、スマートフォン6は、SNSサーバ3との所定のログイン手続を経て、カラオケ会員サービスにログインする。
カラオケ会員サービスへのログインは、例えば、次のような手順で行われる。まず、スマートフォン6が、ユーザ識別子及びログイン認証用のパスワードの入力をユーザから受付ける。つぎに、スマートフォン6は、入力されたユーザ識別子及びパスワードをSNSサーバ3に対して送信し、ログイン認証を要求する。SNSサーバ3は、送信されたユーザ識別子及びパスワードをユーザデータベースのユーザアカウントに照会して認証を行う。SNSサーバ3においてログイン認証が成功すると、認証されたユーザ(以下、ログインユーザとも称する)のアカウントに対応するセッション生成される。以降、ログインユーザがカラオケ会員サービスからログアウトする手続を行うまでの間、当該スマートフォン6とSNSサーバ3との間で行われる通信は、当該ログインユーザのアカウントに対応付けられたものとして扱われる。
つぎのS104では、スマートフォン6は、ユーザから選択されたカラオケアプリケーションの機能に応じて処理を分岐する。カラオケ機能が選択された場合(S104:カラオケ機能)、S106に進む。S106では、スマートフォン6は、楽曲の検索をSNSサーバ3に対して要求する。ここでは、スマートフォン6がSNSサーバ3に対して当該要求を出すとき、ユーザから指定された楽曲の検索条件(楽曲名、アーティスト名、ジャンル、キーワード等)を、入力パラメータとしてSNSサーバ3に送信する。つぎのS108では、スマートフォン6は、SNSサーバ3から通知された楽曲の検索結果の一覧を、ディスプレイに表示する。S110では、スマートフォン6は、表示された楽曲の検索結果の一覧からユーザによって選択指示された楽曲の演奏を、SNSサーバ3に対して要求する。
そして、S112では、スマートフォン6は、演奏の要求に応じて楽曲配信サーバ2から配信されてくる楽曲データに基づいてカラオケの演奏を行う。楽曲データに基づく演奏は、楽曲配信サーバ2から楽曲データを受信しながら同時に演奏を行うストリーミングによって行われる。また、スマートフォン6は、楽曲の演奏に並行してユーザによる歌唱の分析や歌唱音声の録音を行う。楽曲の演奏後におけるS114では、スマートフォン6は、今回の歌唱の分析結果をディスプレイに表示する。歌唱の分析では、楽曲データのメロディ区間情報で示される個々のメロディ区間ごとに、歌唱の音程のずれ、及びしゃくり・ビブラートの出現回数等が検出さる。その検出結果は検出データとして記録される。
つぎのS116では、スマートフォン6は、今回の歌唱の分析結果をSNSサーバ3に反映させるか否かをログインユーザに対して問合わせる。今回の歌唱の分析結果をSNSサーバ3に反映させる旨の回答をユーザから受付けた場合(S116:YES)、S118に進む。一方、今回の歌唱の分析結果をSNSサーバ3に反映しない旨の回答をユーザから受付けた場合(S116:NO)、S136に進む。
歌唱の分析結果をSNSサーバ3に反映させる旨の回答を受付けた場合に進むS118では、スマートフォン6は、今回の歌唱に関する分析データを、ログインユーザの識別情報及び歌唱された楽曲の識別情報と対応付けてSNSサーバ3に対して送信する。また、S120では、スマートフォン6は、今回の歌唱音声を録音した録音データを、ログインユーザの識別情報及び歌唱された楽曲の識別情報と対応付けて、SNSサーバ3に対して送信する。S120の後、スマートフォン6はS136に進む。
一方、S104においてSNS機能が選択された場合(S104:SNS機能)、スマートフォン6はS122に進む。S122では、スマートフォン6は、ログインユーザの歌唱技能のレベルと類似するグループメンバーの紹介を、SNSサーバ3に対して要求する。ここでは、スマートフォン6がSNSサーバ3に対して当該要求を出すとき、どの分析済みの楽曲に対する紹介を要求するのかを示す情報(例えば、ユーザ及び楽曲の識別情報)、入力パラメータとしてSNSサーバ3に送信する。
そして、S124では、スマートフォン6は、要求に対する回答としてSNSサーバ3から返信されてきたグループ情報に基づき、グループメンバー紹介画面をディスプレイに表示する。図4はその一例である。S126では、スマートフォン6は、S124で表示されたグループメンバー紹介画面の中からログインユーザによって選択指示されたメンバーのプロファイルを表示する。ここでは、ログインユーザに選択されたメンバーのプロファイルの閲覧を、スマートフォン6がSNSサーバ3に対して要求する。そして、閲覧要求に応じてSNSサーバ3から返信されてきた当該メンバーのプロファイル情報を、スマートフォン6がディスプレイに表示する。
つぎのS128では、スマートフォン6は、ユーザから選択されたSNS機能に応じて処理を分岐する。チャット機能が選択された場合(S128:チャット機能)、スマートフォン6はS130に進む。S130では、スマートフォン6は、ログインユーザとグループ内から選択されたメンバーとのチャットをSNSサーバ3に対して要求し、チャット処理を実行する。ここでいうチャットとは、インターネット10を利用したユーザ同士のリアルタイムコミュニケーションのサービスである。ここでは、ログインユーザと、グループ内から選択されたメンバーとが、文字入力による対話をすることで情報交換を行うサービスを想定している。S130の後、スマートフォン6はS134に進む。
一方、S128において録音データ再生機能が選択された場合(S128:録音データ再生機能)、スマートフォン6はS132に進む。S132では、スマートフォン6は、ユーザにより選択されたグループ内のメンバーによる歌唱の録音データをストリーミング再生する。ここでは、スマートフォン6がSNSサーバ3に対して録音データの再生要求を出すとき、どのメンバーのどの楽曲に関する録音データを再生するのかを示す情報(ユーザ及び楽曲の識別情報)を、入力パラメータとしてSNSサーバ3に送信する。そして、スマートフォン6は、当該再生要求に対する応答としてSNSサーバ3から送信されてくる録音データをストリーミング再生する。S132に後、スマートフォン6はS134に進む。
つぎのS134では、スマートフォン6はSNS機能を終了する旨の指示をログインユーザから受付けたか否かを判定する。SNS機能を終了する旨の指示を受付けていない場合(S134:NO)、スマートフォン6はS124に戻る。一方、SNS機能を終了する旨の指示を受付けた場合(S134:YES)、スマートフォン6はS136に進む。
S136では、カラオケサービスを終了する旨の指示をユーザから受付けたか否かを判定する。カラオケサービスを終了する旨の指示を受付けていない場合(S136:NO)、スマートフォン6はS104に戻る。一方、カラオケサービスを終了する旨の指示をユーザから受付けた場合(S136:YES)、スマートフォン6はS138に進む。
S138では、スマートフォン6は、カラオケ会員サービスからのログアウトをSNSサーバ3に対して通知する。これにより、当該ログインユーザに関するセッションが終了する。S138の後、スマートフォン6は本処理を終了する。
なお、ユーザがパソコン7を利用してカラオケ会員サービスにログインし、上述のSNS機能を利用することもできる。その場合、パソコン7が実行する処理の手順は、上記S122〜S134に準ずる。また、ユーザがカラオケ店舗に設置されたカラオケ演奏機器4で歌唱を行ったときも、当該ユーザの歌唱の分析結果をSNSサーバ3に反映することができる。その場合、カラオケ演奏機器4が実行する処理の手順は、上記S112〜S120に準ずる。ただし、カラオケ演奏機器4において楽曲のカラオケ演奏が行われる場合、ストリーミング再生ではなく、カラオケ演奏機器4にダウンロード済みの楽曲データに基づいて演奏が行われる(ダウンロード再生)。
[カラオケサービス処理の説明]
SNSサーバ3のCPU31が実行するカラオケサービス処理の手順について、図6のフローチャートを参照しながら説明する。
S200において、CPU31は、システム起動時の初期化処理を行う。つぎのS202では、CPU31は、カラオケ演奏機器4、リモコン端末5、スマートフォン6又はパソコン7の何れかの端末からインターネット10を介して受付けた要求を分別し、その要求内容に応じて処理を分岐する。
S202において、ログイン中のユーザ(以下、ログインユーザ)に対応する通信相手であるスマートフォン6から、楽曲検索の要求を受付けた場合(S202:楽曲検索)、CPU31はS204に進む。S204では、CPU31は、当該要求元の端末から送信されてきた検索条件に該当する楽曲を、楽曲データベースから検索する。つぎのS208では、CPU31は、楽曲データベースから検索された楽曲のリストを示すデータを当該要求元の端末に返信する。S208の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるスマートフォン6から、楽曲の演奏要求を受付けた場合(S202:楽曲演奏)、CPU31はS210に進む。S210では、当該要求元の端末から送信されてきた楽曲の識別情報に該当する楽曲データが、楽曲配信サーバ2からストリーミング配信される。S210の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるカラオケ演奏機器4又はスマートフォン6から、当該ログインユーザによる歌唱の分析データを登録する要求を受付けた場合(S202:分析データ登録)、CPU31はS212に進む。S212では、CPU31は、当該要求元の端末から送信されてきた分析データを、当該ログインユーザの識別情報及び歌唱された楽曲の識別情報と対応付けてユーザデータベースに登録する。図3は、分析データの蓄積例である。なお、同一ユーザの同一の楽曲に関する過去の分析データが既にユーザデータベースに登録済みである場合、CPU31は新しい方の分析データを古い方の分析データに上書きする。S212の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるカラオケ演奏機器4又はスマートフォン6から、当該ログインユーザによる歌唱の録音データを登録する要求を受付けた場合(S202:録音データ登録)、CPU31はS214に進む。S214では、CPU31は、当該要求元の端末から送信されてきた録音データを、当該ログインユーザの識別情報及び歌唱された楽曲の識別情報と対応付けてユーザデータベースに登録する。なお、同一ユーザの同一の楽曲に関する過去の録音データが既にユーザデータベースに登録済みである場合、CPU31は新しい方の録音データを古い方の録音データに上書きする。S214の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるスマートフォン6又はパソコン7から、当該ログインユーザの歌唱の技能レベルと類似するグループメンバーを紹介する要求を受付けた場合(S202:グループ紹介)、CPU31はS216に進む。S216では、CPU31は、当該要求元の端末から送信されてきた入力パラメータ(紹介を要求する分析済みの楽曲の識別情報)と、ユーザデータベースに蓄積された分析データとに基づき、当該ログインユーザにおける当該楽曲の分析データに類似する、他の分析データに対応するユーザを検索する。そして、CPU31は、検索されたユーザと当該ログインユーザとをグループ化する。なお、S216のグループ化処理の詳細な手順については、後述する。
つぎのS218では、CPU31は、S216のグループ化処理においてグループ化されたメンバーのリストを含むグループ情報を、当該ログインユーザに対応する所定の宛先に対して返信する。グループ情報には、グループ化されたメンバーのリストに加え、各メンバーの採点データとの類似度合を示す類似度の情報や、各メンバーから入力されたコメント等の情報が含まれるようにしてもよい。あるいは、グループ情報には、各メンバーとの情報交換を行うための手段に関する情報(例えば、連絡先の電子メールアドレスや情報交換のためのアクセス先のURL等)が含まれるようしてもよい。
なお、作成されたグループ情報を、例えばWebデータとして、当該ログインユーザに対応するセッションにおける通信相手となっている端末のIPアドレス宛てに返信することが考えられる。あるいは、作成されたグループ情報を、例えば電子メールのデータとして、要求元のログインユーザの所有する電子メールアドレス宛てに送信することも考えられる。あるいは、作成されたグループ情報を、当該ログインユーザ以外のグループのメンバーに対して送信してもよい。S218の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるスマートフォン6又はパソコン7から、他のユーザのプロファイルの閲覧する要求を受付けた場合(S202:プロファイル閲覧)、CPU31はS220に進む。S220では、CPU31は、ユーザデータベースに蓄積されたユーザアカウント情報から、当該要求元の端末から指定されたユーザの識別情報に該当するプロファイル情報を読出す。そして、CPU31は、読出したプロファイル情報を当該要求元の端末に対して返信する。S220の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるスマートフォン6又はパソコン7から、録音データを再生する要求を受付けた場合(S202:録音データ再生)、CPU31はS222に進む。S222では、CPU31は、ユーザデータベースに蓄積された録音データの中から、当該要求元の端末から送信されてきた入力パラメータ(再生する録音データに対応するユーザ及び楽曲の識別情報)に該当する録音データを、当該要求元の端末に対してストリーミング配信する。S222の後、CPU31はS240に進む。
一方、S202において、ログインユーザに対応する通信相手であるスマートフォン6又はパソコン7から、チャットを行う要求を受付けた場合(S202:チャット処理)、CPU31はS224に進む。S224では、CPU31は、当該要求元のログインユーザとのチャットの相手として指定されたユーザ(以下、送信先ユーザ)が、現在、スマートフォン6又はパソコン7からログイン中であるか否かを判定する。
送信先ユーザがログイン中である場合(S224:YES)、CPU31はS226に進む。S226では、CPU31は、当該要求元の端末から送信されてきたログインユーザのメッセージ(例えば、文字情報)を、当該送信先ユーザに対応するセッションにおける通信相手となっている端末に対して転送する。一方、送信先ユーザがログイン中でない場合(S224:NO)、CPU31はS228に進む。S228では、CPU31は、当該要求元の端末から送信されてきたログインユーザのメッセージ(例えば、文字情報)を、当該送信先ユーザ宛てのメッセージとして、ユーザデータベース内に蓄積する。S226,S228の後、CPU31はS240に進む。
一方、S202において、リモコン端末5、スマートフォン6又はパソコン7の何れか端末から、ユーザがログイン又はログアウトする要求を受付けた場合(S202:ログイン/ログアウト)、CPU31はS230に進む。S230では、CPU31は、当該要求がユーザのログインであるか否かを判定する。当該要求がログインである場合(S230:ログイン)、CPU31は、ユーザデータベース内に当該ログインユーザ宛てのメッセージが蓄積されているか否かを判定する(S232)。当該ログインユーザ宛てのメッセージが蓄積されている場合(S232:YES)、CPU31はS234に進む。一方、当該ログインユーザ宛てのメッセージが蓄積されていない場合(S232:NO)、CPU31はS236に進む。
当該ログインユーザ宛てのメッセージが蓄積されている場合に進むS234では、CPU31は、蓄積されていた当該ログインユーザ宛てのメッセージを、当該要求元の端末(スマートフォン6又はパソコン7)に対して送信する。そして、S236では、CPU31は、ログインユーザに対応するセッションを生成する。セッションの生成により、ログインユーザがログアウトする手続を行うまでの間、当該要求元の端末とSNSサーバ3との間で行われる通信は、当該ログインユーザのアカウントに対応付けられたものとして扱われる。
一方、S230において、当該要求がログアウトである場合(S230:ログアウト)、CPU31はS238に進む。S238では、CPU31は、当該要求元の端末との間で行われていたセッションを終了する。S236,S238の後、CPU31はS240に進む。
S240では、CPU31は、SNSサーバ3のシャットダウンを行う指示を受付けたか否かを判定する。シャットダウンの指示を受付けていない場合(S240:NO)、CPU31はS202に戻る。一方、シャットダウンの指示を受付けた場合(S240:YES)、CPU31はS242に進む。S242では、CPU31は、シャットダウン時の終了処理を行う。S242の後、CPU31は本処理を終了する。
[グループ化処理の説明]
SNSサーバ3のCPU31が実行するグループ化処理の手順について、図7のフローチャートを参照しながら説明する。このグループ化処理は、上述のカラオケサービス処理(図6)のS216において実行される処理である。
S300において、CPU31は、当該要求元の端末から送信されてきた入力パラメータ(紹介を要求する分析済みの楽曲の識別情報)に対応する楽曲のジャンルを特定する。そして、CPU31は、分析データの類似性を判定する対象となる楽曲を、当該特定されたジャンルに一致する楽曲に絞込む。ここでは、楽曲のジャンルの他に、楽曲のアーティストや、楽曲そのものを絞込みの基準にしてもよい。
つぎのS302では、CPU31は、入力パラメータに対応する楽曲のリフレイン形式を特定する。そして、CPU31は、S300で絞込まれた楽曲の中から、当該特定されたリフレイン形式と類似する楽曲を一定数(例えば、10楽曲)抽出する。ここでは、楽曲データに含まれるメロディ区間情報を比較することによって、リフレイン形式の類似性が判断される。
つぎのS304では、CPU31は、ユーザデータベースに蓄積された分析データに基づき、要求元のユーザに対応する分析データにおける音程ずれパターンと、S302で抽出された楽曲に対応する分析データとして特定された他のユーザの分析データにおける音程ずれパターンとを比較する。比較の結果、要求元のユーザに対応する分析データに対して音程ずれパターンが類似する他のユーザの分析データを抽出する。ここでは、要求元のユーザの分析データ及び他のユーザの分析データにおいて、リフレイン形式の「Aメロ」に対応する音程ずれパターン同士が類似する分析データを抽出する。あるいは、「サビ」に対応する音程ずれパターン同士が類似する分析データを抽出する。
具体的には、図3に示す分析データのように、音程ずれパターンがメロディ区間ごとの分析結果の数列として記録されている場合、要求元のユーザの分析データと他のユーザの分析データで「Aメロ」に対応する分析結果の数値を比較する。あるいは、「サビ」に対応する分析結果の数値を比較する。この比較の結果、要求元のユーザの分析データに対して分析結果の数値が規定範囲内で近い(すなわち、類似度が高い)分析データを、音連ずれパターンが類似する分析データとして抽出する。類似度は、要求元のユーザの分析データと他のユーザの分析データとで、音連ずれパターンの数値が近いほど大きくなる計算値である。
つぎのS306では、CPU31は、S304で抽出した分析データの中から、楽曲全体の累積的な音程のずれが、要求元のユーザに対応する分析データにおける累積的な音程のずれに対して規定以上に極端に異なるものを除外する。
つぎのS308では、CPU31は、S306で除外されなかった残りの分析データの中から、要求元のユーザに対応する分析データに対して、しゃくり数又はビブラート数の出現頻度のパターンが類似する分析データを所定数(例えば、最大で20件程度)抽出する。ここでは、要求元のユーザの分析データ及び他のユーザの分析データとにおいて、リフレイン形式の「Aメロ」に対応するしゃくり又はビブラートの出現頻度が類似する分析データを抽出する。あるいは、「サビ」に対応するしゃくり又はビブラートの出現頻度が類似する分析データを抽出する。
具体的には、図3に示す分析データのように、しゃくり数及びビブラート数がメロディ区間ごとの出現回数の数列として記録されている場合、要求元のユーザの分析データと他のユーザの分析データで「Aメロ」に対応するしゃくり又はビブラートの出現回数を比較する。あるいは、「サビ」に対応するしゃくり又はビブラート出現回数を比較する。この比較の結果、要求元のユーザの分析データに対してしゃくり又はビブラートの出現回数が規定範囲内で近い(すなわち、類似度が高い)分析データを、しゃくり又はビブラートの出現頻度が類似する分析データとして抽出する。類似度は、要求元のユーザの分析データと他のユーザの分析データとで、しゃくり又はビブラートの出現回数が近いほど大きくなる計算値である。そして、CPU31は、抽出された分析データに対応するユーザの識別情報をグループ化する。S308の後、CPU31は本処理を終了する。
[効果]
上記実施形態のカラオケネットワークシステム1によれば、以下の効果を奏する。
SNSサーバ3のユーザデータベースに蓄積された多数のユーザの歌唱の分析データに基づき、歌唱技能が類似するユーザ同士で情報交換が可能なSNSに関するグループ情報を、ユーザが利用するスマートフォン6やパソコン7に対して送信できる。このグループ情報をスマートフォン6やパソコン7等の端末を通じてユーザに閲覧してもらうことで、歌唱の練習をするユーザと類似の練習課題を有する他のユーザを紹介することができる。これにより、歌唱を練習するユーザは、上達のための練習課題を共有する仲間を発見でき、情報交換をしたり仲間の録音データを聴いたりできる。結果、ユーザの独力による練習作業では難しかった、練習ための動機付けや意欲向上を促し、歌唱の上達効率を向上させる効果が得られる。
楽曲のジャンルやアーティスト別に絞込まれた分析データの中から、グループのメンバーを抽出することで、共通の趣味や嗜好を持つグループの仲間をユーザに紹介することができる。そのため、紹介されたグループの仲間との間で共感が形成されやすくなる。
リフレイン形式が類似する楽曲を対象に絞込まれた分析データの中から、グループのメンバーを抽出することで、メロディ区間ごとに変化するユーザの歌唱の性質を考慮した態様にて、ユーザをグループ化することができる。
分析データにおける音程ずれパターンや、しゃくり数、ビブラート数の類似性を、「Aメロ」又は「サビ」といったメロディ区間単位で比較することで、メロディ区間ごとに変化するユーザの歌唱の性質を考慮した態様で、詳細にグループ分けを行うことができる。
[特許請求の範囲に記載の構成との対応]
実施形態のカラオケネットワークシステム1と、特許請求の範囲に記載の構成との対応は次のとおりである。SNSサーバ3が、本発明におけるカラオケサーバ装置に相当する。SNSサーバ3のCPU31及び通信部35が、取得手段及び送信手段に相当する。SNSサーバ3のCPU31が、グループ化手段に相当する。SNSサーバ3のHDD34のユーザデータベースが、記憶手段に相当する。