(57)【要約】  録音した音声メロディに対して伴奏を生成する方法が、セグメントを含む録音した音声メロディを提供すること、録音した音声メロディの周波数分析を実施すること、メロディのセグメント内の各基本周波数の総継続時間を合計すること、合計結果に基づいてセグメントごとにそれぞれ可能な和音の確率を計算すること、計算した確率に基づいて、セグメントに対して１組の和音を選択すること、その１組の和音を録音した音声メロディに対する伴奏として出力すること、を含む。他の様々な方法、装置、システム、等も開示されている。
2010538335.tif 000002
【特許請求の範囲】
【請求項１】
録音した音声メロディに対する伴奏を生成するための方法であって、
セグメントを含む録音された音声メロディを提供するステップと、
前記録音された音声メロディの周波数分析を実施するステップと、
セグメント内の各基本周波数の総継続時間を合計するステップと、
合計結果に基づいて、セグメントごとに、可能な和音ごとの確率を計算するステップと、
前記計算した確率に基づいて、前記セグメントに対する１組の和音を選択するステップと、
前記１組の和音を前記録音された音声メロディに対する伴奏として出力するステップとを備える方法。
【請求項２】
周波数分析を実施する前記ステップは、自己相関法を使用するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記メロディの音高をシフトして前記音高を標準的な音符と整合させるステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記メロディにおけるスタッカート音符の継続時間を重み付けまたは拡張するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項５】
セグメントごとに、可能な和音ごとの確率を計算する前記ステップは、幾つかの所定の和音タイプに対する確率を計算するステップを含むことを特徴とする請求項１に記載の方法。
【請求項６】
１組の和音を選択する前記ステップは隠れマルコフモデル（ＨＭＭ）を使用するステップを含み、前記選択ステップは、オプションとして、
ビタビアルゴリズムを用いて、隠れマルコフモデルの観察結果の尤度を最大化する和音列を計算するステップか、または
少なくとも部分的に状態遷移確率に基づいて和音遷移行列から選択するステップを含み、
オプションとして、
隠れマルコフモデルの各隠れノードが１つのセグメントを表すか、
観測されたデータが音高値のヒストグラムを含むか、または
二つ以上の混合された遷移行列の各々が音楽ジャンルに対応することを特徴とする請求項１に記載の方法。
【請求項７】
１組の和音を選択する前記ステップの前に１つまたは複数の和音基準を選択するステップをさらに備え、前記１つまたは複数の和音基準はメジャーの和音基準またはマイナーの和音基準を含むことを特徴とする請求項１に記載の方法。
【請求項８】
セグメントに対する和音の順位を出力するステップをさらに備え、前記順位は少なくとも部分的に確率に基づくことを特徴とする請求項１に記載の方法。
【請求項９】
前記出力ステップは、オプションとして、セグメントに関連付けられた和音のリストまたは前記メロディに対するキーを出力するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
少なくとも部分的にコンピューティング装置によって実装され、
音符情報および和音情報を音楽データベースから入力するステップと、
前記音符情報および前記和音情報を用いて、和音に対応する状態を含む隠れマルコフモデルをトレーニングするステップと、
前記音楽データベース内の音楽のスタイルに関連付けられている状態遷移行列を特定するステップとを備え、
オプションとして、それぞれが前記音楽データベース内の１つまたは複数の音楽のスタイルに関連付けられた複数の状態遷移行列を特定するステップを備えることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
作詞作曲は、一般に、経験を積んだ音楽家に限られた技能である。実際、大多数の音楽家にも、作曲を可能とする専門知識の類が不足している。
【背景技術】
【０００２】
しかし、それよりも大多数の人々が音楽を楽しみ、ラジオと一緒に歌うのを楽しんでいる。この人々は、作曲するのに楽器および理論を何年も訓練および／または練習する必要がなかったならば、作曲したかったかもしれないし、実際、作曲を大いに楽しんでいたであろう。音楽家ではない人（例えば、歌唱力が少なくとも幾分か限られている創造的な人）が作詞作曲を味わい、独自の曲を持ち歩くことができるようにする様々な例示的な技術が後に説明されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｂｏｅｒｓｍａ，１９９３：「Ａｃｃｕｒａｔｅ  ｓｈｏｒｔ−ｔｅｒｍ  ａｎａｌｙｓｉｓ  ｏｆ  ｔｈｅ  ｆｕｎｄａｍｅｎｔａｌ  ｆｒｅｑｕｅｎｃｙ  ａｎｄ  ｔｈｅ  ｈａｒｍｏｎｉｃｓ−ｔｏ−ｎｏｉｓｅ  ｒａｔｉｏ  ｏｆ  ａ  ｓａｍｐｌｅ  ｓｏｕｎｄ」Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｐｈｏｎｅｔｉｃ  Ｓｃｉｅｎｃｅｓ  １７：９７−１１０．Ｕｎｉｖｅｒｓｉｔｙ  ｏｆ  Ａｍｓｔｅｒｄａｍ
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この技術のうち幾つかは音楽家でない人を対象としており、その他の例示的な技術は音楽家（例えば、プロの音楽家および作曲家）を支援するものである。
【課題を解決するための手段】
【０００５】
録音した音声メロディに対して伴奏を生成する方法が、セグメントを含む録音した音声メロディを提供すること、録音した音声メロディの周波数分析を実施すること、セグメント内の各基本周波数の総継続時間を合計すること、合計結果に基づいてセグメントごとにそれぞれ可能な和音（コード（ｃｈｏｒｄ））の確率を計算すること、計算した確率に基づいて、セグメントに対して１組の和音を選択すること、その１組の和音を録音した音声メロディに対する伴奏として出力すること、を含む。他の様々な方法、装置、システム、等も開示されている。
【０００６】
非限定的で非網羅的な実施形態が以下の図面を参照して説明されている。特に明記しない限り、様々な図全体を通じて同じ参照番号は同じ部分を指す。
【図面の簡単な説明】
【０００７】
【図１】和声付けモデルをトレーニングし、トレーニングした和声付けモデルを使用して自動的に伴奏（例えば、音声、シートミュージック、等）を生成するためのモジュールを含む例示的なシステムを示す図である。
【図２】メロディに基づいて伴奏（例えば、音声、シートミュージック、等）を生成するための例示的な方法を示す図である。
【図３】三和音と例示的な和音遷移行列テーブルの抜粋を示す図である。
【図４】音符分布ベクトル（ｎｏｔｅ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｖｅｃｔｏｒ）をグラフィカルに示すようにプロットした図である。
【図５】例示的なメロディ観察行列（ｍｅｌｏｄｙ  ｏｂｓｅｒｖａｔｉｏｎ  ｍａｔｒｉｘ）テーブルの抜粋を示す図である。
【図６】４つの小節の各々に対して１つの和音を関係させた、４つの小節に対する音符分布のプロットと和音を表す隠れ状態とにより例示的な隠れマルコフモデル技法を示す図である。
【図７】録音したメロディを和声付けするための例示的なＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を示す図である。
【図８】和声付けした録音したメロディに対するキーを選択するための例示的なＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を示す図である。
【図９】和声付けした録音したメロディに対して和音を調節するための例示的なＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を示す図である。
【図１０】和声付けした録音したメロディの和音をロックするための例示的なＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）を示す図である。
【図１１】本明細書で論じた様々な例示的な方法の一部または全部を実装するために使用できる例示的なコンピューティング装置の様々な構成要素を示す図である。
【発明を実施するための形態】
【０００８】
本明細書で説明する様々な例示的な技術は、生のまたは録音したメロディラインが与えられた場合に伴奏を生成することに関する。様々な例は、音楽家ではないが、歌いたくて、少し創造性がある人（例えば、カラオケが好きな人）を対象とする。係る人は、頭の中にすばらしいメロディが浮かんでも、楽器をそのように演奏することができず、楽器で何をすればよいか分からないかもしれない。別の人は、（ワシントン州レドモンドのマイクロソフト社の）ＰｏｗｅｒＰｏｉｎｔ「登録商標」プレゼンテーション用の短いジングルを考案したいだけかもしれず、他の重要な人のために作曲したいかもしれず、または歌ってＹｏｕＴｕｂｅ「登録商標」上で世界に知らせたいだけかもしれない。例示的なシステムでは、人はこれらの例の何れをも、メロディを歌ってマイクロフォンに吹き込み、システムのユーザインタフェース上の「伴奏」をクリックすることによって、実現することができる。それに応答して、システムは、人が今歌ったものに加えてバッキングトラック（即ち、伴奏）を出力する。バッキングトラックは、和音、楽器、およびあらゆるものを含むことができる。様々な例は歌うこと（即ち、楽器としての声）に関するが、係るシステムはメロディを楽器（例えば、サックス、トランペット、等）から入力として受け取ってもよい。
【０００９】
例示的な機構では、録音した音声メロディをとって、そのメロディの伴奏となる和音を選択する。例示的なユーザインタフェースは係る機能を内包し、追加の機能は、主な対象である「音楽家でない」ユーザの他、音楽家に対しても有用である。
【００１０】
以下では、具体的な例示的機構を含めて、次の項目の各々の詳細を説明する。即ち、例示的な和声モデリング機構がメロディを和音にどのように対応付けるかをトレーニングデータから学習すること、例示的な伴奏生成機構が、作詞作曲に関する学習した情報を、和音パターンを選択するために提供された音声メロディと組み合わせること、例示的なユーザインタフェース機構が例示的な自動伴奏システムに対するアクセスを提供すること、所謂「マイソング〜音楽家版」の１組の例示的な機能が、他の構成要素を拡張しシステムを音楽家および作曲家に対してカスタマイズできること、である。
【００１１】
図１は、和声付けサブシステム１０２、伴奏生成サブシステム１０４およびＵＩ（ｕｓｅｒ  ｉｎｔｅｒｆａｃｅ）サブシステム１０６といった様々なサブシステムをもつ例示的なシステム１００を高いレベルで提示する。和声付けサブシステム１０２（例えば、和声モデラ）は、音楽データベース１１０を処理して和声付け規則を学習する。音楽データベース１１０はメロディおよび和音（例えば、三和音または他の和音形）を含む。サブシステム１０２は、一般に、エンドユーザと直接対話することなく動作する。サブシステム１０２は、トレーニングされた和声付けモデル１３０を提供するために和声モデリング１２０を実施する。
【００１２】
伴奏生成サブシステム１０４（例えば、伴奏生成器）は対話的な伴奏生成アプリケーション１４０を含む。この対話的な伴奏生成アプリケーション１４０は、例えば、（例えば、サブシステム１０４の構成に応じて）音声入力を録音するかまたは録音した音声入力を受け取り、和声付けサブシステム１０２から出力された規則（例えば、トレーニングされたモデル１３０）を使用して音声入力の伴奏となる和音を選択する。伴奏生成サブシステム１０４の構成に応じて、モジュール１４０は、これらの和音を再生するか、またはこれらの和音を録音した音声とともに再生することができる。この例は音声入力または録音した音声入力に関するが、メロディを声以外の楽器から得てもよい。
【００１３】
図２は、例示的な方法２００をシステム１００の様々な構成要素とともに示す。方法２００によれば、録音ステップ２１０で、ユーザ２０１が録音装置２０８のマイクロフォンに歌を吹き込んだときにユーザ２０１の音を録音する。この例では、録音装置２０８はコンピュータベースの録音装置（例えば、コンピュータに関連付けられたオーディオカード、オーディオチップ、等）またはデジタル出力（例えば、ストリームまたはファイル）を生成するスタンドアロンの録音ユニットであってもよい。和音選択ステップ２２０では、例えば、ＵＩ１６０を通して入力された命令を介してデジタルオーディオを受け取る。和音選択ステップ２２０では次いで伴奏生成モジュール１４０を使用してバッキングミュージック（即ち、伴奏）を生成する。伴奏生成モジュール１４０はトレーニングされた和声付けモデル１３０に依存する。
【００１４】
図２の例によれば、出力ステップ２４０で、バッキングミュージックをオーディオファイル１９２（例えば、音声メロディ単体または音声メロディに伴奏を加えたもの）として出力し、且つ／またはバッキングミュージックをリードシート１９４として（単体でまたはメロディとともに）出力する。再生ステップ２５０では、再生装置２０９を用いてオーディオファイル１９２を再生し、リスナ２０３がオーディオファイル１９２を楽しむ。この場合、リスナ２０３は歌手２０１と同じ人であってもよい。出力がリードシートである場合は、演奏家が楽器２０５で伴奏を演奏することができる。
【００１５】
例示的なシステムは、場合によっては（オプションとして）、録音装置および／または再生装置を備え、これらの装置は単一の装置であってもよい。図２の例では、録音装置２０８はアナログデジタル変換器、プロセッサおよびメモリを備え、再生装置２０９はデジタルアナログ変換器、プロセッサおよびメモリを備える。コンピュータまたはコンピューティング装置は、図２に関して説明したように録音、再生、生成および出力するためのモジュール（ハードウェアおよび／またはソフトウェア）を備えてもよい。そのような装置は、場合によっては、和声付けモデルをトレーニングしてもよい。多くの事例では、係るモデル（例えば、モデル１３０）のトレーニングは別のところで行われ、トレーニングされたモデルは、伴奏生成モジュール（例えば、モジュール１４０）によって使用するためにユーザに提供される。
【００１６】
和声モデラは、基本的に、「良い伴奏パターンとはどのようなものですか？」という質問に答える。例示的なアプローチでは、和音のパターンが曲の音楽的な本質を捉えていると仮定しているが、これは、「ポップ風の」対象ジャンル（例えば、ポップ、ロック、カントリー、Ｒ＆Ｂ、等）に対しては適切な仮定である。他のジャンルの音楽（例えば、クラシックの曲、ヘビーメタル、オペラ、等）の場合は、他のアプローチを使用してもよい。重要なことは、対象のジャンルに対して、「リードシート」、即ち、メロディに１組の和音を加えたものが基本的に、音楽家が歌手の代役（例えば、ピアノ、キーボード、ギター、等）を務め歌手の伴奏をするために必要な全ての情報を提供するということである。
【００１７】
図１に関して述べたように、例示的な和声付けサブシステム１０２は、リードシートのデータベースを調べ、後に新しいメロディを取得し適切な和音を生成するのに必要な本質的な情報を捉えるために、機械学習技法を使用する。例示的なプロセスを以下で説明し、和声付けモデリングプロセスの簡単な要約で締めくくることとする。
【００１８】
前処理
和声モデラの最初のステップは幾つかの表記上の調整を音楽データベースに対して行うことであり、この調整によりさらなる分析が簡略化される。曲のデータベースが（例えば、和音およびメロディを規定するＭｕｓｉｃＸＭＬ形式または他のデータ形式で）与えられると、和声モデラは先ず、曲のセグメントを表現するための、データベース内の１つの和音を選択する。一般に、係るアプローチは、セグメントに関する全ての音符を足し合わせ、これらの音符に単一の和音を関連付ける。和音は、音高ごとの総数が正しく合計されている限り、１０小節または１つの１６分音符だけ続くこともありうる。
【００１９】
従って、和音は１つの「小節」だけ続くことができるか、または和音は複数の小節にわたることができる。同様に、より小さな単位も可能である。例えば、曲が４／４拍子（小節あたり４拍）で作曲されているが小節あたり２個の和音をしばしば含む場合、適切なセグメントは２つの４分音符であろう。設定を調節して最小のセグメントを定義することができる。例えば、極度に高速な和音の変化（例えば、元の楽譜において小節あたり２個以上の和音）を無視した設定でもよい。係る高速な変化が本質的なメロディの和声付けではなく楽器の動きを一般に表すことがよくあるので、係るアプローチを正当化することができる。
【００２０】
音楽データベースは有限のデータベースであるので、全ての可能な和音（例えば、七和音、九和音、十一和音、十三和音、増（オーグメント）六和音、等）に対する和声付けパターンを学習しようと試みることで、和音タイプごとのデータ量を削減することができる。従って、和音を、場合によっては、三和音に簡略化することができる。この場合、例えば、和音は、長三（メジャー（ｍａｊｏｒ））和音、短三（マイナー（ｍｉｎｏｒ））和音、増（オーグメント（ａｕｇｍｅｎｔｅｄ））和音、減（ディミニッシュト（ｄｉｍｉｎｉｓｈｅｄ））和音、または係留（サスペンデッド（ｓｕｓｐｅｎｄｅｄ））和音に短縮される。図３は、長三和音、短三和音、増和音、減和音、または係留和音に対する三和音３１０を示す。これらは、三和音の４つの音色である。三和音の音色は、それが含む音程によって決まる。例えば、長三和音は長三度をその根音からその三度まで含み、短三度をその三度からその五度まで含む。また、その根音からその五度までの音程は完全五度である。全ての和音を三和音に短縮することで、有限のデータベースにおいて観測できる各和音タイプの数を増やすことができ、このように短縮することは、例えば短和音に対する和声付け規則が短七度の和音にも等しく良く当てはまることが期待されるという事実と一貫するアプローチである。
【００２１】
和声付け規則は曲のキーと独立であることが期待されるので、全ての曲（和音およびメロディを含む）は同じキーに移調される。図３の例は表記の便宜上選択されたＣのキーである。入力データベースは、その元のキーでラベル付けされると想定されており、従って移調は自明な操作である。ここで、「キー」という言葉は単純に調号の中の嬰音または変音の数を意味するように使用されていることに留意されたい。さらに、以下の説明では、同じ調号が長音階と短音階を指すことができるという事実を取り上げる。例示的なアプローチでは、曲が元のデータベース内のキーを変更する場合、それぞれの単一のキーの部分は原則として別の曲として扱われる。
【００２２】
以上の例は音楽データベースに依存するが、代替的なアプローチは規則ベースであることができる。例えば、音楽データベースを分析して規則を確立してもよく、またはより単純に、規則を音楽理論のテキストから得てもよい。規則は様々な要因（例えば、演奏時間、種族的出身、楽器的制限、等）の何れかに依存してもよい。この代替的なアプローチでは、和音遷移パターンの学習は任意である。
【００２３】
和音遷移パターンの学習
図３はまた、学習した和音遷移パターンを含む和音遷移テーブル３２０を示す。和音遷移パターンの学習は和声モデラの次のステップである。このステップは、メロディと独立して、曲における和音間の遷移を支配する規則を学習することによって進む。これを行うために、和声モデラは、各「曲」（曲は分割されていてもよいことに留意されたい）における和音の変化を調べ、全ての和音から全ての他の和音への観測された遷移の数を数える。即ち、和声モデラは、データベース全体において所与の行の和音が所与の列の和音に遷移したと観測された回数を各要素が表すテーブルを構築する（例えば、図３のテーブル３２０を参照）。このデータベースは、各根音にある和音タイプ（Ｃ、Ｃ＃、等）ごとの行および列、ならびに「曲の開始」に関する行、ならびに「曲の終わり」に関する行を有し、全体で（１２＊５）＋２＝６２個の行と６２個の列を有する。図３の例では、テーブル３２０は和声モデラによって出力された２つのテーブルのうち最初のものである。
【００２４】
新しい伴奏パターンにおいてそれぞれの可能な和音が既知の和音に続く確率、即ち、Ｐ（Ｃi+1=C1｜Ｃi=C2）を計算するために、このテーブルの個々の行を正規化することができる。これにより、「ちょうど今、曲がＢメジャー和音を再生している場合、次の和音がＦ＃メジャー和音である確率はいくらか？」のような質問に答えることを支援する。図４に示すように、この音符分布ベクトルをグラフィカルに直感的に表現することもでき、この音符分布ベクトルは所与の和音に対してプロット４１０のように見えるかもしれない。音楽的な言葉で述べると、これは、音符「Ｃ」、「Ｅ」、および「Ｇ」（Ｃメジャー和音を構成する音符）がこの和音で特によく観測された（全て０.１を超える）ので、Ｃメジャー和音に対する音符分布を表すかもしれない。
【００２５】
メロディ和声付け規則の学習
次に、メロディ和声付け規則の学習を行う。ここでは、和声モデラが、どの音符が各和音タイプに関連付けられるかを支配する規則の表現を構築する。これを行うために、和声モデラは各曲における各小節を調べ、その小節内のメロディにおいて発生する各音高の総継続時間を合計する。この小節は、前の小節において開始するか後続の小節に延びる音符を含んでもよいが、小節を処理した後は、調べた小節において発生する各音高の継続時間のみが合計に含まれる。継続時間は１小節のユニットで合計され、従って、例えば、４／４拍子の曲における４分音符には０．２５の継続時間が割り当てられる。スタッカート音符がシステムに合理的な影響を及ぼすことができるように、１拍未満の全ての音符は、合計する前に、１泊の長さか、または後続の音符まで続くかのうち、どちらか短い方に延ばされる。
【００２６】
この時点で各小節には一意な和音が割り当てられているので（上の前処理を参照）、これらの合計した音高の継続時間は次いで、データベース内の全ての曲に対して各和音で観測された各音高の総継続時間を含むテーブルに挿入される。図５は、テーブル５１０を、所与の列の音符が所与の行の和音で観測された（データベース全体における）総継続時間を各要素が表すテーブルの大まかな表現として示す。係るテーブルを、メロディ観測行列と称する。
【００２７】
和声モデラは次いで、このテーブルの各行の合計が１．０になり、所与の和音が再生されている間に一瞬見れば各音高が分かる確率が残されるように、このテーブルの各行を正規化する。このアプローチは、「ちょうど今、曲がＢメジャー和音を再生している場合、メロディがＦ＃音を再生している確率はいくらか？」のような質問に答えることを支援する。音符と和音の組合せにはデータが観測されないものが多い。例えば、（稀ではあるが）Ｃａｕｇ和音ではＣ＃の音高は決して見られない。従って、ハーモナイザは、全ての和音で短期間に観測された全ての音符の数個の「仮想的な」インスタンスを追加する。これらの仮想の音符の継続時間は現実の音符の継続時間と比較して非常に短いが、このテーブル内の零を除去し分布を幾分かスムーズにする効果を奏する。このタイプの「仮想的な」観測は機械学習の用語において「共役事前分布」として知られている。
【００２８】
メジャー／マイナーの分離
例示的な方法には、メジャー／マイナーの分離技法が含まれる。実際、人気のある音楽は、メジャーキー（長調）およびマイナーキー（短調）の曲に対して極めて異なる和音遷移行列およびメロディ観測行列を示す。例示的なアプローチでは、和声モデラは従って、上のステップを実施する前にデータベース全体を２つの別々のデータベースに分離し、２つの別々の和音遷移行列と２つの別々のメロディ観測行列（即ち、メジャーキー用に１つ、マイナーキー用に１つ）を生成する。
【００２９】
音楽データベースは、概ね、その調号の観点からラベル付けされるがその「モード」、即ち、調号がメジャーキーまたはマイナーキーを表すかどうか、の観点からラベル付けされることはない。従って、データベースをメジャーサブデータベースとマイナーサブデータベースに分割するための例示的な自動化された手続きを使用することができる。この手続きでは、先ず、以下の経験則に従ってそのメジャー性またはマイナー性に関して「推定」して各曲を初期化する。
１.  Ｃ和音とＡｍ和音の相対周波数
２.  Ｆ和音とＤｍ和音（下属和音）の相対周波数
３.  ＧからＣへの遷移とＥからＡｍへの遷移（終止形）の相対周波数
【００３０】
これらの最初の経験則を用いて、データベースを「メジャー」の曲と「マイナー」の曲に分離することができる。和音遷移行列とメロディ観測行列を次いで両方のサブデータベースに対して構築することができる。例示的なアプローチは次いでデータベース内の全ての曲を参照し、全ての和音遷移の確率を（両方の和音遷移行列を用いて）計算し、各和音で観測される全ての組の音符を（両方のメロディ観測行列を用いて）計算する。曲の元の分類（メジャーまたはマイナー）に関わらず、このアプローチはこの時点で、この曲に対する和音および音符の確率がマイナー行列を用いる場合よりもメジャーキー行列を用いる場合の方が高い場合には、曲をメジャーキーの曲とラベル付けする。次に、新しい行列を、新しいモードを割り当てて上記の処理を反復することによって構築することができる。これを、その分類をメジャーからマイナーまたはその逆に変更する曲がなくなるまで続ける。結果として、曲はメジャーキーおよびマイナーキーへと確実に分類され、和声モデラからの最終出力は各キー（メジャーおよびマイナー）に対する和音遷移行列および各キー（メジャーおよびマイナー）に対するメロディ観測行列となる。
【００３１】
例示的な和声モデリングのプロセスには、小節ごとに１つの和音を選択すること、和音を三和音に簡略化すること、曲をＣのキーに移調すること、全ての和音から他の全ての和音への観測された移調の回数を計測して和音遷移行列を構築すること、各曲における各小節を調べて、その小節内部のメロディにおいて発生する各音高の総継続時間を合計すること、合計した音高を用いてメロディ観測行列を構築すること、メロディ観測行列の行を正規化して共役事前分布を追加すること、およびこの手続きを２つのサブデータベースに対して繰り返し実施してデータベース全体をメジャーの曲とマイナーの曲に分割すること、各分類に対して別々の行列を生成すること、が含まれる。
【００３２】
例示的な方法には、音符情報と和音情報を音楽データベースから入力すること、音符情報と和音情報を用いて、和音に対応する状態を含む隠れマルコフモデル（ＨＭＭ）をトレーニングすること、状態遷移行列を、音楽データベース内の音楽のスタイルに関連付けられるとして特定すること、が含まれる。係る方法は、さらに、各状態遷移行列が音楽データベース内の１つまたは複数の音楽スタイルに関連付けられる複数の状態遷移行列を特定することを含むことができる。このアプローチではＨＭＭを使用するが、他のアプローチを用いてトレーニングを行ってもよい。後述するように、トレーニングしたＨＭＭを伴奏生成において使用することができる（例えば、図１および図２のトレーニングしたモデル１３０を参照）。
【００３３】
伴奏生成器
伴奏生成器（例えば、図１および図２を参照）は、基本的には、メロディを入力として受け取り、次いで受け取ったメロディの伴奏となる和音を選択する。出力の形態は、図２に関して説明したように、様々であることができる（例えば、音声、オーディオファイル、シートミュージック、等）。一般に、伴奏の生成はメロディを受け取った後に限り行われる。従って、伴奏生成をシステム１００の第２段階と見なすことができる。
【００３４】
例示的な方法では、伴奏生成器は和声モデラによって出力される行列を使用してボイス（オーディオ）トラックに対するバッキング和音（ｂａｃｋｉｎｇ  ｃｈｏｒｄ）（例えば、バッキングトラックまたは単純に伴奏）を選択する。生成モジュールからの出力は１組の和音であり、例えば、メロディの伴奏とするための「リードシート」または「フェイクブック」に含まれるものと等価であるものに相当する。
【００３５】
後述する例では、以下の仮定を行う。
１．  分析されているボイストラックは「トラックをクリック」により演奏され、テンポは一定（即ち、タイミング情報をボイストラックから抽出する必要がない）。換言すれば、ボイストラックにおいて厳密な小節の境界が既知である。
２．  選択したテンポで小節ごとに生ずる和音変化の数をユーザが指定（小節ごとの１つの和音変化により、実演データベース（ｄｅｍｏｎｓｔｒａｔｉｏｎ  ｄａｔａｂａｓｅ）中の大部分の曲がかなり良く説明される）。
【００３６】
小節の境界に関して、ボイストラック（例えば、録音した音声メロディ）は、小節を特定するための様々な情報の何れか（例えば、小節の境界）を含むことができる。さらに、録音したメロディを小節または拍に分割するための技法が存在する。この技法を、伴奏生成に使用することができる。
【００３７】
ピッチトラッキング
例示的な伴奏生成手続きで使用されるステップを以下で説明し、簡単な要約で締めくくる。伴奏生成器の最初の作業は、一般に、音声トラックで提供された声の音高を計算することである。音高を、オーディオトラック内の一連の時点で基本周波数を計算する自己相関法(autocorrelation technique)を用いて計算することができる（例えば、非特許文献１を参照）。実演のためには、小節ごとに２４０個（数は任意であり、ここでの周波数のサンプルは、一般に、意味のある音符よりかなり短いことに留意されたい）の時点からなる周波数で計算を行う。
【００３８】
一般に、生成技法は必ずしも周波数パターンを音楽的な表現（例えば、ＭＩＤＩメロディ）に変換することは試みず、必ずしも音符の継続時間またはタイミングを抽出しようとはしない。周波数パターンには一般に幾分雑音があるが、周波数パターンは、大部分の歌手に対しては、意図した音高の周りに集まる傾向があり、または少なくとも意図した音高にある何らかの内容を含む。これにより、全ての音高が音楽的に意味のある時間スケールでＭＩＤＩ風の表現に離散化した場合に失われるはずである何らかの堅牢性が、マイナーの音高誤差にもたらされる。１つのアプローチでは、さらに、オクターブ情報を廃棄することができる（即ち、全ての音高が単一のオクターブにシフトされる）。なぜならば、オクターブ情報は音楽的に関連する可能性が低く、オクターブの誤りはピッチトラッキングにおいて非常によくあることであり、このことがオクターブ情報の信頼性を失わせるからである。
【００３９】
音高に関して、音高が標準的な音符周波数と正確に整合しない可能性が高い。その理由は、例えば、ユーザがバッキングトラックに合わせて歌っておらず、音高が「正確な」音調（ｍｕｓｉｃａｌ  ｋｅｙ）から少々ずれる場合があるからである。時点ごとに、生成技法では、周波数追跡装置によって出力された周波数と最近傍の音符との間の距離を見つける。係るアプローチでは、周波数追跡装置によって出力される全ての周波数にわたってこの距離の平均をとり、全ての周波数をこの平均値だけシフトする。このアプローチは、ボイストラック全体の音高をシフトするための最善策を表し、従って、ボイストラックを歪ませることなく、ボイストラック全体の音高は標準的な音符と最適に整合する。
【００４０】
各小節における、和音またはメロディの確率計算
メロディに対して音高が与えられると、例示的な生成器は各小節における和音またはメロディの確率を計算する。例えば、入力されたボイストラックの小節ごとに、生成器は小節内で発生する各音符の総継続時間を合計することができる。この技法では、和声モデラ（上を参照）によって計算したメロディ観測行列の行と形態的に等価な、１２個の要素からなるベクトルｘを与える。説明のため、曲がメジャーキーであり、対応する観測行列および対応する遷移行列を使用することが適当であると仮定する。さらに以下では、この技法がメジャーのメロディおよびマイナーのメロディの両方へどのように汎化されるかを説明する。
【００４１】
音高値からなる小節が与えられ、音高値が導出される特定の分布を仮定し（例えば、多項分布を仮定する）、現在の和音が６０個の可能な和音（１２個の根音＊５個の和音タイプ）の各々であった場合にこのメロディの小節が生ずる確率の計算を行う。このメロディをサポートする幾つかの和音があるがそれらの和音は未知であると仮定する。これらの確率の各々を、Ｐmelody|chordまたはＰ（ｍｅｌｏｄｙ＝ｘ｜ｃｈｏｒｄ＝ｃ）と書くこととする。
【００４２】
このアプローチは、「現在の和音がロマイナーである場合、現在の音符の組はどのようなものであるか？」のような質問に答える。現在の小節に関して参照すべき唯一のものがメロディであった場合、最大の事後確率、即ち、
ｐ（ｃｈｏｒｄ｜ｍｅｌｏｄｙ）＝［ｐ（ｍｅｌｏｄｙ｜ｃｈｏｒｄ）*ｐ（ｃｈｏｒｄ）／ｐ（ｍｅｌｏｄｙ）
を有する和音が各小節で選択されるはずである。
【００４３】
ｐ（ｍｅｌｏｄｙ）は全ての和音で等しいので、例示的な生成技法では前述の式で分子が最大である和音を選択することができる。
【００４４】
しかし、例示的なアプローチでは事後確率を計算するために情報を全ての利用可能な和音にわたって積分するので、このアプローチでは、ボーカルトラック内の小節ごとに６０個の確率ｐ（ｃｈｏｒｄ｜ｍｅｌｏｄｙ）全てを含むリストを記憶するだけである。
【００４５】
メロディ観測行列はＣのキーに移調した曲を反映し、従って、差し当たり、調べているメロディもＣのキーであることを暗黙的に仮定する。このキーが他の任意のキーよりも可能性があるという理由はない（なぜならば、音声入力は、ユーザがバッキングトラックなしで歌っていることを表すからである）。さらに以下では、全ての可能なキーに汎化するための技法を説明する。
【００４６】
最適な和音列の選択
例示的な伴奏生成器は、メロディに対して最適な和音列を選択することを目的とする。本明細書で説明したように、例示的な伴奏生成器は１階の隠れマルコフモデル（ＨＭＭ）を使用して曲を形成する。この場合、各隠れノードは１つの小節を表し、可能な状態は６０個の可能な和音であり、観測データは各小節における音高ベクトルｘ（例えば、ヒストグラムの音高値）である。（ＨＭＭアプローチで一般に使用される）ビタビアルゴリズムを使用して、最もありそうな和音列、即ち、観測結果の尤度を最大化する和音の列を計算することができる。状態遷移確率は和音遷移行列から直接的に導出され、生起確率（尤度）の計算は既に述べたように進む。
【００４７】
ＨＭＭベースのアプローチでは、メロディを一連のセグメントとして表すことができる。これらのセグメントの期間は等しくても等しくなくてもよい。例えば、あるセグメントは半音符であってもよく、別のセグメントは２個の全音符（例えば、２小節）である。ＨＭＭのアプローチではセグメントを「時間ステップ」と称することができ、この場合、各時間ステップは観測ノード（例えば、観測情報）と隠れノードを有する。観測情報は様々な形態のうち何れかであることができる。以下で論ずるように、観測情報を、メロディに対して実施される周波数分析に従って編成することができる。係るアプローチでは、メロディの各セグメント（即ち、「時間ステップ」）は対応する音高値の観測ヒストグラムを有することができる。ＨＭＭの言葉で述べると、音高値を音高ベクトルまたは「音符」ベクトルとして入力することができる。
【００４８】
図６は、例示的なＨＭＭベースの技法６１０に対する状態図を示す。この状態図を、４つの小節と４つのセグメントをもつ曲に関して実行されていると見ることができる。「曲の開始」からそれぞれの可能な和音までの遷移、およびそれぞれの可能な和音から「曲の終わり」までの遷移は和音遷移行列で表されたことを思い出すこと。従って、この段階では特別な処理は必要ではない。
【００４９】
このモデルに対する全確率を次のように書くことができる。
Ｐ（ｍｅｌｏｄｙ１．．．ｍｅｌｏｄｙＮ｜ｃｈｏｒｄ１．．．ｃｈｏｒｄＮ）＝
Ｐ（ｃｈｏｒｄ１）*Ｐ（ｍｅｌｏｄｙ１｜ｃｈｏｒｄ１）*Ｐ（ｃｈｏｒｄ２｜ｃｈｏｒｄ１）*．．． *Ｐ（ｃｈｏｒｄＮ｜ｃｈｏｒｄＮ−
１）*Ｐ（ｃｈｏｒｄＮ｜ｃｈｏｒｄＮ）
【００５０】
対数領域では、これは、
ｌｏｇＰ（ｍｅｌｏｄｙ１．．．ｍｅｌｏｄｙＮ｜ｃｈｏｒｄ１．．．ｃｈｏｒｄＮ）＝
ｌｏｇＰ（ｃｈｏｒｄ１）＋ｌｏｇＰ（ｍｅｌｏｄｙ１｜ｃｈｏｒｄ１）＋ｌｏｇＰ（ｃｈｏｒｄ２｜ｃｈｏｒｄ１）．．．
＋ｌｏｇＰ（ｃｈｏｒｄＮ｜ｃｈｏｒｄＮ−１）＋ｌｏｇＰ（ｃｈｏｒｄＮ｜ｃｈｏｒｄＮ）
となる。
【００５１】
ビタビアルゴリズム（Ｖｉｔｅｒｂｉ  Ａｌｇｏｒｉｔｈｍ）では、全確率を最大化する和音の列、ｃｈｏｒｄ１（和音１）・・・ｃｈｏｒｄＮ（和音Ｎ）を選択する。
【００５２】
各状態の確率をビタビ手続きの前半部で計算するには、その状態が「正しい」和音であると仮定した場合の観測された音符の対数確率と、前のノードにあるそれぞれの可能な和音からこの和音へ遷移する対数確率を合計する必要がある。観測された音符の対数確率を明示的に増大させる重み係数、即ち、メロディ観測重みをこの段階で導入する。この観測重みは、場合によってはユーザが制御することができ、例示的な生成器が「良好な和音進行（小さな観測重み）」と「入力された音符と非常に密接に適合する和音（大きな観測重み）」から選択することを支援する。実際には、このパラメータの値が大きいと、選択された和音がより「興味深い」または「意外な」ものとなり、このパラメータの値が小さいと、極めて平凡な和音進行が生成される傾向がある。
【００５３】
この重み項を用いた全確率を次のように書くことができる。
ｌｏｇＰ（ｍｅｌｏｄｙ１．．．ｍｅｌｏｄｙＮ｜ｃｈｏｒｄ１．．．ｃｈｏｒｄＮ）＝
ｌｏｇＰ（ｃｈｏｒｄ１）＋ｗ0ｌｏｇＰ（ｍｅｌｏｄｙ１｜ｃｈｏｒｄ１）＋ｌｏｇＰ（ｃｈｏｒｄ２｜ｃｈｏｒｄ１）
＋ｌｏｇＰ（ｃｈｏｒｄＮ｜ｃｈｏｒｄＮ−１）＋ｗ0ｌｏｇＰ（ｃｈｏｒｄＮ｜ｃｈｏｒｄＮ）
【００５４】
メロディがＣメジャーであると仮定すると、この段階の出力が所与のメロディを伴奏するための最適な和音列である。
【００５５】
キーの決定
ここまで、和声モデラによって出力された遷移行列および観測行列においてデータを直接的に適用できるようにするために、入力されたメロディがＣメジャーであったと想定した。実際には、メロディがＣであると信ずるかメロディがメジャーキーのメロディであると信ずる理由はなく、従って、例示的な方法ではこの手続き全体を２４回、即ち、各根音のメジャーキーおよびマイナーキー（Ｃメジャー、Ｃマイナー、Ｃ＃メジャー、Ｃ＃マイナー、等）に対して１回繰り返し、最適な和音列が（ビタビアルゴリズムから）最大の全尤度を生成するようなキーを選択する。新しいメジャーキーに対して伴奏を生成するために、観測行列全体および遷移行列全体の列と行に対して、新しいメジャーキーとＣのキーの間の距離だけ環状シフトを行う（例えば、行列を１行または１列シフトしてＣ＃メジャーを試し、２行または２列シフトしてＤメジャーを試す、等）。マイナーを処理するために、マイナーの観測行列と遷移行列を使用する。この場合、相対メジャーキーに従って同じシフトが行われる。例えば、Ｂマイナーのキーに対する伴奏を生成するためには、マイナーキーの観測行列と遷移行列のシフトを２行または２列分行う（なぜならば、Ｄメジャーのキー、Ｂマイナーに対する相対メジャーキーはＣメジャーより２音階上であるからである）。
【００５６】
実演しようとする場合は、例示的な生成方法は実際の曲に対して非常に迅速に動作し、これは、２４個のキーを処理するのに必要な計算時間の増加は重大な問題ではないことを示す。練習しようとする場合は、メロディを処理する時間は専らピッチトラッキングに費やされ、この処理は、可能なキーごとに繰り返す必要はない。
【００５７】
例示的な生成方法では、尤度が最大の出力を生成するキーを選択し、そのキーを用いてＨＭＭにより出力された和音を例えばユーザに返す。
【００５８】
自己遷移の特殊処理
例示的な方法では、少々修正した和音遷移行列を伴奏生成処理において使用することができる。係る方法は、「自己遷移」、即ち、後続の小節が同じ和音を含むこと、の多数の例を有する傾向にある音楽データベースを扱うことができる。これらの遷移は、和音の生成時に非常に好まれる傾向にあり、干渉または修正されることなく、システムは、多数の入力されたメロディに対して１つの和音のみを含む反復列を生成することができる。本明細書で説明するように、例示的な方法では、和音遷移行列内の全ての対角エントリを増大するための自己遷移重み（１未満であり、実際には零か零に非常に近い）を導入する。これにより、伴奏生成器は、自己遷移がメロディの「適合性」または和音進行の品質を動的に改善する場合にのみ、自己遷移を選択することになる。
【００５９】
例示的な伴奏方法の概要
例示的な伴奏生成方法は録音されたオーディオトラック内の各時点で基本周波数を計算し、オクターブ情報を廃棄し、音高情報を標準的な音符と大まかに整列させるための最適な音高シフトを計算し、入力されたボイストラック内の小節ごとに、小節内で生ずる各音符の総継続時間を合計し、各小節において可能な和音ごとにｐ（ｍｅｌｏｄｙ＝ｘ｜ｃｈｏｒｄ＝ｃ）を計算し、ビタビアルゴリズムを使用して全ての可能なキーにおいて最良の組の和音を選択し、（ＨＭＭからの）最適な和音列が最大の尤度を有するキーを選択し、対応する和音をユーザに返す。
【００６０】
本明細書で説明したように、録音した音声メロディ用の伴奏を生成するための例示的な方法には、セグメントを含む録音した音声メロディを提供すること、録音した音声メロディの周波数分析を実施すること、セグメント内の各基本周波数の総継続時間を合計すること、合計結果に基づいて、セグメントごとに可能な和音ごとの確率を計算すること、計算した確率に基づいて、セグメントに対して１組の和音を選択すること、およびその１組の和音を録音したオーディオメロディに対する伴奏として出力すること、が含まれる。
【００６１】
「マイソング」の例示的なユーザインタフェース
例示的なユーザインタフェースにより、ユーザは伴奏生成器を利用することができる。図７は、以下でより詳細に論ずる幾つかの特徴を強調するための例示的なＧＵＩ７１０を示す。基本的なレベルでは、ユーザが対話する必要がある唯一のユーザインタフェース要素は、ウインドウ上端にある再生／録音コントロール７３２と時間／テンポコントロール７３０である。ユーザは最初に時間／テンポコントロール７３０の「テンポ」スライダーを所望のテンポにドラッグし、メトロノームが、ユーザがこのスライダーと対話している限り、選択されたテンポで拍を打つ。ユーザは次いで再生コントロール７３２を用いて「録音」をクリックし、その時点で、メトロノームが開始され、ユーザが歌い始める時点まで視覚的なカウントダウン（曲を開始するために音楽家が使用する典型的な「カウントオフ」と等価）が表示される。次いでユーザが（メトロノームが動き続けている間に）メロディを歌い、ユーザが歌い終わったときに再生コントロール７３２にある「停止」をクリックする。この時点で、キーを選択し和音を選択するために伴奏生成器が開始され、伴奏生成器が「和音表」領域７２２に現れる。ユーザは次いで伴奏を伴う曲を聴くために再生コントロール７３２にある「再生」をクリックすることができる。この単純な対話は、伴奏生成器によって可能となり、メロディの入力と伴奏の生成を可能とするものである。
【００６２】
例示的な伴奏生成器または伴奏生成器から受け取る装置は、ＭＩＤＩイベントを出力する非常に単純なパターン生成器を用いて伴奏向けのオーディオデータを出力することができる。係るＭＩＤＩイベントを使用して、例えば、コンピュータのデフォルトのＭＩＤＩシンセサイザを用いてピアノまたは他の楽器の音符を合成することができる。よりリッチな出力を生成する場合は、和音生成を制御するためのユーザインタフェースを提供してもよい。
【００６３】
ＧＵＩ７１０を再度参照すると、ユーザがボイストラックを録音した後、ユーザが対話できる他の幾つかのインタフェース要素がある。例えば、「ソートされたキーのリスト」７２４は、伴奏生成器によって各キーに割り当てたスコアでソートした（例えば、スコアはそのキーが与えられた場合の最適な和音列に対するＨＭＭの尤度である）、全ての可能なキーを表示する。機能７２４は、入力ボイストラックがデフォルトで選択された際に、その入力ボイストラックに最も適合するキーを表示することができる。機能７２４により、ユーザは、可能性のあるキーの選択に必要な音楽的直感がなくても、複数の可能なキーを試すことができる。確率でキーをソートすることは、音楽家でない人がキーの決定を幾らか制御できるようにするために重要である。ユーザはリスト内の任意のキーをクリックし、関連付けられた伴奏生成器に指示して、そのキーを用いて新しい和音を選択し和音表を更新することができる。
【００６４】
時間／テンポコントロール７３０について、ユーザは、「倍増」および「半減」ボタンをクリックすることによって、セグメント（例えば、小節または他の区間）ごとに選択された和音の数を迅速に半減または倍増させることができる。この機能により、ユーザは異なる和音変化速度を試すことができ、メトロノームのカウントオフにおける固有の曖昧さを補うことができる（ユーザが、所望の和音変化速度を思い浮かべているのにその速度の２倍または半分に相当するテンポを選ぶことがよくある）。
【００６５】
「ジャズ因子」コントロール７２６について、ユーザは、「ジャズ因子」スライダーを動かすことによって、選択した和音をリアルタイムに操作することができる。「ジャズ因子」スライダーは、伴奏生成器によって使用されたメロディ観測重みを直接的に制御する。これにより、ユーザは、システムに、「良好な和音進行」（小さな観測重み）にバイアスをかけることができ、または「入力された音符と非常に密接に適合する和音（大きな観測重み）」にバイアスをかけることができる。実際には、このパラメータの値が大きいと、選択された和音がより「興味深い」または「意外な」ものとなり、このパラメータの値が小さいと、極めて平凡な和音進行が生成される傾向がある。このスライダーを動かすたびに、新しい１組の和音を選択し和音表を更新するための指令が、関連付けられた伴奏生成器に発行される。
【００６６】
「ハッピー因子」制御７２８について、ユーザは、「ハッピー因子」スライダーを動かすことによって、選択した和音をリアルタイムに操作することができる。このスライダーが左端までまたは右端まで以外の任意の場所にある場合は、関連付けられた伴奏生成器によって使用されるメロディ観測行列および和音遷移行列は、上述したメジャーキー行列またはマイナーキー行列のいずれにも直接的には対応しない。そうではなく、伴奏生成器によって使用される行列はメジャー行列およびマイナー行列の対数の線形結合である。このスライダーは、メジャーキー行列とマイナーキー行列の混ざり具合を制御し、選択した和音がどのくらい「メジャーに」（楽しく）または「マイナーに」（悲しく）聞こえるかを制御する。
【００６７】
１つのアプローチでは２つの遷移行列（メジャーおよびマイナー）を線形に混ぜ合わせて妥当な中間的な遷移行列を生成するが、例示的なアプローチでは、「ハッピー因子」スライダーによって規定される混合因子を用いてメジャー行列とマイナー行列の対数を混ぜ合わせる（例えば、「対数空間混合」）。このアプローチは、技術的には妥当な遷移行列ではない（即ち、行および列が必ずしも合計１.０にはならない）新しい行列を生成するが、メジャー遷移行列およびマイナー遷移行列の共通領域を強調する傾向にあり、より音楽的に妥当である傾向にある結果をもたらす。
【００６８】
コントロール７３２について、ユーザが、選択した和音を聞きながら「録音」を再度クリックしてユーザのメロディを再度歌うことができるオプションが可能である。それに応答して、ユーザは単純に（同じ和音を保ちつつ）ボーカルトラックを置き換えるか、またはボーカルトラックを置き換えて和音を再選択することができる。これによりユーザは、ちょうど伴奏生成器が最初に和音をユーザのボーカルパフォーマンスに合わせたように、ユーザのボーカルパフォーマンスを和音に合わせることができる。
【００６９】
ユーザはファイル入出力コントロール７３４を使用して和音を（テンポのような関連するパラメータ、および全てのインタフェース要素の状態とともに）テキストファイルに保存するか、または録音した音声をオーディオファイルに保存することができる。出力に関して（例えば、Ｆｉｎａｌｅ「登録商標」のような記譜ソフトウェアプログラムに入力するための）他のオプションがあってもよい。
【００７０】
「マイソング〜音楽家版」の例示的なユーザインタフェース
係る機能は音楽家が作曲することを支援することができる。即ち、自分は作曲できるが、係る機能によって作曲をより速くまたはより良く行うのを支援できるということである。簡単のため、音楽家でない人を満足させるように例示的な伴奏生成システムを基本的な要素で構成することができるが、追加の機能により、係るシステムを、（例えば、ワークインプログレスのメロディ向けの）伴奏パターンを試したい音楽家に対して極めて有用とすることができる。これらの例示的な追加機能の一部、または既に説明した機能で使用するための例示的な技法を以下で説明する。
【００７１】
伴奏パターンの高速な探索
前述のコントロール７２４と７２６により、様々な伴奏生成パラメータを操作することができる。図７に示すように、提供されたスライダー、即ち、「ジャズ因子」スライダーと「ハッピー因子」スライダーにより、ユーザはこれらの具体的なパラメータを制御できるだけでなく、メロディ向けの巨大な１組の異なる伴奏に対して高速に反復動作を行うことができる。和音を迅速に選択できる音楽家の場合でも、完全に新しい伴奏パターンを数秒で完全に生成するための能力は前代未聞であり、メロディを創造的に解釈したい音楽家を大いに助けるであろう。このように、このツールまたは機能は音楽家にとって非常に有用である。
【００７２】
個々の和音に対する制御
和音パターンは一般に自動的に生成されるが、音楽家の直感により、音楽家は「このパターンの音は良いが、この１つの和音だけを変更させてほしい・・・」と言うことができる。例示的な機能により、ユーザは和音をクリックして全ての利用可能な、割り当てられた確率でソートされた置き換え用の和音からなるドロップダウンメニューを出すことができる。このドロップダウンメニューにより、ユーザはパターン内の任意の和音を手動で置き換えることができる。和音を置き換えると、関連付けられた伴奏生成器に発行された指令は、場合によっては、この和音を固定し続けつつ全体の伴奏パターンを再生成することができ、この和音は、近傍の小節に対して伴奏生成器によって選択された和音に影響を及ぼすことができる。
【００７３】
音楽家は「選択されたこの和音は本当に面白く聞こえるが、他の伴奏パターンも全般的に試してみたい」とも言うことができるかもしれない。例示的な機能により、例えば、ＵＩスライダー（群）を変更してもこの和音が変更されないが近傍の和音を生成する場合はこの和音が考慮されるように、ユーザはその和音を右クリックしてその和音を「ロック」することができる。例示的なグラフィカルユーザインタフェースは、録音したメロディを和音付けするために伴奏生成器によって選択された和音を表示する和音ディスプレイ、１つまたは複数の和音を和音ディスプレイにロックするためのコントロール、１つまたは複数のロックされた和音を変更することなく、録音したメロディを再度和音付けするためのコントロールを含む。
【００７４】
音楽家（または場合によっては初心者のユーザ）は、より厳密な制約を「フレーズ」に課し、伴奏パターンのある特定の領域が同じ和音を有するように制約したいかもしれない。例えば、例示的な機能により、ユーザは１つのセグメントをバースとして印付けし、別のセグメントを第２のバースとして印付けして、これらのセグメントが同じ和音を有すべきであることを示唆することができる。これは、伴奏生成器に対して非常に有用である可能性がある。なぜならば、伴奏生成器は曲の複数のセグメントにある対応する小節から音高ベクトルを合計して、これらの小節における音高分布をより信頼性が高く推定できるからである（なぜならば、伴奏生成器は、両方の「バース」の例に最も適合する和音を見つけたいからである）。
【００７５】
「マイソング」の例示的なユーザインタフェース
図８は、例示的なＧＵＩ８１０の別のスクリーンショットを示す。このＧＵＩは、ＧＵＩ７１０の幾分か再配置した機能を含む。この再配置はユーザが決めてもよい。
【００７６】
「マイソング」の例示的なユーザインタフェースの右クリックコントロール
図９は、ユーザが和音を（例えば、マウス、他のポインティングデバイス、キーボード、コマンド、音声コマンド、等を用いて）右クリックしたときにＧＵＩ９１０にメニューを表示させる右クリックコントロール９１２を含む例示的なＧＵＩ９１０のスクリーンショットを示す。この機能では、ユーザは選択された和音を他の任意の和音で置き換えることができる。係る機能は幾分興味深いかもしれないが、より興味深い機能は、別のリスト「上位１０個」のサブメニューを表示するためのコントロール９１４である。このサブメニューは、関連付けられた伴奏生成器が最後にその和声付けアルゴリズムを実行したときにその場所に対して「良いと思った」上位１０個の和音を示す。このツールは、曲のある時点で良く適合するかもしれない他の和音をユーザが選択できるようにする。図９の例では、ＧＵＩ９１０は別のオプションを含み、これは右クリックコントロール９１２のメニューの最後のオプション「ロック」として列挙されている。この機能は、現在の和音を「ロック」し、その結果、ユーザがＧＵＩパラメータを変更するかまたは曲の再度の和音付けを求めても、ロックされた和音は変化しない。述べたように、和音をロックすることで周囲の和音に影響を及ぼすことができる。具体的には、例示的な伴奏生成器は、それがこの場所で最適と「思う」和音でなかったとしても、良い和音を選択してこの和音を囲もうとする。
【００７７】
本明細書で説明したように、和音を右クリックまたはその他の方法で和音を選択することで、ユーザが選択された和音を明示的に変更（この変更には、何らかの音楽知識を要することが好ましい）できるか、または伴奏生成器が特定の小節に対して薦める「上位１０個」の和音リストにユーザがアクセスできるドロップダウンメニューを畳むことができる。この機能は、初心者または音楽知識のない者には特に有用である。なぜならば、ユーザが和音を試す（即ち、「この音はＯＫだが全く大丈夫というわけではない。他にここに当てはまる和音はなにか？」）ことができるからである。
【００７８】
「マイソング」の例示的なユーザインタフェースのロック機能
図１０は、例示的なＧＵＩ１０１０のスクリーンショットを示す。この例では、ロック機能を適用して和音を適所（例えば、「ロック」アイコンとともに現れている第三和音）にロックする。この例では、関連付けられた伴奏生成器に指示してメロディを再度和音付けし、それに応答して、伴奏生成器はロックした和音を最適に取り込むように一連の和音を変更した。この機能は、ある特定の和音が本当に好きだが依然としてスライダーで遊びたいかまたは曲の感じを調節したいユーザに対して特に有用である。
【００７９】
本明細書で説明したように、図９のドロップダウンメニュー９１２の「ロック」項目により、ユーザは「この和音を変更しないこと」と言う（即ち、伴奏生成器に和音を変更しないように指示する）ことができる。和音が「ロック」されると、ジャズスライダーまたはハッピースライダーをさらに操作してもこの和音は変更されないが、再度和声付けする際には近傍の和音はこのロックした和音を考慮する。さらに、ロックされた和音が伴奏生成器の一番人気（即ち、マイソングの「お気に入り」）でない場合でも、伴奏生成器はこのロックした和音に出入りする合理的な遷移を選択する。
【００８０】
例示的なカウントイン機能
例示的なカウントイン機能によりユーザはＧＵＩ内の「録音」を押下することができ、それに応答して、メトロノームは１-２-３-４とカウントし、再度１-２-３-４とカウントしてユーザがより良く歌い始めることができるようにする。換言すれば、この機能は例えば２小節のカウントイン期間を提供する。この機能により、ユーザは望むようにカウントインを、例えば、小節なしから２小節を超えるところまで調節することができる。通常、ユーザが歌うとき、ユーザはこの期間は何も歌わない。この場合、ユーザはこれらの２小節を飛ばしたいと考える。なぜならば、これらの小節は曲の実際のパートではないからである。しかし、「ピックアップ」ビート（またはそれより大きなビート）を有する曲もあり、この場合、ユーザは曲が実際に開始する前に小節において少しだけ歌う。例えば、有名なビートルズの曲「レットイットビー」は、１、２、３、４「（ｗｈｅｎ  Ｉ）ＦＩＮＤ  ｍｙｓｅｌｆ  ｉｎ  ｔｉｍｅｓ  ｏｆ  ｔｒｏｕｂｌｅ．．．」と始まる。この例では、曲の最初のビートは、論理的なフレーズの意味では、「ＦＩＮＤ」であるが、ユーザは実際には前の小節の後半のビート（「ｗｈｅｎ  Ｉ」）で歌い始める。システムはこの音声をまだ廃棄すべきではなく、他方、システムは必ずしも曲の最初の小節を不正確に作りたくはない。その理由は、特に、上述のように、曲の最初の小節はしばしば和声付けおよび楽句法（ｐｈｒａｓｉｎｇ）に関する限り特別な性質を有するからである。結果として、第１の小節を正しい位置（この場合、「ＦＩＮＤ」で始まる小節）に置くことが非常に有用である可能性がある。例示的な方法ではこの作業を以下のように達成する。
１．  ユーザが「録音」をクリックしたとき、「カウントイン」小節の両方に対する音声を全て捕捉する。これらの音声は最終的には廃棄してもしなくてもよい。
２．  第１のカウントイン小節中に録音した平均的な音量を計算する。この場合、システムは、ユーザが全く何も歌わなかったことを強く確信することができる。これは、基本的に、（例えば、歌手の部屋における）環境雑音を測定する１つの方法である。
３．  第２のカウントイン小節の個々の拍全てに対して平均音量を計算する。この場合、ユーザが幾つかのピックアップ音符（ｐｉｃｋｕｐ  ｎｏｔｅ）を含めていても含めていなくてもよい。
４．  第２のカウントイン小節内の任意の拍が第１のカウントイン小節内の平均音量の約４倍を超える平均音量を有する場合、第１のカウントイン小節はピックアップ小節である可能性が高い（即ち、ユーザが何か歌った可能性がある）としてラベル付けされる。この事例では、システムは音声を保持するが、いつものように、次の小節（カウントイン後の最初の小節）を曲における最初の「実際の」小節として扱う。
【００８１】
図９に示す右クリックメニュー９１２では、ユーザは、関連付けられた伴奏生成器がユーザの音声から解釈したものをユーザが好まないかどうかという事実をもとに、小節をピックアップに変換できその逆もできることに留意されたい。同様に、曲の終わりに、ユーザが「停止」をクリックする前に録音を数秒間誤って続けてしまった場合には、ユーザはＧＵＩ９１０を用いて小節を「後小節（ｔｒａｉｌｉｎｇ  ｍｅａｓｕｒｅｓ）」に変換することができる。これは、ユーザが本当に曲のパートとしたい最後の小節をハーモナイザによって再度特別に処理できるようにするためのものである。
【００８２】
フレーズモデリング
様々な例示的な機能をシステムに追加することができる。例えば、和声モデラは「フレーズ」または音楽的にグループ化された１組の和音の高レベルの概念を組み込むことができる。これにより、ポップ音楽では一般的ではあるが、任意の結果出力において合理的なレベルの反復を強制することができ、また、共通の和音パターンを取り込むことおよび２つの和音より長い形態を取り込むことができる。例えば、フレーズモデリングに対する以下の例示的なアプローチを考える。
【００８３】
共通の和音パターン（例えば、Ｃメジャー、Ｇメジャー、Ａマイナー、Ｆ）および共通の和音形式（例えば、ＸＹＸＺ。ここで、「Ｘ」、「Ｙ」、「Ｚ」は任意の和音であることができる）の両方に関して元のデータベースをマイニングする。有限なパターン長を想定する場合は、このマイニングに対する網羅的なアプローチをとることができる（即ち、データベース全体を調べて長さが１からｋである全ての和音列を見つけ、どれが最も共通であるかを確認することができる）。このアプローチでは、データベースはメジャーサブデータベースおよびマイナーサブデータベースの区画であることができる。
【００８４】
例示的なモデリングアプローチでは２層の隠れマルコフモデルを組み込むことができる。この場合、下の層が上述のように動作し、上の層の状態は、（ｉ）現在は和音進行にないかどうかまたは（ｉｉ）現在どの和音進行にあるか、の何れかを示す。（必須ではないが）和音進行を促すために、和音進行にないことに対する尤度ペナルティ（ｌｉｋｅｌｉｈｏｏｄ  ｐｅｎａｌｔｙ）が存在する。係るアプローチが和音進行にあると判定する場合は、和音進行に続く和音に対してかなり高い確率を割り当てることができるが、（例えば、ペナルティで）その和音を置き換えることもできる。全体として係る方法は、入力されたメロディに（両方のモデルのレベルで）最も適合する状態列を見つけるためのビタビアルゴリズムを使用して、上述のアプローチに従って進行することができる。
【００８５】
音符の特徴
例示的なアプローチでは、小節内の全ての音符をメロディ観測ベクトルに集約することができ、その結果、観測ベクトルへ及ぼす音符のインパクトに影響する音符の唯一の特徴は継続時間である。代替手段として、例示的な音符の特徴により、情報がより豊富な観測ベクトルでメロディを扱うことができ、より洗練されたメロディの表現を適切に扱うことができる。追加の例示的なメロディ観測の特徴には、音符のタイミング（即ち、場合によっては強拍の音符をより重要と見なすことができる）、音符の順序（即ち、場合によっては小節内の最初の音符を他の音符より重要と見なすことができる）、音程（即ち、メロディが大きくジャンプしてある音符に到達する場合、場合によってはその音符を他の音符より重要と見なすことができる）、を含めることができる。
【００８６】
モードモデリング
上述のように、メジャーの「モード」とマイナーの「モード」のモデリングを可能とするために、データベースはメジャーサブデータベースとマイナーサブデータベースに分割される。他のモード、特に「ブルースモード」は、ポップ音楽においても頻繁に現れる。例示的な技法では、場合によっては追加のデータを収集し、場合によっては何らかの自動クラスタリングを実施して、メジャーおよびマイナーだけの場合よりも多くのモードを取り込むことができる。
【００８７】
ジャンルモデリング
上述のように、システムは和声モデラをトレーニングするために単一のデータベースを使用することができる。本明細書で説明する際、１つまたは複数のジャンル固有のデータベースを用いてモデルのトレーニングを行うことができ、これにより後にジャンル固有の伴奏を可能とすることができる。係るアプローチではまた、ジャンルを混合することができる。例示的な方法では、様々なジャンル固有のデータベース（ジャズデータベース、ポップデータベース、カントリーデータベース、等）を用いてモデルをトレーニングし、次いでユーザは、ジャンルを選択し、場合によっては、モデルのトレーニングの対象となった各ジャンルから構築された行列に対して反復することによって、所与のメロディに対して最も適合するジャンルを見つけることができる。
【００８８】
キーの変更
上述のように、システムは入力されたメロディがマイナーであると想定することができ、従ってキーの変更を防ぐことができる。例示的な方法では、モデルにあまり適合しないメロディの領域を探し、これらの領域を他のキーに合わせることを試み、場合によっては、入力データベース内で共通であると観測されたキーの変化に基づいて新しいキーの選択にバイアスをかけることができる。
【００８９】
動的な自己遷移の重み付け
上で説明したように、１つの方法では、和音が反復する長い列を避けるために、自己遷移に対して非常に小さな確率を割り当てることができる。係るアプローチには、和音を反復すべきときに和音を反復できないという潜在的な欠陥がある。これは、フレーズの境界では特に一般的である。例示的な方法では、事前に設定した制限（例えば、１０小節あたり２回の自己遷移）まで自己遷移を認めること、尤度計算において遷移モデルが観測モデルを所与の小節で制圧する場合を探すことによって自己遷移の重みを動的に調節し、これがあまりにも頻繁に生ずる場合は遷移行列の重みを動的に減らすこと、フレーズの境界を特定するための自動的なシステムまたは手動のシステムの実装に依存しうるが、自己遷移をフレーズの境界でのみ認めること、のような１つまたは複数の代替手段を提供する。
【００９０】
例示的なユーザインタフェース：ビデオキャプチャ
例示的な自動伴奏アプリケーションの対象となる市場は、自分の作曲をオンラインに投稿したいユーザのグループである。従って、図２の録音装置２０８を参照すると、係る装置はビデオ機能を備えてもよい。例えば、例示的な自動伴奏アプリケーションは、音声を録音したときに利用可能なカメラからデータを自動的に捕捉するビデオキャプチャ機能を、合成した音声と捕捉したビデオまたは音声とをビデオファイルに提供するビデオエクスポート機能とともに備えることができる。
【００９１】
例示的なユーザインタフェース：移調
上述のように、生成器は、一般に、各メロディに対して最も適合するキーを見つけるが、ユーザが２つのキーの間で迷っている場合には、出力の音は必然的に最適なものとはならない。例示的な方法は、上述の前処理ステップで学習した最適な全体シフトに従って出力（例えば、ＭＩＤＩ出力）をシフトするための音高シフトを含む。
【００９２】
カルマンフィルタリング
上述のように、入力されたメロディ中の全ての音高に対して最適な全体シフトを適用し、そのメロディが音調に対して最適に並ぶようにする。例示的なアプローチには、例えばカルマンフィルタを更新するための誤差量と同じ量、即ち、最近傍の音調からの距離、を用いてカルマンフィルタを使用して重みを時間をかけて徐々に調節する、代替的なアプローチが含まれる。係る機能は、ピッチトラッキングに関する問題を解決することができる。
【００９３】
ピッチトラッキングに対する和音推定の使用
例示的な方法には、選択した和音に良く適合する音符へと音符選択にバイアスをかける１つまたは複数のピッチトラッキングアプローチを用いることによって、メロディに対する１組の適切な和音を決定することが含まれる。
【００９４】
例示的な伴奏生成器は、場合によっては、ゲームボックス内で実装されるかまたは実装可能であり、これによりユーザはゲーム（例えば、叙情的なキャラクタ）用の音楽を作成することができ、且つ／または係る技術を「ミニゲーム」として配布することができる。
【００９５】
伴奏強化システムを介した出力フィルタリング
本明細書で説明したように、出力された和音を使用して単純または複雑な伴奏を生成することができる。例えば、和音を根音と三和音および七和音に分解することができ、この場合、バス楽器が根音を演奏しピアノ楽器が有声として三和音と七和音を演奏する。別の例では、出力された和音は、（カナダのビクトリア州にあるＰＧ  Ｍｕｓｉｃ社の）ＢＩＡＢ（Ｂａｎｄ−ｉｎ−ａ−ｂｏｘ）「登録商標」ソフトウェアのような製品と組み合わせて使用される。このソフトウェアにより、ユーザは楽曲を作成することができる。例示的な伴奏生成器は、ＢＩＡＢソフトウェアまたは他の同様なソフトウェアを使用して、強化された出力を生成することができる。ＢＩＡＢソフトウェアは和音の列を入力として受け付け、これらの和音から「洒落た」ＭＩＤＩ伴奏を生成することができる。例示的なシステムは、係る強化された出力をユーザに対して再生することができ、ユーザはＢＩＡＢソフトウェアを用いて様々な楽器を調節することができる。
【００９６】
例示的なコンピューティング装置
図１１は、本明細書で論じた様々な例示的な方法の一部または全部を実装するために使用できる例示的なコンピューティング装置１１００の様々な構成要素を示す図である。
【００９７】
図１１に示したコンピューティング装置はコンピュータ環境の１例にすぎず、コンピュータおよびネットワークアーキテクチャの使用範囲または機能範囲に関するどのような限定を示唆しようとするものではない。また、そのコンピュータ環境が、例示的なコンピュータ環境に示す構成要素のどのような１つまたはどのような組合せに関してどのような依存性または要件を有するとも解釈すべきでない。
【００９８】
図１１を参照すると、インクデータの調整に対して機能ベースのアプローチを使用する例示的な文字生成システムを実装するための例示的なシステムは、コンピューティング装置１１００のようなコンピューティング装置を含む。非常に基本的な構成では、コンピューティング装置１１００は一般に少なくとも１つの処理装置１１０２とシステムメモリ１１０４を備える。コンピューティング装置の厳密な構成と種類に応じて、システムメモリ１１０４は（ＲＡＭのような）揮発性、（ＲＯＭ、フラッシュメモリ、等のような）不揮発性、またはその２つの何らかの組合せであることができる。システムメモリ１１０４は一般にオペレーティングシステム１１０５、１つまたは複数のプログラムモジュール１１０６を含み、プログラムデータ１１０７を含んでもよい。この基本構成を図１１に、これらの構成要素を点線１１０８に含めることによって示してある。
【００９９】
オペレーティングシステム１１０５は、コンポーネント（プロパティおよびイベントを含む）、オブジェクト、継承、多相性、リフレクションをサポートし、ワシントン州レドモンドのマイクロソフト社製の．ＮＥＴ「商標」フレームワークのＡＰＩ（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）のようなオブジェクト指向でコンポーネントベースのＡＰＩを提供する、コンポーネントベースのフレームワーク１１２０を含むことができる。
【０１００】
コンピューティング装置１１００は追加の特徴または機能を有してもよい。例えば、コンピューティング装置１１００は、例えば、磁気ディスク、光ディスク、またはテープのような追加の（取外し可能および／または固定）データ記憶装置を含んでもよい。係る追加の記憶装置を、取外し可能記憶装置１１０９および固定記憶装置１１００によって図１１に示す。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータのような情報を記憶するための任意の方法または技術で実装した、揮発性および不揮発性の媒体、取外し可能および固定の媒体を含むことができる。システムメモリ１１０４、取外し可能記憶装置１１０９および固定記憶装置１１１０は全てコンピュータ記憶媒体の例である。従って、コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報の記憶に使用できコンピューティング装置１１００がアクセスできる他の任意の媒体が含まれるがこれらに限らない。係る任意のコンピュータ記憶媒体が装置１１００の一部であることができる。コンピューティング装置１１００はまた、キーボード、マウス、ペン、音声入力装置（例えば、マイクロフォン）、タッチ入力装置、ビデオ入力（例えば、カメラ、ビデオカメラ）、等のような入力装置（群）１１１２を有してもよい。ディスプレイ、スピーカ、プリンタ、等のような出力装置（群）１１１４も含めてもよい。これらの装置は当分野で良く知られており、ここではこれ以上論ずる必要はない。
【０１０１】
コンピューティング装置１１００はまた、装置が例えばネットワーク上で他のコンピューティング装置１１１８と通信できるようにする通信接続１１１６を含むことができる。通信接続（群）１１１６は通信媒体の１例である。通信媒体は、一般に、コンピュータ読取可能命令、データ構造、プログラムモジュール、等によって具現化することができる。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続のような有線媒体、ならびに音響、ＲＦ、赤外線、および他の無線媒体のような無線媒体が含まれる。本明細書で用いるコンピュータ読取可能媒体という言葉は、記憶媒体と通信媒体の両方を含む。
【０１０２】
本明細書では、様々なモジュールと技法を、プログラムモジュールのような、１つまたは複数のコンピュータもしくは他の装置によって実行されるコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するための、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、等を含む。これらのプログラムモジュール等をネイティブコードとして実行してもよく、例えば、仮想マシンまたは他のジャストインタイムコンパイル実行環境にダウンロードしそこで実行してもよい。一般に、プログラムモジュールの機能を様々な実施形態において望ましいように組み合わせるか分散させてもよい。
【０１０３】
これらのモジュールおよび技法の実装形態を何らかの形態のコンピュータ読取可能媒体に記憶するか、またはそれらの媒体に渡って伝達することができる。コンピュータ読取可能媒体は、コンピュータがアクセスできる任意の利用可能な媒体であることができる。限定ではなく例として、コンピュータ読取可能媒体は「コンピュータ記憶媒体」と「通信媒体」を備えることができる。
【０１０４】
しかし、本明細書で説明した技法を、具体的な細部のうち１つまたは複数がなくとも実施でき、または他の方法、リソース、材料、等で実施できることは当業者には理解されよう。他の事例では、単に様々な例示的な技法の態様を不明瞭にすることを避けるために、良く知られた構造、リソース、または動作は詳細には図示または説明しなかった。
【０１０５】
様々な例および応用例を例示および説明したが、本技法は上述の厳密な構成およびリソースに限定されないことは理解されよう。本明細書で開示した方法およびシステムの配置構成、動作、および詳細において、それらの実用的な範囲から逸脱しない、当業者に明らかな様々な修正、変更、および変形を行うことができる。
【図１】
2010538335.tif 000003
【図２】
2010538335.tif 000004
【図３】
2010538335.tif 000005
【図４】
2010538335.tif 000006
【図５】
2010538335.tif 000007
【図６】
2010538335.tif 000008
【図７】
2010538335.tif 000009
【図８】
2010538335.tif 000010
【図９】
2010538335.tif 000011
【図１０】
2010538335.tif 000012
【図１１】
2010538335.tif 000013
【国際調査報告】
2010538335.tif 000014
2010538335.tif 000015