(57)【特許請求の範囲】
【請求項１】
音源を有する玩具が前記音源を用いて再生する複数種類の所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
前記玩具が前記音源を用いて再生し、音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する所定音の種類を特定する特定部と、
前記特定された所定音の種類に対応する処理を実行する実行部としてコンピュータを機能させ、
前記複数種類のテンプレートのそれぞれは、前記玩具が前記音源を用いて再生する所定音が互いに異なる複数の再生レートで再生された場合の前記複数の再生レートのそれぞれに対応する複数のテンプレートを含むことを特徴とするプログラム。
【請求項２】
請求項１において、
前記複数のテンプレートのそれぞれは、対応する再生レートで再生された場合の所定音のそれぞれの部分であって互いに異なる開始時点から開始する第１期間分の複数の所定音部分のそれぞれに対応する複数のテンプレートブロックを含み、
前記取得部は、
第２期間ごとに前記第１期間分の外部音に対応する外部音データブロックを取得し、
前記特定部は、
前記外部音データブロックを取得するごとに前記複数のテンプレートブロックのそれぞれと前記外部音データブロックとを比較することを特徴とするプログラム。
【請求項３】
複数種類の所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する所定音の種類を特定する特定部と、
前記特定された所定音の種類に対応する処理を実行する実行部としてコンピュータを機能させ、
前記記憶部は、
前記複数種類のテンプレートのそれぞれとして、前記複数種類の所定音のそれぞれが互いに異なる再生レートで再生された場合の複数レートの所定音のそれぞれに対応する複数レートのテンプレートを記憶し、
前記記憶部は、
前記複数レートのテンプレートのそれぞれとして、前記複数レートの所定音のそれぞれの部分であって互いに異なる開始時点から開始する第１期間分の複数の所定音部分のそれぞれに対応する複数のテンプレートブロックを記憶し、
前記取得部は、
第２期間ごとに前記第１期間分の外部音に対応する外部音データブロックを取得し、
前記特定部は、
前記外部音データブロックを取得するごとに前記複数のテンプレートブロックのそれぞれと前記外部音データブロックとを比較することを特徴とするプログラム。
【請求項４】
玩具が発生させる複数種類の所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する所定音の種類を特定する特定部と、
前記特定された所定音の種類に対応する処理を実行する実行部としてコンピュータを機能させ、
前記記憶部は、
前記複数種類のテンプレートのそれぞれとして、前記複数種類の所定音のそれぞれが互いに異なる再生レートで再生された場合の複数レートの所定音のそれぞれに対応する複数レートのテンプレートを記憶し、
前記記憶部は、
前記複数レートのテンプレートのそれぞれとして、前記複数レートの所定音のそれぞれの部分であって互いに異なる開始時点から開始する第１期間分の複数の所定音部分のそれぞれに対応する複数のテンプレートブロックを記憶し、
前記取得部は、
第２期間ごとに前記第１期間分の外部音に対応する外部音データブロックを取得し、
前記特定部は、
前記外部音データブロックを取得するごとに前記複数のテンプレートブロックのそれぞれと前記外部音データブロックとを比較することを特徴とするプログラム。
【請求項５】
請求項２〜４のいずれかにおいて、
前記複数のテンプレートブロックのそれぞれは、
前記開始時点の間隔が前記第１期間となる前記複数の所定音部分のそれぞれに対応することを特徴とするプログラム。
【請求項６】
請求項２〜４のいずれかにおいて、
前記複数のテンプレートブロックのそれぞれは、
前記開始時点の間隔が前記再生レートに応じた期間となる前記複数の所定音部分のそれぞれに対応することを特徴とするプログラム。
【請求項７】
請求項２〜６のいずれかにおいて、
前記特定部は、
前記外部音データブロックに対して第１条件を満たすテンプレートブロックを選択する処理と、
異なる取得時点において取得された前記外部音データブロックに対して前記第１条件を
満たすテンプレートブロックが選択された場合に、前記取得時点の間隔が第２条件を満たすか否かを判定する処理と、
前記第２条件が満たされた場合に、選択されたテンプレートブロックに対応する所定音の種類に基づいて、前記外部音に対応する所定音の種類を特定する処理とを行うことを特徴とするプログラム。
【請求項８】
請求項２〜７のいずれかにおいて、
前記特定部は、
前記外部音データブロックに対して第１条件を満たすテンプレートブロックを選択する処理と、
異なる取得時点において取得された前記外部音データブロックに対して前記第１条件を満たすテンプレートブロックが選択された場合に、選択されたテンプレートブロックのそれぞれが対応する所定音部分の順序が第３条件を満たすか否かを判定する処理と、
前記第３条件が満たされた場合に、選択されたテンプレートブロックに対応する所定音の種類に基づいて、前記外部音に対応する所定音の種類を特定する処理とを行うことを特徴とするプログラム。
【請求項９】
請求項２〜８のいずれかにおいて、
前記特定部は、
前記外部音データブロックに対して第１条件を満たすテンプレートブロックを選択する処理と、
異なる取得時点において取得された前記外部音データブロックに対して前記第１条件を満たすテンプレートブロックが選択された場合に、選択されたテンプレートブロックのそれぞれが対応する所定音部分の再生レートが第４条件を満たすか否かを判定する処理と、
前記第４条件が満たされた場合に、選択されたテンプレートブロックに対応する所定音の種類に基づいて、前記外部音に対応する所定音の種類を特定する処理とを行うことを特徴とするプログラム。
【請求項１０】
音源を有する複数種類の玩具のそれぞれが前記音源を用いて再生する所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
前記複数種類の玩具のいずれかが前記音源を用いて再生し、音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する玩具の種類を特定する特定部と、
前記特定された玩具の種類に対応する処理を実行する実行部としてコンピュータを機能させ、
前記複数種類のテンプレートのそれぞれは、前記複数種類の玩具のそれぞれが前記音源を用いて再生する所定音が互いに異なる複数の再生レートで再生された場合の前記複数の再生レートのそれぞれに対応する複数のテンプレートを含むことを特徴とするプログラム。
【請求項１１】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１〜１０のいずれかに記載されたプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムおよび情報記憶媒体に関する。
【背景技術】
【０００２】
従来から、人や動物の声や物の接触音などの自然音に対応するテンプレートを予め記憶しておき、マイクにより取得した自然音と予め記憶しているテンプレートのマッチング処理を行って、マイクにより取得した自然音を特定し、特定した音に対応する処理を実行するものがある（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１０２２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、自然音は無数の発音態様を有するので、従来の情報処理システムでは、例えば音声から言語を認識する場合など、取得した音がいずれの音であるかを厳密に特定する場合には、膨大な量のテンプレートを予め記憶して詳細なマッチング処理を行うようにし、膨大な量のテンプレートを予め記憶せず詳細なマッチング処理を行わない場合には、例えば特許文献１に示されているように、取得した音がいかなる傾向を示す音であるかを大まかに特定するようにしていた。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、その目的は、予め記憶しておくテンプレートの量やマッチング処理の負荷が過大とならないようにしつつ、取得した音と実行する処理との整合性を高めることができるプログラムおよび情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、
複数種類の所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する所定音の種類を特定する特定部と、
前記特定された所定音の種類に対応する処理を実行する実行部とを含むことを特徴とする情報処理システムに関係する。
【０００７】
また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータが読み取り可能な情報記憶媒体に関するものである。
【０００８】
本発明では、複数種類のテンプレートとして予め記憶しておく複数種類の所定音のそれぞれは、発音態様の変化の範囲が自然音に比べて狭いので、予め記憶しておくテンプレートの量やマッチング処理の負荷が過大とならないようにしつつ、取得した外部音と実行する処理との整合性を高めることができる情報処理システムを提供することができる。
【０００９】
（２）また本発明は、
玩具が発生させる複数種類の所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する所定音の種類を特定する特定部と、
前記特定された所定音の種類に対応する処理を実行する実行部とを含むことを特徴とする情報処理システムに関係する。
【００１０】
また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータが読み取り可能な情報記憶媒体に関するものである。
【００１１】
本発明では、玩具が発生させる複数種類の所定音のそれぞれは、発音態様の変化の範囲が自然音に比べて狭いので、予め記憶しておくテンプレートの量やマッチング処理の負荷が過大とならないようにしつつ、取得した外部音と実行する処理との整合性を高めることができる情報処理システムを提供することができる。
【００１２】
（３）また本発明では、
前記記憶部は、
前記複数種類のテンプレートのそれぞれとして、前記複数種類の所定音のそれぞれが互いに異なる再生レートで再生された場合の複数レートの所定音のそれぞれに対応する複数レートのテンプレートを記憶するようにしてもよい。
【００１３】
このようにすれば、所定音の発音態様の変化として再生レートの変化が発生しても、取得した外部音と実行する処理との整合性を高めることができる。
【００１４】
（４）また本発明では、
前記記憶部は、
前記複数レートのテンプレートのそれぞれとして、前記複数レートの所定音のそれぞれの部分であって互いに異なる開始時点から開始する第１期間分の複数の所定音部分のそれぞれに対応する複数のテンプレートブロックを記憶し、
前記取得部は、
第２期間ごとに前記第１期間分の外部音に対応する外部音データブロックを取得し、
前記特定部は、
前記外部音データブロックを取得するごとに前記複数のテンプレートブロックのそれぞれと前記外部音データブロックとを比較するようにしてもよい。
【００１５】
このようにすれば、例えば外部音に大きな雑音が含まれることなどにより、外部音データの一部がテンプレートに対応しない状況が発生しても、外部音に対応する所定音の種類を特定することができる。
【００１６】
（５）また本発明では、
前記複数のテンプレートブロックのそれぞれは、
前記開始時点の間隔が前記第１期間となる前記複数の所定音部分のそれぞれに対応するようにしてもよい。
【００１７】
このようにすれば、複数のテンプレートブロックの作成過程を簡略化することができる。
【００１８】
（６）また本発明では、
前記複数のテンプレートブロックのそれぞれは、
前記開始時点の間隔が前記再生レートに応じた期間となる前記複数の所定音部分のそれぞれに対応するようにしてもよい。
【００１９】
このようにすれば、所定音の再生レートが予め想定した再生レートの中間の再生レートとなる場合であっても、外部音データブロックとテンプレートブロックとが対応する時間間隔のずれを抑制することができる。
【００２０】
（７）また本発明では、
前記特定部は、
前記外部音データブロックに対して第１条件を満たすテンプレートブロックを選択する処理と、
異なる取得時点において取得された前記外部音データブロックに対して前記第１条件を満たすテンプレートブロックが選択された場合に、前記取得時点の間隔が第２条件を満たすか否かを判定する処理と、
前記第２条件が満たされた場合に、選択されたテンプレートブロックに対応する所定音の種類に基づいて、前記外部音に対応する所定音の種類を特定する処理とを行うようにしてもよい。
【００２１】
このようにすれば、選択されたテンプレートブロックに関連する時間間隔に基づいて、外部音に対応する所定音の種類を特定することができる。
【００２２】
（８）また本発明では、
前記特定部は、
前記外部音データブロックに対して第１条件を満たすテンプレートブロックを選択する処理と、
異なる取得時点において取得された前記外部音データブロックに対して前記第１条件を満たすテンプレートブロックが選択された場合に、選択されたテンプレートブロックのそれぞれが対応する所定音部分の順序が第３条件を満たすか否かを判定する処理と、
前記第３条件が満たされた場合に、選択されたテンプレートブロックに対応する所定音の種類に基づいて、前記外部音に対応する所定音の種類を特定する処理とを行うようにしてもよい。
【００２３】
このようにすれば、選択されたテンプレートブロックに関連する順序に基づいて、外部音に対応する所定音の種類を特定することができる。
【００２４】
（９）また本発明では、
前記特定部は、
前記外部音データブロックに対して第１条件を満たすテンプレートブロックを選択する処理と、
異なる取得時点において取得された前記外部音データブロックに対して前記第１条件を満たすテンプレートブロックが選択された場合に、選択されたテンプレートブロックのそれぞれが対応する所定音部分の再生レートが第４条件を満たすか否かを判定する処理と、
前記第４条件が満たされた場合に、選択されたテンプレートブロックに対応する所定音の種類に基づいて、前記外部音に対応する所定音の種類を特定する処理とを行うようにしてもよい。
【００２５】
このようにすれば、選択されたテンプレートブロックに関連する再生レートに基づいて、外部音に対応する所定音の種類を特定することができる。
【００２６】
（１０）また本発明は、
複数種類の玩具のそれぞれが発生させる所定音のそれぞれに対応する複数種類のテンプレートを記憶する記憶部と、
音検出部が検出した外部音に対応する外部音データを取得する取得部と、
前記複数種類のテンプレートのそれぞれと前記外部音データとを比較して、前記外部音に対応する玩具の種類を特定する特定部と、
前記特定された玩具の種類に対応する処理を実行する実行部とを含むことを特徴とする情報処理システム。
【００２７】
また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータが読み取り可能な情報記憶媒体に関するものである。
【００２８】
本発明では、複数種類の玩具のそれぞれが発生させる所定音のそれぞれは、発音態様の変化の範囲が自然音に比べて狭いので、予め記憶しておくテンプレートの量やマッチング処理の負荷が過大とならないようにしつつ、取得した外部音と実行する処理との整合性を高めることができる情報処理システムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本実施形態に係るゲームシステムの外観を示す図。
【図２】本実施形態に係るゲームシステムで表示される画像の例を示す図。
【図３】本実施形態に係るゲームシステムの手法の説明図。
【図４】本実施形態に係るゲームシステムの手法の説明図。
【図５】本実施形態に係るゲームシステムの手法の説明図。
【図６】本実施形態に係るゲームシステムの手法の説明図。
【図７】本実施形態に係るゲームシステムの手法の説明図。
【図８】本実施形態に係るゲームシステムの手法の説明図。
【図９】本実施形態に係るゲームシステムの手法の説明図。
【図１０】本実施形態に係るゲームシステムの手法の説明図。
【図１１】本実施形態に係るゲームシステムの手法の説明図。
【図１２】本実施形態に係るゲームシステムの機能ブロック図。
【図１３】本実施形態に係るゲームシステムの処理の流れを示すフローチャート。
【図１４】本実施形態に係るゲームシステムの処理の流れを示すフローチャート。
【図１５】本実施形態に係るゲームシステムの処理の流れを示すフローチャート。
【図１６】変形実施形態に係るゲームシステムの手法の説明図。
【図１７】変形実施形態に係るゲームシステムの手法の説明図。
【図１８】変形実施形態に係るゲームシステムの手法の説明図。
【図１９】本実施形態に係るゲームシステムの処理の流れを示すフローチャート。
【発明を実施するための形態】
【００３０】
以下において、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３１】
１．本実施形態の概要
図１は、本実施形態のゲームシステム１０（情報処理システムの一例）の外観を示す図である。図１に示すようにゲームシステム１０は、プレーヤ（操作者、観者）が携帯可能な大きさに形成されており、プレーヤがゲームシステム１０を手で持ってゲームをプレーすることができるようになっている。そしてゲームシステム１０は、本体下部１２と本体上部１４とがヒンジ部１６により連結されており、本体下部１２と本体上部１４とがヒンジ部１６の軸回りに回動可能となっている。そして本体下部１２の中央部には、矩形の第１表示面１７に画像を出力する第１液晶ディスプレイ１８が設けられており、第１液晶ディスプレイ１８の周囲には、プレーヤが操作情報を入力するための十字キー２０、第１ボタン２２〜第４ボタン２８の４つのボタン、スタートボタン３０、セレクトボタン３２が設けられている。また本体上部１４の中央部には、矩形の第２表示面３３に画像を出力する第２液晶ディスプレイ３４が設けられ、第２液晶ディスプレイ３４の左側と右側には音を出力するスピーカ３６が設けられている。またヒンジ部１６には、外部音を検出するためのマイク３８が設けられている。
【００３２】
また第１液晶ディスプレイ１８の第１表示面１７には、矩形の操作面３９に対してプレーヤが行った接触操作の位置を検出できるタッチパネル４０が重ねられるように設けられている。そしてプレーヤが、例えば図１に示すタッチペン４１の先端を操作面３９に接触させると、ゲームシステム１０はタッチペン４１の先端が接触した操作面３９における接触位置を検出する。従ってプレーヤは、操作面３９に対して接触操作を行うことによっても操作情報を入力することができる。
【００３３】
これによりゲームシステム１０は、操作面３９における接触位置に応じて第１表示面１７に表示されている選択項目が選択されたことを判定したり、第１表示面１７や第２表示面３３に表示されている画像においてキャラクタを発生させたり、移動させたり、消滅させたり、操作面３９における接触位置の移動軌跡を表示して第１表示面１７に文字や絵を描けるようにしたりすることができる。
【００３４】
また、図１に示す第１玩具４２（形象体の一例）、第２玩具４４（形象体の一例）、第３玩具４６（形象体の一例）、第４玩具４８（形象体の一例）のそれぞれは、互いに異なるキャラクタの形状を有しているとともに、電子音（所定音の一例）を発生させる音源ＩＣ（ＰＣＭ音源やＭＩＤＩ音源）と、スピーカと、スイッチと、電源とを備えており、スイッチが操作されると音源ＩＣに記憶されている電子音データに基づいて電子音を発生させ、これをスピーカから出力させる。ここで第１玩具４２、第２玩具４４、第３玩具４６、第４玩具４８のそれぞれの音源ＩＣには、互いに異なる種類の電子音データが記憶されている。ここで電子音とは、電気的に出力される音を意味し、シンセサイザーなどにより電気的に生成した音のみならず、人や動物の声や楽器音や物の接触音などのアナログ音（自然音）を録音した音を含み、音の内容は問わない。
【００３５】
具体的には第１玩具４２の音源ＩＣには、人が話した台詞を録音した台詞音と効果音イを組み合わせた電子音を示す電子音データが記憶され、第２玩具４４の音源ＩＣには、楽曲イの電子音を示す電子音データが記憶され、第３玩具４６の音源ＩＣには、効果音ロの電子音を示す電子音データが記憶され、第４玩具４８の音源ＩＣには、楽曲ロの電子音を示す電子音データが記憶されている。従って、第１玩具４２、第２玩具４４、第３玩具４６、第４玩具４８のそれぞれは、互いに異なる種類の電子音をそれぞれのスピーカから出力させる。
【００３６】
ここでゲームシステム１０は、第１玩具４２の電子音に基づいて作成されたテンプレートと、第２玩具４４の電子音に基づいて作成されたテンプレートと、第３玩具４６の電子音に基づいて作成されたテンプレートと、第４玩具４８の電子音に基づいて作成されたテンプレートとを予め記憶している。そしてゲームシステム１０は、マイク３８により外部音を検出すると、検出した外部音を示す外部音データと４種類のテンプレートのそれぞれとを比較して、外部音に対応する電子音の種類を特定する。なお本実施形態では、台詞音の電子音に効果音イの電子音を組み合わせることにより、プレーヤが台詞の電子音に似せた音声をマイク３８に検出させて誤認識を発生させることを防止している。
【００３７】
そしてゲームシステム１０は、マイク３８により検出した外部音が４種類の玩具のいずれかの電子音であると特定した場合には、特定した電子音の種類に対応させて第１表示面１７や第２表示面３３に表示されている画像を変化させる。例えばマイク３８により検出した外部音が第１玩具４２の電子音であると特定した場合には、ゲームシステム１０は、第１玩具４２を示す第１キャラクタ画像４９を第２表示面３３に表示させる。またマイク３８により検出した外部音が第２玩具４４の電子音であると特定した場合には、ゲームシステム１０は、第１玩具４２を示す第１キャラクタ画像４９ではなく、第２玩具４４を示す第２キャラクタ画像を第２表示面３３に表示させる。
【００３８】
一方、マイク３８により外部音の検出を開始してから３０秒が経過しても、マイク３８により検出した外部音が４種類の玩具のいずれかの電子音であると特定することができない場合には、３０秒の間に取得した外部音データの音量に応じたエラー画像を、第１表示面１７に表示させる。具体的にはゲームシステム１０は、外部音データの音量が大きい状態が継続している場合には、周囲の環境音が大きいため電子音の種類を特定することができないと判断し、例えば図２（Ａ）に示すように、「まわりがうるさいよ」などと周囲の環境音の音量を低下させることを指示する表示を第２表示面３３に表示させる。また、外部音データの音量が小さい状態が継続している場合には、電子音を出力している玩具の位置がマイク３８から離れているため電子音の種類を特定することができないと判断し、例えば図２（Ｂ）に示すように、「もっとマイクに近づけて」などと玩具の位置をマイク３８に近づけることを指示する表示を第２表示面３３に表示させる。また、外部音データの音量が０である状態が継続している場合には、玩具が電子音を出力していないため電子音の種類を特定することができないと判断し、例えば図２（Ｃ）に示すように、「音が鳴らなかったみたいだからもう一度」などと玩具に電子音を出力させることを指示する表示を第２表示面３３に表示させる。
【００３９】
２．本実施形態の手法の詳細
２−１．テンプレートの作成手法の概要
図３は、ゲームシステム１０に予め記憶させておくテンプレートの作成手法を説明するための図である。図３では、第１玩具４２の電子音に対応するテンプレートを作成する場合を例に挙げて説明する。第１玩具４２の電子音に対応するテンプレートを作成する場合には、まず、図３のステップＳ１に示すように、第１玩具４２の音源ＩＣに記憶させた波形データＡと同一の波形データＡを取得する。ここで波形データＡのサンプリング期間は４秒間となっている。
【００４０】
そしてステップＳ２に示すように、４秒間の波形データＡを、１個のブロックのサンプリング期間が０．５秒間となるように、波形データＡの先頭から０．５秒間（第１期間の一例）に対応する第１番目のブロックＡ１から、波形データＡの末尾までの０．５秒間に対応する第８番目のブロックＡ８までの８個のブロックに分割する。そしてステップＳ３に示すように、ブロックＡ１〜ブロックＡ８のそれぞれを、１個のブロック要素のサンプリング期間が１／６０秒間（第２期間の一例）となるように、３０個のブロック要素に分割する。すなわち４秒間の波形データＡを、２４０個のブロック要素に分割する。
【００４１】
そしてステップＳ４に示すように、各ブロック要素の波形データに対してＤＦＴ（離散フーリエ変換）処理を行い、各ブロック要素のパワースペクトルを求める。そしてステップＳ５に示すように、各ブロック要素のパワースペクトルから値が大きな３個の周波数を選択し、ステップＳ６に示すように、３個の値を小さい値から順位をつけて各ブロック要素のテンプレート要素として記憶する。ここで３個の周波数のそれぞれは、１０の位までの値が切り捨てられた１００Ｈｚ単位の値として求められている。
【００４２】
そしてステップＳ７に示すように、各ブロック要素のテンプレート要素を元の波形データＡの時系列を維持したまま記憶し、ブロックＡ１に属する３０個のブロック要素のテンプレート要素をブロックＡ１のテンプレートブロックとする。同様に、ブロックＡ２〜ブロックＡ８のそれぞれに属する３０個のブロック要素のテンプレート要素のそれぞれを、ブロックＡ２のテンプレートブロック〜ブロックＡ８のテンプレートブロックとする。こうして波形データＡに対応するテンプレートとして、ブロックＡ１のテンプレートブロック〜ブロックＡ８のテンプレートブロックの８個のテンプレートブロックを作成する。
【００４３】
そして同様の手法により、第２玩具４４の電子音の波形データＢに対応するテンプレートを作成する。ここでステップＳ８に示すように、波形データＢの再生期間は３秒間となっているため、波形データＢはブロックＢ１〜Ｂ６に分割する。従って波形データＢに対応するテンプレートとして、ブロックＢ１のテンプレートブロック〜ブロックＢ６のテンプレートブロックの６個のテンプレートブロックを作成する。同様にステップＳ８に示すように、第３玩具４６の電子音の波形データＣの再生期間は１１秒間となっているため、波形データＣに対応するテンプレートとして、ブロックＣ１のテンプレートブロック〜ブロックＣ２２のテンプレートブロックの２２個のテンプレートブロックを作成し、第４玩具４８の電子音の波形データＤの再生期間は７秒間となっているため、波形データＤに対応するテンプレートとして、ブロックＤ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックの１４個のテンプレートブロックを作成する。すなわち第１玩具４２〜第４玩具４８のそれぞれの電子音の波形データに対応するテンプレートとして、ブロックＡ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックの５０個のテンプレートブロックを作成する。
【００４４】
２−２．テンプレートと外部音データの比較手法
図４は、上述のようにして作成した４種類のテンプレートと、マイク３８が検出した外部音を示す外部音データとを比較する手法を説明するための図である。図４では、第１玩具４２の電子音の再生レートがテンプレートの再生レートと同一となる状態で再生された場合を例に挙げて説明する。
【００４５】
図４に示すように、マイク３８が外部音を検出することによりゲームシステム１０が外部音の波形データＩｎを取得すると、上述したテンプレートを作成する場合と同様に、ステップＳ１０に示すように、１／６０秒間分の波形データに対してＤＦＴ処理を行い、１／６０秒間分の波形データのパワースペクトルを求める。すなわち１／６０秒間分の波形データをブロック要素としてブロック要素ごとにパワースペクトルを求める。そしてステップＳ１１に示すように、ブロック要素のパワースペクトルから値が大きな３個の周波数を選択し、ステップＳ１２に示すように、３個の値を小さい値から順位をつけてブロック要素の外部音データ要素として記憶する。ここで３個の周波数のそれぞれは、１０の位までの値が切り捨てられた１００Ｈｚ単位の値として求められている。
【００４６】
そして、１／６０秒ごとに同様の処理を繰り返し、各ブロック要素の外部音データ要素を、１／６０秒ごとに順次時系列に記憶できる外部音データバッファに元の外部音の波形データＩｎの時系列を維持したまま記憶させる。そして、外部音の波形データＩｎを取得し始めてから３０／６０秒（０．５秒）が経過することにより、ステップＳ１３に示すように、３０個のブロック要素の外部音データ要素を取得すると、ステップＳ１４に示すように、これを１個のブロックＩｎ１の外部音データブロックとして、ブロックＡ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックの５０個のテンプレートブロックのそれぞれと比較する。
【００４７】
本実施形態では、ブロックＩｎ１の外部音データブロックと例えばブロックＡ１のテンプレートブロックとを比較する場合には、ブロックＩｎ１を構成する３０個のブロック要素の外部音データ要素のうち、図中左端の第１番目のブロック要素の外部音データ要素の３個の値と、ブロックＡ１を構成する３０個のブロック要素のテンプレート要素のうち、図中左端の第１番目のブロック要素のテンプレート要素の３個の値とを比較し、ブロック要素に一組の同一の値が記憶されている場合に１個の値が一致したと判定する。具体的には第１番目のブロック要素の外部音データ要素として４００Ｈｚ、９００Ｈｚ、１５００Ｈｚが順に記憶され、第１番目のブロック要素のテンプレート要素として４００Ｈｚ、８００Ｈｚ、１２００Ｈｚが順に記憶されている場合には、いずれにも４００Ｈｚが記憶されているので、１個の値が一致していると判定する。同様に、第２番目以降の他の順序のブロック要素の外部音データ要素の３個の値と、同一の順序のブロック要素のテンプレート要素の３個の値とを比較し、値が一致した箇所（組）をカウントする。ステップＳ１４の例では、太字で記載されている値が一致したと判定された値であり、ブロックＩｎ１の外部音データブロックとブロックＡ１のテンプレートブロックとの一致箇所は１４箇所となっている。
【００４８】
そして、ブロックＩｎ１の外部音データブロックを、その他のテンプレートブロックであるブロックＡ２のテンプレートブロック〜ブロックＤ１４のテンプレートブロックのそれぞれとも比較し、ステップＳ１５に示すように、ブロックＡ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックのそれぞれについて、ブロックＩｎ１の外部音データブロックとの一致箇所を求める。すると、ブロックＡ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックのうち、最も一致箇所の数が多く、かつ一致箇所の数が閾値である１０を超える（第１条件の一例）テンプレートブロックのブロック番号を選択する。そして、ブロックＩｎ１の外部音データブロックは、選択したブロック番号のテンプレートブロックと一致すると推定する。ステップＳ１５の例では、ブロックＩｎ１の外部音データブロックに対してブロックＡ１のテンプレートブロックが一致箇所が最も多くかつ一致箇所の数が１０を超えているので、ブロックＡ１のテンプレートブロックが選択され、ブロックＩｎ１の外部音データブロックは、ブロックＡ１のテンプレートブロックと一致すると推定する。
【００４９】
するとステップＳ１６に示すように、選択されたテンプレートブロックのブロック番号を１／６０秒ごとに順次時系列に記憶できるブロック番号バッファに、選択されたテンプレートブロックのブロック番号であるＡ１を記憶させる。図４の例では、外部音の波形データＩｎを取得し始めてから３０／６０秒（０．５秒）後にブロックＡ１のテンプレートブロックが選択されたので、ブロック番号バッファの先頭から３０／６０秒（０．５秒）後の位置である３０番目の位置にＡ１を記憶させる。
【００５０】
こうして図５のステップＳ１９に示すように、外部音の波形データＩｎを取得し始めてから３０／６０秒（０．５秒）間分の波形データに対応するブロックＩｎ１の外部音データブロックについてブロックＡ１が選択され、図５のステップＳ２０に示すように、ブロック番号バッファの３０番目の位置にＡ１を記憶させると、次の１／６０秒間分の波形データに対してＤＦＴ処理を行って、ステップＳ２１に示すように、次の１／６０秒間分のブロック要素の外部音データ要素をブロックＩｎ１の外部音データブロックに追加するとともに、第１番目のブロック要素の外部音データ要素を削除して、第２番目のブロック要素の外部音データ要素から第３１番目のブロック要素の外部音データ要素までの３０個のブロック要素の外部音データ要素をブロックＩｎ２の外部音データブロックとして取得する。
【００５１】
そして、ブロックＩｎ２の外部音データブロックと、ブロックＡ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックのそれぞれとを比較する。しかし、ブロックＩｎ２の外部音データブロックを構成する３０個のブロック要素のそれぞれの順序は、ブロックＩｎ１の外部音データブロックを構成する３０個のブロック要素のそれぞれの順序から１つずつ繰り上がっているため、ブロックＩｎ２の外部音データブロックとブロックＡ１のテンプレートブロックとにおいて同一の順序のブロック要素の外部音データ要素とテンプレート要素とを比較すると、一致箇所の数は閾値である１０を超えない。
【００５２】
そして、ブロックＩｎ２の外部音データブロックを、ブロックＡ２のテンプレートブロック〜ブロックＤ１４のテンプレートブロックのそれぞれと比較しても、ブロックＩｎ２の外部音データブロックは、いずれのブロック番号のテンプレートブロックともブロック要素がずれているため、一致箇所の数は閾値である１０を超えない。するとブロックＩｎ２の外部音データブロックに対してはいずれの番号のテンプレートブロックも選択されないので、ブロックＩｎ２の外部音データブロックは、いずれの番号のテンプレートブロックとも一致しないと推定する。するとステップＳ２２に示すように、ブロック番号バッファの先頭から３１／６０秒後の位置である３１番目の位置に、選択されたテンプレートブロックのブロック番号がないことを示すＮＵＬＬを記憶させる。
【００５３】
そして、外部音の波形データＩｎを取得し始めてから６０／６０秒（１．０秒）が経過すると、ステップＳ２３に示すように、第３１番目のブロック要素の外部音データ要素から第６０番目のブロック要素の外部音データ要素までの３０個のブロック要素の外部音データ要素をブロックＩｎ３１の外部音データブロックとして取得する。すると、ブロックＩｎ３１の外部音データブロックは、ブロックＡ２のテンプレートブロックに対応するので、ブロックＩｎ３１の外部音データブロックと、ブロックＡ２のテンプレートブロックとを比較した場合に、最も一致箇所の数が多く、かつ一致箇所の数が閾値である１０を超えることになる。すると、ブロックＩｎ３１の外部音データブロックに対してブロックＡ２のテンプレートブロックが選択され、ステップＳ２４に示すように、ブロック番号バッファの先頭から６０／６０秒後の位置である６０番目の位置に、選択されたテンプレートブロックのブロック番号であるＡ２を記憶させる。
【００５４】
そして、ブロックＡ１のテンプレートブロック〜ブロックＡ８のテンプレートブロックのそれぞれは、波形データＡを３０／６０秒（０．５秒）ごとに分割した波形データに対応しているので、第１玩具４２の電子音の再生レートがテンプレートの再生レートと同一となる状態で再生された場合には、外部音の波形データＩｎを取得し始めてから２４０／６０秒（４．０秒）が経過して第１玩具４２の電子音の再生が終了すると、ステップＳ２５に示すように、ブロック番号バッファには、Ａ１〜Ａ８までの８個のブロック番号が、３０／６０秒（０．５秒）ごとに、小さい番号から順に記憶されることになる。従ってゲームシステム１０は、ブロック番号バッファに記憶された複数のブロック番号のそれぞれが、同一の種類の波形データに対応するブロック番号であって、３０／６０秒（０．５秒）ごとに、小さい番号から順に記憶されている場合には、外部音の波形データＩｎは、ブロック番号に対応する種類の波形データであると特定することができる。
【００５５】
そこでゲームシステム１０は、まず、ブロック番号バッファに未だブロック番号が記憶されていない状態で、ステップＳ２０に示したように、ブロック番号バッファにブロック番号「Ａ１」が記憶されると、ステップＳ２６に示すように、ブロック番号カウンタのカウント値に１を加算する。そしてステップＳ２４に示したように、ブロック番号バッファにブロック番号「Ａ２」が記憶されると、ステップＳ２７に示すように、ブロック番号「Ａ２」が記憶された位置から３０コマ前の位置に記憶されているブロック番号を探索する。そして、ブロック番号「Ａ２」と、探索されたブロック番号である「Ａ１」とを比較する。すなわち、最新のブロック番号と、最新のブロック番号が記憶されたタイミングから３０／６０秒（０．５秒）前のタイミングで記憶されたブロック番号とを比較する。
【００５６】
そして、両者が同一の種類の波形データに対応し、かつ順序の差が１であるブロック番号である場合には、ブロック番号のカウント値に「１」を加算する。図５の例では、ブロック番号「Ａ１」と「Ａ２」とは、いずれも波形データＡに対応し、かつ順序の差が１であるブロック番号であるので、ステップＳ２８に示すように、ブロック番号のカウント値に「１」が加算され、カウント値が「２」となる。こうしてステップＳ２９に示すように、ブロック番号のカウント値が８となった場合には、波形データＡに対応する８個のテンプレートブロックが小さい番号から順に記憶されていると判定され、外部音の波形データＩｎは、波形データＡであると特定することができる。
【００５７】
２−３．再生レートの変化に対応するテンプレートの作成手法
しかし、本実施形態の第１玩具４２〜第４玩具４８の音源ＩＣは、発振回路の発信周波数にばらつきがあるため、玩具ごとに電子音の再生レートにもばらつきが生じてしまう。従って、同一の種類の玩具であっても、複数の玩具の間で電子音の再生速度が異なってしまう。例えば、発信周波数が基準値の＋１０％である音源ＩＣが内蔵された第１玩具４２からは、原音の再生レートが＋１０％となった電子音が出力され、発信周波数が基準値の−１０％である音源ＩＣが内蔵された第１玩具４２からは、原音の再生レートが−１０％となった電子音が出力される。
【００５８】
図６は、ゲームシステム１０が実際に取得しうる第１玩具４２の電子音の波形データを示す図である。図６の上段に示す波形データＡ＋１０は、第１玩具４２の電子音の再生レートが＋１０％となった場合の波形データであり、図６の下段に示す波形データＡ−１０は、第１玩具４２の電子音の再生レートが−１０％となった場合の波形データである。図６に示すように、波形データＡ＋１０は、原波形の波形データＡよりも音程が１０高くなり、波形の長さが１０％短くなる。そして波形データＡ−１０は、原波形の波形データＡよりも音程が１０低くなり、波形の長さが１０％長くなる。
【００５９】
従って、ゲームシステム１０が波形データＡ＋１０や波形データＡ−１０を取得した場合には、これらにＤＦＴ処理を行うことにより３０／６０秒（０．５秒）間分のブロックＩｎの外部音データブロックを取得して、これをブロックＡ１のテンプレートブロック〜ブロックＤ１４のテンプレートブロックの５０個のテンプレートブロックのそれぞれと比較しても、一致箇所の数は閾値である１０を超えず、ブロックＩｎの外部音データブロックに対応するテンプレートブロックのブロック番号を選択することができない。すなわちゲームシステム１０が波形データＡ＋１０や波形データＡ−１０を取得した場合には、外部音の波形データＩｎがブロック番号Ａに対応する種類の波形データＡであると特定することができない。
【００６０】
ここで、波形データＡ＋１０や波形データＡ−１０を取得した場合であっても、外部音の波形データＩｎが、ブロック番号Ａに対応する種類の波形データＡであると特定することができるように、外部音データブロックとテンプレートブロックの一致箇所の数の閾値を下げると、異なるテンプレートに外部音データが一致していると推定することが増加してしまう。そこで本実施形態のゲームシステム１０は、波形データＡに対応するテンプレートのみならず、波形データＡ＋１０や波形データＡ−１０に対応するテンプレートを作成しておき、これらを予め記憶している。
【００６１】
図７は、再生レートが異なる複数の波形データのそれぞれに対応するテンプレートの作成手法を説明するための図である。図７では、第１玩具４２の電子音に対応するテンプレートを作成する場合を例に挙げて説明する。まず、第１玩具４２の電子音の再生レートが原音に対して±０％となった場合の波形データに対応するテンプレートは、図７の中段に示すように、サンプリング期間が４．０秒となる波形データＡを、１個のブロックのサンプリング期間が０．５秒間となるように分割した８個のブロックの波形データのそれぞれに対応するブロックＡ１のテンプレートブロック〜ブロックＡ８のテンプレートブロックとなる。
【００６２】
そして、第１玩具４２の電子音の再生レートが＋１０％となった場合の波形データに対応するテンプレートを作成する場合には、図７のステップＳ３０に示すように、原音となる波形データＡをサンプリングレートが＋１０％となるように変換した波形データＡ＋１０を求める。ここで波形データＡ＋１０のサンプリング期間は３．６秒間となっている。
【００６３】
そしてステップＳ３１に示すように、３．６秒間の波形データＡ＋１０を、１個のブロックのサンプリング期間が０．５秒間となるように、波形データＡ＋１０の先頭から０．５秒間に対応する第１番目のブロックＡ１＋１０から、波形データＡ＋１０の末尾を含む０．５秒間に対応する第８番目のブロックＡ８＋１０までの８個のブロックに分割する。そして図３のステップＳ３で示した波形データＡに対応するテンプレートの作成手法と同様に、ブロックＡ１＋１０〜ブロックＡ８＋１０のそれぞれを、１個のブロック要素のサンプリング期間が１／６０秒間となるように、３０個のブロック要素に分割する。すなわち３．６秒間の波形データＡ＋１０と０．４秒間の空白データを、２４０個のブロック要素に分割する。
【００６４】
そして、各ブロック要素の波形データから各ブロック要素のテンプレート要素を求め、ブロックＡ１＋１０に属する３０個のブロック要素のテンプレート要素をブロックＡ１＋１０のテンプレートブロックとする。同様に、ブロックＡ２＋１０〜ブロックＡ８＋１０のそれぞれに属する３０個のブロック要素のテンプレート要素のそれぞれを、ブロックＡ２＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックとする。こうして波形データＡ＋１０に対応するテンプレートとして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックを作成する。なお、第８番目のブロックＡ８＋１０の末尾までの０．４秒間の空白データのブロック要素のテンプレート要素は０とする。
【００６５】
また、第１玩具４２の電子音の再生レートが−１０％となった場合の波形データに対応するテンプレートを作成する場合には、図７のステップＳ３２に示すように、原音となる波形データＡをサンプリングレートが−１０％となるように変換した波形データＡ−１０を求める。ここで波形データＡ−１０のサンプリング期間は４．４秒間となっている。
【００６６】
そしてステップＳ３３に示すように、４．４秒間の波形データＡ−１０を、１個のブロックのサンプリング期間が０．５秒間となるように、波形データＡ−１０の先頭から０．５秒間に対応する第１番目のブロックＡ１−１０から、第８番目のブロックＡ８−１０までの８個のブロックに分割する。そして図３のステップＳ３で示した波形データＡに対応するテンプレートの作成手法と同様に、ブロックＡ１−１０〜ブロックＡ８−１０のそれぞれを、１個のブロック要素のサンプリング期間が１／６０秒間となるように、３０個のブロック要素に分割する。すなわち４．４秒間の波形データＡ−１０のうち４．０秒間分の波形データを、２４０個のブロック要素に分割する。
【００６７】
そして、各ブロック要素の波形データから各ブロック要素のテンプレート要素を求め、ブロックＡ１−１０に属する３０個のブロック要素のテンプレート要素をブロックＡ１−１０のテンプレートブロックとする。同様に、ブロックＡ２−１０〜ブロックＡ８−１０のそれぞれに属する３０個のブロック要素のテンプレート要素のそれぞれを、ブロックＡ２−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックとする。こうして波形データＡ−１０に対応するテンプレートとして、ブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックを作成する。ここで波形データＡ−１０のサンプリング期間は４．４秒であるので、波形データＡ−１０の末尾までの０．４秒間の波形データに関しては、テンプレートブロックは作成されない。
【００６８】
なお本実施形態では、図７に示すように、波形データＡ＋１０の第５番目のブロックＡ５＋１０と、波形データＡの第５番目のブロックＡ５と、波形データＡ−１０の第５番目のブロックＡ５−１０とを比較すると、すなわち波形データの種類が同一でブロック番号の順序が同一であるがサンプリングレートが異なる複数のブロックの波形データを比較すると、それぞれの波形データの形状が大きく相違している。すなわち本実施形態では、波形データＡのサンプリングレートを変化させても、８個のブロックのそれぞれの開始時点の間隔はいずれも０．５秒間となっているため、上記のような関係にある複数のブロックを比較すると、それぞれの開始時点に対応する波形データが互いに異なっている。そして本実施形態では、ブロック番号が大きくなるにつれ、すなわち波形データの先頭から離れるにつれ、上記のような関係にある複数のブロックの波形データの形状の相違が大きくなる。
【００６９】
更に本実施形態では、第１玩具４２の電子音の再生レートが＋７．５％、＋５．０％、＋２．５％、−２．５％、−５．０％、−７．５％となった場合の波形データに対応するテンプレートも同様の手法により作成する。すなわち、図８に示すように、第１玩具４２の電子音を特定するためのテンプレートとして、波形データＡ＋１０、波形データＡ＋７．５、波形データＡ＋５．０、波形データＡ＋２．５、波形データＡ、波形データＡ−２．５、波形データＡ−５．０、波形データＡ−７．５、波形データＡ−１０の９種類の波形データのそれぞれに対応する９種類のテンプレートを作成し、９種類のテンプレートのそれぞれについてブロックＡ１〜ブロックＡ８までの８個のテンプレートブロックを作成する。
【００７０】
そして同様の手法により、第２玩具４４の電子音を特定するためのテンプレートとして、波形データＢ＋１０、波形データＢ＋７．５、波形データＢ＋５．０、波形データＢ＋２．５、波形データＢ、波形データＢ−２．５、波形データＢ−５．０、波形データＢ−７．５、波形データＢ−１０の９種類の波形データのそれぞれに対応する９種類のテンプレートを作成し、９種類のテンプレートのそれぞれについて、ブロックＢ１〜ブロックＢ６までの６個のテンプレートブロックを作成する。また、第３玩具４６の電子音を特定するためのテンプレートとして、波形データＣ＋１０、波形データＣ＋７．５、波形データＣ＋５．０、波形データＣ＋２．５、波形データＣ、波形データＣ−２．５、波形データＣ−５．０、波形データＣ−７．５、波形データＣ−１０の９種類の波形データのそれぞれに対応する９種類のテンプレートを作成し、９種類のテンプレートのそれぞれについて、ブロックＣ１〜ブロックＣ２２までの２２個のテンプレートブロックを作成する。また、第４玩具４８の電子音を特定するためのテンプレートとして、波形データＤ＋１０、波形データＤ＋７．５、波形データＤ＋５．０、波形データＤ＋２．５、波形データＤ、波形データＤ−２．５、波形データＤ−５．０、波形データＤ−７．５、波形データＤ−１０の９種類の波形データのそれぞれに対応する９種類のテンプレートを作成し、９種類のテンプレートのそれぞれについて、ブロックＣ１〜ブロックＣ１４までの１４個のテンプレートブロックを作成する。すなわち第１玩具４２〜第４玩具４８の電子音の波形データに対応するテンプレートブロックとして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＤ１４−１０のテンプレートブロックの４５０個のテンプレートブロックを作成する。
【００７１】
２−４．再生レートの変化に対応する比較手法
そして本実施形態では、図４で説明した比較処理において、１／６０秒ごとに１個のブロックＩｎの外部音データブロックを、ブロックＡ１＋１０のテンプレートブロック〜ブロックＤ１４−１０の４５０個のテンプレートブロックのそれぞれと比較する。詳細には、ゲームシステム１０が例えば波形データＡ＋１０を取得すると、図４で説明した波形データＡの比較処理と同様に、これにＤＦＴ処理を行うことにより３０／６０秒（０．５秒）間分の第１番目のブロックＩｎ１の外部音データブロックを取得する。そしてブロックＩｎ１の外部音データブロックをブロックＡ１＋１０のテンプレートブロック〜ブロックＤ１４−１０のテンプレートブロックの４５０個のテンプレートブロックのそれぞれと比較する。するとブロックＩｎ１の外部音データブロックは、ブロックＡ１＋１０のテンプレートブロックに対して最も一致箇所の数が多く、かつ一致箇所の数が閾値である１０を超えることになる。すると、ブロックＩｎ１の外部音データブロックに対してブロックＡ１＋１０のテンプレートブロックが選択され、ブロック番号バッファの先頭から３０／６０秒後の位置である３０番目の位置に、選択されたテンプレートブロックのブロック番号であるＡ１＋１０を記憶させる。
【００７２】
そして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれは、波形データＡ＋１０を３０／６０秒（０．５秒）ごとに分割した波形データに対応しているので、外部音の波形データＩｎを取得し始めてから２４０／６０秒（４．０秒）が経過すると、図５で示した例と同様に、ブロック番号バッファには、Ａ１＋１０〜Ａ８＋１０までの８個のブロック番号が、３０／６０秒（０．５秒）ごとに、小さい番号から順に記憶されることになる。
【００７３】
従ってゲームシステム１０は、例えば波形データＡ＋１０を取得した場合であっても、外部音の波形データＩｎがブロック番号Ａに対応する種類の波形データＡであると特定することができる。すなわち、第１玩具４２〜第４玩具４８の電子音の再生レートが変化しても、ゲームシステム１０はマイク３８が検出した外部音に対応する電子音の種類を特定することができる。
【００７４】
しかし、第１玩具４２〜第４玩具４８の電子音の再生レートはテンプレートブロックのサンプリングレートのように段階的に変化するわけではないので、例えば第１玩具４２の電子音の再生レートが原音に対して＋６．２５％となる波形データなど、テンプレートブロックのサンプリングレートの中間の再生レートの波形データが取得される場合もある。そこで本実施形態では、図４に示した比較処理では、第１玩具４２〜第４玩具４８の電子音の波形データであって、テンプレートブロックのサンプリングレートの中間の再生レートの波形データが取得された場合には、サンプリングレートが近いいずれかのテンプレートブロックのブロック番号が選択されるように、外部音データブロックとテンプレートブロックとの一致箇所の閾値が定められている。例えば、波形データＡに対して再生レートが＋６．２５％となる波形データＡ＋６．２５が取得された場合には、第１番目のブロックＩｎ１の外部音データブロックに関しては、サンプリングレートが＋５．０％となる波形データＡ＋５．０に対応する第１番目のブロックＡ１＋５．０のテンプレートブロックと、サンプリングレートが＋７．５％となる波形データＡ＋７．５に対応する第１番目のブロックＡ１＋７．５のテンプレートブロックのうち一致箇所が高い方が選択される。
【００７５】
図９は、波形データＡ＋６．２５が取得された場合において、テンプレートブロックが選択されるタイミングを示す図である。ここで波形データＡ＋６．２５が取得された場合には、仮に波形データＡ＋６．２５に対応するテンプレートブロックが用意されているとすれば、波形データＡ＋６．２５に対応するテンプレートブロックは３０／６０秒（０．５秒）ごとに選択される。しかし波形データＡ＋６．２５に対応するテンプレートブロックが用意されていないことにより、図９のステップＳ３５に示すように、波形データＡ＋５．０に対応するテンプレートブロックが選択される場合には、波形データＡ＋５．０に対応するテンプレートブロックは波形データＡ＋６．２５の外部音データブロックに対してサンプリングレートが−１．２５％となっているので、３０／６０秒（０．５秒）よりも１．２５％短い間隔で選択される。一方、ステップＳ３６に示すように、波形データＡ＋７．５に対応するテンプレートブロックが選択される場合には、波形データＡ＋７．５に対応するテンプレートブロックは波形データＡ＋６．２５の外部音データブロックに対してサンプリングレートが＋１．２５％となっているので、３０／６０秒（０．５秒）よりも１．２５％長い間隔で選択される。
【００７６】
更に、例えば図１０のステップＳ３７に示すように、波形データＡ＋６．２５に対して、波形データＡ＋５．０に対応するテンプレートブロックと波形データＡ＋７．５に対応するテンプレートブロックとが交互に選択される場合には、３０／６０秒（０．５秒）よりも長い間隔でテンプレートブロックが選択される場合と短い間隔でテンプレートブロックが選択される場合とが交互に発生する。そして波形データＡ＋６．２５の取得が開始されてから時間が経過するにつれて、それぞれのテンプレートブロックが選択されるタイミングの間隔は、３０／６０秒（０．５秒）から乖離する。すなわち、ブロック番号が大きくなるにつれ、それぞれのテンプレートブロックが選択されるタイミングの間隔の誤差が大きくなる。
【００７７】
従ってこのような場合には、ブロック番号バッファでは、ステップＳ３８に示すように、第１番目に選択されたテンプレートブロックのブロック番号である「Ａ１＋５．０」は、ブロック番号バッファの先頭から３０番目の位置に記憶されるものの、ステップＳ３９に示すように、第２番目に選択されたテンプレートブロックのブロック番号である「Ａ２＋７．５」は６１番目の位置に記憶されるので、「Ａ１＋５．０」と「Ａ２＋７．５」との間隔は６１番−３０番＝３１コマとなる。そしてステップＳ４０に示すように、第３番目に選択されたテンプレートブロックのブロック番号である「Ａ３＋５．０」は８９番目の位置に記憶されるので、「Ａ２＋７．５」と「Ａ３＋５．０」との間隔は８９番−６１番＝２８コマとなる。
【００７８】
更に、ステップＳ４１に示すように、第６番目に選択されたテンプレートブロックのブロック番号である「Ａ６＋７．５」は１８３番目の位置に記憶され、ステップＳ４２に示すように、第７番目に選択されたテンプレートブロックのブロック番号である「Ａ７＋５．０」は２０８番目の位置に記憶されるので、「Ａ６＋７．５」と「Ａ７＋５．０」との間隔は２５コマとなる。そしてステップＳ４３に示すように、第８番目に選択されたテンプレートブロックのブロック番号である「Ａ８＋７．５」は２４３番目の位置に記憶されるので、「Ａ７＋５．０」と「Ａ８＋７．５」との間隔は２４３番−２０８番＝３５コマとなる。
【００７９】
また、実際の外部音に対応する外部音データブロックとテンプレートブロックとを比較すると、周囲の雑音やＤＦＴ処理等の影響により、それぞれのテンプレートブロックが選択されるタイミングの間隔に、更に前後数コマずつの誤差も発生する。そこで本実施形態では、図５で説明したように、最新のブロック番号が記憶された位置から３０コマ前の位置に記憶されているブロック番号を探索する他にも、その前後「ｄ＝５＋Ｎ」コマの範囲に記憶されているブロック番号を探索する。ここで「５」は、周囲の雑音やＤＦＴ処理の影響により発生する数コマの誤差を考慮した定数とされ、Ｎには、ブロック番号が大きくなるにつれ大きくなる誤差を考慮して、最新のブロック番号が示すテンプレートブロックの順序が代入される。
【００８０】
具体的には、図１０のステップＳ３８に示すように、まず、ブロック番号バッファに未だブロック番号が記憶されていない状態で、ブロック番号バッファにブロック番号「Ａ１＋５．０」が記憶されると、ステップＳ４４に示すように、ブロック番号のカウント値に１を加算する。そしてステップＳ３９に示すように、ブロック番号バッファにブロック番号「Ａ２＋７．５」が記憶されると、ステップＳ４５に示すように、最新のブロック番号である「Ａ２＋７．５」が記憶された位置から３０コマ前の位置の前後ｄ＝５＋２＝７コマの範囲に記憶されているブロック番号（第２条件の一例）を探索する。すなわち最新のブロック番号である「Ａ２＋７．５」が記憶された６１番目の位置を基準として、３７コマ前の２４番目の位置から２３コマ前の３８番目の位置までに記憶されているブロック番号を探索する。すると３０番目の位置に記憶されているブロック番号「Ａ１＋５．０」が探索される。
【００８１】
そして、探索されたブロック番号である「Ａ１＋５．０」と最新のブロック番号である「Ａ２＋７．５」とを比較して、両者の関係が、ブロック番号が示すテンプレートブロックの種類が一致しており、かつ順序の差が１であり（第３条件の一例）、かつサンプリングレートの差が２．５％以下である（第４条件の一例）という条件を満たしているか否かを判定する。そして、両者の関係がこのような条件を満たす場合には、第１玩具４２が実際に出力したであろう電子音の再生レートの範囲であるｒｍａｘ〜ｒｍｉｎを、最新のブロック番号が示すサンプリングレートをＲとして、ｒｍａｘ＝Ｒ＋２．５％、ｒｍｉｎ＝Ｒ−２．５％のようにして推定する。図１０の例では、探索されたブロック番号である「Ａ１＋５．０」と最新のブロック番号である「Ａ２＋７．５」との関係は、ブロック番号の順序の差が１であり、サンプリングレートの差が２．５％以下であるという条件を満たし、最新のブロック番号である「Ａ２＋７．５」が示すサンプリングレートＲは１０７．５％であるので、ｒｍａｘ＝１１０．０％、ｒｍｉｎ＝１０５．０％と推定する。
【００８２】
すると、再生レートがｒｍａｘの波形データが検出された場合にブロック番号バッファに記憶されるブロック番号の間隔であるＤｍａｘと、再生レートがｒｍｉｎの波形データが検出された場合にブロック番号バッファに記憶されるブロック番号の間隔であるＤｍｉｎとを、理想状態での間隔である３０コマをＢ、最新のブロック番号が示すサンプリングレートをＲ、最新のブロック番号が示す順序をＮ、探索されたブロック番号が示すサンプリングレートをＲ´、探索されたブロック番号が示す順序をＮ´として、Ｄｍａｘ＝（Ｂ／ｒｍａｘ）（ＲＮ−Ｒ´Ｎ´）、Ｄｍｉｎ＝（Ｂ／ｒｍｉｎ）（ＲＮ−Ｒ´Ｎ´）のようにして求める。ここで理想状態とは、第１玩具４２の音源ＩＣの電子音の再生レートや、ゲームシステム１０のマイク３８の検出特性や、マイク３８が第１玩具４２の電子音を検出したときの位置関係や温度などのそれぞれが基準値である状態を意味する。
【００８３】
図１０の例では、最新のブロック番号「Ａ２＋７．５」が示すサンプリングレートＲは１０７．５％、最新のブロック番号「Ａ２＋７．５」が示す順序Ｎは２であり、探索されたブロック番号「Ａ１＋５．０」が示すサンプリングレートＲ´は１０５．０、探索されたブロック番号「Ａ１＋５．０」が示す順序Ｎ´は１であるので、Ｄｍａｘ＝（３０／１１０．０）（１０７．５・２−１０５．０・１）＝３０、Ｄｍｉｎ＝（３０／１０５．０）（１０７．５・２−１０５．０・１）＝３１．４３となる。
【００８４】
すると、探索されたブロック番号「Ａ１＋５．０」と最新のブロック番号「Ａ２＋７．５」のブロック番号バッファにおける実際の間隔が、Ｄｍａｘ〜Ｄｍｉｎの範囲に含まれるか判定される。図１０の例では、探索されたブロック番号「Ａ１＋５．０」と最新のブロック番号「Ａ２＋７．５」のブロック番号バッファにおける実際の間隔は６１番−３０番＝３１コマであったので、Ｄｍａｘ＝３０〜Ｄｍｉｎ＝３１．４３の範囲に含まれる。
【００８５】
すると、探索されたブロック番号「Ａ１＋５．０」のテンプレートブロックと最新のブロック番号「Ａ２＋７．５」のテンプレートブロックとは、＋５．０％〜＋７．５％の間のいずれかの再生レートで再生された波形データＡの一部に対応しているとみなされ、ステップＳ４６に示すように、ブロック番号のカウント値に「１」が加算され、カウント値が「２」となる。
【００８６】
そしてステップＳ４３に示すように、ブロック番号バッファにブロック番号「Ａ８＋７．５」が記憶されると、ステップＳ４７に示すように、最新のブロック番号である「Ａ８＋７．５」が記憶された位置から３０コマ前の位置の前後ｄ＝５＋８＝１３コマの範囲に記憶されているブロック番号を探索する。すなわち最新のブロック番号である「Ａ８＋７．５」が記憶された２４３番目の位置を基準として、４３コマ前の２００番目の位置から１７コマ前の２２６番目の位置までに記憶されているブロック番号を探索する。
【００８７】
そして、探索されたブロック番号である「Ａ７＋５．０」と最新のブロック番号である「Ａ８＋７．５」とを比較して、両者の関係が、ブロック番号が示すテンプレートブロックの種類が一致しており、かつ順序の差が１であり、かつサンプリングレートの差が２．５％以下であるという条件を満たしているか否かを判定する。そして、両者の関係がこのような条件を満たす場合には、第１玩具４２が実際に出力したであろう電子音の再生レートの範囲であるｒｍａｘ〜ｒｍｉｎを推定する。図１０の例では、探索されたブロック番号である「Ａ７＋５．０」と最新のブロック番号である「Ａ８＋７．５」との関係はこのような条件を満たし、最新のブロック番号である「Ａ８＋７．５」が示すサンプリングレートＲは１０７．５％であるので、ｒｍａｘ＝１１０．０％、ｒｍｉｎ＝１０５．０％と推定する。
【００８８】
すると、ｒｍａｘで波形データが検出された場合にブロック番号バッファに記憶されるブロック番号の間隔であるＤｍａｘと、ｒｍｉｎで波形データが検出された場合にブロック番号バッファに記憶されるブロック番号の間隔であるＤｍｉｎとを求める。図１０の例では、最新のブロック番号「Ａ８＋７．５」が示すサンプリングレートＲは１０７．５％、最新のブロック番号「Ａ８＋７．５」が示す順序Ｎは８であり、探索されたブロック番号「Ａ７＋５．０」が示すサンプリングレートＲ´は１０５．０、探索されたブロック番号「Ａ７＋５．０」が示す順序Ｎ´は７であるので、Ｄｍａｘ＝（３０／１１０．０）（１０７．５・８−１０５．０・７）＝３４．０９、Ｄｍｉｎ＝（３０／１０５．０）（１０７．５・８−１０５．０・７）＝３５．７１となる。
【００８９】
すると、探索されたブロック番号「Ａ７＋５．０」と最新のブロック番号「Ａ８＋７．５」のブロック番号バッファにおける実際の間隔が、Ｄｍａｘ〜Ｄｍｉｎの範囲に含まれるか判定される。図１０の例では、探索されたブロック番号「Ａ７＋５．０」と最新のブロック番号「Ａ８＋７．５」のブロック番号バッファにおける実際の間隔は２４３番−２０８番＝３５コマであったので、Ｄｍａｘ＝３４．０９〜Ｄｍｉｎ＝３５．７１の範囲に含まれる。
【００９０】
すると、探索されたブロック番号「Ａ７＋５．０」のテンプレートブロックと最新のブロック番号「Ａ８＋７．５」のテンプレートブロックとは、＋５．０％〜＋７．５％の間のいずれかの再生レートで再生された波形データＡの一部に対応しているとみなされ、ステップＳ４８に示すように、ブロック番号のカウント値に「１」が加算され、カウント値が「８」となる。
【００９１】
こうしてステップＳ４８に示すように、ブロック番号のカウント値が８となった場合には、波形データＡに対応する８個のテンプレートブロックが小さい番号から順に記憶されていると判定される。すなわち図１０の例では、周囲の雑音やＤＦＴ処理等の影響による誤差や、ブロック番号が大きくなるにつれ大きくなる誤差が発生しても、外部音の波形データＩｎが波形データＡであると特定することができる。
【００９２】
また、本実施形態の手法では、マイク３８が例えば第１玩具４２の電子音を検出している間に大きな雑音を検出することにより、ブロック番号バッファにおいて第２番目のブロック番号が記憶されるべき位置に、いずれのブロック番号も記憶されなかったり、前後のブロック番号が示すテンプレートブロックの種類や順序やサンプリングレートが上述した条件を満たさないブロック番号が記憶されたりしてしまうことがある。そしてこのような場合には、ブロック番号のカウント値に「１」が加算されないが、本実施形態では、波形データＡに対応するいくつかのブロック番号をカウントすることができなくても、他の複数のブロック番号の関係が所定の条件を満たしている場合には、外部音の波形データＩｎが波形データＡであると特定することができるようにしている。
【００９３】
詳細には、図１１のステップＳ５０に示すように、ブロック番号バッファの６１番目の位置にブロック番号「Ｂ３−２．５」が記憶されたとすると、ステップＳ５１に示すように、最新のブロック番号である「Ｂ３−２．５」が記憶された位置から３０コマ前の位置の前後ｄ＝５＋３＝８コマの範囲に記憶されているブロック番号を探索する。すなわち最新のブロック番号である「Ｂ３−２．５」が記憶された６１番目の位置を基準として、３８コマ前の２３番目の位置から２２コマ前の３９番目の位置までに記憶されているブロック番号を探索する。
【００９４】
そして、探索されたブロック番号である３０番目の位置の「Ａ１＋５．０」と最新のブロック番号である「Ｂ３−２．５」とを比較して、両者の関係が、ブロック番号が示すテンプレートブロックの種類が一致しており、ブロック番号の順序の差が１であり、サンプリングレートの差が２．５％以下であるという条件を満たしているか否かを判定する。図１１の例では、探索されたブロック番号である「Ａ１＋５．０」と最新のブロック番号である「Ｂ３−２．５」との関係は、ブロック番号が示すテンプレートブロックの種類が一致しておらず、順序の差が１でなく、サンプリングレートの差が２．５％以下でないので条件を満たさない。従ってステップＳ５２に示すように、ブロック番号のカウント値には「１」は加算されず、カウント値は「１」のままとなる。
【００９５】
すると、ステップＳ５３に示すように、最新のブロック番号である「Ｂ３−２．５」が記憶された位置から６０コマ前の位置の前後ｄ＝８＋１＝９コマの範囲に記憶されているブロック番号を探索する。つまり本実施形態では、前回の選択タイミングで選択されたブロック番号が記憶されていると想定されるブロック番号バッファの位置を探索した結果、条件を満たすブロック番号が探索されなかった場合は、前々回の選択タイミングで選択されたブロック番号が記憶されていると想定されるブロック番号バッファの位置を探索する。すなわち最新のブロック番号である「Ｂ３−２．５」が記憶された６１番目の位置を基準として、６９コマ前の−８番目の位置から５１コマ前の１０番目の位置までに記憶されているブロック番号を探索する。
【００９６】
しかし図１１の例では、最新のブロック番号である「Ｂ３−２．５」が記憶された６１番目の位置を基準として、前々回の選択タイミングで選択されたブロック番号が記憶されていると想定されるブロック番号バッファの位置を探索しても、条件を満たすブロック番号は探索されない。そしてこの場合には、ステップＳ５４に示すように、ブロック番号のカウント値には「１」は加算されず、カウント値は「１」のままとなる。
【００９７】
そしてステップＳ５５に示すように、ブロック番号バッファの８９番目の位置にブロック番号「Ａ３＋５．０」が記憶されたとすると、ステップＳ５６に示すように、最新のブロック番号である「Ａ３＋５．０」が記憶された位置から３０コマ前の位置の前後ｄ＝５＋３＝８コマの範囲に記憶されているブロック番号を探索する。すなわち最新のブロック番号である「Ａ３＋５．０」が記憶された８９番目の位置を基準として、３８コマ前の５１番目の位置から２２コマ前の６７番目の位置までに記憶されているブロック番号を探索する。すると図１１の例では、６１番目の位置に記憶されているブロック番号「Ｂ３−２．５」が探索される。
【００９８】
そして、探索されたブロック番号である「Ｂ３−２．５」と最新のブロック番号である「Ａ３＋５．０」とを比較して、両者の関係が、ブロック番号が示すテンプレートブロックの種類が一致し、ブロック番号の順序の差が１であり、サンプリングレートの差が２．５％以下であるという条件を満たしているか否かを判定する。図１１の例では、探索されたブロック番号である「Ｂ３−２．５」と最新のブロック番号である「Ａ３＋５．０」との関係は、ブロック番号が示すテンプレートブロックの種類が一致しておらず、順序の差が１でなく、サンプリングレートの差が２．５％以下でないので条件を満たさない。従ってステップＳ５４に示すように、ブロック番号のカウント値には「１」は加算されず、カウント値は「１」のままとなる。
【００９９】
すると、ステップＳ５７に示すように、最新のブロック番号である「Ａ３＋５．０」が記憶された位置から６０コマ前の位置の前後ｄ＝８＋１＝９コマの範囲に記憶されているブロック番号を探索する。すなわち最新のブロック番号である「Ａ３＋５．０」が記憶された８９番目の位置を基準として、６９コマ前の２０番目の位置から５１コマ前の３８番目の位置までに記憶されているブロック番号を探索する。すると図１１の例では、３０番目の位置に記憶されているブロック番号「Ａ１＋５．０」が探索される。
【０１００】
そして、探索されたブロック番号である「Ａ１＋５．０」と最新のブロック番号である「Ａ３＋５．０」とを比較して、両者の関係が、ブロック番号が示すテンプレートブロックの種類が一致しており、かつ順序の差が２であり、かつサンプリングレートの差が２．５％以下であるという条件を満たしているか否かを判定する。そして、両者の関係がこのような条件を満たす場合には、第１玩具４２が実際に出力したであろう電子音の再生レートの範囲であるｒｍａｘ〜ｒｍｉｎを推定する。図１１の例では、探索されたブロック番号である「Ａ１＋５．０」と最新のブロック番号である「Ａ３＋５．０」との関係は、ブロック番号が示すテンプレートブロックの種類が一致し、ブロック番号の順序の差が２であり、サンプリングレートの差が２．５％以下であるという条件を満たし、最新のブロック番号である「Ａ３＋５．０」が示すサンプリングレートＲは１０５．０％であるので、ｒｍａｘ＝１０７．５％、ｒｍｉｎ＝１０２．５％と推定する。
【０１０１】
すると、ｒｍａｘで波形データが検出された場合にブロック番号バッファに記憶されるブロック番号の間隔であるＤｍａｘと、ｒｍｉｎで波形データが検出された場合にブロック番号バッファに記憶されるブロック番号の間隔であるＤｍｉｎとを求める。図１１の例では、最新のブロック番号「Ａ３＋５．０」が示すサンプリングレートＲは１０５．０％、最新のブロック番号「Ａ３＋５．０」が示す順序Ｎは３であり、探索されたブロック番号「Ａ１＋５．０」が示すサンプリングレートＲ´は１０５．０、探索されたブロック番号「Ａ１＋５．０」が示す順序Ｎ´は１であるので、Ｄｍａｘ＝（３０／１０７．５）（１０５．０・３−１０５．０・１）＝５８．６０、Ｄｍｉｎ＝（３０／１０２．５）（１０５．０・３−１０５．０・１）＝６１．４６となる。
【０１０２】
すると、探索されたブロック番号「Ａ１＋５．０」と最新のブロック番号「Ａ３＋５．０」のブロック番号バッファにおける実際の間隔が、Ｄｍａｘ〜Ｄｍｉｎの範囲に含まれるか判定される。図１１の例では、探索されたブロック番号「Ａ１＋５．０」と最新のブロック番号「Ａ３＋５．０」のブロック番号バッファにおける実際の間隔は８９番−３０番＝５９コマであったので、Ｄｍａｘ＝５８．６０〜Ｄｍｉｎ＝６１．４６の範囲に含まれる。
【０１０３】
すると、探索されたブロック番号「Ａ１＋５．０」のテンプレートブロックと最新のブロック番号「Ａ３＋５．０」のテンプレートブロックとは、＋５．０％付近のいずれかの再生レートで再生された波形データＡの一部に対応しているとみなされ、ステップＳ５８に示すように、ブロック番号のカウント値に「１」が加算され、カウント値が「２」となる。そして、その他のブロック番号のテンプレートブロックのそれぞれが上述した条件を満たしている場合には、ステップＳ５９に示すように、ブロック番号のカウント値が「７」となる。
【０１０４】
こうしてステップＳ５９に示すように、ブロック番号のカウント値が「７」となった場合には、波形データＡに対応する７個のテンプレートブロックが小さい番号から順に記憶されていると判定される。すなわち図１１の例では、波形データＡに対応するいくつかのブロック番号をカウントすることができなくても、他の複数のブロック番号の関係が上述した条件を満たしている場合には、外部音の波形データＩｎが波形データＡであると特定することができる。具体的には本実施形態では、波形データＡに対応する８個のテンプレートブロックのうち７５％（所定の割合の一例）に相当する６個のテンプレートブロックのそれぞれが上述した条件を満たしている場合には、外部音の波形データＩｎが波形データＡであると特定するようにしている。
【０１０５】
また本実施形態では、波形データＢに対応する６個のテンプレートブロックのうち５個のテンプレートブロックのそれぞれが上述した条件を満たしている場合には、外部音の波形データＩｎが波形データＢであると特定するようにし、波形データＣに対応する２２個のテンプレートブロックのうち１１個のテンプレートブロックのそれぞれが上述した条件を満たしている場合には、外部音の波形データＩｎが波形データＣであると特定するようにし、波形データＤに対応する１４個のテンプレートブロックのうち８個のテンプレートブロックのそれぞれが上述した条件を満たしている場合には、外部音の波形データＩｎが波形データＤであると特定するようにしている。すなわち本実施形態では、ブロック番号バッファに格納されたブロック番号のそれぞれが示す電子音の種類に応じて、電子音の種類を特定するためのブロック番号カウンタの閾値が異なっている。
【０１０６】
３．機能ブロック
図１２は、本実施形態におけるゲームシステム１０の機能ブロック図の一例である。なお、本実施形態のゲームシステム１０は、図１２の構成要素（各部）の一部を省略した構成としてもよい。
【０１０７】
第１検出部５０は、十字キー２０、第１ボタン２２〜第４ボタン２８、スタートボタン３０、セレクトボタン３２に対する操作を検出するためのものであり、その機能は、各種スイッチや感圧センサなどにより実現できる。
【０１０８】
第２検出部５２は、操作面３９に対する接触操作の接触有無や接触位置を検出するためのものであり、その機能は、４線式や５線式のアナログ抵抗膜方式のタッチパネルなどにより実現できる。
【０１０９】
音検出部５４は、第１玩具４２、第２玩具４４、第３玩具４６、第４玩具４８が出力した電子音や、プレーヤの音声や手拍子などの外部音を検出するためのものであり、その機能はマイク３８などにより実現できる。
【０１１０】
表示部５６は、ゲームシステム１０により生成された画像を出力するものであり、その機能はＣＲＴディスプレイ、液晶ディスプレイ、プラズマディスプレイ、プロジェクタなどにより実現できる。
【０１１１】
音出力部５８は、ゲームシステム１０により生成された音を出力するものであり、その機能は、スピーカ３６やヘッドフォンなどにより実現できる。
【０１１２】
情報記憶媒体６０（コンピュータにより読み取り可能な媒体）は、処理部１００が種々の処理を行うためのプログラムやデータなどを格納するものであり、その機能は、メモリカード、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープなどにより実現できる。
【０１１３】
記憶部６２は、処理部１００や通信部７０などのワーク領域となるもので、その機能はＲＡＭやＶＲＡＭなどにより実現できる。そして、本実施形態の記憶部６２は、処理部１００のワーク領域として使用される主記憶部６２１と、表示部５６に表示させる画像が描画される描画バッファ６２２と、画像として表示されるオブジェクト（表示物）のデータが読み込まれるオブジェクトデータ記憶部６２３と、複数種類の電子音のそれぞれを示す複数種類のテンプレートを記憶するテンプレート記憶部６２４を含む。
【０１１４】
特にテンプレート記憶部６２４は、複数種類の電子音のそれぞれについて、複数種類の電子音のそれぞれが互いに異なる再生レートで再生された場合の複数レートの電子音のそれぞれに対応する複数レートのテンプレートを記憶する。詳細にはテンプレート記憶部６２４は、複数レートのテンプレートのそれぞれとして、複数レートの電子音のそれぞれの部分であって互いに異なる開始時点から開始する第１期間分の複数の電子音部分のそれぞれに対応する複数のテンプレートブロックを記憶する。そして複数のテンプレートブロックのそれぞれは、開始時点の間隔が第１期間である複数の電子音部分のそれぞれに対応する。
【０１１５】
具体的には図７に示したように、例えば第１玩具４２の電子音の再生レートが＋１０％となった場合に対応するブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれは、再生レートが＋１０％となった第１玩具４２の電子音の先頭を開始時点とする０．５秒間（第１期間の一例）分の電子音部分から、先頭から３．５秒後を開始時点とする０．５秒間分の電子音部分までの８個の０．５秒間分の電子音部分のそれぞれに対応している。すなわちブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの開始時点の間隔は０．５秒間（第１期間の一例）となっており、隣接するテンプレートブロックのそれぞれの終了時点と開始時点の間に隙間がないようになっている。
【０１１６】
そして本実施形態では、第１玩具４２の電子音の再生レートが−１０％となった場合に対応するブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれも、再生レートが−１０％となった第１玩具４２の電子音の先頭を開始時点とする０．５秒間（第１期間の一例）分の電子音部分から、先頭から３．５秒後を開始時点とする０．５秒間分の電子音部分までの８個の０．５秒間分の電子音部分のそれぞれに対応している。すなわちブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの開始時点の間隔は０．５秒間（第１期間の一例）となっており、隣接するテンプレートブロックのそれぞれの終了時点と開始時点の間に隙間がないようになっている。
【０１１７】
通信部７０は、外部（例えばサーバや他の携帯端末）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用の集積回路（ＡＳＩＣ）などのハードウェアや、プログラムなどにより実現できる。
【０１１８】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部７０を介して情報記憶媒体６０（記憶部６２）に配信してもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【０１１９】
処理部１００（プロセッサ）は、第１検出部５０、第２検出部５２、音検出部５４などからの検出情報や、通信部７０からの受信情報や、プログラムやデータなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの処理を行う。この処理部１００は、記憶部６２をワーク領域として各種処理を行い、その機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、各種集積回路（ＩＣ、ＡＳＩＣ）などのハードウェアや、プログラムにより実現できる。
【０１２０】
特に、本実施形態の処理部１００は、取得部１０２、特定部１０４、エラー判定部１０６、表示制御部１１４、通信制御部１１６、描画部１２０、音生成部１３０を含む。なお、これらの一部を省略する構成としてもよい。
【０１２１】
取得部１０２は、音検出部５４が検出した外部音を示す外部音データを取得する。詳細には取得部１０２は、第２期間ごとに第１期間分の外部音に対応する外部音データブロックを取得する。具体的には図３で示したように、１／６０秒（第２期間の一例）ごとに１／６０秒間（第２期間の一例）分の外部音の波形データに対してＤＦＴ処理を行い、１／６０秒ごとにブロック要素の外部音データ要素を外部音データバッファに記憶させる。そして、１／６０秒ごとに３０／６０秒（０．５秒）分の３０個のブロック要素の外部音データ要素を１個の外部音データブロックとして取得する。
【０１２２】
特定部１０４は、複数種類のテンプレートのそれぞれと外部音データとを比較して、外部音に対応する電子音の種類を特定する。詳細には特定部１０４は、図４に示したように、外部音データブロックを取得するごとに複数のテンプレートブロックのそれぞれと外部音データブロックとを比較する。具体的には特定部１０４は、図４に示したように、外部音データブロックに対して、最も一致箇所の数が多くかつ一致箇所の数が閾値である１０を超える第１条件を満たすテンプレートブロックを選択する処理と、異なる取得時点において取得された外部音データブロックに対して第１条件を満たすテンプレートブロックが選択された場合に、図１０に示したように、取得時点の間隔がブロック番号バッファにおいて３０±ｄコマとなる第２条件を満たすか否かを判定する処理と、第２条件が満たされた場合に、選択されたテンプレートブロックに対応する電子音の種類に基づいて、外部音に対応する電子音の種類を特定する処理とを行う。
【０１２３】
また特定部１０４は、異なる取得時点において取得された外部音データブロックに対して第１条件を満たすテンプレートブロックが選択された場合に、図１０に示したように、選択されたテンプレートブロックのそれぞれが対応する電子音部分の順序が、順序の差が１となる第３条件を満たすか否かを判定する処理と、第３条件が満たされた場合に、選択されたテンプレートブロックに対応する電子音の種類に基づいて、外部音に対応する電子音の種類を特定する処理とを行う。
【０１２４】
また特定部は、異なる取得時点において取得された外部音データブロックに対して第１条件を満たすテンプレートブロックが選択された場合に、図１０に示したように、選択されたテンプレートブロックのそれぞれが対応する電子音部分の再生レートが、再生レートの差が２．５％以下となる第４条件を満たすか否かを判定する処理と、第４条件が満たされた場合に、選択されたテンプレートブロックに対応する電子音の種類に基づいて、外部音に対応する電子音の種類を特定する処理とを行う。
【０１２５】
エラー判定部１０６は、外部音に対応する電子音の種類が特定されない場合に、音検出部５４の外部音の検出状況に基づいて、いずれのエラーが発生しているかを判定する。具体的にはエラー判定部１０６は、音入力モードが開始されてから３０秒が経過するまでに外部音に対応する電子音の種類が特定されない場合に、音入力モードが開始されてから検出された外部音の音量に基づいて、いずれのエラー画像を表示部５６に表示させるかを判定する。
【０１２６】
表示制御部１１４は、第１検出部５０、第２検出部５２、音検出部５４などからの検出情報や、通信部７０からの受信情報や、プログラムなどに基づいて、表示部５６に表示される画像（オブジェクト画像）の表示制御を行う。詳細には表示制御部１１４は、表示すべきオブジェクト（キャラクタ、移動体、コース、建物、樹木、柱、壁、マップ、背景など）を発生させたり、オブジェクトの表示や表示位置を指示したり、オブジェクトを消滅させたりするなどの表示制御を行う。即ち発生したオブジェクトをオブジェクトリストに登録したり、オブジェクトリストを描画部１２０等に転送したり、消滅したオブジェクトをオブジェクトリストから削除したりするなどの表示制御を行う。そして表示制御部１１４は、オブジェクトを移動させるための移動処理とオブジェクトを動作させるための動作処理とを行う。
【０１２７】
移動処理としては、表示制御部１１４は、第１検出部５０、第２検出部５２、音検出部５４などからの検出情報や、通信部７０からの受信情報や、プログラム（移動アルゴリズム）や、各種データ（移動データ）などに基づいて、オブジェクトをオブジェクト空間内で移動させる処理（移動シミュレーション）を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動処理や画像生成処理を行う時間の単位である。
【０１２８】
動作処理としては、表示制御部１１４は、第１検出部５０、第２検出部５２、音検出部５４などからの検出情報や、通信部７０からの受信情報や、プログラム（動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で動作（モーション、アニメーション）させる処理（動作シミュレーション）を行う。具体的には、オブジェクトの動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。
【０１２９】
特に表示制御部１１４は、実行部として機能し、特定された電子音の種類に対応させてオブジェクトの表示制御を行う。具体的には表示制御部１１４は、マイク３８により検出した外部音が４種類の玩具のいずれかの電子音であると特定した場合には、第１表示面１７や第２表示面３３に表示されている画像を、特定した電子音の種類に対応させて変化させる。例えば、特定した電子音の種類に対応するキャラクタを、発生させたり、移動させたり、動作させたり、変形させたり、消滅させたりする。また、特定した電子音の種類に対応する動作をキャラクタに行わせる。
【０１３０】
また表示制御部１１４は、エラー判定部１０６の判定結果に基づいて、エラー画像を表示部５６に表示させる。具体的には表示制御部１１４は、図２（Ａ）、図２（Ｂ）、図２（Ｃ）に示したエラー画像のうち、エラー判定部１０６が判定したエラーの種類に対応するエラー画像を第１表示面１７や第２表示面３３に表示させる。
【０１３１】
通信制御部１１６は、他のゲームシステム１０に送信するパケットを生成する処理、パケット送信先のゲームシステム１０のネットワークアドレスを指定する処理、受信したパケットを記憶部６２に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する通信部７０の制御処理等を行う。特に本実施形態では、ゲームをネットワーク（例えば、インターネット）を利用して実行するために必要なデータパケット及びコマンドパケットを生成する制御や、通信部７０を介してデータパケット及びコマンドパケットを送受信させる制御を行う。
【０１３２】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部５６に出力する。
【０１３３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部５８に出力する。
【０１３４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【０１３５】
４．本実施形態の処理
次に、本実施形態のゲームシステム１０で行われる処理の流れについて説明する。
【０１３６】
図１３は、本実施形態のゲームシステム１０が行う処理の流れの概略を示すフローチャートである。図１３に示すようにゲームシステム１０は、プレーヤの選択操作により音入力モードが実行されると（ステップＳ１００でＹ）、マイク３８が検出した外部音に基づいて外部音データを取得する１／６０秒ごとの取得タイミングが到来したか否かを判断する（ステップＳ１０２）。そして取得タイミングが到来すると（ステップＳ１０２でＹ）、１／６０秒間分の外部音データを取得する（ステップＳ１０４）。すると、取得した１／６０秒間分の外部音データに対して、サンプリングレートを１／３程度まで低下させるとともに、低域のノイズを除去する前処理を行う（ステップＳ１０６）。すると、外部音データブロックと複数のテンプレートブロックとを比較して、第１条件を満たすテンプレートブロックを選択する比較処理を行う（ステップＳ１０８）。そして比較処理において第１条件を満たすテンプレートブロックが選択されない場合には（ステップＳ１１０でＮ）、音入力モードの実行が開始されてから３０秒が経過したか否かを判断し（ステップＳ１１２）、３０秒が経過した場合には（ステップＳ１１２でＹ）、音入力モードの実行が開始されてから３０秒の間に取得した外部音データの音量に応じてエラー画像を表示部５６に表示させる（ステップＳ１１４）。また、３０秒が経過していない場合には（ステップＳ１１２でＮ）、ステップＳ１０２に戻る。
【０１３７】
一方、比較処理において第１条件を満たすテンプレートブロックが選択された場合には（ステップＳ１１０でＹ）、選択されたテンプレートブロックのブロック番号と、他の取得タイミングで取得された外部音データブロックに対して選択されたテンプレートブロックのブロック番号とに基づいて、外部音に対応する電子音の種類を特定する特定処理を行う（ステップＳ１１６）。そして特定処理において、外部音に対応する電子音の種類が特定されない場合には（ステップＳ１１８でＮ）、ステップＳ１０２に戻る。一方、特定処理において外部音に対応する電子音の種類が特定された場合には（ステップＳ１１８でＹ）、特定した電子音の種類に応じたキャラクタを表示部５６に表示させる（ステップＳ１２０）。
【０１３８】
なお、プレーヤの選択操作により文字入力モードが実行されると（ステップＳ１２２でＹ）、タッチペン４１による第１表示面１７への文字入力を受け付け、第１表示面１７に書かれた文字を認識する（ステップＳ１２４）。本実施形態では、４種類の玩具のそれぞれに対応する識別情報が４種類の玩具のそれぞれに示されており、識別情報に対応する文字が第１表示面１７に書かれたと判定した場合には（ステップＳ１２６でＹ）、識別情報に対応する玩具に応じたキャラクタを表示部５６に表示させる（ステップＳ１２８）。このようにすれば、玩具の電池が切れるなど玩具が電子音を出力できない場合や、ゲームシステム１０が電子音を特定することができない場合などでも、プレーヤが持っている玩具に対応するキャラクタを表示部に表示させることができる。
【０１３９】
図１４は、図１３のステップＳ１０８でゲームシステム１０が行う比較処理の流れの詳細を示すフローチャートである。図１４に示すように比較処理では、ゲームシステム１０は、１／６０秒間分の外部音データをＤＦＴ処理によりパワースペクトルに変換し（ステップＳ１３０）、大きなスペクトルの周波数を選択して外部音データ要素を作成し（ステップＳ１３２）、外部音データ要素を外部音データバッファに格納する（ステップＳ１３４）。そして、３０／６０秒（０．５秒）間分の外部音データ要素である外部音データブロックを、４５０個のテンプレートブロックのそれぞれと比較して、値が一致する箇所をカウントする（ステップＳ１３６）。そして値が一致した箇所が最も多いテンプレートブロックを選択し（ステップＳ１３８）、一致箇所が閾値（例えば１０箇所）以上である場合には（ステップＳでＹ１４０）、選択したテンプレートブロックのブロック番号をブロック番号バッファに格納する（ステップＳ１４２）。一方、一致箇所が閾値（例えば１０箇所）以上でない場合には（ステップＳでＮ１４０）、ＮＵＬＬをブロック番号バッファに格納する（ステップＳ１４４）。
【０１４０】
図１５は、図１３のステップＳ１１６でゲームシステム１０が行う特定処理の流れの詳細を示すフローチャートである。図１５に示すように特定処理では、ゲームシステム１０は、ブロック番号バッファに格納された最新のブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ（例えばＡ）、最新のブロック番号が示すテンプレートブロックの順序Ｎ（例えば２）、最新のブロック番号が示すテンプレートブロックのサンプリングレートＲ（例えば１０２．５）を特定する（ステップＳ１５０）。そして、ブロック番号バッファの位置のうちブロック番号を探索する位置を示すｎに「１」を代入し、１ブロック（３０コマ）前を探索することを指定する（ステップＳ１５２）。そして、周囲の雑音やＤＦＴ処理の影響により発生する数コマの誤差を考慮したＤを定数「５」として、ブロック番号を探索する範囲を指定するためのｄを、−（Ｄ＋Ｎ）とする（ステップＳ１５４）。そして、理想状態での間隔であるＢを「３０」として、最新のブロック番号が格納された位置からｎＢ＋ｄ前に格納されたブロック番号を探索する（ステップＳ１５６）。
【０１４１】
そして、ブロック番号が探索されると、探索されたブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ´（例えばＡ）、探索されたブロック番号が示すテンプレートブロックの順序Ｎ´（例えば１）、探索されたブロック番号が示すテンプレートブロックのサンプリングレートＲ´（例えば１０５．０）を特定する（ステップＳ１５８）。そして、最新のブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘと、探索されたブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ´とが一致し（ステップＳ１６０でＹ）、最新のブロック番号が示すテンプレートブロックの順序Ｎと、探索されたブロック番号が示すテンプレートブロックの順序Ｎ´との差がｎであり（ステップＳ１６２でＹ）、最新のブロック番号が示すテンプレートブロックのサンプリングレートＲと、探索されたブロック番号が示すテンプレートブロックのサンプリングレートＲ´との差の絶対値が２．５％以下である場合には（ステップＳ１６４でＹ）、ブロック番号バッファにおける最新のブロック番号の格納位置Ｐと、探索されたブロック番号の格納位置Ｐ´から、実際のブロック間隔Ｉを求める（ステップＳ１６６）。
【０１４２】
そして、最新のブロック番号が示すサンプリングレートＲに基づいて、玩具が実際に出力したであろうと推定される電子音の再生レートｒの範囲であるｒｍａｘ〜ｒｍｉｎを、ｒｍａｘ＝Ｒ＋２．５％、ｒｍｉｎ＝Ｒ−２．５％のようにして求める（ステップＳ１６８）。そして、推定再生レートｒの範囲で電子音が出力された場合における最新のブロック番号の位置と探索されたブロック番号の位置との間隔である正しいブロック間隔の範囲を、Ｄｍａｘ＝（Ｂ／ｒｍａｘ）（ＲＮ−Ｒ´Ｎ´）、Ｄｍｉｎ＝（Ｂ／ｒｍｉｎ）（ＲＮ−Ｒ´Ｎ´）のようにして求める（ステップＳ１７０）。そして、実際のブロック間隔ＩがＤｍａｘ〜Ｄｍｉｎの範囲に含まれるか否かを判断する（ステップＳ１７２）。
【０１４３】
そして実際のブロック間隔ＩがＤｍａｘ〜Ｄｍｉｎの範囲に含まれる場合には（ステップＳ１７２でＹ）、ブロック番号カウンタのカウント値Ｃを更新する（ステップＳ１７４）。すると、ｄに「１」が加算され（ステップＳ１７６）、ｄがＤ＋Ｎよりも大きい場合には（ステップＳ１７８でＹ）、ｎに「１」が加算され、更に以前のブロックを探索することを指定する（ステップＳ１８０）。そして、何ブロック前までを探索するかの閾値を示すｓｋｉｐよりもｎが大きい場合には（ステップＳ１８２でＹ）、ブロック番号カウンタのカウント値Ｃが閾値ｃを超えたか否かを判断し（ステップＳ１８４）、カウント値Ｃが閾値ｃを超えた場合には（ステップＳ１８４でＹ）、ブロック番号バッファに格納されたブロック番号のそれぞれが示すテンプレートブロックの種類Ｘのうち、最も数が多い種類Ｘを、マイク３８が検出した電子音の種類として特定し（ステップＳ１８６）、特定処理を終了する。一方、カウント値Ｃが閾値を超えない場合には（ステップＳ１８４でＮ）、マイク３８が検出した電子音の種類を特定せずに、特定処理を終了する。
【０１４４】
ここで本実施形態では、ステップＳ１８２の値「ｓｋｉｐ」は定数「２」とされ、最新のブロック番号が格納されている位置から２ブロック前までに対応する位置を探索するようにしている。従って、ステップＳ１８０においてｎに「１」が加算されてｎ＝２となった場合には、ｓｋｉｐよりもｎが大きくないので（ステップＳ１８２でＮ）、ステップＳ１５４に戻る。これにより、周囲の雑音などによりブロック番号バッファにおいて１ブロック分のブロック番号が欠落しても、２ブロック前のブロック番号が最新のブロック番号に対して上記条件を満たす場合には、ステップＳ１７４において、ブロック番号カウンタのカウント値Ｃを更新することができる。
【０１４５】
また、最新のブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘと、探索されたブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ´とが一致しない場合（ステップＳ１６０でＮ）、あるいは、最新のブロック番号が示すテンプレートブロックの順序Ｎと、探索されたブロック番号が示すテンプレートブロックの順序Ｎ´との差がｎでない場合（ステップＳ１６２でＮ）、あるいは、最新のブロック番号が示すテンプレートブロックのサンプリングレートＲと、探索されたブロック番号が示すテンプレートブロックのサンプリングレートＲ´との差の絶対値が２．５％以下でない場合（ステップＳ１６４でＮ）、あるいは、実際のブロック間隔ＩがＤｍａｘ〜Ｄｍｉｎの範囲に含まれない場合には（ステップＳ１７２でＮ）、ステップＳ１７６に進み、ｄに「１」が加算される。また、ｄがＤ＋Ｎよりも大きくない場合には（ステップＳ１７８でＮ）、ステップＳ１５６に戻る。
【０１４６】
５．変形例
本発明は、上記の実施形態で説明したものに限らず、種々の変形実施が可能であり、以下に変形例を紹介する。なお、上記実施形態や、以下において変形例として説明する各種の手法は、本発明を実現する制御手法として適宜組み合わせて採用することができる。
【０１４７】
５−１．変形例１
５−１−１．テンプレートの作成手法
例えば上記実施形態では、図７に示したように、複数のテンプレートブロックのそれぞれは、開始時点の間隔が第１期間となる複数の電子音部分のそれぞれに対応している例を挙げて説明したが、上記実施形態では、図９に示したように、電子音の再生レートが予め想定した再生レートの中間の再生レートとなる場合には、電子音に対応する外部音の取得が開始されてから時間が経過するにつれ、外部音データブロックとテンプレートブロックとが対応する時間間隔のずれが大きくなってしまう。すると上記実施形態では、図１０や図１１に示したように、異なる取得時点において取得された外部音データブロックに対して第１条件を満たすテンプレートブロックが選択された場合に、取得時点の間隔が第２条件を満たすか否かを判定する処理を行う際には、電子音に対応する外部音の取得が開始されてから時間が経過するにつれ大きくなる誤差を考慮しなければならないので、処理負荷が大きくなる。上記実施形態では、ブロック番号バッファにおける探索範囲が広がるため、探索処理の負荷が増加する。
【０１４８】
そこで以下に挙げる例では、複数のテンプレートブロックのそれぞれは、開始時点の間隔が再生レートに応じた期間となる複数の電子音部分のそれぞれに対応するようにしている。このようにすれば、電子音の再生レートが予め想定した再生レートの中間の再生レートとなる場合であっても、外部音データブロックとテンプレートブロックとが対応する時間間隔のずれを抑制することができる。
【０１４９】
図１６は、開始時点の間隔が再生レートに応じた期間となる複数の電子音部分のそれぞれに対応する複数のテンプレートブロックの作成手法を説明するための図である。図１６では、第１玩具４２の電子音に対応するテンプレートを作成する場合を例に挙げて説明する。まず、第１玩具４２の電子音の再生レートが＋１０％となった場合の波形データに対応するテンプレートを作成する場合には、図１６のステップＳ２００に示すように、原音となる波形データＡをサンプリングレートが＋１０％となるように変換した波形データＡ＋１０を求める。ここで波形データＡ＋１０のサンプリング期間は３．６秒間となっている。
【０１５０】
そしてステップＳ２０１に示すように、３．６秒間の波形データＡ＋１０を、１個のブロックのサンプリング期間が０．５秒間となるように、８個のブロックに分割する。ここでこの例では上記実施形態とは異なり、３．６秒間の波形データＡ＋１０を、波形データＡ＋１０の先頭から０．５秒間に対応する第１番目のブロックＡ１＋１０と、波形データＡ＋１０の先頭から０．４５秒後を開始時点とする０．５秒間に対応する第２番目のブロックＡ２＋１０と、波形データＡ＋１０の先頭から０．９秒後を開始時点とする０．５秒間に対応する第３番目のブロックＡ３＋１０と、波形データＡ＋１０の先頭から１．３５秒後を開始時点とする０．５秒間に対応する第４番目のブロックＡ４＋１０と、波形データＡ＋１０の先頭から１．８０秒後を開始時点とする０．５秒間に対応する第５番目のブロックＡ５＋１０と、波形データＡ＋１０の先頭から２．２５秒後を開始時点とする０．５秒間に対応する第６番目のブロックＡ６＋１０と、波形データＡ＋１０の先頭から２．７秒後を開始時点とする０．５秒間に対応する第７番目のブロックＡ７＋１０と、波形データＡ＋１０の先頭から３．１５秒後を開始時点とする０．５秒間に対応する第８番目のブロックＡ８＋１０の８個のブロックに分割する。
【０１５１】
そして図３のステップＳ３で示した波形データＡに対応するテンプレートの作成手法と同様に、ブロックＡ１＋１０〜ブロックＡ８＋１０のそれぞれを、１個のブロック要素のサンプリング期間が１／６０秒間となるように、３０個のブロック要素に分割する。
【０１５２】
そして、各ブロック要素の波形データから各ブロック要素のテンプレート要素を求め、ブロックＡ１＋１０に属する３０個のブロック要素のテンプレート要素をブロックＡ１＋１０のテンプレートブロックとする。同様に、ブロックＡ２＋１０〜ブロックＡ８＋１０のそれぞれに属する３０個のブロック要素のテンプレート要素のそれぞれを、ブロックＡ２＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックとする。こうして波形データＡ＋１０に対応するテンプレートとして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックを作成する。なお、第８番目のブロックＡ８＋１０の末尾までの０．０５秒間は空白データとなるので、ブロック要素のテンプレート要素は０とする。
【０１５３】
すなわちこの例では、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれは、再生レートが＋１０％となった第１玩具４２の電子音の先頭を開始時点とする０．５秒間（第１期間の一例）分の電子音部分から、先頭から３．１５秒後を開始時点とする０．５秒間分の電子音部分までの８個の０．５秒間分の電子音部分のそれぞれに対応している。そしてブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの開始時点の間隔は、０．４５秒間（再生レートに応じた期間の一例）となっており、図１６の中段に示すブロックＡ１のテンプレートブロック〜ブロックＡ８のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの開始時点の間隔である０．５秒間に対して１０％短い期間となっている。
【０１５４】
そして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれは、隣接する電子音部分に対して重複しており、この重複期間は、電子音部分のそれぞれの期間である０．５秒間の１０％に相当する０．０５秒ずつとなっている。
【０１５５】
そして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの終了時点の間隔も、０．４５秒間（再生レートに応じた期間の一例）となっている。従ってこの例では、波形データＡ＋１０が取得された場合には、上記実施形態の図４に示した比較処理では、ブロックＡ１＋１０のテンプレートブロック〜ブロックＡ８＋１０のテンプレートブロックのそれぞれが選択されるタイミングの間隔は、０．４５秒間となる。すなわちこの例では上記実施形態とは異なり、テンプレートブロックのサンプリングレートと一致する再生レートの波形データが取得された場合であっても、各テンプレートブロックが選択されるタイミングの間隔は０．５秒間とはならず、波形データＡ＋１０が取得された場合には、０．５秒間に対して１０％短い期間となる。
【０１５６】
また、第１玩具４２の電子音の再生レートが−１０％となった場合の波形データに対応するテンプレートを作成する場合には、図１６のステップＳ２０２に示すように、原音となる波形データＡをサンプリングレートが−１０％となるように変換した波形データＡ−１０を求める。ここで波形データＡ−１０のサンプリング期間は４．４秒間となっている。
【０１５７】
そしてステップＳ２０３に示すように、４．４秒間の波形データＡ−１０を、１個のブロックのサンプリング期間が０．５秒間となるように、８個のブロックに分割する。そして４．４秒間の波形データＡ−１０を、波形データＡ−１０の先頭から０．５秒間に対応する第１番目のブロックＡ１−１０と、波形データＡ−１０の先頭から０．５５秒後を開始時点とする０．５秒間に対応する第２番目のブロックＡ２−１０と、波形データＡ−１０の先頭から１．１秒後を開始時点とする０．５秒間に対応する第３番目のブロックＡ３−１０と、波形データＡ−１０の先頭から１．６５秒後を開始時点とする０．５秒間に対応する第４番目のブロックＡ４−１０と、波形データＡ−１０の先頭から２．２秒後を開始時点とする０．５秒間に対応する第５番目のブロックＡ５−１０と、波形データＡ−１０の先頭から２．７５秒後を開始時点とする０．５秒間に対応する第６番目のブロックＡ６−１０と、波形データＡ−１０の先頭から３．３秒後を開始時点とする０．５秒間に対応する第７番目のブロックＡ７−１０と、波形データＡ−１０の先頭から３．８５秒後を開始時点とする０．５秒間に対応する第８番目のブロックＡ８−１０の８個のブロックに分割する。
【０１５８】
そして図３のステップＳ３で示した波形データＡに対応するテンプレートの作成手法と同様に、ブロックＡ１−１０〜ブロックＡ８−１０のそれぞれを、１個のブロック要素のサンプリング期間が１／６０秒間となるように、３０個のブロック要素に分割する。
【０１５９】
そして、各ブロック要素の波形データから各ブロック要素のテンプレート要素を求め、ブロックＡ１−１０に属する３０個のブロック要素のテンプレート要素をブロックＡ１−１０のテンプレートブロックとする。同様に、ブロックＡ２−１０〜ブロックＡ８−１０のそれぞれに属する３０個のブロック要素のテンプレート要素のそれぞれを、ブロックＡ２−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックとする。こうして波形データＡ−１０に対応するテンプレートとして、ブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックを作成する。ここで波形データＡ−１０のサンプリング期間は４．４秒であるので、波形データＡ−１０の末尾までの０．０５秒間の波形データに関しては、テンプレートブロックは作成されない。
【０１６０】
すなわちこの例では、ブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれは、再生レートが−１０％となった第１玩具４２の電子音の先頭を開始時点とする０．５秒間（第１期間の一例）分の電子音部分から、先頭から３．８５秒後を開始時点とする０．５秒間分の電子音部分までの８個の０．５秒間分の電子音部分のそれぞれに対応している。そしてブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの開始時点の間隔は、０．５５秒間（再生レートに応じた期間の一例）となっており、図１６の中段に示すブロックＡ１のテンプレートブロック〜ブロックＡ８のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの開始時点の間隔である０．５秒間に対して１０％長い期間となっている。
【０１６１】
そして、ブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれは、隣接する電子音部分に対して間隔が空いており、この間隔の期間は、電子音部分のそれぞれの期間である０．５秒間の１０％に相当する０．０５秒ずつとなっている。
【０１６２】
そして、ブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれが対応する電子音部分のそれぞれの終了時点の間隔も、０．５５秒間（再生レートに応じた期間の一例）となっている。従って、波形データＡ−１０が取得された場合には、上記実施形態の図４に示した比較処理では、ブロックＡ１−１０のテンプレートブロック〜ブロックＡ８−１０のテンプレートブロックのそれぞれが選択されるタイミングの間隔は、０．５５秒間となる。すなわち波形データＡ−１０が取得された場合には、０．５秒間に対して１０％長い期間となる。
【０１６３】
そしてこの例でも上記実施形態と同様に、第１玩具４２〜第４玩具４８の電子音の波形データに対応するテンプレートブロックとして、ブロックＡ１＋１０のテンプレートブロック〜ブロックＤ１４−１０のテンプレートブロックの４５０個のテンプレートブロックを作成する。
【０１６４】
そしてこの例では、図１６に示すように、波形データＡ＋１０の第５番目のブロックＡ５＋１０と、波形データＡの第５番目のブロックＡ５と、波形データＡ−１０の第５番目のブロックＡ５−１０とを比較すると、すなわち波形データの種類が同一でブロック番号の順序が同一であるがサンプリングレートが異なる複数のブロックの波形データを比較すると、それぞれの波形データの形状があまり相違していない。すなわちこの例では、波形データＡのサンプリングレートの変化に応じて、８個のブロックのそれぞれの開始時点の間隔を変化させているため、上記のような関係にある複数のブロックを比較すると、それぞれの開始時点に対応する波形データが互いに一致している。そしてこの例では、ブロック番号が大きくなっても、すなわち波形データの先頭から離れても、上記のような関係にある複数のブロックの波形データの形状の相違が大きくならない。
【０１６５】
５−１−２．比較手法
上述したようにこの例では、上記実施形態の図４に示した比較処理では、テンプレートブロックのサンプリングレートと一致する再生レートの波形データが取得された場合であっても、各テンプレートブロックが選択されるタイミングの間隔は０．５秒間とはならず、取得された波形データの再生レートに応じた間隔となる。しかし、この例における各テンプレートブロックが選択されるタイミングの間隔の再生レートに応じた変化は、波形データＡ＋１０や波形データＡ−１０などの再生レートの変化が大きい波形データが取得された場合であっても、０．５秒間に対して１０％となる０．０５秒間程度であり、図１０で示したブロック番号バッファのコマ数では３コマに過ぎない。従ってこの例では、最新のブロック番号が記憶された位置から３０コマ前の位置に記憶されているブロック番号を探索する際に、その前後「ｄ＝５」コマの範囲に記憶されているブロック番号を探索すれば、各テンプレートブロックが選択されるタイミングの間隔の再生レートに応じた変化を吸収することができる。
【０１６６】
また、この例でも上記実施形態と同様に、例えば第１玩具４２の電子音の再生レートが原音に対して＋６．２５％となる波形データなど、テンプレートブロックのサンプリングレートの中間の再生レートの波形データが取得される場合がある。
【０１６７】
図１７は、ゲームシステム１０がこの例のテンプレートブロックを用いる場合に、波形データＡ＋６．２５が取得された場合において、テンプレートブロックが選択されるタイミングを示す図である。ここで波形データＡ＋６．２５が取得された場合には、仮に波形データＡ＋６．２５に対応するテンプレートブロックが用意されているとすれば、波形データＡ＋６．２５に対応するテンプレートブロックは約２９／６０秒ごとに選択される。しかし波形データＡ＋６．２５に対応するテンプレートブロックが用意されていないことにより、図１７に示すように、波形データＡ＋５．０に対応するテンプレートブロックが選択される場合には、波形データＡ＋５．０に対応するテンプレートブロックは波形データＡ＋６．２５の外部音データブロックに対してサンプリングレートが−１．２５％となっているので、約２９／６０秒よりも１．２５％短い間隔で選択される。一方、波形データＡ＋７．５に対応するテンプレートブロックが選択される場合には、波形データＡ＋７．５に対応するテンプレートブロックは波形データＡ＋６．２５の外部音データブロックに対してサンプリングレートが＋１．２５％となっているので、約２９／６０秒よりも１．２５％長い間隔で選択される。
【０１６８】
しかしこの例では、例えば図１８に示すように、波形データＡ＋６．２５に対して、波形データＡ＋５．０に対応するテンプレートブロックと波形データＡ＋７．５に対応するテンプレートブロックとが交互に選択される場合には、約２９／６０秒よりも長い間隔でテンプレートブロックが選択される場合と短い間隔でテンプレートブロックが選択される場合とが交互に発生するものの、上記実施形態とは異なり、波形データＡ＋６．２５の取得が開始されてから時間が経過するにつれて、それぞれのテンプレートブロックが選択されるタイミングの間隔は約２９／６０秒から乖離しない。すなわちこの例では、ブロック番号が大きくなっても、それぞれのテンプレートブロックが選択されるタイミングの間隔の誤差が変化しない。
【０１６９】
従ってこの例では、上記実施形態とは異なり、最新のブロック番号が記憶された位置から３０コマ前の位置に記憶されているブロック番号を探索する際に、ブロック番号が大きくなるにつれ大きくなる誤差を考慮する必要がないため、ブロック番号を探索する範囲に最新のブロック番号が示すテンプレートブロックの順序Ｎを加算する必要がない。すなわちこの例では、上記実施形態と比較して、ブロック番号を探索する範囲を狭くすることができ、処理負荷を軽減することができる。
【０１７０】
図１９は、ゲームシステム１０がこの例のテンプレートブロックを用いる場合に図１３のステップＳ１１６で行う特定処理の流れの詳細を示すフローチャートである。図１９に示すようにこの例の特定処理では、ゲームシステム１０は、ブロック番号バッファに格納された最新のブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ（例えばＡ）、最新のブロック番号が示すテンプレートブロックの順序Ｎ（例えば２）、最新のブロック番号が示すテンプレートブロックのサンプリングレートＲ（例えば＋１０２．５）を特定する（ステップＳ２５０）。そして、ブロック番号バッファの位置のうちブロック番号を探索する位置を示すｎに「１」を代入し、１ブロック（３０コマ）前を探索することを指定する（ステップＳ２５２）。そして、この例における各テンプレートブロックが選択されるタイミングの間隔の再生レートに応じた変化や、周囲の雑音やＤＦＴ処理の影響により発生する数コマの誤差を考慮したＤを定数「５」として、ブロック番号を探索する範囲を指定するためのｄを、ｄ＝−Ｄとする（ステップＳ２５４）。そして、理想状態での間隔であるＢを「３０」として、最新のブロック番号が格納された位置からｎＢ＋ｄ前に格納されたブロック番号を探索する（ステップＳ２５６）。
【０１７１】
そして、ブロック番号が探索されると、探索されたブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ´（例えばＡ）、探索されたブロック番号が示すテンプレートブロックの順序Ｎ´（例えば１）、探索されたブロック番号が示すテンプレートブロックのサンプリングレートＲ´（例えば＋１０５．０）を特定する（ステップＳ２５８）。そして、最新のブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘと、探索されたブロック番号が示すテンプレートブロックが対応する電子音の種類Ｘ´とが一致し（ステップＳ２６０でＹ）、最新のブロック番号が示すテンプレートブロックの順序Ｎと、探索されたブロック番号が示すテンプレートブロックの順序Ｎ´との差がｎであり（ステップＳ２６２でＹ）、最新のブロック番号が示すテンプレートブロックのサンプリングレートＲと、探索されたブロック番号が示すテンプレートブロックのサンプリングレートＲ´との差の絶対値が２．５％以下である場合には（ステップＳ２６４でＹ）、ブロック番号カウンタのカウント値Ｃを更新する（ステップＳ２７４）。すると、ｄに「１」が加算され（ステップＳ２７６）、ｄがＤよりも大きい場合には（ステップＳ２７８でＹ）、ｎに「１」が加算され、更に以前のブロックを探索することを指定する（ステップＳ２８０）。そして、何ブロック前までを探索するかの閾値を示すｓｋｉｐよりもｎが大きい場合には（ステップＳ２８２でＹ）、ブロック番号カウンタのカウント値Ｃが閾値ｃを超えたか否かを判断し（ステップＳ２８４）、カウント値Ｃが閾値ｃを超えた場合には（ステップＳ２８４でＹ）、ブロック番号バッファに格納されたブロック番号のそれぞれが示すテンプレートブロックの種類Ｘのうち、最も数が多い種類Ｘを、マイク３８が検出した電子音の種類として特定し（ステップＳ２８６）、特定処理を終了する。一方、カウント値Ｃが閾値を超えない場合には（ステップＳ２８４でＮ）、マイク３８が検出した電子音の種類を特定せずに、特定処理を終了する。
【０１７２】
このようにこの例では、ブロック番号を探索する範囲に最新のブロック番号が示すテンプレートブロックの順序Ｎを加算する必要がない他に、図１５に示した上記実施形態の特定処理のステップＳ１６６〜ステップＳ１７２の処理を省略することができる。
【０１７３】
５−２．変形例２
また上記実施形態および変形例では、テンプレートを作成する場合には、４種類の玩具のそれぞれの音源ＩＣに記憶させた波形データをそのまま用いてテンプレートを作成する例を挙げて説明したが、図１に示したゲームシステム１０やパーソナルコンピューターなどの録音装置の近傍で４種類の玩具のそれぞれに電子音を出力させ、ゲームシステム１０や録音装置のマイクに４種類の玩具のそれぞれの電子音を検出させる。そして、４種類の玩具のそれぞれの電子音をゲームシステム１０や録音装置のマイクで検出した場合の波形データを取得するようにしてもよい。
【０１７４】
また上記実施形態では、９種類のサンプリングレートのそれぞれについて原波形のサンプリング期間に応じて予め定められた個数のテンプレートブロックを作成する例を挙げて説明したが、９種類のサンプリングレートのそれぞれに応じた個数のテンプレートブロックを作成するようにしてもよい。例えば、波形データＣ＋１０のサンプリング期間は、原波形である波形データＣのサンプリング期間が１１秒であるから、１１×０．９＝９．９秒となる。従って、波形データＣ＋１０に対応させて２２個のテンプレートブロックを作成しても、最後の２個のテンプレートブロックは空白データに対応するためテンプレート要素が０となってしまう。そこで原波形である波形データＣに対してサンプリングレートが＋１０％となる波形データＣ＋１０に関しては、２０個のテンプレートブロックを作成するようにしてもよい。一方、波形データＣ−１０のサンプリング期間は、１１×１．１＝１２．１秒となる。従って、波形データＣ−１０に対応させて２２個のテンプレートブロックを作成しても、最後の２．１秒間の波形データに関してはテンプレートブロックが作成されない。そこでサンプリングレートが−１０％となる波形データＣ−１０に関しては、２５個のテンプレートブロックを作成するようにしてもよい。すなわち、９種類のサンプリングレートのそれぞれに応じて、波形データが存在する部分に対応するテンプレートブロックを作成するようにしてもよい。
【０１７５】
そしてこの場合には、９種類のサンプリングレートのそれぞれに応じた個数のテンプレートブロックのうち７５％に相当する個数のテンプレートブロックのそれぞれが、ブロック番号バッファにおいて上述した条件を満たしている場合には、当該条件を満たしているブロック番号に対応する波形データが外部音の波形データＩｎであると特定するようにしてもよい。例えば波形データＣ＋１０に関しては２０個のテンプレートブロックが作成されるので、波形データＣ＋１０に対応するブロック番号であるＣ１＋１０〜Ｃ２０＋１０がブロック番号バッファに記憶されている場合には、２０個の７５％に相当する１５個のテンプレートブロックのそれぞれが上述した条件を満たしていれば、波形データＣが外部音の波形データＩｎであると特定するようにしてもよい。
【０１７６】
また上記実施形態および変形例では、第１期間が０．５秒間で第２期間が１／６０秒間である例を挙げて説明したが、第１期間が第２期間の整数倍となっていれば、両者の値は任意に定めることができる。
【０１７７】
また上記実施形態および変形例では、特定された電子音の種類に対応する処理として画像の表示制御を行う例を挙げて説明したが、特定された電子音の種類に対応する処理として、ゲームシステム１０のスピーカ３６から出力させる音を制御するようにしてもよい。例えば、実行部は、マイク３８により検出した外部音が４種類の玩具のいずれかの電子音であると特定した場合には、スピーカ３６から出力させる音を、特定した電子音の種類に対応させて変化させるようにしてもよい。例えば、特定した電子音の種類に対応するキャラクタの音声を出力させるようにしてもよい。また実行部は、マイク３８により検出した外部音が４種類の玩具のいずれかの電子音であると特定した場合には、ゲーム処理に用いるパラメータを、特定した電子音の種類に対応させて変化させるようにしてもよい。例えば、特定した電子音の種類に対応するキャラクタのパラメータを上昇させるようにしてもよい。
【０１７８】
また上記実施形態および変形例で説明した玩具が出力する電子音には、超音波や超低周波などの可聴音以外の音を含ませるようにしてもよい。すなわち、一般的な録音装置は超音波を録音することができないので、このような録音装置で玩具の音を録音し、録音した音を再生させても超音波成分が欠けてしまう。そこでこの例では、玩具が出力する所定音を録音した音を用いてゲームシステム１０に所定音に対応する処理を行わせることを防止するため、玩具が出力する電子音に超音波成分を含ませておく。そしてゲームシステム１０が、外部音データから可聴音の電子音を特定するとともに外部音データに可聴音以外の音が含まれているか否か判定することにより、マイク３８が検出した外部音が玩具から出力された所定音を録音した音ではなく、実際に玩具から出力されている電子音であるか否かを判定するようにしてもよい。
【０１７９】
ここで可聴音以外の音が含まれているか否かの判定は、マイク３８が可聴音以外の音を検出することにより現れるエイリアス成分の有無を判定することにより行うことができる。一般的な録音装置では、マイクが検出した超音波成分をフィルタによって削ってしまうが、フィルタの特性によっては超音波をある程度取得することができるので、この例では、ゲームシステム１０は、超音波をある程度取得することができるものとしておく。そしてゲームシステム１０のサンプリングレートがあまり高くない（超音波の周波数の２倍未満）場合には、ゲームシステム１０は超音波をエイリアス成分として取得することができる。従ってゲームシステム１０は、エイリアス成分に対応する周波数成分の音を検出した場合に、超音波が存在したと推定することができる。
【０１８０】
また上記実施形態および変形例では、プレーヤの選択操作により音入力モードが実行される例を挙げて説明したが、タッチパネルとして機能する操作面３９に玩具が載置されたことを検出したことに基づいて、音入力モードを実行するようにしてもよい。このようにすれば、マイク３８の近傍で玩具から電子音が出力されるので、電子音を特定しやすくなる。そしてこの場合には、第１表示面１７に「ここに玩具を置いてね」などの文字を表示させ、操作面３９に玩具を載置させるようプレーヤを誘導してもよい。
【０１８１】
また上記実施形態および変形例では、複数種類の玩具のそれぞれが１種類の電子音を出力させることができる例を挙げて説明したが、複数種類の玩具のそれぞれが複数種類の電子音を出力させることができるようにしてもよい。この場合には、１種類の玩具が出力する複数種類の電子音は、他の種類の玩具が出力することができないようにしてもよい。
【０１８２】
また上記実施形態および変形例で説明した比較処理や特定処理として、他の方式による処理を適用してもよい。
【０１８３】
また上記実施形態および変形例では、複数種類の電子音のそれぞれに対応する複数種類のテンプレートを記憶部に記憶させておく例を挙げて説明したが、複数種類のテンプレートのそれぞれが対応する音は電子音に限られない。例えば、アナログレコードとその再生装置を内蔵することによりアナログレコードに録音された音を再生する玩具や、予め定められたタイミングで笛に空気を吹き込むことにより笛で所定の曲を演奏する玩具や、予め定められたタイミングで太鼓を叩くことにより太鼓で所定のリズムを演奏する玩具など、玩具が発生させる複数種類の所定音のそれぞれに対応する複数種類のテンプレートを記憶部に記憶させておくようにしてもよい。
【０１８４】
また上記実施形態および変形例では、テンプレートが対応する音の発生源が複数種類の玩具のそれぞれである例を挙げて説明したが、音の発生源は玩具に限られず、予め定められた種類の携帯端末装置など、所定の形状を有する種々の形象体とすることができる。
【符号の説明】
【０１８５】
１０  ゲームシステム、１２  本体下部、１４  本体上部、１６  ヒンジ部、
１７  第１表示面、１８  第１液晶ディスプレイ、２０  十字キー、２２  第１ボタン、
２４  第２ボタン、２６  第３ボタン、２８  第４ボタン、３０  スタートボタン、
３２  セレクトボタン、３３  第２表示面、３４  第２液晶ディスプレイ、
３６  スピーカ、３８  マイク、３９  操作面、４０  タッチパネル、
４１  タッチペン、５０  第１検出部、５２  第２検出部、５４  音検出部、
５６  表示部、５８  音出力部、６０  情報記憶媒体、６２  記憶部、
１００  処理部、１０２  取得部、１０４  特定部、１０６  エラー判定部、
１１４  表示制御部、１１６  通信制御部、１２０  描画部、１３０  音生成部
【図２】
0005485641.tif 000002
【図３】
0005485641.tif 000003
【図４】
0005485641.tif 000004
【図５】
0005485641.tif 000005
【図６】
0005485641.tif 000006
【図７】
0005485641.tif 000007
【図８】
0005485641.tif 000008
【図９】
0005485641.tif 000009
【図１０】
0005485641.tif 000010
【図１１】
0005485641.tif 000011
【図１２】
0005485641.tif 000012
【図１３】
0005485641.tif 000013
【図１４】
0005485641.tif 000014
【図１５】
0005485641.tif 000015
【図１６】
0005485641.tif 000016
【図１７】
0005485641.tif 000017
【図１８】
0005485641.tif 000018
【図１９】
0005485641.tif 000019
【図１】
0005485641.tif 000020