(57)【要約】  単語および/または名前を生成するステップは、所与の言語に基づいて少なくとも1つのコーパスを受け取るステップと、このコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、ペア内の第1の音素に続くペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成するステップと、複数の音素のNグラムおよび複数の出現頻度を使用して、音素ツリーを生成するステップと、音素のシーケンスを生成するために出現頻度を使用して音素ツリー上でランダムウォークを実行するステップと、音素のシーケンスを書記素のシーケンスにマッピングするステップとを含む。
2009511959.tif 000002
【特許請求の範囲】
【請求項１】
所与の言語に基づいて少なくとも1つのコーパスを受け取るステップと、
前記少なくとも1つのコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、前記ペア内の第1の音素に続く前記ペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成するステップと、
前記複数の音素のNグラムおよび前記複数の出現頻度を使用して、音素ツリーを生成するステップと、
音素のシーケンスを生成するために前記出現頻度を使用して前記音素ツリー上でランダムウォークを実行するステップと、
前記音素のシーケンスを前記書記素のシーケンスにマッピングするステップと、
を含む、単語および/または名前を生成するための方法。
【請求項２】
前記音素ツリーは、その頂部のルートと、前記ルートから生じる複数のノードとで構成され、前記複数のノードは、接続されたノードのペアが、前記ペア内の第1のノードから前記ペア内の第2のノードへのパスによって接続されるように、接続され、
ノードのペア内の第1のノードは対応する音素のペア内の第1の音素を表し、前記ノードのペア内の第2のノードは前記音素のペア内の第2の音素を表し、さらに前記ノードのペアのノードを接続するパスは出現頻度を表すように、接続されたノードのペアが、対応する出現頻度を有する音素のペアに対応する、
請求項1に記載の方法。
【請求項３】
前記音素ツリー上でランダムウォークを実行する前記ステップは、
前記パスに関する前記出現頻度に基づいて前記ノードからのパスをノードでランダムに選択することによって、前記音素ツリーを介して接続されたパスのセットを選択するステップを含む、請求項2に記載の方法。
【請求項４】
複数の音素のNグラムを生成する前記ステップは、複数の音素のNグラム頻度テーブルを生成するステップを含む、請求項1に記載の方法。
【請求項５】
複数の音素のNグラムを生成する前記ステップは、複数の音素のNグラム頻度ツリーを生成するステップを含む、請求項1に記載の方法。
【請求項６】
音素ツリーを生成するステップは、
前記複数の音素のNグラム頻度ツリーを音素対音素接続で組み合わせるステップを含む、請求項5に記載の方法。
【請求項７】
前記少なくとも1つのコーパスを単語のシーケンスに分解するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記少なくとも1つのコーパスを使用して、複数の音素のNグラムおよび対応する複数の出現頻度を生成する前記ステップは、
前記単語のシーケンスを前記音素のシーケンスに分解するステップを含む、請求項7に記載の方法。
【請求項９】
前記単語のシーケンスを分解する前記ステップは、
ディクショナリを使用して、前記単語のシーケンスを前記音素のシーケンスに分解するステップを含む、請求項8に記載の方法。
【請求項１０】
前記単語のシーケンスを分解する前記ステップは、
書記素対音素分解技法を使用して、前記単語のシーケンスを前記音素のシーケンスに分解するステップを含む、請求項8に記載の方法。
【請求項１１】
前記生成された音素のシーケンスが発音可能であるかどうか、および前記所与の言語の話し手にとって妥当であるかどうかを判別するステップをさらに含む、請求項1に記載の方法。
【請求項１２】
前記音素のシーケンスを書記素のシーケンスにマッピングする前記ステップは、
ルックアップテーブルを使用して、前記音素のシーケンスを前記書記素のシーケンスに書き換えるステップを含む、請求項1に記載の方法。
【請求項１３】
前記書記素のシーケンスから単語および/または名前を形成するステップをさらに含む、請求項1に記載の方法。
【請求項１４】
前記少なくとも1つのコーパスを使用して複数の音素のNグラムおよび複数の出現頻度を生成する前記ステップ、ならびに音素ツリーを生成する前記ステップは、ユーザの編集、修正、または他の手動による補助を必要とせずに、ほぼ自動的であるように構成される、請求項1に記載の方法。
【請求項１５】
前記少なくとも1つのコーパスを使用して複数の音素のNグラムおよび複数の出現頻度を生成する前記ステップ、ならびに音素ツリーを生成する前記ステップは、異なるコーパスを使用することで異なる音素ツリーを生成するように、固有の音素ツリーを生成するように構成される、請求項1に記載の方法。
【請求項１６】
所与の言語に基づいて少なくとも1つのコーパスを受け取るための手段と、
前記少なくとも1つのコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、前記ペア内の第1の音素に続く前記ペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成するための第1の手段と、
前記複数の音素のNグラムおよび前記複数の出現頻度を使用して、音素ツリーを生成するための第2の手段と、
音素のシーケンスを生成するために前記出現頻度を使用して前記音素ツリー上でランダムウォークを実行するための手段と、
前記音素のシーケンスを書記素のシーケンスにマッピングするための手段と、
を備える、単語および/または名前を生成するための装置。
【請求項１７】
前記音素ツリーは、その頂部のルートと、前記ルートから生じる複数のノードとで構成され、前記複数のノードは、接続されたノードのペアが、前記ペア内の第1のノードから前記ペア内の第2のノードへのパスによって接続されるように、接続され、
ノードのペア内の第1のノードは対応する音素のペア内の第1の音素を表し、前記ノードのペア内の第2のノードは前記音素のペア内の第2の音素を表し、さらに前記ノードのペアのノードを接続するパスは出現頻度を表すように、接続されたノードのペアが、対応する出現頻度を有する音素のペアに対応する、
請求項16に記載の装置。
【請求項１８】
前記音素ツリー上でランダムウォークを実行するための前記手段は、
パスに関する前記出現頻度に基づいてノードからの前記パスを前記ノードでランダムに選択することによって、前記音素ツリーを介して接続されたパスのセットを選択するための手段を含む、請求項17に記載の装置。
【請求項１９】
複数の音素のNグラムを生成する前記第1の手段は、複数の音素のNグラム頻度テーブルを生成するための第3の手段を含む、請求項16に記載の装置。
【請求項２０】
複数の音素のNグラムを生成する前記第1の手段は、複数の音素のNグラム頻度ツリーを生成するための第3の手段を含む、請求項16に記載の装置。
【請求項２１】
音素ツリーを生成するための前記第2の手段は、
前記複数の音素のNグラム頻度ツリーを音素対音素接続で組み合わせるための手段を含む、請求項20に記載の装置。
【請求項２２】
前記少なくとも1つのコーパスを単語のシーケンスに分解するための第1の手段をさらに含む、請求項16に記載の装置。
【請求項２３】
前記少なくとも1つのコーパスを使用して、複数の音素のNグラムおよび対応する複数の出現頻度を生成するための前記第1の手段は、
前記単語のシーケンスを前記音素のシーケンスに分解するための第2の手段を含む、請求項22に記載の装置。
【請求項２４】
前記単語のシーケンスを分解するための前記第2の手段は、
ディクショナリを使用して、前記単語のシーケンスを前記音素のシーケンスに分解するための第3の手段を含む、請求項23に記載の装置。
【請求項２５】
前記単語のシーケンスを分解するための前記第2の手段は、
書記素対音素分解技法を使用して、前記単語のシーケンスを前記音素のシーケンスに分解するための第3の手段を含む、請求項23に記載の装置。
【請求項２６】
前記音素ツリー上でランダムウォークを実行するための前記手段は、
前記音素ツリーのノードで複数のパスから後に続く音素へのパスを、複数のパスに関する前記対応する複数の出現頻度に基づいて選択するための手段を含む、請求項16に記載の装置。
【請求項２７】
前記生成された音素のシーケンスが発音可能であるかどうか、および前記所与の言語の話し手にとって妥当であるかどうかを判別するための手段をさらに含む、請求項16に記載の装置。
【請求項２８】
前記音素のシーケンスを書記素のシーケンスにマッピングするための前記手段は、
ルックアップテーブルを使用して、前記音素のシーケンスを前記書記素のシーケンスに書き換えるための手段を含む、請求項16に記載の装置。
【請求項２９】
前記書記素のシーケンスから単語および/または名前を形成するための手段をさらに含む、請求項16に記載の装置。
【請求項３０】
前記少なくとも1つのコーパスを使用して複数の音素のNグラムおよび複数の出現頻度を生成するための前記手段、ならびに音素ツリーを生成するための前記手段は、ユーザの編集、修正、または他の手動による補助を必要とせずに、ほぼ自動的であるように構成される、請求項16に記載の装置。
【請求項３１】
前記少なくとも1つのコーパスを使用して複数の音素のNグラムおよび複数の出現頻度を生成するための前記手段、ならびに音素ツリーを生成するための前記手段は、異なるコーパスを使用することで異なる音素ツリーを生成するように、固有の音素ツリーを生成するように構成される、請求項16に記載の装置。
【請求項３２】
所与の言語に基づいて少なくとも1つのコーパスを受け取るための入力/出力インターフェースと、
各出現頻度が音素のそれぞれのペアに対応し、ペア内の第1の音素に続くペア内の第2の音素の頻度を示すように、単語のシーケンスおよびディクショナリを使用して複数の音素のNグラムおよび複数の出現頻度を生成するため、ならびに、前記複数の音素のNグラムおよび前記複数の出現頻度を使用して、音素ツリーを生成するために、前記少なくとも1つのコーパスを前記単語のシーケンスに分解するように構成された、プロセッサと、
前記ディクショナリ、前記音素ツリー、および音素対書記素ルックアップテーブルを格納するためのストレージと、
を備え、
前記音素ツリーは、その頂部のルートと、前記ルートから生じる複数のノードとで構成され、前記複数のノードは、接続されたノードのペアが、前記ペア内の第1のノードから前記ペア内の第2のノードへのパスによって接続されるように、接続され、
ノードのペア内の第1のノードは対応する音素のペア内の第1の音素を表し、前記ノードのペア内の第2のノードは前記音素のペア内の第2の音素を表し、さらに前記ノードのペアのノードを接続するパスは出現頻度を表すように、前記音素ツリー内の接続されたノードのペアは、対応する出現頻度を有する音素のペアに対応し、
前記プロセッサは、音素のシーケンスを生成するために前記出現頻度を使用して前記音素ツリー上でランダムウォークを実行するために前記音素ツリーを取り出し、前記音素対書記素ルックアップテーブルを使用して、前記音素のシーケンスを書記素のシーケンスにマッピングする、
単語および/または名前を生成するための装置。
【請求項３３】
所与の言語に基づいて少なくとも1つのコーパスを受け取る動作と、
前記少なくとも1つのコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、前記ペア内の第1の音素に続く前記ペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成する動作と、
前記複数の音素のNグラムおよび前記複数の出現頻度を使用して、音素ツリーを生成する動作と、
音素のシーケンスを生成するために前記出現頻度を使用して前記音素ツリー上でランダムウォークを実行する動作と、
前記音素のシーケンスを書記素のシーケンスにマッピングする動作と
を、コンピュータに実行させる、実行可能命令を備える、有形のストレージメディアに格納された、単語および/または名前を生成するためのコンピュータプログラム。
【請求項３４】
前記音素ツリーは、その頂部のルートと、前記ルートから生じる複数のノードとで構成され、前記複数のノードは、接続されたノードのペアが、前記ペア内の第1のノードから前記ペア内の第2のノードへのパスによって接続されるように、接続され、
ノードのペア内の第1のノードは対応する音素のペア内の第1の音素を表し、前記ノードのペア内の第2のノードは前記音素のペア内の第2の音素を表し、さらに前記ノードのペアのノードを接続するパスは出現頻度を表すように、接続されたノードのペアが、対応する出現頻度を有する音素のペアに対応する、
請求項33に記載のコンピュータプログラム。
【請求項３５】
前記音素ツリー上でランダムウォークを実行する動作をコンピュータに実行させる実行可能命令は、
パスに関する前記出現頻度に基づいてノードからの前記パスを前記ノードでランダムに選択することによって、前記音素ツリーを介して接続されたパスのセットを選択する動作をコンピュータに実行させる実行可能命令含む、請求項34に記載のコンピュータプログラム。
【請求項３６】
複数の音素のNグラムを生成する動作をコンピュータに実行させる実行可能命令は、
複数の音素のNグラム頻度テーブルを生成する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項33に記載のコンピュータプログラム。
【請求項３７】
複数の音素のNグラムを生成する動作をコンピュータに実行させる実行可能命令は、
複数の音素のNグラム頻度ツリーを生成する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項33に記載のコンピュータプログラム。
【請求項３８】
音素ツリーを生成する動作をコンピュータに実行させる実行可能命令は、
前記複数の音素のNグラム頻度ツリーを音素対音素接続で組み合わせる動作をコンピュータに実行させる実行可能命令をさらに含む、請求項37に記載のコンピュータプログラム。
【請求項３９】
前記少なくとも1つのコーパスを単語のシーケンスに分解する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項33に記載のコンピュータプログラム。
【請求項４０】
前記少なくとも1つのコーパスを使用して、複数の音素のNグラムおよび対応する複数の出現頻度を生成する動作をコンピュータに実行させる実行可能命令は、
前記単語のシーケンスを前記音素のシーケンスに分解する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項39に記載のコンピュータプログラム。
【請求項４１】
前記単語のシーケンスを分解する動作をコンピュータに実行させる実行可能命令は、
ディクショナリを使用して、前記単語のシーケンスを前記音素のシーケンスに分解する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項40に記載のコンピュータプログラム。
【請求項４２】
前記単語のシーケンスを分解する動作をコンピュータに実行させる実行可能命令は、
書記素対音素分解技法を使用して、前記単語のシーケンスを前記音素のシーケンスに分解する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項40に記載のコンピュータプログラム。
【請求項４３】
前記生成された音素のシーケンスが発音可能であるかどうか、および前記所与の言語の話し手にとって妥当であるかどうかを判別する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項33に記載のコンピュータプログラム。
【請求項４４】
前記音素のシーケンスを書記素のシーケンスにマッピングする動作をコンピュータに実行させる実行可能命令は、
ルックアップテーブルを使用して、前記音素のシーケンスを前記書記素のシーケンスに書き換える動作をコンピュータに実行させる実行可能命令をさらに含む、請求項33に記載のコンピュータプログラム。
【請求項４５】
前記書記素のシーケンスから単語および/または名前を形成する動作をコンピュータに実行させる実行可能命令をさらに含む、請求項33に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2005年5月10日出願の「System for Generating and Selecting Names」という名称の同時係属の米国特許出願第11/102,519号に関する。この米国特許出願の開示は、参照により本明細書に組み込まれる。
【０００２】
本発明は、単語および/または名前の生成に関し、より具体的には、こうした単語および/または名前を生成するための音素(phoneme)のNグラムの使用に関する。
【背景技術】
【０００３】
単語および名前は、しばしば、文字または音節などの言語単位を組み合わせる方法を使用して生成される。しかしながら、これらの方法は、通常、時間のかかる言語単位の手動選択、およびさらに多くの時間がかかるこれら単位の出現頻度の設定を含む、手動のコーディングおよびチューニングを必要とする。「この単位は単語の初めにのみ発生する」などのユニットへの注釈付けに、さらに時間が費やされる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述の方法で生成された単語はしばしば品質的には許容できるが、生成された結果は時に不満足なものであり、発声不可能および異質な響きである傾向がある。これは、複雑な書記素(grapheme)対音素のマッピングを使用する、英語および他の言語に特に当てはまる。
【課題を解決するための手段】
【０００５】
本発明の実施により、音素のNグラムを使用して単語および名前を生成するための方法および装置を提供する。
【０００６】
一実施では、単語および/または名前を生成するための方法が開示される。この方法は、所与の言語に基づいて少なくとも1つのコーパスを受け取るステップと、このコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、ペア内の第1の音素に続くペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成するステップと、複数の音素のNグラムおよび複数の出現頻度を使用して、音素ツリーを生成するステップと、音素のシーケンスを生成するために出現頻度を使用して音素ツリー上でランダムウォーク(random walk)を実行するステップと、音素のシーケンスを書記素のシーケンスにマッピングするステップとを含む。
【０００７】
他の実施では、単語および/または名前を生成するための装置が開示される。この装置は、所与の言語に基づいて少なくとも1つのコーパスを受け取るための手段と、このコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、ペア内の第1の音素に続くペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成するための第1の手段と、複数の音素のNグラムおよび複数の出現頻度を使用して、音素ツリーを生成するための第2の手段と、音素のシーケンスを生成するために出現頻度を使用して音素ツリー上でランダムウォークを実行するための手段と、音素のシーケンスを書記素のシーケンスにマッピングするための手段とを備える。
【０００８】
他の実施では、単語および/または名前を生成するための他の装置が開示される。この装置は、所与の言語に基づいて少なくとも1つのコーパスを受け取るための入力/出力インターフェースと、各出現頻度が音素のそれぞれのペアに対応し、ペア内の第1の音素に続くペア内の第2の音素の頻度を示すように、単語のシーケンスおよびディクショナリを使用して複数の音素のNグラムおよび複数の出現頻度を生成するため、ならびに、複数の音素のNグラムおよび複数の出現頻度を使用して、音素ツリーを生成するために、コーパスを単語のシーケンスに分解するように構成された、プロセッサと、ディクショナリ、音素ツリー、および音素対書記素ルックアップテーブルを格納するためのストレージと、を備え、プロセッサは、音素のシーケンスを生成するために出現頻度を使用して音素ツリー上でランダムウォークを実行するために音素ツリーを取り出し、音素対書記素ルックアップテーブルを使用して、音素のシーケンスを書記素のシーケンスにマッピングする。
【０００９】
他の実施では、有形のストレージメディアに格納された、単語および/または名前を生成するためのコンピュータプログラムが開示される。このプログラムは、所与の言語に基づいて少なくとも1つのコーパスを受け取る動作と、このコーパスを使用して、各出現頻度が音素のそれぞれのペアに対応し、ペア内の第1の音素に続くペア内の第2の音素の頻度を示すように、複数の音素のNグラムおよび複数の出現頻度を生成する動作と、複数の音素のNグラムおよび複数の出現頻度を使用して、音素ツリーを生成する動作と、音素のシーケンスを生成するために出現頻度を使用して音素ツリー上でランダムウォークを実行する動作と、音素のシーケンスを書記素のシーケンスにマッピングする動作とを、コンピュータに実行させる、実行可能命令を備える。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態は、Nグラムの音素を使用して単語および名前を生成するための方法および装置を提供する。
【００１１】
本開示で使用される場合、以下の用語は次のように定義される。
【００１２】
コーパス - 単語生成プログラム(generator)への入力として使用されるテキスト本文。たとえば、シェイクスピアの作品集を英語用のコーパスとして使用することができる。
【００１３】
音素 - 「ch」などの、会話で発せられる音。たとえば、「s」の音の音素は、文字「s」と区別するために/s/と書き表される。
【００１４】
書記素 - 音のグラフ表現。たとえば、文字「k」の書記素は音/k/を表す。英語では、書記素と音素との間に、必ずしも1対1のマッピングは存在しない。たとえば、音/k/は、「k」、「c」、「ck」、「q」などと書き表される可能性がある。したがって、単一の書記素はいくつかの異なる音素を表すことができる。
【００１５】
Nグラム - 単語、音節、音素、文などの、言語単位のシーケンス。バイグラムは2のシーケンス長さを有し(たとえば「s」-「t」)、トライグラムは3のシーケンス長さを有する(たとえば「a」-「b」-「r」)。
【００１６】
音表徴素(phonestheme) - 強い意味論的クラス関連付けを伴う音素。
【００１７】
ソノリティ(sonority) - 本質的に音素の音の大きさの相対的な尺度である、音素の特性。
【００１８】
音節 - シーケンス内の音素の編成。日本語にはおよそ140のシラブルがあるが、英語には15,000以上ある。
【００１９】
音節に分ける(syllabify) - 単語を、その音素から音節へと構成すること。
【００２０】
典型的な単語生成プログラムは、文字、文字の出現頻度、注釈、長さ範囲、および認められない文字の組み合わせを、入力として受け取る場合がある。単語生成プログラムは、受け取った文字を、文字の組み合わせが所望の長さに達するまで、注釈および頻度に従って組み合わせる。次に、この組み合わせを、認められない文字の組み合わせリストに照らしてチェックし、たとえば発音不可能または卑俗な組み合わせを除去する。この文字の組み合わせプロセスが、一般に(たとえば、レストランのメニューから食べ物を注文することと同様の)「メニュー」方式と呼ばれる。
【００２１】
純粋な「メニュー」方式では、単語生成プログラムは、言語単位(たとえば、文字、音節、ならびに/あるいは、文字および音節の組み合わせ)の列またはテーブルから連続してランダムに選択する。図1のテーブルを参照すると、それぞれの列から1つの言語単位が選択される。たとえば、列Aから文字「C」が選択され、列Bから文字「u」が選択され、列Cから文字「p」が選択されて、単語「Cup」が形成される。図1のテーブルおよびメニュー方式を使用して、「Dan」、「Fefi」、および「Nen」などの言語ユニットの他の組み合わせを形成することができる。
【００２２】
修正されたメニュー方式では、単語生成プログラムは、列に重み付けすること、および/または、どの列が選択されるかを変更することができる。したがって、図2のテーブルを参照すると、列Bは、文字に加えて文字の出現頻度も含むことができる。この場合、単語生成プログラムは、列Bから50%の確率で「a」を、20%の確率で「e」を、20%の確率で「o」を、さらに10%の確率で「u」を選択する。加えて、注釈および他の規則も考慮に入れることができる。
【００２３】
単語を生成するための代替の方式には、所与のコーパス (すなわち、単語が生成される言語を適正に代表する、単語生成プログラムへの入力として使用されるテキスト本文)から文字に関する頻度テーブルを生成すること、文字を検出すること、および、所与の文字が他の文字の後に続く頻度を決定することが、含まれる。たとえばコーパスが、その最も単純な形で文字のシーケンス「ABABAC」を含むと想定すると、単語生成プログラムはこのシーケンスを、各文字(すなわち、A、B、またはC)に対して1つの、テーブルのセットに解析する。したがって各文字は、各文字に続く文字をそれらの出現頻度にマッピングする、関連付けられたテーブルを含む。
【００２４】
図3は、前述のコーパス内で検出された3つの文字、A、B、およびCに対応する3つのテーブルを示す。文字Aは、それに続く2つの異なる文字(すなわちBおよびC)を有するため、Aのテーブルは2つの文字エントリBおよびC、ならびに対応する頻度数を含む。所与のコーパスでは、文字Bは、3回のうち2回、文字Aの後に出現し、文字Cは、3回のうち1回、文字Aの後に出現する。したがって、文字シーケンスA-Bの出現頻度数は66%であり、文字シーケンスA-Cの出現頻度数は34%である。BおよびCのテーブルも同様に生成することができる。
【００２５】
前述の技法は、一般に「Nグラム」技法と呼ばれる。図3は、これらのテーブルが2文字シーケンス用に生成されることから、「バイグラム」の例を示す。3文字シーケンスを示すテーブルは、「トライグラム」技法に関係する、という具合である。代替の実施では、このタイプのテーブルを全単語レベルで使用し、音声認識において、認識プログラムへのヒントとして、どの単語の後にどの単語が続く確率が高いかを予測することができる。次に、これらのテーブルは、前述の単語生成プログラムに関する入力の「メニュー」として採用される。
【００２６】
図4は、音素のNグラムを使用した単語および名前の生成の一実施を示す流れ図400である。流れ図400は、402で、単語生成プログラムへの入力としてコーパスが最初に受け取られたことを示す。前述のように、コーパスは、単語が生成される言語を適正に代表するテキスト本文を含むはずである。たとえば英語の単語を生成する場合、集められたシェイクスピアの作品を、コーパスとして使用することができる。いくつかの実施では、複数のコーパスを単語生成プログラムへの入力として使用することができる。入力コーパスとして使用するために異なるソースを選択することによって、生成される単語のタイプを調整および制御することができる。
【００２７】
404で、単語および名前を生成するために使用される音素のインベントリを提供する、受け取ったコーパスを使用して、音素ツリーが生成される。一実施では、音素ツリーの生成は完全に自動的であり、生成の際に、ユーザの編集または修正、あるいは他の手動による補助は必要としない。他の実施では、ユーザが所望のレベルのユーザのカスタマイゼーションを実行できるようにするために、様々なレベルのユーザ対話が提供される。
【００２８】
音素ツリーは、第1に、複数のNグラム頻度テーブルまたは音素の頻度ツリーを生成することによって、生成される。したがって、音素ツリー構築プロセスは、コーパスを単語シーケンスに分解すること、ならびに、ディクショナリおよび/または書記素対音素(grapheme-to-phoneme)分解技法を使用して、単語を音素に分解することを含む。音素後音素(phoneme-following-phoneme)パターンが、Nグラムとして頻度テーブルまたは頻度ツリーにエンコードされる。頻度テーブルまたは頻度ツリーは、所与の音素に続くすべての音素、および、所与の音素に続く音素の確率数を示す対応する出現頻度数を含む。したがって、異なる入力コーパスを使用することで異なる音素ツリーを生成する。
【００２９】
たとえば、テキスト「phoo basr blar foo」がコーパス全体を表すと想定すると、コーパスは単語のシーケンス[phoo, basr, blar, foo]に分解され、これがさらに[[/f/, /U/][/b/, /a/, /s/, /r/][/b/, /l/, /a/, /r/][/f/, /U/]]に分解される。一実施では、次にこの音素を使用して、図5に示されるような頻度テーブルのセットが構築される。
【００３０】
図5を参照すると、前述のコーパス内の5つの非終端音素に対応する5つの頻度テーブルが示される。音素/f/は、それに続く音素が1つ(すなわち/U/)しかないため、/f/のテーブルは1つのエントリならびに対応する頻度数「100%」を含む。音素/b/は、それに続く音素が2つ(すなわち/l/および/a/)あるため、/b/のテーブルは2つのエントリならびに対応する頻度数を含む。音素/l/は、音素/b/の2回の出現のうちの1回で/b/の後に続き、音素/a/は音素/b/の2回の出現のうちの1回で/b/の後に続く。したがって、音素シーケンス/b/-/l/の出現頻度数は50%であり、音素シーケンス/b/-/a/の出現頻度数も50%である。音素/a/、/s/、および/r/のテーブルも同様に生成することができる。音素/U/および/r/は終端音素であるため、これらの音素のテーブルは存在しない。
【００３１】
代替実施では、頻度テーブルの代わりに頻度ツリーが構築される。たとえば、図6Aは音素/f/の頻度ツリーを示し、図6Bは音素/b/の頻度ツリーを示し、図6Cは音素/a/の頻度ツリーを示し、図6Dは音素/s/の頻度ツリーを示し、図6Eは音素/l/の頻度ツリーを示す。頻度ツリーでは、分岐が所与の音素の後に続く音素の出現頻度数を含む。したがって、たとえば図6Cでは、音素/a/の頻度ツリーが、音素/r/の分岐で出現頻度数50%を示し、音素/s/の分岐で出現頻度数50%を示す。
【００３２】
最終的に、音素対音素接続における音素ツリーは頻度テーブルまたは頻度ツリーを組み合わせることによって生成される。図7は、所与のコーパスから構築された音素のインベントリから生成される音素ツリーの一実施を示す。図7の示された実施では、音素ツリーは、ルートから生じる2つのノードとして2つの開始音素/f/および/b/を含む。音素ツリーは、リーフとして2つの終端音素/U/および/r/も含む。
【００３３】
再び図4を参照すると、406で、音素のシーケンスを生成するために、生成された音素ツリー上でランダムウォークが実行される。ランダムウォークを実行するために、音素ツリーの各ノードで、パス内をたどるように分岐を選択するための意思決定が実行される。各分岐の確率数がこの選択に重み付けするため、確率数の高い分岐ほどより頻繁に選択されることになる。したがって、各ノードでの意思決定は、音素の後に続く所定の確率が仕組まれた「仕掛け」さいころを投げるのと等価である。
【００３４】
410では、意思決定ボックスが、生成された音素シーケンスが「受け入れ可能」シーケンスであるかどうかを決定する。一例では、「受け入れ可能」シーケンスとは、発音可能であり、所与の言語の話し手にとって妥当な、音素シーケンスである。他の例では、「受け入れ可能」シーケンスとは、同時係属の米国特許出願第11/102,519号に記載された音表徴素密度などの、ある標準に合致する音素シーケンスである。音素のシーケンスが「受け入れ可能」であると判別された場合、このシーケンスは、412で、単語および名前を生成するために保持される。そうではなく、音素のシーケンスが「受け入れ不能」と判別された場合、414でそのシーケンスはドロップされる。
【００３５】
次に音素のシーケンス(すなわち音の列)は、416で、単語および/または名前を生成するためのルックアップテーブルまたは他の同様の技法を使用して、書記素のシーケンス(すなわち書体)に書き換え/マッピングされる。したがって、前述のテキスト「phoo basr blar foo」のコーパスを使用して、結果として生じる可能性のある音素シーケンスには、[/f/ /U/]、[/b/ /a/ /s/]、および[/b/ /l/ /a/ /s/]が含まれるが、[/r/ /U/ /f/]および[/b/ /a/ /s/ /a/]は含まれない。
【００３６】
420で、十分な単語および/または名前が生成されていないことが判別されると、406で、他の音素シーケンス、ならびに、続いてさらに多くの単語および/または名前を生成するために、ランダムウォークプロセスが繰り返される。ボックス406、410、412、414は、十分な単語および/または名前が生成されるまで繰り返される。そうではなく、十分な単語および/または名前が生成されている場合、プロセスは終了する。
【００３７】
加えて、単語および/または名前を、「悪い」単語のリストまたはまとまりに照らしてチェックすることができる。リストに照らしたチェックは、入力コーパスを「音節に分ける」こと、およびリストから共通の特徴をチェックすることによって、自動化することができる。一例では、「悪い」単語には、卑俗または発音できない単語が含まれる。他の例では、「悪い」まとまりには、心地よくないかまたは発音できないことがわかっている音素のシーケンスが含まれる。
【００３８】
実際のところ、シェイクスピア全集などの大量のテキスト本文からは大量のテーブルが生成されるため、多くの音素の後に多くの他の音素が続き、出現頻度は1%未満になる可能性がある。したがって、Nグラムテーブルは一般に、言語には存在するが「特徴的」または典型的でない音素ペアなどの、低頻度のNグラムが大幅に削減されるように、切り詰められる。
【００３９】
音素のNグラムを使用して単語および/または名前を生成するための代替実施形態には、所与の言語において音韻論的に有効な、無意味なテキストの生成が含まれる。一例では、この無意味なテキストを音声認識プログラムのトレーニングに使用することができる。
【００４０】
音素のNグラムを使用して単語および/または名前を生成するための他の代替実施形態には、音などの、さらに低い言語単位レベルで音素ベースの単語生成プログラムを操作することが含まれる。しかしながら、信頼できる単語対音のディクショナリまたは変換技法を見つけることは困難である。結果として、生成される単語および/または名前は、非常に「粗野」な、ますます普通でない音声をつなぎ合わせてかなり異質な響きの単語および/または名前を形成する可能性がある。しかしながら、場合によっては、これが望ましいこともある。
【００４１】
単語および/または名前を生成するために音素のNグラムを使用することの利点の1つは、音素は結果として生じる単語が音のシーケンスとして表されるため、文字よりもはるかに適応性があることである。したがってこの利点により、単語の音または一部の強制的な包含または排除、同音異義語のチェック、などを含む、他の利点が提供される。
【００４２】
単語および/または名前を生成するために音素のNグラムを使用することの他の利点は、発音チェックがセットアップしやすいことである。音素のシーケンスを使用することは、生成された単語および/または名前の音声を使用可能にすることを含むため、さらに数ステップを使用して、発音チェックのためのプロセスが構成される。
【００４３】
たとえば、一実施では、発音チェックプロセスに、ソノリティ技法を使用して単語を「音節に分ける」こと、および、音節が共通の普遍的特色を含む「正当な」音節であることを保証するために各音節をチェックすることが含まれる。他の実施では、発音チェックプロセスに、ソノリティ技法を使用して単語を「音節に分ける」こと、および、単語の「普通でない」部分を大幅に削減する言語特有のフィルタを使用することが含まれる。たとえば英語では、/ng/で始まる単語は消去される。
【００４４】
音素ベース(すなわちテキストの音声ベース)方式の他の利点には、(1)出力内の他の音声の後に続くそれぞれの音声は実際に入力コーパス内の音声の後に続いていたものであるため、発音できない名前の出現がより少ないこと、(2)命名エンジン(音表徴素、音声記号体系など)によって音声による操作が実施できること、(3)音声の列をすべてまとめて発音できるかどうかが予測しやすいこと、(4)音声フィルタはスペル変化の錯覚を回避できるため、卑俗な言葉のフィルタがより効果的であること、(5)正当かつ頻繁な開始および終了の音声をコーパスから推測および記録することができるため、最初-中間-最後の単位に注釈をつける必要が少なくなること、(6)代替言語に適切であり、これに基づいた、単語/名前を生成することがより容易であること、ならびに、(7)単語/名前が音声としてコード化されるため、単語/名前のスペリング(すなわち書記素表現)が、習慣、正字法、書体、地域、文化、または任意の他の手段に応じて変更可能であること、が含まれる。
【００４５】
図8Aは、コンピュータシステム800およびユーザ802を示す図である。ユーザ802は、単語および/または名前を生成するためにコンピュータシステム800を使用することができる。一例では、コンピュータシステムは単語生成アプリケーションプログラム(「単語生成プログラム」)を格納および実行する。単語生成プログラムは、前述のように、音素のNグラムを使用して単語および名前を生成するように設計される。
【００４６】
図8Bは、単語生成プログラムを含む、図8Aのコンピュータシステム800の一実施を示すブロック図である。コンピュータシステム800は、コントローラ810、メモリ820、ストレージ830、メディアデバイス840、ユーザインターフェース850、入力/出力(I/O)インターフェース860、およびネットワークインターフェース870を含む。これらの構成要素は、共通バス880によって相互接続される。別の方法として、中央にコントローラを備えた星のパターンなどの、異なる接続構成を使用することができる。
【００４７】
コントローラ810はプログラム可能プロセッサであり、コンピュータシステム800およびその構成要素の動作を制御する。コントローラ810は、メモリ820または埋め込み型コントローラメモリ(図示せず)から命令をロードし、これらの命令を実行してシステムを制御する。その実行に際して、コントローラ810は、単語生成プログラム815をソフトウェアシステムとして提供する。別の方法として、このサービスを、コントローラ810またはコンピュータシステム800内の別々の構成要素として実施することができる。単語生成プログラム815は、入力コーパスおよびストレージ830から取り出されたディクショナリを使用して、単語および名前を生成する。
【００４８】
メモリ820は、コンピュータシステム800の他の構成要素によって使用されるためのデータを一時的に格納する。一実施では、メモリ820はRAMとして実施される。他の実施では、メモリ820は、フラッシュメモリおよび/またはROMなどの長期または永続メモリも含む。
【００４９】
ストレージ830は、音素のインベントリおよび生成された単語を格納するためなどの、コンピュータシステム800の他の構成要素による使用のために、一時的または長期間、データを格納する。一実施では、ストレージ830はハードディスクドライブである。ストレージ830は、言語ディクショナリ(たとえば、音素の可用性および配置に関する、文字、キャラクタ、または記号に関する)、または制約ディクショナリ(たとえば、文化的タブーに基づいてフィルタリングするための文化、国、および言語の制約、または、商標に関して名前をフィルタリングするための法的制約)、その他、などの、単語生成プログラム815による使用のための情報を格納する。ストレージ830は、頻度テーブル、頻度ツリー、および音素ツリーなどの、将来使用するために単語生成プログラムによって生成されたデータおよびデータ構造も格納する。
【００５０】
メディアデバイス840は、取り外し可能メディアを受け取り、挿入されたメディアとの間でのデータの読み取りおよび/または書き込みを行う。一実施では、メディアデバイス840は光ディスクドライブである。
【００５１】
ユーザインターフェース850は、コンピュータシステム800のユーザからのユーザ入力を受け入れるため、および、ユーザに情報を提示するための、構成要素を含む。一実施では、ユーザインターフェース850はキーボード、マウス、オーディオスピーカ、およびディスプレイを含む。コントローラ810は、ユーザからの入力を使用して、コンピュータシステム800の動作を調整する。
【００５２】
I/Oインターフェース860は、外部ストレージまたは補助デバイス(たとえばプリンタまたはPDA)などの対応するI/Oデバイスに接続するための、1つまたは複数のI/Oポートを含む。一実施では、I/Oインターフェース860のポートは、USBポート、PCMCIAポート、シリアルポート、および/またはパラレルポートなどの、ポートを含む。他の実施では、I/Oインターフェース860は、外部デバイスと無線で通信するための無線インターフェースを含む。
【００５３】
ネットワークインターフェース870は、イーサネット（登録商標）接続をサポートするRJ-45または「Wi-Fi」インターフェース(802.11)などの、有線および/または無線のネットワーク接続を含む。
【００５４】
コンピュータシステム800は、コンピュータシステムに特有の追加のハードウェアおよびソフトウェア(たとえば、電源、冷却、オペレーティングシステム)を含むが、話を簡潔にするために、これらの構成要素は図8Bには特に示されていない。他の実施では、コンピュータシステムの異なる構成(たとえば、異なるバスまたはストレージ構成、あるいはマルチプロセッサ構成)を使用することができる。
【００５５】
本発明の様々な実施は、電子ハードウェア、コンピュータソフトウェア、またはこれらの技術の組み合わせで実現される。実施の中には、プログラム可能プロセッサまたはコンピュータによって実行される、1つまたは複数のコンピュータプログラムが含まれる。一般に、各コンピュータは、1つまたは複数のプロセッサ、1つまたは複数のデータストレージ構成要素(たとえば、揮発性または不揮発性メモリモジュール、ならびに、ハードおよびフロッピィディスクドライブ、CD-ROMドライブ、ならびに磁気テープドライブなどの、永続性の光および磁気ストレージデバイス)、1つまたは複数の入力デバイス(たとえばマウスおよびキーボード)、および、1つまたは複数の出力デバイス(たとえば、ディスプレイコンソールおよびプリンタ)を含む。
【００５６】
コンピュータプログラムは、通常は永続ストレージメディアに格納され、その後、実行時にメモリにコピーされる、実行可能コードを含む。プロセッサは、定められた順序でメモリからプログラム命令を取り出すことによって、コードを実行する。プログラムコードを実行する場合、コンピュータは、入力および/またはストレージデバイスからデータを受け取り、そのデータに関する操作を実行した後、結果として生じるデータを出力および/またはストレージデバイスに送達する。
【００５７】
以上、本発明の様々な例示的実施について説明してきた。しかしながら、当業者であれば、本発明の範囲内で追加の実施も可能であることを理解されよう。たとえば、前述の説明は、単一の入力コーパスを使用した単語生成プログラムの実施に焦点を当てているが、複数のコーパスを入力として同時に使用することも可能である。さらに入力コーパスは、「混合」効果を発生させる様々な言語とすることも可能であり、新しい空想上の言語を作成するために有用な場合がある。したがって本発明は、前述のそれらの実施に限定されることはない。
【図面の簡単な説明】
【００５８】
【図１】列内に配置構成された選択可能な言語単位のテーブルを示す図である。
【図２】言語単位の出現頻度を含む中間列を備える、列内に配置構成された選択可能な言語単位の他のテーブルを示す図である。
【図３】コーパス「ABABAC」において検出される3つの文字A、B、およびCに対応する3つのテーブルを示す図である。
【図４】音素のNグラムを使用した単語および名前の生成の一実施を示す流れ図である。
【図５】コーパス「phoo basr blar foo」における5つの非終端音素に対応する5つの頻度テーブルを示す図である。
【図６】図6Aから6Eは、図5に示された5つの頻度テーブルに対応する5つの頻度ツリーを示す図である。
【図７】所与のコーパスから構築された音素のインベントリから生成される、音素ツリーの一実施を示す図である。
【図８】図8Aはコンピュータシステムおよびユーザを示す図であり、図8Bは、単語生成プログラムを含む図8Aのコンピュータシステムの一実施を示すブロック図である。
【図１】
2009511959.tif 000003
【図２】
2009511959.tif 000004
【図３】
2009511959.tif 000005
【図４】
2009511959.tif 000006
【図５】
2009511959.tif 000007
【図６】
2009511959.tif 000008
【図７】
2009511959.tif 000009
【図８】
2009511959.tif 000010