(57)【特許請求の範囲】
【請求項１】
インテリジェントな自動アシスタントを動作させる方法であって、前記方法が、
プロセッサと、前記プロセッサによって実行するための１つ以上のプログラムを記憶するメモリとを備える電子機器において、
ユーザから、同綴異音異義語と、他の単語の１つ以上とを含んだ音声入力を受け取ることと、
自動音声認識システムを用いて前記音声入力を処理することであって、
前記音声入力において前記ユーザによって発音された通りの前記同綴異音異義語に対応する音素列と、
コーパスに関する、前記同綴異音異義語と前記他の単語の１つ以上とを含んだn-gramの発生頻度と、
の少なくとも一方を決定するために、前記音声入力を処理することと、
前記音声入力に対する対話応答であって、前記同綴異音異義語を含んだ対話応答を生成することと、
前記対話応答の生成後に、前記対話応答内の前記同綴異音異義語の複数の正しい発音の１つを、前記音素列および前記n-gramの発生頻度の少なくとも１つに基づいて決定することと、
前記対話応答を、前記複数の正しい発音のうちの前記決定された１つに従って前記同綴異音異義語が発音される音声出力として出力することと、
を有することを特徴とする方法。
【請求項２】
前記自動音声認識システムを用いて前記音声入力を処理することが、前記音声入力に対応するテキスト列を決定することを含み、前記方法がさらに、
実行可能な意図を前記テキスト列に基づいて決定することを有し、前記同綴異音異義語の前記複数の正しい発音の１つが、前記音素列、前記n-gramの発生頻度、および前記実行可能な意図の少なくとも１つに基づいて決定されることを特徴とする請求項１に記載の方法。
【請求項３】
前記同綴異音異義語を前記実行可能な意図のパラメータに割り当てることをさらに有し、前記同綴異音異義語の前記複数の正しい発音の１つが、前記パラメータに少なくとも部分的に基づいて決定されることを特徴とする請求項２に記載の方法。
【請求項４】
前記実行可能な意図には語彙リストが関連づけられ、
前記語彙リストは前記同綴異音異義語を含み、
前記語彙リスト内の前記同綴異音異義語は特定の発音に関連づけられ、
前記同綴異音異義語の前記複数の正しい発音の１つが、前記語彙リスト内の前記同綴異音異義語に関連づけられた前記特定の発音に基づいて決定されることを特徴とする請求項２に記載の方法。
【請求項５】
前記音声入力に関する文脈上の情報を受信することをさらに有し、前記実行可能な意図が、前記文脈上の情報に少なくとも部分的に基づいて決定されることを特徴とする請求項２から請求項４のいずれか１項に記載の方法。
【請求項６】
前記n-gram内の前記同綴異音異義語が第１の発音に関連づけられ、
前記自動音声認識システムを用いて前記音声入力を処理することが、前記コーパスに関する第２のn-gramの発生頻度を測定することを含み、
前記第２のn-gramが前記同綴異音異義語と前記他の単語の１つ以上とを含み、
前記第２のn-gram内の前記同綴異音異義語が第２の発音に関連づけられ、
前記同綴異音異義語の前記複数の正しい発音の１つが、前記n-gramの発生頻度および前記第２のn-gramの発生頻度に基づいて決定されることを特徴とする請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
前記n-gramの発生頻度が前記第２のn-gramの発生頻度より少なくとも予め定められた量高く、前記同綴異音異義語の前記複数の正しい発音の１つが、前記第１の発音であろうと決定されることを特徴とする請求項６に記載の方法。
【請求項８】
前記n-gramの発生頻度が第１の予め定められた閾値より高く、前記第２のn-gramの発生頻度は第２の予め定められた閾値より低く、前記同綴異音異義語の前記複数の正しい発音の１つは第１の発音であろうと決定されることを特徴とする請求項６に記載の方法。
【請求項９】
前記音素列が前記第２の発音に対応し、前記n-gramの発生頻度が前記第２のn-gramの発生頻度より少なくとも予め定められた量高く、前記同綴異音異義語の前記複数の正しい発音の１つが前記第１の発音であろうと決定されることを特徴とする請求項６に記載の方法。
【請求項１０】
前記複数の正しい発音のうちの前記決定された１つに対応する第２の音素列を前記自動音声認識システムから取得することをさらに有し、前記対話応答を出力することが、前記対話応答内の前記同綴異音異義語を音声合成器を用いて合成することを含み、前記音声合成器が、前記複数の正しい発音のうちの前記決定された１つに従って前記音声出力内の前記同綴異音異義語を合成するために前記第２の音素列を用いることを特徴とする請求項１から請求項９のいずれか１項に記載の方法。
【請求項１１】
前記対話応答内の前記同綴異音異義語に、該同綴異音異義語の前記複数の正しい発音の１つを特定するためにタグを用いて注釈を付与することをさらに有し、前記対話応答を出力することが、前記対話応答内の前記同綴異音異義語を音声合成器を用いて合成することを含み、前記対話応答内の前記同綴異音異義語が前記タグに基づいて合成されることを特徴とする請求項１から請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記音声入力に関する文脈上の情報を受け取ることをさらに有し、前記同綴異音異義語の前記複数の正しい発音の１つが前記文脈上の情報に少なくとも部分的に基づいて決定されることを特徴とする請求項１から請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記同綴異音異義語の前記複数の正しい発音の１つが、前記ユーザに関連づけられた、前記同綴異音異義語の固有発音に少なくとも部分的に基づいて決定され、前記固有発音が前記ユーザからの過去の音声入力に基づくことを特徴とする請求項１から請求項１２のいずれか１項に記載の方法。
【請求項１４】
命令を有するコンピュータプログラムであって、前記命令が、１つ以上のプロセッサに、
ユーザから、同綴異音異義語と、他の単語の１つ以上とを含んだ音声入力を受け取り、
自動音声認識システムを用いて前記音声入力を処理することであって、該音声入力の処理は、
前記音声入力において前記ユーザによって発音された通りの前記同綴異音異義語に対応する音素列と、
コーパスに関する、前記同綴異音異義語と前記他の単語の１つ以上とを含んだn-gramの発生頻度と、
の少なくとも１つの決定を含み、
前記音声入力に対する対話応答であって、前記同綴異音異義語を含んだ対話応答を生成し、
前記対話応答の生成後に、前記対話応答内の前記同綴異音異義語の複数の正しい発音の１つを、前記音素列および前記n-gramの発生頻度の少なくとも１つに基づいて決定し、
前記対話応答を、前記複数の正しい発音のうちの前記決定された１つに従って前記同綴異音異義語が発音される音声出力として出力する、ようにさせることを特徴とするコンピュータプログラム。
【請求項１５】
前記自動音声認識システムを用いて前記音声入力を処理することが、前記音声入力に対応するテキスト列を決定することを含み、
前記コンピュータプログラムがさらに、前記１つ以上のプロセッサに、
実行可能な意図を前記テキスト列に基づいて決定させる命令を有し、前記同綴異音異義語の前記複数の正しい発音の１つが、前記音素列、前記n-gramの発生頻度、および前記実行可能な意図の少なくとも１つに基づいて決定されることを特徴とする請求項１４に記載のコンピュータプログラム。
【請求項１６】
さらに、前記１つ以上のプロセッサに、
複数の正しい発音のうちの前記決定された１つに対応する第２の音素列を前記自動音声認識システムから取得させる命令を有し、前記対話応答を出力することが、前記対話応答内の前記同綴異音異義語を音声合成器を用いて合成することを含み、前記音声合成器が、前記複数の正しい発音のうちの前記決定された１つに従って前記音声出力内の前記同綴異音異義語を合成するために前記第２の音素列を用いることを特徴とする請求項１４または請求項１５に記載のコンピュータプログラム。
【請求項１７】
電子機器であって、
１つ以上のプロセッサと、
メモリと、
前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成された１つ以上のプログラムとを有し、前記１つ以上のプログラムが、
ユーザから、同綴異音異義語と、他の単語の１つ以上とを含んだ音声入力を受け取ることと、
自動音声認識システムを用いて前記音声入力を処理することであって、該音声入力の処理は、
前記音声入力において前記ユーザによって発音された通りの前記同綴異音異義語に対応する音素列と、
コーパスに関する、前記同綴異音異義語と前記他の単語の１つ以上とを含んだn-gramの発生頻度と、
の少なくとも１つを決定することを含み、
前記音声入力に対する対話応答であって、前記同綴異音異義語を含んだ対話応答を生成することと、
前記対話応答の生成後に、前記対話応答内の前記同綴異音異義語の複数の正しい発音の１つを、前記音素列および前記n-gramの発生頻度の少なくとも１つに基づいて決定することと、
前記対話応答を、前記複数の正しい発音のうちの前記決定された１つに従って前記同綴異音異義語が発音される音声出力として出力することと、のための命令を有することを特徴とする電子機器。
【請求項１８】
前記自動音声認識システムを用いて前記音声入力を処理することが、前記音声入力に対応するテキスト列を決定することを含み、前記１つ以上のプログラムが、
実行可能な意図を前記テキスト列に基づいて決定するための命令をさらに有し、前記同綴異音異義語の前記複数の正しい発音の１つが、前記音素列、前記n-gramの発生頻度、および前記実行可能な意図の少なくとも１つに基づいて決定されることを特徴とする請求項１７に記載の電子機器。
【請求項１９】
前記n-gram内の前記同綴異音異義語が第１の発音に関連づけられ、
前記自動音声認識システムを用いて前記音声入力を処理することが、前記コーパスに関する第２のn-gramの発生頻度を測定することを含み、
前記第２のn-gramが前記同綴異音異義語と前記他の単語の１つ以上とを含み、
前記第２のn-gram内の前記同綴異音異義語が第２の発音に関連づけられ、
前記同綴異音異義語の前記複数の正しい発音の１つが、前記n-gramの発生頻度および前記第２のn-gramの発生頻度に基づいて決定されることを特徴とする請求項１７または請求項１８に記載の電子機器。
【請求項２０】
前記１つ以上のプログラムが、
前記複数の正しい発音のうちの前記決定された１つに対応する第２の音素列を前記自動音声認識システムから取得するための命令をさらに有し、前記対話応答を出力することが、前記対話応答内の前記同綴異音異義語を音声合成器を用いて合成することを含み、前記音声合成器が、前記複数の正しい発音の前記決定された１つに従って前記音声出力内の前記同綴異音異義語を合成するために前記第２の音素列を用いることを特徴とする請求項１７から請求項１９のいずれか１項に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願との相互参照
この出願は、２０１４年１２月９日に出願された米国仮出願第62/089,464号、「音声合成における同綴異音異義語の曖昧さ解消」、２０１４年１２月１２日に出願された米国出願第14/569,517号、「音声合成における同綴異音異義語の曖昧さ解消」の優先権主張出願であり、これら出願の全体を参照によって本明細書に組み入れる。
【０００２】
本願は概してデジタルアシスタントに関し、特には音声合成における同綴異音異義語の曖昧さの解消に関する。
【背景技術】
【０００３】
インテリジェントな自動アシスタント（またはデジタルアシスタント）は、人間であるユーザと、電子機器との間の有益なインタフェースを提供することができる。そういったアシスタントは、口頭形式および／またはテキスト形式で自然な言葉を用いることにより、機器またはシステムとやりとりすることを可能にする。例えば、ユーザは電子機器に付随するデジタルアシスタントに音声入力を与えることができる。デジタルアシスタントは音声入力からユーザの意図を解釈し、ユーザの意図をタスクに変換することができる。そして、そのタスクは電子機器の１つ以上のサービスを実行することによって実行可能であり、関連する音声出力を自然言語の形式でユーザに返すことができる。
【０００４】
デジタルアシスタントが生成する音声出力は、同綴異音異義語を含むことがある。同綴異音異義語は、同じ綴りで発音および意味の異なる２つ以上の単語のそれぞれであってよい。例えば、ユーザは、フランスのニースの天気を要求する音声入力をデジタルアシスタントに与えることができる。デジタルアシスタントは、”これがフランスのニースの天気です”といった、関連する音声出力を返すことができる。この例において、音声出力は、「nice」という、正しい名詞としての発音と、形容詞としての異なる発音とを有しうる同綴異音異義語を含んでいる。従来、デジタルアシスタントは意味を明確にしづらい同綴異音異義語を有しうるため、同綴異音異義語を含んだ音声出力は間違った発音がなされやすい。これは、デジタルアシスタントとのやりとりにおけるユーザ体験の質を低下させうる。
【発明の概要】
【０００５】
音声合成において、同綴異音異義語の意味を明確にするためのシステムおよび方法が提供される。例示的な一方法において、音声入力はユーザから受信することができる。音声入力は、同綴異音異義語および他の単語の１つ以上を含みうる。音声入力は、ユーザが音声入力において発音したとおりの同綴異音異義語に対応する少なくとも１つの音素列(phonemic string)と、コーパスに関するn-gramの発生頻度とを求めるために、自動音声認識システムを用いて処理することができる。n-gramは同綴異音異義語に加えて１つ以上の単語を含むことができ、n-gram内の同綴異音異義語は第１の発音に関連づけられてよい。同綴異音異義語の正しい発音は、音素列およびn-gramの発生頻度の少なくとも１つに基づくことができる。音声入力に対し、同綴異音異義語を含むことが可能な対話応答(dialogue response)を生成することができる。対話応答は、音声出力として出力することができる。対話応答での同綴異音異義語は、音声出力において、決定された正しい発音に従って発音されてよい。
【図面の簡単な説明】
【０００６】
【図１】様々な例に従ったデジタルアシスタントを実施するためのシステムおよび環境を示す図である。
【図２】様々な例に従ったデジタルアシスタントのクライアント側を実施するユーザデバイスを示す図である。
【図３Ａ】様々な例に従ったデジタルアシスタントまたはそのサーバ部分を示す図である。
【図３Ｂ】様々な例に従った、図３Ａに示したデジタルアシスタントの機能を示す図である。
【図３Ｃ】様々な例に従ったオントロジーの部分を示す図である。
【図４】様々な例に従ったデジタルアシスタントを動作させる手順を示す図である。
【図５】様々な例に従った電子デバイスの機能ブロック図である。
【発明を実施するための形態】
【０００７】
以下の例の説明においては、実行可能な特定の例を、例示として示す添付図面を参照する。様々な例の範囲内で、他の例を用いたり、構造を変更したりすることができることを理解すべきである。
【０００８】
音声合成において、同綴異音異義語の意味を明確にするためのシステムおよび方法が提供される。１つの例示的な方法において、同綴異音異義語を含んだ音声入力をユーザから受けることができる。音声入力に関する文脈上のデータ(contextual data)を受信することができる。音声入力は、音声入力に対応するテキスト列(text string)を決定するため、自動音声認識システムを用いて処理することができる。テキスト列に基づき、自然言語プロセッサを用いて、実行可能な意図(actionable intent)を決定することができる。音声入力に対し、同綴異音異義語を含むことが可能な対話応答(dialogue response)を生成することができる。同綴異音異義語の正しい発音は、自動音声認識システムのn-gram言語モデルを用いて、あるいは音声入力、実行可能な意図、および文脈上のデータの少なくとも１つに基づいて、決定することができる。対話応答は音声出力として出力することができ、同綴異音異義語は音声出力において正しい発音に従って発音することができる。
【０００９】
音声入力、n-gram言語モデル、実行可能な意図、および文脈上のデータの少なくとも１つを、同綴異音異義語の意味を明確化するための知識ソースとして用いることにより、音声出力での同綴異音異義語の発音をより正確に合成することができ、ユーザ体験を向上することができる。さらに、同綴異音異義語の意味明確化に自動音声認識システムおよび自然言語プロセッサを利用(leverage)することで、同目的で音声合成器に追加リソースを実装する必要をなくすことができる。例えば、同綴異音異義語の意味を明確化するために、音声合成器に追加言語モデルを実装する必要が無い。これにより、デジタルアシスタントが、より効率的に、かつより少ないリソースで動作することが可能になる。
【００１０】
１．システムおよび環境
図１は、様々な例に従ったシステム１００のブロック図を示している。いくつかの例において、システム１００はデジタルアシスタントを実施できる。用語「デジタルアシスタント」「仮想アシスタント」「インテリジェント自動アシスタント」「自動デジタルアシスタント」は、発声された、および／またはテキスト形式の自然言語入力を、ユーザの意図を推量するために翻訳し、推量されたユーザの意図に基づく動作を実行する、任意の情報処理システムを表しうる。例えば、推測されたユーザの意図に基づいて行動するため、システムは以下の１つ以上を実行することができる：推測されたユーザの意図を達成するために設計された、工程およびパラメータを有するタスクフローを特定すること、推測されたユーザの意図から、特定の必要条件をタスクフローに入力すること、プログラム、方法、サービス、ＡＰＩなどを呼び出してタスクを実行すること、および、聞き取りできる（例えば音声）形式および／または目に見える形式で、ユーザへの出力応答を生成すること。
【００１１】
具体的には、デジタルアシスタントは少なくとも部分的に自然言語コマンド、リクエスト、ステートメント、話(narrative)、および／または問い合わせの形式を有するユーザリクエストを受け付けることが可能であって良い。典型的には、ユーザリクエストは有益な回答やデジタルアシスタントによるタスクの実行を求めようとするものであってよい。ユーザリクエストに対する好ましい応答は、要求された情報に関する回答、要求されたタスクの実行、あるいはその両方の提供であってよい。例えば、ユーザは「今私はどこにいるの？」といった質問をデジタルアシスタントにすることができる。ユーザの現在位置に基づいて、デジタルアシスタントは「あなたはウエストゲート近くのセントラルパークにいます」と答えることができる。ユーザはさらに、例えば「来週のガールフレンドのバースデーパーティに友人を招待してくれない？」というタスクの実行を要求することもできる。これに応答して、デジタルアシスタントは「はい、今すぐに」といって質問を認め、その後、ユーザの電子住所録にリストされている、ユーザの友人それぞれに、ユーザに代わって適切なカレンダー招待を送信することができる。要求されたタスクの実行中、デジタルアシスタントは、ある幅を持った時間にわたる複数回の情報交換を伴う継続的なダイヤログの中で何度かユーザとやりとりすることができる。情報や様々なタスクの実行を要求するためにデジタルアシスタントとやりとりする方法は多数存在する。言葉による応答の提供およびプログラムされた動作の実行に加え、デジタルアシスタントは例えばテキスト、アラート、音楽、ビデオ、アニメーションなど、他の視覚的または聴覚的形態でも応答を提供することができる。
【００１２】
例えば、図１に示すように、デジタルアシスタントはクライアント-サーバモデルに従って実施されてもよい。デジタルアシスタントは、ユーザ機器１０４ａ，１０４ｂで実行されるクライアント側部分１０２ａ，１０２ｂ（以下「ＤＡクライアント１０２」）と、サーバシステム１０８で実行されるサーバ側部分１０６（以下、「ＤＡサーバ１０６」）とを含むことができる。ＤＡクライアント１０２は、１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信することができる。ＤＡクライアント１０２は、ユーザ対応(user-facing)入出力処理および、ＤＡサーバ１０６との通信のような、クライアント側の機能を提供することができる。ＤＡサーバ１０６は、個々のユーザ機器１０４に存在する任意数のＤＡクライアント１０２に対してサーバ側の機能を提供することができる。
【００１３】
いくつかの例において、ＤＡサーバ１０６はクライアント対応(client-facing)Ｉ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データおよびモデル１１６、および外部サービス１１８へのＩ／Ｏインタフェースを含むことができる。クライアント対応Ｉ／Ｏインタフェースは、デジタルアシスタントサーバ１０６のためのクライアント対応入出力処理を促進することができる。１つ以上の処理モジュール１１４は、音声入力の処理ならびに、自然言語入力に基づくユーザ意図の決定のために、データおよびモデル１１６を用いることができる。さらに、１つ以上の処理モジュール１１４は、推測されたユーザ意図に基づいてタスクを実行する。いくつかの例において、ＤＡサーバ１０６は、タスク達成もしくは情報取得のために１つ以上のネットワーク１１０を通じて外部サービス１２０と通信することができる。外部サービス１１８へのＩ／Ｏインタフェースは、そのような通信を容易にすることができる。
【００１４】
ユーザ機器１０４の非限定的な例には、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話機、スマートフォン、ＥＧＰＲＳ(enhanced general packet radio serveice)携帯電話機、メディアプレーヤ、ナビゲーション機器、ゲーム機、テレビ、テレビセットトップボックス、リモコン、ウェアラブル電子機器、またはこれらのデータ処理機器や他のデータ処理機器の任意の２つ以上の組み合わせを含むことができる。ユーザ機器１０４のさらなる詳細は、図２に示す例示的なユーザ機器１０４に関して提供される。
【００１５】
１つ以上のネットワーク１１０の例は、ローカルエリアネットワーク（ＬＡＮ）および、ワイドエリアネットワーク（ＷＡＮ）、例えばインターネットを含むことができる。１つ以上のネットワーク１１０は、例えばイーサネット（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ、ＧＳＭ(Global System for Mobile Communication：登録商標)ＥＤＧＥ（Enhanced Data GSM Environment)、符号分割多元アクセス（ＣＤＭＡ）、時分割多元アクセス（ＴＤＭＡ）、ブルートゥース（登録商標）、Ｗｉ−Ｆｉ、ＶｏＩＰ(Voice over Internet Protocol)、Ｗｉ−ＭＡＸ、または他の任意の好適な通信プロトコルのような、様々な有線または無線プロトコルを含む、任意の既知のネットワークプロトコルを用いて実施されてよい。
【００１６】
サーバシステム１０８は、１つ以上のスタンドアローンデータ処理装置や、コンピュータの分散ネットワークで実施されてよい。いくつかの例において、サーバシステム１０８はさらに、サーバシステム１０８の基礎となるコンピューティングリソースおよび／またはインフラストラクチャリソースを提供するために、様々な仮想機器および／またはサードパーティサービスプロバイダ（例えばサードパーティクラウドサービスプロバイダ）のサービスを利用することができる。
【００１７】
図１に示すデジタルアシスタントはクライアント側部分（例えばＤＡクライアント１０２）およびサーバ側部分（例えばＤＡサーバ１０６）の両方を含むことができるが、一部の例では、デジタルアシスタントの機能が、ユーザ機器にインストールされるスタンドアロンアプリケーションとして実施されてもよい。さらに、デジタルアシスタントのクライアント部分とサーバ部分との機能の分割は、実装に応じて異なってもよい。例えば、一部の例では、ＤＡクライアントは、ユーザと直接やりとりする入出力処理機能だけを提供し、デジタルアシスタントの他のすべての機能をバックエンドサーバに委託するシンクライアントであってよい。
【００１８】
２．ユーザ機器
図２は、様々な例に合致するユーザ機器１０４のブロック図を示している。ユーザ機器１０４は、メモリインタフェース２０２、１つ以上のプロセッサ２０４、および周辺インタフェース２０６を含むことができる。ユーザ機器１０４の様々な構成要素は、１つ以上の通信バスや信号線によって接続されてよい。ユーザ機器１０４は周辺インタフェース２０６に接続される様々なセンサ、サブシステム、および周辺機器を含むことができる。センサ、サブシステム、および周辺機器は、情報の収集およびユーザ機器１０４の様々な機能の補助の少なくとも一方を行うことができる。
【００１９】
例えば、モーションセンサ２１０、光センサ２１２、および近接センサ２１４は、向き、光、および近接検知機能を補助するために周辺インタフェース２０６に接続されることができる。測位システム（例えばＧＰＳ受信器）、温度センサ、生体センサ、ジャイロ、コンパス、加速度計などのような１つ以上の他のセンサ２１６を、関連する機能を補助するために周辺インタフェース２０６にさらに接続してもよい。
【００２０】
一部の例において、写真を撮ったりビデオクリップを記録したりといったカメラ機能を補助するために、カメラサブシステム２２０および光学センサ２２２を用いることができる。通信機能は、様々な通信ポート、無線周波数受信器および送信器、および／または光（例えば赤外）受信器および送信器を含むことのできる１つ以上の有線および／または無線通信サブシステム２２４を通じて補助されてよい。オーディオサブシステム２２６は、音声認識、音声レプリケーション、デジタルレコーディング、および電話機能といった、音声を利用可能な機能を補助するために、スピーカ２２８およびマイク２３０に接続されてよい。マイク２３０はユーザからの音声入力を受信するように構成されてよい。
【００２１】
一部の例では、Ｉ／Ｏサブシステム２４０がさらに周辺インタフェース２０６に接続されてもよい。Ｉ／Ｏサブシステム２４０は、タッチスクリーンコントローラ２４２および／または他の（１つ以上の）入力コントローラ２４４を含むことができる。タッチスクリーンコントローラ２４２は、タッチスクリーン２４６に接続されてよい。タッチスクリーン２４６およびタッチスクリーンコントローラ２４２は例えば、容量、抵抗、赤外、表面弾性波技術、近接センサアレイなどの複数の接触感知技術のうち任意のものを用いて、例えば接触およびその移動ならびに中断を検出することができる。他の（１つ以上の）入力コントローラ２４４を、ボタン、ロッカースイッチ、サムホイール、赤外線ポート、ＵＳＢポート、および／またはスタイラスのようなポインティングデバイスの１つ以上のような、他の入力／制御機器２４８に接続することができる。
【００２２】
一部の例において、メモリインタフェース２０２をメモリ２５０に接続することができる。メモリ２５０は、電子的、磁気的、光学的、電磁気的、赤外または半導体のシステム、装置または機器、ポータブルコンピュータディスケット（磁気的）、ランダムアクセスメモリ（ＲＡＭ）（磁気的）、読み出し専用メモリ（ＲＯＭ）（磁気的）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）（磁気的）、ＣＤ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ＤＶＤ−Ｒ、またはＤＶＤ−ＲＷのようなポータブル光学ディスク、またはコンパクトフラッシュカード、セキュアードデジタルカード、ＵＳＢメモリ機器、メモリスティックなどのようなフラッシュメモリのいかなるものを含んでよい。一部の例において、メモリ２５０の恒久的かつコンピュータが読み取り可能な記憶媒体を、コンピュータベースのシステム、プロセッサーを含んだシステム、または、命令を命令実行システム、装置、または機器から読み出して実行可能な他のシステム命令実行システム、装置、または機器によって、あるいはそれらに関連して用いるための（例えば、後で説明する手順４００を実行するための）命令を記憶するために用いることができる。他の例において、（例えば以下に説明する手順４００を実行するための）命令は、サーバシステム１０８の恒久的かつコンピュータ読み取り可能な記憶媒体（不図示）に記憶されてもよいし、あるいは、メモリ２５０の恒久的かつコンピュータ読み取り可能な記憶媒体とサーバシステム１１０の恒久的かつコンピュータ読み取り可能な記憶媒体とに分割されてもよい。本明細書の文脈において、「恒久的かつコンピュータ読み取り可能な記憶媒体」は、命令実行システム、装置、または機器によって用いるための、あるいはそれらに関連して用いるためのプログラムを記憶または保存可能な任意の媒体であってよい。
【００２３】
一部の例において、メモリ２５０はオペレーティングシステム２５２、通信モジュール２５４、ユーザインタフェースモジュール２５６、センサ処理モジュール２５８、電話モジュール２６０、およびアプリケーション２６２を記憶することができる。オペレーティングシステム２５２は、基本的なシステムサービスを処理したり、ハードウェアに依存したタスクを実行するための命令を含むことができる。通信モジュール２５４は１つ以上の追加機器、１つ以上のコンピュータ、および／または１つ以上のサーバとの通信を補助することができる。ユーザインタフェースモジュール２５６はグラフィカルユーザインタフェース処理および他の出力チャネル（例えばスピーカ）を用いる出力処理を補助することができる。センサ処理モジュール２５８は、センサ関連処理および機能を補助することができる。電話モジュール２６０は電話関連処理および機能を補助することができる。アプリケーションモジュール２６２は、電子メッセージ処理、ウェブ閲覧処理、メディア処理、ナビゲーション、画像処理のようなユーザアプリケーションの様々な機能、および／または他の処理および機能を補助することができる。
【００２４】
ここで説明するように、メモリ２５０は、デジタルアシスタントのクライアント側の機能を提供するため、クライアント側デジタルアシスタント命令（例えばデジタルアシスタントクライアントモジュール２６４に）および、様々なユーザデータ２６６（例えばユーザ固有の語彙データ、設定データ、および／またはユーザの電子アドレス帳、to-doリスト、買い物リスト、ユーザ指定の氏名発音などの他のデータ）をさらに記憶することができる。
【００２５】
様々な例において、デジタルアシスタントクライアントモジュール２６４は、様々なユーザインタフェース（例えばＩ／Ｏサブシステム２４４）を通じた音声入力（例えば会話入力）、テキスト入力、タッチ入力、および／またはジェスチャ入力を受付可能であってよい。デジタルアシスタントクライアントモジュール２６４はさらに、聴覚的（例えば会話出力）、視覚的、および／または触感的な形態で出力を提供可能であってよい。例えば、出力は声、音、警報、テキストメッセージ、メニュー、グラフィックス、ビデオ、アニメーション、振動および／またはそれらの２つ以上の組み合わせとして提供されてよい。動作中、デジタルアシスタントクライアントモジュール２６４は通信サブシステム２２４を用いてデジタルアシスタントサーバ１０６と通信することができる。
【００２６】
一部の例において、デジタルアシスタントクライアントモジュール２６４は、ユーザ、現在のユーザインタラクションおよび／または現在のユーザ入力に関するコンテクストを確立するためにユーザ機器１０４の周辺環境から追加情報を収集するため、様々なセンサ、サブシステム、および周辺機器を利用することができる。一部の例において、デジタルアシスタントクライアントモジュール２６４は、ユーザの意図を推量する助けとするため、ユーザ入力とともに文脈上の情報またはそのサブセットをデジタルアシスタントサーバに提供することができる。一部の例においてデジタルアシスタントは、文脈上の情報を、ユーザへの出力をどのように用意して届けるかを決定するためにも用いることができる。文脈上の情報(contextual information)はコンテクストデータと呼ぶことができる。
【００２７】
一部の例において、ユーザ入力に付随する文脈上の情報はセンサ情報（例えばライティング、周辺ノイズ、周辺温度、周辺環境の画像または動画などを含むことができる。一部の例において、文脈上の情報は、機器の物理的な状態、例えば機器の向き、機器の位置、機器の温度、電力レベル、速度、加速度、動きのパターン、セルラー信号強度なども含むことができる。一部の例において、例えば稼働中のプロセス、インストール済みのプログラム、過去および現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース利用状況など、デジタルアシスタントサーバ１０６のソフトウェア状態に関する情報と、ユーザ機器１０４のソフトウェア状態に関する情報とが、ユーザ入力に関する文脈上の情報としてデジタルアシスタントサーバに提供されてもよい。
【００２８】
一部の例において、ＤＡクライアントモジュール２６４は、デジタルアシスタントサーバからの要求に応答して、ユーザ機器１０４に記憶されている情報（例えばユーザ情報２６６）を選択的に提供することができる。一部の例において、デジタルアシスタントクライアントモジュール２６４は、デジタルアシスタントサーバ１０６によって要求されると、自然言語による対話または他のユーザインタフェースを通じてユーザから更なる入力を聞き出してもよい。デジタルアシスタントクライアントモジュール２６４は、デジタルアシスタントサーバ１０６が意図の演繹および／またはユーザ要求で表現されているユーザ意図の実現を行うことを助けるために、更なる入力をデジタルアシスタントサーバ１０６に渡してもよい。
【００２９】
様々な例において、メモリ２５０はより多くの命令またはより少ない命令を含むことができる。例えば、ＤＡクライアントモジュール２６４は図３Ａで以下に説明するデジタルアシスタントモジュール３２６の任意のサブモジュールを含むことができる。さらに、ユーザ機器１０４の様々な機能は、１つ以上の信号処理および／または特定用途向け集積回路を含む、ハードウェアおよび／またはファームウェアで実施されてよい。
【００３０】
３．デジタルアシスタントシステム
図３Ａは、様々な例に合致する例示的なデジタルアシスタントシステム３００のブロック図を示している。一部の例において、デジタルアシスタントシステム３００は、スタンドアロンコンピュータシステムで実施されてよい。一部の例において、デジタルアシスタントシステム３００は、複数のコンピュータにわたって分散されてもよい。一部の例において、デジタルアシスタントのモジュールおよび機能のいくつかはサーバ部分とクライアント部分とに分割されてよく、クライアント部分はユーザ機器（例えばユーザ機器１０４）に存在し、例えば図１に示すように、１つ以上のネットワークを通じてサーバ部分（例えばサーバシステム１０８）と通信する。一部の例において、デジタルアシスタントシステム３００は、図１に示したサーバシステム１０８（および／またはデジタルアシスタントサーバ１０６）で実施されてよい。デジタルアシスタントシステム３００はデジタルアシスタントシステムの単なる一例であって、デジタルアシスタントシステム３００は図示したものより多くの、あるいは少ない構成要素を有したり、２つ以上の構成要素を組み合わせたり、あるいは構成要素の異なる構成や配置を有したりすることができる。図３Ａに示す様々な構成要素は、ハードウェア、１つ以上のプロセッサで実行するためのソフトウェア命令、１つ以上の信号処理および／または特定用途向け集積回路を含むファームウェア、またはそれらの組み合わせによって実施することができる。
【００３１】
デジタルアシスタントシステム３００は、メモリ３０２、１つ以上のプロセッサ３０４、入力／出力（Ｉ／Ｏ）インタフェース３０６、およびネットワーク通信インタフェース３０８とを含むことができる。これらの構成要素は１つ以上の通信バスまたは信号線３１０を通じて互いに通信することができる。
【００３２】
一部の例において、メモリ３０２は、高速ランダムアクセスメモリおよび／または不揮発性かつコンピュータ読み取り可能な記憶媒体（例えば１つ以上の磁気ディスク記憶装置、フラッシュメモリ機器、または他の不揮発性半導体メモリ機器）を含む、恒久的かつコンピュータ読み取り可能な媒体を含むことができる。
【００３３】
一部の例においてＩ／Ｏインタフェース３０６は、デジタルアシスタントシステム３００の入力／出力機器３１６（ディスプレイ、キーボード、タッチ画面、およびマイクロホンなどの）に接続することができる。Ｉ／Ｏインタフェース３０６は、ユーザインタフェースモジュール３２２とともに、ユーザ入力（例えば音声入力、キーボード入力、タッチ入力など）を受信し、それらを相応に処理することができる。一部の例において、例えばデジタルアシスタントがスタンドアロンユーザ機器で実施される場合、デジタルアシスタントシステム３００は、図２におけるユーザ機器１０４に関して説明した構成要素、Ｉ／Ｏ、通信インタフェースの任意のものを含むことができる。一部の例において、デジタルアシスタントシステム３００はデジタルアシスタント実装のサーバ部分を表すことができ、さらにユーザ機器に存在するクライアント側部分を通じてユーザとやり取りすることができる。
【００３４】
一部の例において、ネットワーク通信インタフェース３０８は、（１つ以上の）有線通信ポート３１２および／または無線送受信回路３１４を含むことができる。（１つ以上の）有線通信ポートは１つ以上の有線インタフェース、例えばイーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ファイアワイヤなどを通じて通信信号を受信および送信することができる。無線回路３１４はＲＦ信号および／または光信号を通信ネットワークおよび他の通信機器との間で受信および送信することができる。無線通信はＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、ブルートゥース、Ｗｉ−Ｆｉ、ＶｏＩＰ、Ｗｉ−ＭＡＸまたは他の適切な通信プロトコルの任意のものといった、複数の通信規格、プロトコル、および技術の任意のものを用いることができる。ネットワーク通信インタフェース３０８は、デジタルアシスタントシステム３００がインターネット、イントラネットのようなネットワーク、および／またはセルラーネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）および／またはメトロポリタンエリアネットワーク（ＭＡＮ）のような無線ネットワークと通信することを可能にする。
【００３５】
一部の例において、メモリ３０２、あるいはメモリ３０２のコンピュータ読み取り可能な記憶媒体は、オペレーティングシステム３１８、通信モジュール３２０、ユーザインタフェースモジュール３２２、１つ以上のアプリケーション３２４、およびデジタルアシスタントモジュール３２６のすべて、あるいはそのサブセットのプログラム、モジュール、命令、およびデータ構造を記憶することができる。特に、メモリ３０２あるいはメモリ３０２のコンピュータ読み取り可能な記憶媒体は、以下に説明する手順４００を実行するための命令を記憶することができる。１以上のプロセッサ３０４は、これらのプログラム、モジュール、および命令を実行すること、およびデータ構造からの／への、読み出し／書き込みをすることが可能である。
【００３６】
オペレーティングシステム３１８（例えばダーウィン、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ＯＳ Ｘ、ウィンドウズ、あるいはＶｘＷｏｒｋｓのような組み込み型オペレーティングシステム）は、汎用システムタスク（例えばメモリ管理、記憶装置制御、電力管理など）を制御および管理したりするための様々なソフトウェアコンポーネントおよび／またはドライバを含むこと、および様々なハードウェア、ファームウェア、およびソフトウェアコンポーネント間の通信を支援することができる。
【００３７】
通信モジュール３２０は、ネットワーク通信インタフェース３０８を通じたデジタルアシスタントシステム３００と他の機器との通信を支援することができる。例えば、通信モジュール３２０は図２に示した機器１０４の通信モジュール２５４と通信することができる。通信モジュール３２０は、無線回路３１４および／または有線通信ポート３１２によって受信されたデータを取り扱うための様々なコンポーネントをさらに含むことができる。
【００３８】
ユーザインタフェースモジュール３２２は、Ｉ／Ｏインタフェース３０６を介してユーザから（例えばキーボード、タッチスクリーン、ポインティングデバイス、コントローラ、および／またはマイクから）コマンドおよび／または入力を受信し、ユーザインタフェースオブジェクトをディスプレイ上に生成することができる。ユーザインタフェースモジュール３２２はさらに、出力（例えばスピーチ、音、アニメーション、テキスト、アイコン、振動、触感フィードバック、光など）を準備し、Ｉ／Ｏインタフェース３０６（例えばディスプレイ、オーディオチャネル、スピーカ、タッチパッドなど）を通じてユーザに届けることができる。
【００３９】
アプリケーション３２４は１つ以上のプロセッサ３０４によって実行されるように構成されたプログラムおよび／またはモジュールを含むことができる。例えば、デジタルアシスタントシステムがスタンドアロンユーザ機器で実施される場合、アプリケーション３２４はゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、または電子メールアプリケーションのようなユーザアプリケーションを含むことができる。デジタルアシスタントシステム３００がサーバファームで実施される場合、アプリケーション３２４は例えばリソース管理アプリケーション、診断アプリケーション、またはスケジュールアプリケーションを含むことができる。
【００４０】
メモリ３０２はさらに、デジタルアシスタントモジュール（またはデジタルアシスタントのサーバ部分）３２６を含むことができる。一部の例において、デジタルアシスタントモジュール３２６は、以下のサブモジュール、またはそのサブセットまたはスーパーセットを含むことができる：入力／出力処理モジュール３２８、スピーチトゥテキスト（ＳＴＴ）処理モジュール３３０、自然言語処理モジュール３３２、会話フロー処理モジュール３３４、タスクフロー処理モジュール３３６、サービス処理モジュール３３８、および音声合成モジュール３４０。これらモジュールの各々は、デジタルアシスタント３２６の以下のシステムまたはデータおよびモデル、あるいはそのサブセットまたはスーパーセットにアクセスすることができる：オントロジー３６０、語彙インデックス３４４、ユーザデータ３４８、タスクフローモジュール３５４、サービスモデル３５６、ＡＳＲシステム、および発音システム３４２。  
【００４１】
一部の例において、デジタルアシスタントモジュール３２６で実施される処理モジュール、データ、およびモデルを用い、デジタルアシスタントは以下の少なくともいくつかを実行することができる：音声入力をテキストへ変換すること、ユーザから受信された自然言語入力で表現されたユーザの意図を特定すること、（例えば言葉、ゲーム、意図などの曖昧さをなくすことにより）ユーザの意図を十分に推量するために必要な情報を能動的に聞き出したり取得したりすること、推量された意図を実現するためのタスクフローを決定すること、および推量された意図を実現するためのタスクフローを実行すること。
【００４２】
一部の例において、図３Ｂに示すように、Ｉ／Ｏ処理モジュール３２８は、ユーザ入力（例えば音声入力）を取得したり、ユーザ入力への応答を（例えば音声出力として）提供したりするために、図３ＡにおけるＩ／Ｏ機器３１６を通じてユーザとやり取りしたり、あるいは、図３Ａにおけるネットワーク通信インタフェース３０８を通じてユーザ機器（例えば図１におけるユーザ機器１０４）とやり取りしたりすることができる。Ｉ／Ｏ処理モジュール３２８は、必要に応じて、ユーザ機器からのユーザ入力に関連する文脈上の情報を、ユーザ入力を受信しながら、あるいは受信の少し後に取得することができる。文脈上の情報は、ユーザ固有データ、語彙、および／またはユーザ入力に関連する設定を含むことができる。一部の例において、文脈上の情報はさらに、ユーザ要求を受信した時点の機器（例えば図１におけるユーザ機器１０４）のソフトウェアおよびハードウェア状態、および／またはユーザ要求を受信した時点のユーザの周囲環境に関する情報を含んでもよい．一部の例において、Ｉ／Ｏ処理モジュール３２８はさらに、ユーザ要求について追加の質問をユーザに送信したり、ユーザから回答を受信したりすることができる。ユーザ要求がＩ／Ｏ処理モジュール３２８で受信され、かつユーザ要求が音声入力を含むことができる場合、Ｉ／Ｏ処理モジュール３２８は音声テキスト変換のために音声入力をＳＴＴ処理モジュール３３０（または音声認識器）に転送することができる。
【００４３】
ＳＴＴ処理モジュール３３０は１つ以上のＡＳＲシステムを含むことができる。１つ以上のＡＳＲシステムは、認識結果を生成するために、Ｉ／Ｏ処理モジュール３２８を通じて受信した音声入力を処理することができる。各ＡＳＲシステムはフロントエンド音声プリプロセッサを含むことができる。フロントエンド音声プリプロセッサは、音声入力から代表的な特徴を抽出することができる。例えば、フロントエンド音声プリプロセッサは、音声入力を代表多次元ベクトルシーケンスとして特徴付ける、スペクトルの特徴を抽出するために、音声入力にフーリエ変換を実行することができる。さらに、各ＡＳＲシステムは、１つ以上の音声認識モデル（例えば音響モデルおよび／または言語モデル）を含むことができ、また１つ以上の音声認識エンジンを実施することができる。音声認識モデルの例には、隠れマルコフモデル、ガウス混合モデル、ディープニューラルネットワークモデル、ｎ−ｇｒａｍ言語モデル、および他の統計的モデルが含まれてよい。音声認識エンジンの例には、ダイナミック時間ワープベースのエンジンおよび重み付き有限状態トランスデューサ（ＷＦＳＴ）ベースのエンジンが含まれてよい。１つ以上の音声認識モデルおよび１つ以上の音声認識エンジンは、中間認識結果（例えば音素、音素列、およびサブワード）並びに最終的にはテキスト認識結果（例えば単語、単語列、またはトークンシーケンス）を生成するために、フロントエンド音声プリプロセッサが抽出した代表的な特徴を処理することができる。一部の例においては、認識結果を生成するために、サードパーティーサービスによって、あるいはユーザの機器（例えばユーザ機器１０４）で、音声入力が少なくとも部分的に処理されてよい。ＳＴＴ処理モジュール３３０がテキスト列（例えば単語、単語シーケンス、またはトークンシーケンス）を含んだ認識結果を生成したら、意図の推論のために認識結果を自然言語処理モジュール３２２に送ることができる。 
【００４４】
一部の例において、ＳＳＴ処理モジュール３３０は認識可能な単語の語彙を含むこと、および／または認識可能な単語の語彙に音声記号(phonetic alphabet)変換モジュール３３１を介してアクセスすることができる。語彙語(vocablary word)の各々は、音声認識音声記号で表される語の１つ以上の発音候補に関連付けられてよい。特に、認識可能語の語彙は、複数の発音候補に関連付けられた語を含むことができる。例えば、語彙は、発音候補
0006357458.tif 000002
および
0006357458.tif 000003
に関連付けられた単語「tomato」を含んでよい。さらに、語彙語は、そのユーザからの以前の音声入力に基づくカスタム発音候補と関連付けられることができる。そのようなカスタム発音候補は、ＳＴＴ処理モジュール３３０に記憶されることができ、また、機器のユーザプロファイルを用いて特定のユーザに関連付けられることができる。一部の例において、語に対する発音候補は、語の綴りと、言語規則および／または発音規則の１つ以上とに基づいて決定されることができる。一部の例において発音候補は、例えば既知の公式発音(canonical pronunciations)に基づいて手作業で生成されることができる。
【００４５】
一部の例において発音候補は、発音候補の一般性(commonness)に基づいてランク付けされることができる。例えば、発音候補
0006357458.tif 000004
は、発音候補
0006357458.tif 000005
よりも（例えば全ユーザで、特定の地理的領域内のユーザについて、あるいはユーザの他の適切なサブセットのいずれかついて）普通に使われる発音であるため、より高いランクを付与されることができる。一部の例において発音候補は、発音候補がそのユーザに関連付けられたカスタム発音候補かどうかに基づいてランク付けされることができる。例えば、カスタム発音候補には公式発音候補よりも高いランクが付与されることができる。これは、公式発音とは異なる独特の発音を有する固有名刺を認識するために有用であろう。一部の例において、発音候補は出身地、国籍、民族などの１つ以上の会話特性に関連付けられることができる。例えば、発音候補
0006357458.tif 000006
は米国に関連付けられることができ、発音候補
0006357458.tif 000007
は英国に関連付けられることができる。さらに、発音候補のランクは、機器のユーザプロファイルに記憶されているユーザの特徴（例えば出身地、国籍、民族など）の１つ以上に基づくことができる。例えば、ユーザプロファイルから、そのユーザが米国に関連付けられていると判定されることができる。ユーザが米国に関連付けられていることに基づいて、（米国に関連付けられている）発音候補
0006357458.tif 000008
は、（英国に関連付けられている）発音候補
0006357458.tif 000009
よりも高くランク付けされることができる。一部の例において、ランク付けされた発音候補の１つが予測された発音（例えば最も可能性の高い発音）として選択されることができる。
【００４６】
音声入力を受信すると、音声入力に対応する音素を（例えば音響モデルを用いて）決定し、その後その音素に対応する語を（例えば言語モデルを用いて）決定試行するために、ＳＴＴ処理モジュール３３０が用いられることができる。例えば、ＳＴＴ処理モジュール３３０がまず音声入力の一部に対応する音素シーケンス(sequence of phonemes)
0006357458.tif 000010
を特定することができるとすると、ＳＴＴ処理モジュール３３０はその後、語彙インデックス３４４に基づいて、この音素シーケンスが語「tomato」に対応することを判定することができる。
【００４７】
一部の例において、ＳＴＴ処理モジュール３３０は、発声内の語を決定するために、近似検索(approximate matching)技術を用いることができる。そのため、例えば、その特定の音素シーケンスがその語の候補音素列の１つで無かったとしても、ＳＴＴ処理モジュール３３０は、音素シーケンス
0006357458.tif 000011
が語「tomato」に対応すると決定することができる。
【００４８】
デジタルアシスタントの自然言語処理モジュール３３２（「自然言語プロセッサ」）は、ＳＴＴ処理モジュール３３０によって生成された、語またはトークンのシーケンス（「トークンシーケンス」）を取得し、トークンシーケンスをデジタルアシスタントによって認識される１つ以上の「実行可能(actionable)な意図」に関連付けようとすることができる。「実行可能な意図」は、デジタルアシスタントによって実行されることのできるタスクを表すことができ、またタスクフローモデル３５４に実装されている関連タスクフローを有することができる。関連タスクフローは、デジタルアシスタントがタスクを実行するために行う一連のプログラムされた動作及びステップであってよい。デジタルアシスタントの性能の範囲は、タスクフローモデル３５４に実装ならびに記憶されているタスクフローの数および多様性、換言すれば、デジタルアシスタントが認識する「実行可能な意図」の数および多様性に依存することができる。しかしながら、デジタルアシスタントの有効性は、自然言語で表現されたユーザ要求から正しい「（１つ以上の）実行可能な意図」を推量するデジタルアシスタントの能力にも依存しうる。
【００４９】
一部の例において、ＳＴＴ処理モジュール３３０から得られる語またはトークンのシーケンスに加え、自然言語処理モジュール３３２もユーザ要求に関する文脈上の情報を例えばＩ／Ｏ処理モジュール３２８から受信することができる。自然言語処理モジュール３３２は、ＳＳＴ処理モジュール３３０から受信するトークンシーケンスに含まれる情報を明確化、補充、および／またはさらに規定するため、必要に応じて文脈上の情報を用いることができる。文脈上の情報は例えば、ユーザ機器のユーザ設定、ハードウェア、および／またはソフトウェアステータス、ユーザ要求の前、最中、もしくは少し後に収集されたセンサ情報、デジタルアシスタントとユーザとの過去のやりとり（例えば会話(dialogue)）などを含むことができる。ここで説明するように、文脈上の情報は動的なものであってよく、また、時間、位置、会話の内容、および他の要因に応じて変化するものであってよい。
【００５０】
一部の例において、自然言語処理は例えばオントロジー３６０に基づくことができる。オントロジー３６０は多数のノードを含む階層構造を有することができ、各ノードは「実行可能な意図」、１つ以上の「実行可能な意図」に関する「プロパティ」、あるいは他の「プロパティ」のいずれかを表す。上述の通り、「実行可能な意図」は、デジタルアシスタントが実行可能なタスク、すなわちそれが「実行可能」または実行されることが可能であることを表すことができる。「プロパティ」は、実行可能な意図に関するパラメータ、あるいは別のプロパティの部分的な態様(sub-ascect)を表すことができる。オントロジー３６０における、実行可能意図ノードとプロパティノードとの結合(linkage)は、プロパティノードで表されるパラメータが、実行可能意図ノードで表されるタスクとどの程度関連するかを規定することができる。
【００５１】
一部の例において、オントロジー３６０は実行可能意図ノードおよびプロパティノードから構成されることができる。オントロジー３６０内でそれぞれの実行可能意図ノードは、１つ以上のプロパティノードに直接、あるいは１つ以上の中間プロパティノードを通じて結合されることができる。同様に、それぞれのプロパティノードは、１つ以上の実行可能意図ノードに直接あるいは１つ以上の中間プロパティノードを通じて結合されることができる。例えば、図３Ｃに示すように、オントロジー３６０は「レストラン予約」ノード（すなわち実行可能意図ノード）を含むことができる。プロパティノード「レストラン」、（予約のための）「日／時」、および「人数(party size)」はそれぞれ、同じ実行可能意図ノード（すなわち「レストラン予約」ノード）に直接結合されることができる。
【００５２】
さらに、プロパティノード「料理」、「価格帯」、「電話番号」、および「場所」は、プロパティノード「レストラン」のサブノードであってよく、それぞれ「レストラン予約」ノード（すなわち実行可能意図ノード）に中間プロパティノード「レストラン」を通じて結合されることができる。別の例として、図３Ｃに示すように、オントロジー３６０はさらに「リマインダーの設定」ノード（すなわち、別の実行可能意図ノード）を含むことができる。（リマインダーを設定するための）「日／時」および（リマインダーのための）「題目(subject)」のプロパティノードはそれぞれ、「リマインダー設定」ノードに結合されることができる。プロパティ「日／時」はレストラン予約を行うタスクと、リマインダーを設定するタスクの両方に関連しうるため、オントロジー３６０内でプロパティノード「日／時」は、「レストラン予約」ノードと「リマインダー設定」ノードの両方に結合されることができる。
【００５３】
実行可能意図ノードは、結合された概念ノードとともに、「ドメイン」と表現されることができる。本文書において各ドメインはある特定の実行可能な意図に関連付けられることができるとともに、その特定の実行可能な意図に関連付けられたノード群（およびそれらの間の関係）を参照することができる。例えば、図３Ｃに示されるオントロジー３６０は、レストラン予約ドメイン３６２の一例ならびにリマインダードメイン３６４の一例をオントロジー３６０内に含むことができる。レストラン予約ドメインは実行可能意図ノード「レストラン予約」、プロパティノード「レストラン」、「日／時」および「人数」、ならびにサブプロパティノード「料理」、「価格帯」、「電話番号」および「場所」を含んでいる。リマインダードメイン３６４は実行可能意図ノード「リマインター設定」およびプロパティノード「題目」および「日／時」を含むことができる。一部の例においてオントロジー３６０は多数のドメインから構成されることができる。各ドメインは１つ以上のプロパティノードを１つ以上の他のドメインと共有することができる。例えば、「日／時」プロパティノードは、レストラン予約ドメイン３６２およびリマインター設定ドメイン３６４に加え、多くの他のドメイン（例えばスケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）に関連付けられることができる。
【００５４】
図３Ｃはオントロジー３６０内のドメインの２つの例を示しているが、他のドメインは例えば「通話開始」、「道順探索(get directions)」、「会議のスケジュール」、「メッセージ送信」、「質問に対する回答提供」、「リスト読み上げ」、「ナビゲーション指示の提供」、「タスクのための指示の提供」、などを含むことができる。「メッセージ送信」ドメインは「メッセージ送信」実行可能意図ノードに関連付けられることができ、さらに「（１人以上の）受信者」、「メッセージタイプ」、および「メッセージ本文」といったプロパティノードをさらに含んでよい。プロパティノード「受信者」は、例えば「受信名」および「メッセージアドレス」といったサブプロパティノードによってさらに規定されることができる。
【００５５】
一部の例においてオントロジー３６０は、デジタルアシスタントが理解ならびに実行することのできるドメイン（つまりは実行可能な意図）の全てを含むことができる。一部の例において、ドメイン全体またはノードを追加または除去することなどにより、あるいはオントロジー３６０内のノード間の関係を変更することにより、オントロジー３６０が変更されてもよい。
【００５６】
一部の例において、複数の関連する実行可能な意図に関連付けられたノードは、オントロジー３６０内で「スーパードメイン」下にまとめられることができる。例えば、「旅行」スーパードメインは、旅行に関するプロパティノードおよび実行可能意図ノードの集合を含むことができる。旅行に関連する実行可能意図ノードは「飛行機予約」、「ホテル予約」、「カーレンタル」、「道順探索」、「見所(point of interest)を探す」などを含むことができる。同じスーパードメイン（例えば「旅行」スーパードメイン）下の実行可能意図ノードは、共通する多数のプロパティノードを有することができる。例えば、「飛行機予約」、「ホテル予約」、「カーレンタル」、「道順探索」および「見所を探す」についての実行可能意図ノードは、プロパティノード「開始位置」、「行き先」、「出発日／時刻」、「到着日／時刻」、および「人数」の１つ以上を共有することができる。
【００５７】
一部の例において、オントロジー３６０の各ノードは、そのノードによって表されるプロパティまたは実行可能意図に関連する語および／または句のセットに関連付けられることができる。各ノードに関連付けられた語および／または句のセットのそれぞれは、そのノードに関連付けられたいわゆる「語彙」であってよい。各ノードに関連付けられた語および／または句のセットのそれぞれは、そのノードで表されるプロパティまたは実行可能な意図に関連付けられた語彙インデックス３４４に記憶されることができる。例えば、図３Ｂに戻って、「レストラン」のプロパティについてのノードに関連付けられた語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの語を含むことができる。別の例として、実行可能な意図「通話開始」に関するノードに関連付けられた語彙は、「通話」、「電話」、「ダイヤル」、「鳴動」、「この番号に発呼」、「〜に発呼する」などの語および句を含むことができる。語彙インデックス３４４は必要に応じて様々な言語の語および句を含むことができる。一部の例において、ノード（例えば実行可能な意図、パラメータ／プロパティ）に関連付けられた語彙は、同綴異音異義語を含むことができ、語彙中の同綴異音異義語は特定の意味および発音に関連付けられることができる。例えば、語彙中の同綴異音異義語は、（例えばタグ、ラベル、トークン、メタデータ、および同様のものによって）特定の意味および発音に関連付けられているものとして一意に特定されることができる。
【００５８】
自然言語処理モジュール３３２はＳＳＴ処理モジュール３３０からトークンシーケンス（例えばテキスト列）を受け取り、そのトークン列内の語によってどのノードの関連性が示されているかを決定することができる。一部の例において、トークンシーケンス内の語または句がオントロジー３６０内の１つ以上のノードに（語彙インデックス３４４によって）関連付けられていることが判明した場合、その語または句はそれらのノードを「トリガ」または「アクティベート」することができる。アクティベートされたノードの量および／または相対的な重要性に基づいて、自然言語処理モジュール３３２は、デジタルアシスタントによる実行をユーザが意図したタスクとして、実行可能な意図の１つを選択することができる。一部の例において、「トリガされた」ノードを最も多く有するドメインを選択することができる。一部の例において、（例えばそのドメインのトリガされた様々なノードの相対的な重要性に基づく）最高の信頼値(confidence value)を有するドメインを選択することができる。一部の例において、トリガされたノードの数および重要性の組み合わせに基づいてドメインを選択することができる。一部の例においては、デジタルアシスタントがユーザからの同様の要求を過去に正しく解釈しているかどうかといった、他の要因もノード選択において考慮される。
【００５９】
ユーザデータ３４８は、ユーザ固有語彙、ユーザ設定、ユーザアドレス、ユーザのデフォルトおよび第２言語、ユーザの連絡先リスト、および個々のユーザについての他の短期間または長期間情報といったユーザ固有情報を含むことができる。一部の例において、自然言語処理モジュール３３２は、ユーザの意図をさらに規定するため、ユーザ入力に含まれる情報を補充するのにユーザ固有情報を用いることができる。例えば、「友人を私の誕生日パーティに招待して」というユーザ要求について、自然言語処理モジュール３３２は、誰が「友人」なのかおよび「誕生日パーティ」がいつどこで行われようとしているのかを、ユーザにそのような情報をユーザ要求に明示するように要求することなく解決するために、ユーザデータ３４８にアクセス可能であってよい。
【００６０】
一部の例において、自然言語処理モジュール３３２がユーザ要求に基づいて実行可能な意図（またはドメイン）を特定すると、自然言語処理モジュール３３２は特定された実行可能な意図を表すために構造化クエリを生成することができる。一部の例において、構造化クエリはその実行可能な意図に関するドメイン内の１つ以上のノードについてのパラメータを含むことができ、そのパラメータの少なくともいくつかは、ユーザ要求において指定された特定の情報および条件を含む。例えば、ユーザは「寿司屋で７時に夕食の予約を取って」と言うことができる。この場合、自然言語処理モジュール３３２はユーザ入力に基づいて、実行可能な意図を「レストラン予約」と正しく特定可能であってよい。オントロジーに従って、「レストラン予約」ドメインに関する構造化クエリは、｛料理｝、｛時刻｝、｛日付｝、｛人数｝などのようなパラメータを含んでよい。一部の例において、音声入力と、ＳＴＴ処理モジュール３３０を用いて音声入力から得られるテキストとに基づいて、自然言語処理モジュール３３２はレストラン予約ドメインに関する、パラメータ｛料理＝「寿司」｝および｛時刻＝「午後７時」｝を含んだ部分構造化クエリを生成することができる。しかし、この例においてユーザの発言に含まれる情報は、ドメインに関する構造化クエリを完全なものにするには不十分である。そのため、現時点で利用可能な情報に基づく構造化クエリには、｛人数｝および｛日付｝といった他の必要なパラメータが指定されないであろう。一部の例において自然言語処理モジュール３３２は、受け取った文脈上の情報によって、構造化クエリのいくつかのパラメータを補うことができる。例えば、一部の例においては、ユーザが「自分の近くの」寿司屋を要求した場合、自然言語処理モジュール３３２は構造化クエリの｛場所｝パラメータをユーザ機器１０４からのＧＰＳ座標によって補充することができる。
【００６１】
一部の例において、自然言語処理モジュール３３２は（任意の完全化されたパラメータを含んだ）構造化クエリをタスクフロー処理モジュール３３６（「タスクフロープロセッサ」）に渡すことができる。タスクフロー処理モジュール３３６は自然言語処理モジュール３３２から構造化クエリを受け取り、必要なら構造化クエリを完全なものにし、ユーザの最終的な要求を「達成」するために必要な動作を実行するように構成されることができる。一部の例において、これらタスクを達成するために必要な様々な手順は、タスクフローモデル３５４で提供されることができる。一部の例において、タスクフローモデルはユーザから追加情報を取得するための手順および、実行可能な意図に関連する動作を実行するためのタスクフローを含むことができる。
【００６２】
上述の通り、構造化クエリを完全なものにするため、タスクフロー処理モジュール３３６は追加情報の取得および／または曖昧な可能性のある言葉の曖昧さをなくすために、ユーザとさらなる対話を開始する必要があるかもしれない。そのようなやりとりが不要な場合、タスクフロー処理モジュール３３６はユーザとの対話に参加させるために対話フロー処理モジュール３３４を起動することができる。一部の例において、対話フロー処理モジュール３３４は、どのように（および／またはいつ）ユーザに追加情報を問い合わせるかを決定することができ、ユーザの応答を受信し処理する。質問の提供およびユーザからの回答の受信は、Ｉ／Ｏ処理モジュール３２８を通じて行うことができる。一部の例において、対話フロー処理モジュール３３４はユーザへの対話出力を聴覚的および／または視覚的出力を用いて提示することができ、ユーザから口頭による応答または物理的（例えばクリック）応答の入力を受信する。先の例において、タスクフロー処理モジュール３３６がドメイン「レストラン予約」に関する構造化クエリのための「人数」および「日」情報を決定するために対話フロー処理モジュール３３４を起動する場合、対話フロー処理モジュール３３４はユーザに伝えるために「人数は何人ですか？」および「何日ですか？」といった質問を生成することができる。ユーザからの回答を受信すると対話フロー処理モジュール３３４は、構造化クエリに欠けている情報を追加するか、構造化クエリに欠けた情報を完全なものにするために情報をタスクフロー処理モジュール３３６に渡すことができる。
【００６３】
タスクフロー処理モジュール３３６は実行可能な意図に関する構造化クエリを完全なものにすると、実行可能な意図に関する最終的なタスクの実行に取りかかることができる。従って、タスクフロー処理モジュール３３６は、構造化クエリに含まれる特定のパラメータに従って対すフローモデル内のステップおよび命令を実行することができる。例えば、実行可能な意図「レストラン予約」についてのタスクフローモデルは、レストランへ連絡し、特定の時刻に特定の人数についての予約を実際に依頼するためのステップおよび命令を含むことができる。例えば、{restaurant reservation, restaurant = ABC Cafe, date = 3/12/2012, time = 7pm, party size = 5}というような構造化クエリを用い、タスクフロー処理モジュール３３６は、（１）ＡＢＣカフェのサーバ又はOPENTABLE（登録商標）のようなレストラン予約システムにログオンし、（２）日時ならびに人数情報をウェブサイトのフォームに入力し、（３）フォームを送信し、（４）ユーザのカレンダに予約に関するカレンダエントリを生成するという複数のステップを実行することができる。
【００６４】
一部の例において、タスクフロー処理モジュール３３６は、ユーザ入力で要求されたタスクを達成したり、ユーザ入力で要求された情報を伝える回答を提供したりするために、サービス処理モジュール３３８（「サービス処理モジュール」）の補助を利用することができる。例えば、サービス処理モジュール３３８は電話をかけたり、カレンダエントリを設定したり、地図検索を起動したり、ユーザ機器にインストールされている他のユーザアプリケーションを起動もしくは他のユーザアプリケーションとやりとりしたり、サードパーティサービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、銀行取引ポータルなど）を起動もしくはサービスとやりとりしたりするために、タスクフロー処理モジュール３３６の代理として振る舞うことができる。一部の例において、各サービスが必要とするプロトコルおよびアプリケーションプログラミングインタフェース（ＡＰＩ）は、サービスモデル３５６間の各サービスモデルによって規定されることができる。サービス処理モジュール３３８はサービスに関する適切なサービスモデルにアクセスすることができ、そのサービスモデルに従って、そのサービスが必要とするプロトコルおよびＡＰＩに応じた、そのサービスに関する要求を生成することができる。
【００６５】
例えば、あるレストランがオンライン予約サービスを有効にしている場合、そのレストランは予約するために必要なパラメータおよび、必要なパラメータの値をオンライ予約サービスに通信するためのＡＰＩを指定するサービスモデルを送信することができる。タスクフロー処理モジュール３３６に要求されると、サービス処理モジュール３３８はサービスモデルに記憶されたウェブアドレスを用いてオンライ予約サービスとネットワーク接続を確立し、予約に必要なパラメータ（例えば時刻、日付、人数）をオンライン予約インタフェースにオンライン予約サービスのＡＰＩに準拠したフォーマットで送信することができる。
【００６６】
一部の例において、自然言語処理モジュール３３２、対話フロー処理モジュール３３４、およびタスクフロー処理モジュール３３６は、ユーザの意図を推量ならびに定義し、ユーザの意図をより明確かつ洗練するための情報を取得し、最終的にユーザの意図を満たすための応答（すなわち、ユーザへの出力、あるいはタスクの達成）を生成するために集合的かつ反復的に用いられることができる。生成された応答は音声入力に対する、ユーザの位置を少なくとも部分的に満たす対話応答であってよい。さらに、一部の例において生成される応答は音声出力として出力されることができる。これらの例において生成される応答は音声合成モジュール３４０（例えば音声合成器）に送信されることができ、音声合成モジュール３４０において音声形式の対話応答を合成するために処理されることができる。
【００６７】
音声合成モジュール３４０はユーザに提供するための音声出力を合成するように構成されることができる。音声合成モジュール３４０はデジタルアシスタントから提供されるテキストに基づいて音声出力を合成する。例えば、生成される対話応答はテキスト列の形式であってよい。音声合成モジュール３４０はテキスト列を可聴音声出力に変換することができる。音声合成モジュール３４０はテキストから音声出力を生成するために任意の適切な音声合成技術を用いることができる。使用可能な音声合成技術の非限定的な例には、波形接続合成、２音素連鎖(diaphone)合成、分野限定合成(domain-specific synthesis)、フォルマント合成、声道アナログ合成(articulatory synthesis)、隠れマルコフモデル（ＨＭＭ）に基づく合成、および正弦波合成が含まれる。一部の例において、音声合成モジュール３４０は単語に対応する音素列に基づいて個々の単語を合成するように構成されることができる。例えば、音素列は生成された対話応答における単語に関連付けられることができる。音素列は単語に関連付けられたメタデータに記憶されることができる。音声合成モジュール３４０は単語を音声形式で合成するために、メタデータ内の音素列を直接処理するように構成されることができる。
【００６８】
さらに、音声合成モジュール３４０は同綴異音異義語の曖昧さを解消するための発音システム３４２を含むことができる。従って発音システム３４２は、音声入力または生成された対話応答における同綴異音異義語の正しい発音を決定するように構成されることができる。一部の例において発音システム３４２は、同綴異音異義語の正しい発音を決定するために音声入力、ＡＳＲシステム３３１のn-gram言語モデル、自然言語処理モジュール３３２、および受け取った文脈（例えば文脈上の情報）の少なくとも１つを用いることができる。同綴異音異義語の正しい発音の決定において、発音システム３４２は同綴異音異義語の正しい発音に対応する音素列を、ＡＳＲシステム３３１の音響モデルまたは言語モデルの１つ以上から取得することができる。さらに、一部の例において発音システム３４２は、同綴異音異義語に関する正しい発音を特定するために、生成された対話応答内の同綴異音異義語に（例えばタグ、ラベル、トークン、またはメタデータによって）注釈を付与することができる。音声入力、ＡＳＲシステム、自然言語処理モジュール３３２、および同綴異音異義語の正しい発音に関する文脈上の情報の間で矛盾する情報が存在する場合、発音システム３４２は同綴異音異義語の正しい発音を決定するために予め定められた論理または規則（例えば投票方式(voting schemes)、結合方式(combination schemes)、重み付け方式(weighting schemes)など）を適用するように構成されることができる。以下でより詳細に説明するように、発音システム３４２は手順４００のブロック４１８を実行するように構成されることができる。
【００６９】
一部の例では、ローカル音声合成モジュール３４０を用いる代わりに（あるいはそれに追加して）、音声合成がリモート機器（例えばサーバシステム１０８）で実行され、合成された音声がユーザへの出力のためにユーザ機器１０４に送信される。このような構成は例えば、デジタルアシスタント用の出力がサーバシステムで生成されるような一部の実装において生じる。さらにサーバシステムは一般的にユーザ機器よりも処理能力またはリソースが高いため、クライアント側の合成で現実的に得られるものよりも高品質な音声出力が得られることもあるだろう。
【００７０】
デジタルアシスタントに関するさらなる詳細は、２０１１年１月１０日出願の米国特許出願第12/987,982号、「インテリジェントな自動アシスタント」および、２０１１年９月３０日出願の米国特許出願第13/251,088号、「実行すべきタスクを表すタスク項目の生成および処理」から得ることができる。これら出願の開示の全てを参照によって本明細書に組み入れる。
【００７１】
４．デジタルアシスタントを動作させるための手順
図４は、様々な例に従ったデジタルアシスタントを動作させる手順４００を示す図である。手順４００は１つ以上のプロセッサと、それによって実行するための１つ以上のプログラムを記憶するメモリとを有する電子機器で実行されることができる。一部の例において、手順４００はユーザ機器１０４またはサーバシステム１０８で実行されることができる。一部の例において手順４００は、上述したようにスタンドアロンのコンピュータシステム（例えばユーザ機器１０４またはサーバシステム１０８）に、または複数のコンピュータ（例えばユーザ機器１０４、サーバシステム１０８、および／または、追加もしくは代替の機器またはシステム）にわたって分散されて実装されうるデジタルアシスタントシステム３００（図３Ａ）によって実行されることができる。以下では手順４００がデジタルアシスタント（例えばデジタルアシスタントシステム３００）によって実施されるものとして説明するが、手順はいかなる特定の機器、機器の組み合わせ、または実装による実行にも限定されない。さらに、手順の個々のブロックは１つ以上のコンピュータ、システム、または機器間に、適切な方法で分散されてもよい。
【００７２】
手順４００のブロック４０２で、音声入力をユーザから受信することができる。一部の例においては、デジタルアシスタントとのやりとりのうちに、あるいはやりとりの一部として、音声入力を受信することができる。音声入力は音波、音声ファイル、あるいは典型的な音声信号（アナログまたはデジタル）の形式で受信することができる。一部の例において、音声入力は、電子機器（例えばユーザ機器１０４）のマイク（例えばマイク２３０）によって受信された音波であってよい。他の例において音声入力は、電子機器のオーディオサブシステム（例えばオーディオサブシステム２２６）、周辺インタフェース（例えば周辺インタフェース２０６）、またはプロセッサ（例えばプロセッサ２０４）で受信された、典型的な音声信号または記録された音声ファイルであってよい。さらに別の例において音声入力は、デジタルアシスタントシステムのＩ／Ｏインタフェース（例えばＩ／Ｏインタフェース３０６）またはプロセッサ（例えばプロセッサ３０４）によって受信された、典型的な音声信号または記録された音声ファイルであってよい。
【００７３】
一部の例において、音声入力はユーザ要求を含むことができる。ユーザ要求は、デジタルアシスタントが実行可能なタスク（例えばレストラン予約の実行および／または補助、通話又はテキストメッセージの開始など）を示す要求、応答の要求（例えば、「地球から太陽までの距離は？」といった質問に対する回答）などを含む、任意の要求であってよい。
【００７４】
一部の例において、音声入力は同綴異音異義語と、他の単語の１つ以上を含むことができる。同綴異音異義語と、他の単語の１つ以上を含む音声入力の一例は、「ニース(Nice)の天気はどう？」（「ニース(Nice)」が同綴異音異義語）を含むことができる。既に述べたように、同綴異音異義語「ニース(Nice)」は、発音/nis/（国際発音記号で表記）を有する固有名詞、または発音
0006357458.tif 000012
を有する形容詞でありうる。音声入力が同綴異音異義語の正しい発音を決定するために（例えばブロック４１８で）用いられない例では、音声入力が同綴異音異義語を含まなくてもよいことを理解すべきである。
【００７５】
手順４００のブロック４０４で、音声入力に関する文脈上の情報を受信することができる。ブロック４０４で受信した文脈上の情報は、ユーザの意図を推量したり、どのように出力を用意ならびに配信するかを決定したりすることに関して上述した文脈上の情報と類似もしくは同一であってよい。一部の例において、文脈上の情報は音声入力に付随することができる。一部の例において文脈上の情報は、電子機器のセンサ（例えば、ユーザ機器１０４のモーションセンサ２１０、光センサ２１２、近接センサ２１４、測位システム、温度センサ、生体センサ、ジャイロ、コンパス）から受信されたセンサ情報を含むことができる。特に、文脈上の情報は、ブロック４０２の音声入力が受信された時点におけるユーザの位置を含むことができる。一部の例において文脈上の情報はユーザ機器のアプリケーション（例えばアドレス帳(contacts)、カレンダー、時計、ウェブブラウザ、メッセージングアプリケーション、地図アプリケーション、天気アプリケーションなど）から受信された情報を含むことができる。一部の例において文脈上の情報は、ユーザの身元(identitiy)、出身地(geographical origin)、国籍、または民族性(ethnicity)といったユーザに関する情報を含むことができる。そのようなユーザ情報は機器に記憶されているユーザプロファイルから受け取ることができる。受け取った文脈上の情報は以下に説明するように、ブロック４１４において実行可能な意図を決定するために、あるいはブロック４１８で同綴異音異義語の正しい発音を決定するために用いることができる。
【００７６】
手順４００のブロック４０６で、ＡＳＲシステムを用いて音声入力を処理することができる。例えば、音声入力は上述したようにＳＴＴ処理モジュール３３０のＡＳＲシステムを用いて処理することができる。以下に説明するように、ブロック４０６はブロック４０８から４１２の１つ以上の含むことができる。従って、音声入力で発音された通りの同綴異音異義語に対応する音素列、コーパスに関するn-gramの発生頻度、および音声入力に対応するテキスト列の少なくとも１つを決定するため、ＡＳＲシステムを用いて音声入力を処理することができる。
【００７７】
手順４００のブロック４０８で、音声入力においてユーザが発音したとおりの同綴異音異義語に対応する音素列を決定することができる。上述したように、一部の例では、ＡＳＲシステムのフロントエンド音声プリプロセッサが、音声入力から代表的な特徴を抽出することができる。代表的な特徴は、例えばユーザ発音した通りの音声入力に対応する音素シーケンスを生成するために、ＡＳＲシステムの音響モデルを用いて処理することができる。音素シーケンス内の音素列を対応する単語にマッピングするために、ＡＳＲシステムの言語モデルを用いて音素シーケンスをさらに処理することができる。特に、音素シーケンス内の音素列を音声入力内の同綴異音異義語にマッピングすることができる。この音素列は、音声入力においてユーザが発音した通りの同綴異音異義語に対応することができる。
【００７８】
手順４００のブロック４１０で、コーパスに関するn-gramの発生頻度を測定することができる。n-gramは同綴異音異義語および他の単語の１つ以上を含むことができる。例えば、「ニース(Nice)の天気はどう？(How's the weather in Nice)」という音声入力において、n-gramは「weather in Nice」という単語トリグラムであってよく、この場合同綴異音異義語は「Nice」（発音/nis/に関連付けられた固有名詞）で、別の１つ以上の単語は「weather in」である。あるコーパスに関するn-gramの発生頻度は、そのコーパスを用いて学習を行ったＡＳＲシステムのn-gram言語モデルを用いて測定することができる。一部の例において、n-gramの発生頻度は計数値そのもの(raw count)の形式であってよい。例えば、ある特定のトリグラムはコーパス内で２５回発生することができる。従って、コーパス内のその特定のトリグラムの発生頻度は２５カウントであってよい。別のケースでは、発生頻度は正規化された値であってよい。例えば、発生頻度は尤度(likelihood)または確率(probabiliity)の形式（例えば確率分布）であってよい。そのような一例において、自然言語テキストのコーパスはある特定のトリグラムの２５カウントと、全てのトリグラムの１０００カウントを含むことができる。従って、コーパス内におけるそのトリグラムの発生頻度は２５／１０００に等しくてよい。
【００７９】
n-gram言語モデルは同綴異音異義語に関する意味または発音を区別するように構成されることができる。例えば、n-gram言語モデルは、発音/nis/に関連付けられた固有名詞「ニース(Nice)」と、発音
0006357458.tif 000013
に関連付けられた形容詞「ナイス(nice)」とを区別するために別個のエントリを有することができる。特に、トリグラム言語モデル内のトリグラム「weather in Nice」（固有名詞「Nice」）は、トリグラム言語モデル内の「weather in nice」（形容詞「nice」）と別個であってよい。一部の例において、n-gram言語モデルはメタデータ（例えばタグ付け、トークン付けなど）を用いて同綴異音異義語同士を区別することができる。  
【００８０】
さらに、一部の例において、ブロック４１０はコーパスに関して第２のn-gramの発生頻度の測定を含むことができる。第２のn-gramは同綴異音異義語および他の単語の１つ以上を含むことができる。n-gramおよび第２のn-gramは同じ単語のシーケンスを含むことができるが、第２のn-gram内の同綴異音異義語はn-grem内の同綴異音異義語と異なる意味および発音に関連付けられることができる。音声入力例「ニースの天気はどう？」に戻って、第２のn-gramは単語トリグラム「weather in Nice」であってよく、この場合同綴異音異義語「nice」は形容詞かつ発音
0006357458.tif 000014
に関連付けられている。この例において、トリグラム「weather in Nice」(/nis/）の発生頻度は第２のトリグラム「weather in nice」(
0006357458.tif 000015
）の発生頻度より多い可能性が高い。そのため、音声入力内の同綴異音異義語「Nice」は、発音
0006357458.tif 000016
よりも発音/nis/に関連付けされる可能性が高いと判定することができる。従って、n-gramの発生頻度と第２のn-gramの発生頻度とを比較することにより、音声入力内の同綴異音異義語の曖昧さを無くすことができる。
【００８１】
上述の例では音声入力内の同綴異音異義語の前に他の単語が１つ以上先行することが可能であったが、他の例においては他の単語の１つ以上が同綴異音異義語に後続したり、他の単語の１つ以上の間に同綴異音異義語が位置したりすることが可能であることを理解すべきである。
【００８２】
手順４００のブロック４１２で、音声入力に対応するテキスト列を決定することができる。特に、テキスト列を決定するために、ＡＳＲシステムの１つ以上の言語モデルを用いることができる。一部の例においては、テキスト列を決定するために、ブロック４１０でn-gramの発生頻度を測定するために用いたn-gram言語モデルを用いることができる。一部の例においては、ブロック４０８に関して上述したように、音響モデルを用いて決定された音声シーケンスを、音素シーケンス内の音素列を対応する単語にマッピングするためにＡＳＲシステムの１つ以上の言語モデルを用いて処理することができる。このようにして、音声入力に対応するテキスト列を決定することができる。従って、このテキスト列は音声入力の書き写し(transcription)であってよく、同時に音声入力内の同綴異音異義語を含むことができる。一部の例において、テキスト列はトークンシーケンスの形式であってよい。
【００８３】
手順４００のブロック４１４で、実行可能な意図をテキスト列に基づいて決定することができる。上述したように、一部の例において、実行可能な意図はデジタルアシスタントが実行可能なタスクを表すものであってよい。実行可能な意図は自然言語処理を用いて決定されてもよい。例えば、上述した自然言語処理モジュール３３２は、テキスト列と整合する実行可能な意図を決定するため、ブロック４１２のテキスト列を処理することができる。ある特定の例において、テキスト列は「ニース(Nice)の天気はどう？」であってよく、決定される実行可能な意図は「天気の報告」であってよい。この実行可能な意図は、場所＜ニース、フランス＞についての、現在の、および／または予報された天気を検索し、検索された天気を電子機器でユーザに出力するタスクを表すことができる。
【００８４】
上述の通り、実行可能な意図には１つ以上のパラメータを関連付けることができる。例えば、実行可能な意図「天気の報告」には、{location}および{date/time}（例えば現在の日／時）というパラメータを関連付けることができる。一部の例においてブロック４１４は、同綴異音異義語を実行可能な意図のパラメータに割り当てることを含んでよい。テキスト列が「ニース(Nice)の天気はどう？」である一部の例において、同綴異音異義語「Nice」は、{location="Nice, France"}のように{location}パラメータに割り当てられてよい。一部の例では、ブロック４１８でより詳しく説明するように、同綴異音異義語はそれが割り当てられているパラメータに基づいて曖昧さが解消されてもよい。
【００８５】
さらに、上述したように、実行可能な意図のパラメータを含む実行可能な意図は、単語および／または句のセットに関連付けられてもよい。単語および／または句のセットは、実行可能な意図または実行可能な意図のパラメータに関連付けられた語彙リストであってよい。テキスト列はテキスト列および１つ以上の共通語(common words)を有する語彙リストとに基づいて特定の実行可能な意図にマッピングされてよい。例えば、実行可能な意図「天気の報告」に関連付けられた語彙リストは「天気(weather)」および「ニース(Nice)」を含むことができる。テキスト列が「ニース(Nice)の天気はどう？(How's the weather in Nice?)」であれば、テキスト列と、実行可能な意図「天気の報告」に関連付けられた語彙リストとにおける共通語「天気」および「ニース」に基づいて、実行可能な意図は「天気の報告」と決定されることができる。
【００８６】
一部の例において、実行可能な意図に関連付けられた語彙リストは１つ以上の同綴異音異義語を有することができ、この１つ以上の同綴異音異義語は（例えばタグ付け、トークン付けなどによって）、特定の意味および／または特定の発音に関連付けられたものとしてそれぞれ一意に特定されることができる。例えば、実行可能な意図「天気の報告」のパラメータ{location}に関連付けられた語彙リストは、同綴異音異義語「Nice」（固有名詞）を含むことができる。この例において、語彙リスト内の「Nice」は、形容詞かつ発音
0006357458.tif 000017
ではなく、固有名詞かつ発音/nis/に関連付けられたものとして特定されてよい。同綴異音異義語の曖昧さを解消するための知識ベースとしての語彙リストの利用を可能にする上で好都合であろう。
【００８７】
また、上述したように、ブロック４０４で受信される文脈上の情報を実行可能な意図を決定するために用いることができる。例えば、テキスト列に欠けている情報を推量するために電子機器のセンサおよびアプリケーションからの情報を用いることができ、それによって音声入力に付随するユーザの意図の曖昧さを解消することができる。さらに、一部の例において、文脈上の情報を特定の実行可能な意図のパラメータに関連付けることができ、それらの関連付けに基づいて実行可能な意図が決定されてもよい。
【００８８】
手順４００のブロック４１６で、音声入力に対する対話応答を生成することができる。一部の例において、対話応答は音声入力内の同綴異音異義語を含むことができる。「ニース(Nice)の天気はどう？(How's the weather in Nice?)」という音声入力例に戻ると、生成される対話応答は「フランスのニースの、今日から土曜日までの天気はこちらです」を含むことができる。一部の例において、対話応答は対話フロー処理モジュール３３４を用いて生成することができる。上述の通り、対話フロー処理モジュール３３４は対話応答を生成するために自然言語処理モジュール３３２およびタスクフロー処理モジュール３３６と連携することができる。  
【００８９】
対話応答は、少なくとも部分的には音声入力に対する回答になっている、自然言語の形式の任意の適切な応答であってよい。音声入力がユーザの要求を含んだ例において生成される対話応答は、ユーザの要求を少なくとも部分的に満たすものであってよい。一部の例において、生成される対話応答は、確認のための応答、あるいはユーザの要求を満たすために必要な追加情報の要求であってよい。一部の例において、対話応答はブロック４１４で決定された実行可能な意図に基づいて生成することができる。ある特定の例において、実行可能な意図は「天気の報告」と決定されてよく、生成される対話応答はユーザに天気を報告することを目的としたものであってよい。
【００９０】
手順４００のブロック４１８で、同綴異音異義語の正しい発音を決定することができる。一部の例において、ブロック４１６は音声合成モジュール（例えば音声合成モジュール３４０）を用いて実行することができる。特に、ブロック４１８を実行するために、音声合成モジュールの発音システム（例えば発音システム３４２）を用いることができる。  
【００９１】
一部の例において、同綴異音異義語の正しい発音は音声入力に基づいて決定することができる。特に、同綴異音異義語の正しい発音はブロック４０８で決定された音素列に基づくことができる。例えば、同綴異音異義語の正しい発音がブロック４０８で決定された音素列と一致すると決定することができ、この場合、同綴異音異義語の正しい発音は、音声入力におけるユーザの同綴異音異義語の発音と類似もしくは同一である。これらの例において、同綴異音異義語の音声合成は、ブロック４２０でより詳細に説明するように、音素列を用いて実行することができる。
【００９２】
一部の例において、同綴異音異義語の正しい発音は、ＡＳＲシステムのn-gram言語モデルを用いて決定することができる。一部の例において、同綴異音異義語の曖昧さを解消するために、音声入力における文脈を利用することができる。例えば、同綴異音異義語の正しい発音は、ブロック４１０で計測されたn-gramの発生頻度に基づいて決定することができる。「ニース(Nice)の天気はどう？(How's the weather in Nice?)」という音声入力例に戻ると、n-gramはトリグラム「weather in Nice」であってよく、この場合トリグラム内の同綴異音異義語「Nice」は固有名詞かつ発音/nis/に関連付けられている。トリグラム「weather in Nice」（/nis/）の発生頻度に基づいて、音声入力内の同綴異音異義語「Nice」は固有名詞かつ発音/nis/に関連付けられている可能性が最も高いと決定することができる。従って、この例では、同綴異音異義語の正しい発音は/nis/と決定することができる。
【００９３】
一部の例において、同綴異音異義語の正しい発音は、ブロック４１０で特定されるn-gramの発生頻度と第２のn-gramの発生頻度との両方に基づいて決定されてもよい。例えば、同綴異音異義語の正しい発音は、n-gramの発生頻度と、第２のn-gramの発生頻度とを比較することによって決定することができる。n-gramがトリグラム「weather in Nice」（/nis/）であり、第２のトリグラムが「weather in nice」（
0006357458.tif 000018
）である例に関して、同綴異音異義語「Nice」の正しい発音は、トリグラム「weather in Nice」の発生頻度がトリグラム「weather in nice」の発生頻度より、少なくとも予め定められた量高いことに基づいて、/nis/であると決定することができる。別の例において、同綴異音異義語「Nice」の正しい発音は、トリグラム「weather in Nice」（/nis/）の発生頻度が第１の予め定められた閾値より高く、かつ、トリグラム「weather in nice」（
0006357458.tif 000019
）の発生頻度が第２の予め定められた閾値より低いことに基づいて、/nis/であると決定することができる一部の例において、第１の予め定められた閾値は第２の予め定められた閾値と等しくてもよい。別の例において、第１の予め定められた閾値は第２の予め定められた閾値より大きくてもよい。
【００９４】
一部の例において、同綴異音異義語の曖昧さを解消するために、対話応答からの単語文脈(word context)を利用することができる。これらの例において、音声入力は同綴異音異義語を含まなくてもよい。そのような一例において、音声入力は「フランスで５番目に人口の多い都市の天気はどう？」であってよく、対話応答は「フランスのニースの天気はこちらです」であってよい。そして、対話応答内の同綴異音異義語の曖昧さを解消するため、対話応答をＡＳＲシステムを用いて処理し、同綴異音異義語の正しい発音を決定することができる。例えば、上の例において、対話応答はトリグラム「weather in Nice」を含むことができる。先に説明した例と同様に、ＡＳＲシステムのn-gram言語モデルと用い、トリグラム「weather in Nice」（/nis/）の発生頻度を測定することができる。さらに、一部の例においては、ＡＳＲシステムのn-gram言語モデルを用いて第２のトリグラム「weather in nice」（
0006357458.tif 000020
）の発生頻度も測定することができる。トリグラム「weather in Nice」（/nis/）の発生頻度と、第２のトリグラム「weather in nice」（
0006357458.tif 000021
）の発生頻度との少なくとも一方に基づいて、同綴異音異義語「Nice」の正しい発音を決定することができる。さらに、対話応答内の同綴異音異義語「Nice」の正しい発音は、トリグラム「weather in Nice」（/nis/）の発生頻度を、第２のトリグラム「weather in nice」（
0006357458.tif 000022
）の発生頻度と、上述したものと類似または同一の方法で比較することにより決定することができる。
【００９５】
さらに、一部の例において、同綴異音異義語の正しい発音は、デジタルアシスタントの自然言語プロセッサ（例えば自然言語処理モジュール３３２）を用いて決定することができる。例えば、同綴異音異義語の正しい発音は、ブロック４１４で特定される、実行可能な意図に基づいて決定することができる。これらの例において、音声入力は同綴異音異義語を含まなくてもよいが、対話応答は同綴異音異義語を含むことができる。正しい発音は、同綴異音異義語と、実行可能な意図に関連付けられた単語、句、およびパラメータとの関係に基づいて決定することができる。音声入力が「ニース(Nice)への道順を検索して(Find me directions to Nice)」であり、実行可能な意図が「道順を地図に示す(map directions)」と特定できる特定の例において、道順を地図に示すタスクは、形容詞「nice」（
0006357458.tif 000023
）よりも、場所「Nice」（/nis/）への関連が強いであろう。従って、「道順を地図に示す」という実行可能な意図に基づいて、同綴異音異義語「Nice」の正しい発音が/nis/であると決定することができる。
【００９６】
一部の例において、同綴異音異義語の正しい発音は、実行可能な意図のパラメータに基づいて決定することができる。上述の通り、同綴異音異義語は実行可能な意図のパラメータに割り当てられることができる。例えば、音声入力が「ニース(Nice)への道順を検索して」の例を継続すると、実行可能な意図は「道順を地図に示す(map directions)」であってよく、同綴異音異義語「Nice」が実行可能な意図のパラメータ{destination location}に割り当てされてよい。この例において、パラメータ{destination location}は、形容詞「nice」（
0006357458.tif 000024
）よりも、固有名詞「Nice」（/nis/）への関連が強いであろう。従って、パラメータ{destination location}に基づいて、同綴異音異義語「Nice」の正しい発音が/nis/であると決定することができる。 
【００９７】
上述の通り、語彙リストは実行可能な意図または実行可能な意図のパラメータに関連づけられることができる。語彙リストは同綴異音異義語を含むことができる。一部の例において、同綴異音異義語の正しい発音は語彙リスト内の同綴異音異義語に関連づけられた特定の発音に基づいて決定されてもよい。実行可能な意図が「天気の報告」であると決定される例にもどると、語彙リストは実行可能な意図「天気の報告」のパラメータ{location}に関連づけされることができる。この例において、同綴異音異義語「Nice」は語彙リストに含まれていてよく、語彙リスト内の同綴異音異義語「Nice」に発音/nis/が関連づけられていてよい。語彙リストを同綴異音異義語の曖昧さを解消するための知識ベースとして用いることにより、同綴異音異義語「Nice」の正しい発音を/nis/と決定することができる。
【００９８】
一部の例において、ブロック４０４で受信する文脈上の情報を、同綴異音異義語の正しい発音を決定するために用いることができる。文脈上の情報は、意味が同じであったり、音声の同じ部分がある同綴異音異義語の曖昧さを解消する際に特に有用となりうる。一例において、音声入力は「Ajaxの調子はどう？(How are the Ajax doing?)」であってよい。この例において、Ajaxはオランダのサッカーチーム（
0006357458.tif 000025
と発音される）や、ギリシャ神話の英雄（
0006357458.tif 000026
と発音される）を意味しうる。この例では、同綴異音異義語「Ajax」の意味および発音の曖昧さを解消するのに文脈上の情報が有用なこともある。例えば、文脈上の情報は、電子機器の測位システムから受け取った情報に基づくユーザの現在位置を含むことができる。文脈上の情報は、ユーザの現在位置がオランダのアムステルダム市と測位されていることを示すことができる。この文脈上の情報に基づいて、同綴異音異義語「Ajax」はギリシャ神話の英雄（
0006357458.tif 000027
）よりも、オランダのサッカーチーム（
0006357458.tif 000028
）を意味している可能性が高いと判定できる。そのため、音声入力について、同綴異音異義語「Ajax」の正しい発音は
0006357458.tif 000029
であろうと決定することができる。
【００９９】
一部の例において、同綴異音異義語の正しい発音を特定するために用いられる文脈上の情報は、例えば出身地、国籍、民族性といったユーザに関する情報を含むことができる。そのような例の１つにおいて、機器に記憶されているユーザプロファイルから受け取った文脈上の情報に基づいて、ユーザがオランダ人であろうと決定することができる。そのような例において、同綴異音異義語「Ajax」の正しい発音は
0006357458.tif 000030
よりも
0006357458.tif 000031
であろうと決定することができる。
【０１００】
さらに、一部の例において、同綴異音異義語の正しい発音は、ユーザに関連づけられた、同綴異音異義語の固有な発音(custom pronunciation)に基づいて特定されてもよい。特に、固有な発音は、ユーザから受け取った過去の音声入力に基づいて生成することができる。これは、標準的な発音には従わないことがありうる固有名詞について好適なことがある。例えば、ある特定のユーザから受けた過去の音声入力で、同綴異音異義語「Ajax」が
0006357458.tif 000032
と発音されていることがありうる。この発音を、同綴異音異義語「Ajax」の固有発音として記憶することができる。その特定のユーザとのその後の会話において、同綴異音異義語「Ajax」の正しい発音は、その特定のユーザに関連づけられた同綴異音異義語「Ajax」の固有発音に基づいて
0006357458.tif 000033
であろうと決定することができる。
【０１０１】
なお、同綴異音異義語の正しい発音は、音声入力、n-gram言語モデル、自然言語プロセッサ、および文脈上の情報の任意の組み合わせに基づいて特定されてよいことを理解すべきである。より具体的には、同綴異音異義語の正しい発音は、ブロック４０８で特定される音素列、n-gramの発生頻度、ブロック４１４で決定される実行可能な意図、およびブロック４０４で受け取る文脈上の情報の任意の組み合わせに基づくものであってよい。  
【０１０２】
一部の例では、同綴異音異義語の正しい発音に関して矛盾する情報が存在することがある。例えば、音声入力における同綴異音異義語のユーザの発音が、n-gram言語モデルまたは実行可能な意図に基づいて決定された同綴異音異義語の正しい発音と一致しないことがある。これらの例では、音声入力、n-gram言語モデル、実行可能な意図、および文脈上の情報から得られる情報を統合するために、予め定められたロジック（例えば投票方式、予め定められた重み付け、規則など）を適用することができる。  
【０１０３】
音声入力が「ニース(Nice)の天気はどう？」という例において、ユーザが同綴異音異義語「Nice」（固有名詞）を誤って
0006357458.tif 000034
と発音しうる結果、ブロック４０８で決定される音素列は発音
0006357458.tif 000035
に対応することがある。加えて、トリグラム「weather in Nice」（/nis/）の発生頻度がトリグラム「weather in nice」（
0006357458.tif 000036
）の発生頻度より高いことに基づいて、同綴異音異義語「Nice」が発音
0006357458.tif 000037
ではなく発音/nis/に関連づけされている可能性が高いと決定されることがある。この例において、正しい発音は、トリグラム「weather in Nice」（/nis/）の発生頻度が予め定められた閾値より高いか、トリグラム「weather in Nice」（/nis/）の発生頻度がトリグラム「weather in nice」（
0006357458.tif 000038
）の発生頻度よりも少なくとも予め定められた量高ければ、n-gram言語モデル（例えば/nis/）に合致するものと決定されてよい。逆に、トリグラム「weather in Nice」（/nis/）の発生頻度が予め定められた閾値より高くないか、トリグラム「weather in Nice」（/nis/）の発生頻度がトリグラム「weather in nice」（
0006357458.tif 000039
）の発生頻度より予め定められた量高くなければ、同綴異音異義語「Nice」の正しい発音はブロック４０８の音素列と合致するものと決定されてよい。
【０１０４】
一部の例において、同綴異音異義語の正しい発音を決定すると、同綴異音異義語の正しい発音を特定するために使用できるよう、対話応答における同綴異音異義語に固有の識別子を用いて注釈を付与することができる。一部の例において、対話応答はトークン列によって表されてよく、同綴異音異義語を表すトークンは同綴異音異義語の正しい発音に一意に関連づけられることができる。さらに、一部の例において、同綴異音異義語の正しい発音を、対話応答内の同綴異音異義語に関連づけられたメタデータに記憶することができる。そしてブロック４２０で、正しい発音に従って同綴異音異義語を合成するために、メタデータの注釈を用いることができる。
【０１０５】
一部の例において、同綴異音異義語の正しい発音に対応する音素列を、正しい発音を特定する注釈に基づいてＡＳＲシステムから得ることができる。例えば、対話応答「フランス、ニースの、今日から土曜日までの天気はこちらです」において、同綴異音異義語「Nice」は、同綴異音異義語を形容詞ではなく固有名詞として特定するトークンによって表されることができる。トークンに基づいて、またＡＳＲシステムの音響モデルまたは言語モデルの１つ以上を用い、発音/nis/に対応する音素列を取得することができる。取得した音素列は対話応答内の同綴異音異義語に関連づけられたメタデータに記憶することができる。そして、取得した音素列はブロック４２０で、正しい発音に従って同綴異音異義語を合成するために用いることができる。
【０１０６】
同綴異音異義語の正しい発音がブロック４０８の音素列と合致したものであろうと決定される例において、ブロック４０８の音素列は対話応答内の同綴異音異義語に関連づけられたメタデータに直接記憶することができる。これらの例において、音素列はブロック４２０で、正しい発音に従った同綴異音異義語の合成のために用いることができる。
【０１０７】
手順４００のブロック４２０で、対応応答は音声応答として出力されてよい。対話応答内の同綴異音異義語は、ブロック４１８で決定された正しい発音に従って音声出力で発音されてよい。一部の例において、デジタルアシスタントの音声合成器（例えば音声合成モジュール３４０）を用いて対話出力を出力することができる。特に、対話応答内の同綴異音異義語は、決定された正しい発音に従って音声合成器によって合成されてよい。
【０１０８】
一部の例において、対話応答内の同綴異音異義語は単号レベルで合成されてよい。これらの例において、音声合成器は各同綴異音異義語に対して複数のエントリを含んだ辞書とともに構成されてよい。例えば、辞書は、発音/nis/に対応する「Nice」に対するエントリと、発音
0006357458.tif 000040
に対応する「nice」に対する別のエントリとを含むことができる。一部の例において音声合成器は、同綴異音異義語を正しい発音に従った音声形式で出力するため、同綴異音異義語を、その注釈（例えばタグ、ラベル、トークンなど）や、関連づけられたメタデータに基づいて、単語レベルで合成することができる。例えば、同綴異音異義語「Nice」を表すトークンが同綴異音異義語を、発音
0006357458.tif 000041
を有する形容詞ではなく、発音/nis/を有する固有名詞であると特定している場合、音声合成器は同綴異音異義語を、トークンに基づき、発音/nis/に対応する、音声合成器内の辞書エントリを用いて合成することができる。なお、同綴異音異義語は、メタデータ、タグ、ラベルなどといった様々な手段によって特定することが可能であり、これら手段のそれぞれは、適切な辞書エントリを用いて同綴異音異義語を単語レベルで合成するために音声合成器によってアクセス並びに処理することができることを理解されたい。
【０１０９】
他の例においては、対話応答内の同綴異音異義語を音素レベルで合成することができる。これらの例では、音声合成器は音素列を直接処理し、音素列に従った音声を出力するように構成されてよい。上述したように、同綴異音異義語の正しい発音に対応する音素列は、対話応答内の同綴異音異義語に関連づけられたメタデータに記憶することができる。音素列は、ブロック４０８の音素列、もしくはブロック４１６で説明される、別途取得される音素列であってよい。これらの例において、音声合成器は、音声形式で同綴異音異義語を出力するため、メタデータ内に記憶された音素列にアクセスして直接処理することができる。記憶された音素列は同綴異音異義語の決定された正しい発音に基づいているため、音素列の合成により、音声出力において同綴異音異義語は正しい発音に従って発音される。同綴異音異義語を音素レベルで合成する場合、音声合成器が同綴異音異義語ごとに複数のエントリを有する辞書を持つ必要をなくすことができるため、必要となるリソースを削減できる点で好ましい場合がある。
【０１１０】
上の例では同綴異音異義語を単語レベルまたは音素レベルで合成することができたが、音声出力において同綴異音異義語を正しい発音に従って発音されるように合成するためには様々な合成方法が利用可能であることを理解すべきである。
【０１１１】
手順４００のブロック４０２から４２０は図４で特定の順序で示されているが、これらブロックは任意の順序で実行されてよいことを理解されたい。例えば、一部の例において、ブロック４１８はブロック４１６より前に実行されてもよい。さらに、場合によっては手順４００の１つ以上のブロックが必要に応じて実行されたり、さらなるブロックが実行されたりしてもよいことを理解されたい。例えば、いくつかの例において、ブロック４０６内部のブロック４０８から４１２の１つ以上が必要に応じて実行されるものであってよい。従って、ブロック４０６でのＡＳＲシステムを用いた音声入力の処理は、ブロック４０８，４１０、および４１２の任意のものを含むことができる。別の例において、ブロック４０４を必要に応じて実行するようにしてもよい。さらに別の例では、ブロック４１４を必要に応じて実行するようにしてもよい。
【０１１２】
５．電子機器
図５は、説明した様々な例の原理に従って構成された電子機器５００の機能ブロック図を示している。説明した様々な例の原理を実行するために、機器の機能ブロックは必要に応じてハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実施することができる。本技術分野の当業者は、説明された様々な例の原理を実施するために、図５に記載された機能ブロックが必要に応じて組み合わされたりサブブロックに分割されたりしてもよいことを理解するであろう。従って、ここでの説明は、ここに説明される機能ブロックの、可能性のあるすべての組み合わせ、分割、または更なる規定を必要に応じてサポートする。
【０１１３】
図５に示すように、電子機器５００は、ユーザインタフェースを表示し、ユーザからの入力を受け取るように構成されたタッチスクリーンディスプレイ部５０２と、音声入力を受け取るように構成されたオーディオ入力部５０４と、ユーザからの文脈上の情報を提供するように構成されたセンサ部５０６と、文脈上の情報を記憶するように構成されたメモリ部５０８と、音声を出力するように構成されたスピーカ部５０８とを含むことができる。一部の例において、音声入力部５０４はユーザから音波形式で音声入力を受け取り、音声入力を代表信号の形式で処理部５１０に送信するように構成されてよい。電子機器５００はさらに、タッチスクリーンディスプレイ部５０２に接続された処理部５１０と、音声入力部５０４と、センサ部５０６と、スピーカ部５０８とをさらに含むことができる。一部の例において処理部５１０は受信部５１２、音声処理部５１４と、決定部５１８と、生成部５２０と、出力部と、割当部５２４と、取得部５２６と、注釈部５２８とを含むことができる。
【０１１４】
処理部５１０は（例えば音声入力部５０４から、および受信部５１２を用いて）ユーザから、同綴異音異義語と別の１つ以上の単語を含んだ音声入力を受け取るように構成される。処理部５１０は、音声入力でユーザが発音した通りの同綴異音異義語に対応する音素列と、コーパスに関するn-gramの発生頻度との少なくとも１つを決定するために、自動音声認識システムを用いて音声入力を（例えば音声処理部５１４を用いて）処理するように構成される。n-gramは同綴異音異義語および他の単語の１つ以上を含み、n-gram内の同綴異音異義語は第１の発音に関連づけられている。処理部５１０は、音素列およびn-gramの発生頻度の少なくとも一方に基づいて同綴異音異義語の正しい発音を（例えば決定部５１８を用いて）、決定するように構成されている。処理部５１０は、音声入力に対する対話応答を（例えば生成部５２０を用いて）生成するように構成される。対話応答は同綴異音異義語を含む。処理部５１０は、対話応答を音声出力として（例えばスピーカ部５０８および出力部５２２を用いて）出力するように構成される。対話応答内の同綴異音異義語は音声出力において、決定された正しい発音に従って発音される。
【０１１５】
一部の例において、処理部５１０は、音声入力に対応するテキスト列を（例えば音声処理部５１４を用いて）決定するように構成される。一部の例において、処理部５１０はテキスト列に基づき、実行可能な意図を（例えば決定部５１８を用いて）決定するように構成される。同綴異音異義語の正しい発音は、音素列、n-gramの発生頻度、および実行可能な意図の少なくとも１つに基づいて決定される。  
【０１１６】
一部の例において処理部５１０は、実行可能な意図のパラメータに、（例えば割当部５２４を用いて）同綴異音異義語を割り当てるように構成される。同綴異音異義語の正しい発音は少なくとも部分的にパラメータに基づいて決定される。
【０１１７】
一部の例において、実行可能な意図に語彙リストが関連づけられる。語彙リストは同綴異音異義語を含み、語彙リスト内の同綴異音異義語は特定の発音に関連づけられる。同綴異音異義語の正しい発音は語彙リスト内の同綴異音異義語に関連づけられた特定の発音に基づいて決定される。
【０１１８】
一部の例において、処理部５１０は、音声入力に関する文脈上の情報を（例えばセンサ部５０６またはメモリ部５０８から、受信部５１２を用いて）受け取るように構成される。実行可能な意図は、文脈上の情報に少なくとも部分的に基づいて決定される。
【０１１９】
一部の例において、処理部５１０は、コーパスに関する第２のn-gramの発生頻度を（例えば音声処理部５１４を用いて）決定するように構成される。第２のn-gramは同綴異音異義語および他の単語の１つ以上を含む。第２のn-gram内の同綴異音異義語は第２の発音に関連づけられている。同綴異音異義語の正しい発音は、n-gramの発生頻度および第２のn-gramの発生頻度に基づいて決定される。
【０１２０】
一部の例において、n-gramの発生頻度が第２のn-gramの発生頻度よりも少なくとも予め定められた量高く、同綴異音異義語の正しい発音は第１の発音であろうと決定される。
【０１２１】
一部の例において、第１のn-gramの発生頻度は第１の予め定められた閾値より高い。第２のn-gramの発生頻度は第２の予め定められた閾値より低い。同綴異音異義語の正しい発音は、第１の発音であろうと決定される。
【０１２２】
一部の例において、音素列は第２の発音に対応する。n-gramの発生頻度が第２のn-gramの発生頻度より少なくとも予め定められた量高いと、同綴異音異義語の正しい発音は第１の発音であろうと決定される。
【０１２３】
一部の例において、処理部５１０は、（例えば取得部５２６を用いて）自動音声認識システムから、決定された正しい発音に対応する第２の音素列を取得するように構成される。一部の例において、対話応答を出力することは、音声合成器を用いて対話応答内の同綴異音異義語を合成することを含む。音声合成器は、対話出力内の同綴異音異義語を正しい発音に従って合成するために、第２の音素列を用いる。
【０１２４】
一部の例において、処理部５１０は対話応答内の同綴異音異義を、その同綴異音異義語の正しい発音を特定するためにタグによって注釈付けするように構成される。一部の例において、対話応答を出力することは、音声合成器を用いて対話応答内の同綴異音異義語を合成することを含む。対話応答内の同綴異音異義語はタグに基づいて合成される。
【０１２５】
一部の例において、同綴異音異義語の正しい発音は、少なくとも部分的に文脈上の情報に基づいて決定される。一部の例において、文脈上の情報はユーザに関する情報を含む。
【０１２６】
一部の例において、同綴異音異義語の正しい発音は、ユーザに関連づけられたその同綴異音異義語の固有発音に少なくとも部分的に基づいて決定される。固有発音はそのユーザから受け取った過去の音声入力に基づくことができる。
【０１２７】
一部の例において、処理部５１０はユーザから同綴異音異義語と他の１つ以上の単語を含んだ音声入力を（例えば音声入力部５０４から、かつ受信部５１２を用いて）受け取るように構成される。処理部５１０は、コーパスに関する第１のn-gramの発生頻度ならびにコーパスに関する第２のn-gramの発生頻度を計測するために、その音声入力を自動音声認識システムを用いて（例えば音声処理部５１４を用いて）処理するように構成される。第１のn-gramは同綴異音異義語と、他の単語の１つ以上を含む。第１のn-gram内の同綴異音異義語は第１の発音に関連づけられている。第２のn-gramは同綴異音異義語および他の単語の１つ以上を含む。第２のn-gram内の同綴異音異義語は第２の発音に関連づけられている。処理部５１０は、第１のn-gramの発生頻度および第２のn-gramの発生頻度とに基づいて同綴異音異義語の正しい発音を（例えば決定部５１８を用いて）決定するように構成される。処理部５１０は、音声入力に対する対話応答を（例えば生成部５２０を用いて）生成するように構成される。対話応答は同綴異音異義語を含む。処理部５１０は、対話応答を音声出力として（例えばスピーカ部５０８および出力部５２２を用いて）出力するように構成される。対話応答内の同綴異音異義語は音声出力において、決定された正しい発音に従って発音される。
【０１２８】
一部の例において、第１のn-gramの発生頻度が第２のn-gramの発生頻度より、少なくとも予め定められた量高く、この場合、同綴異音異義語の正しい発音は第１の発音であろうと決定される。
【０１２９】
一部の例において、第１のn-gramの発生頻度は第１の予め定められた閾値より高い。第２のn-gramの発生頻度は第２の予め定められた閾値より低い。同綴異音異義語の正しい発音は、第１の発音であろうと決定される。
【０１３０】
一部の例において、音声入力には同綴異音異義語に先行する他の単語が１つ以上存在する。
【０１３１】
一部の例において、処理部５１０は（例えば音声入力部５０４から、受信部５１２を用いて）ユーザから音声入力を受信するように構成される。処理部５１０は、音声入力に対応するテキスト列を決定するため、自動音声認識システムを用いて音声入力を（例えば音声処理部５１４を用いて）処理するように構成される。処理部５１０はテキスト列に基づき、実行可能な意図を（例えば決定部５１８を用いて）決定するように構成される。処理部５１０は、実行可能な意図に基づいて、音声入力に対する対話応答を（例えば生成部５２０を用いて）生成するように構成される。対話応答は同綴異音異義語を含む。処理部５１０は、自動音声認識システムのn-gram言語モデルを用い、かつ対話応答内の同綴異音異義語および他の単語の１つ以上に基づいて、同綴異音異義語の正しい発音を（例えば決定部５１８を用いて）決定するように構成される。処理部５１０は、対話応答を音声出力として（例えばスピーカ部５０８および出力部５２２を用いて）出力するように構成される。対話応答内の同綴異音異義語は音声出力において、決定された正しい発音に従って発音される。
【０１３２】
一部の例において、処理部５１０はコーパスに関する第１のn-gramの発生頻度を（例えば音声処理部５１４を用いて）測定するように構成される。第１のn-gramは、対話応答内の同綴異音異義語および他の単語の１つ以上を含んでいる。第１のn-gram内の同綴異音異義語は第１の発音に関連づけられている。一部の例において、処理部５１０は、コーパスに関する第２のn-gramの発生頻度を（例えば音声処理部５１４を用いて）計測するように構成される。第２のn-gramは同綴異音異義語および他の単語の１つ以上を含む。第２のn-gram内の同綴異音異義語は第２の発音に関連づけられている。対話応答内の同綴異音異義語の正しい発音は、第１のn-gramの発生頻度と、第２のn-gramの発生頻度とに基づいて決定される。
【０１３３】
一部の例において、第１のn-gramの発生頻度が第２のn-gramの発生頻度より、少なくとも予め定められた量高く、この場合、同綴異音異義語の正しい発音は第１の発音であろうと決定される。
【０１３４】
一部の例において、第１のn-gramの発生頻度は第１の予め定められた閾値より高く、第２のn-gramの発生頻度は第２の予め定められた閾値より低い。この場合、同綴異音異義語の正しい発音は第１の発音であろうと決定される。
【０１３５】
一部の例において、対話応答には同綴異音異義語に先行する別の１つ以上の単語が存在する。一部の例において、文脈上の情報はユーザに関する情報を含む。
【０１３６】
一部の例において、同綴異音異義語の正しい発音は、ユーザに関連づけられたその同綴異音異義語の固有発音に少なくとも部分的に基づいて決定される。固有発音はそのユーザから受け取った過去の音声入力に基づくことができる。
【０１３７】
一部の例において、処理部５１０は（例えば音声入力部５０４から、受信部５１２を用いて）ユーザから音声入力を受信するように構成される。処理部５１０は、音声入力に対応するテキスト列を決定するため、自動音声認識システムを用いて音声入力を（例えば音声処理部５１４を用いて）処理するように構成される。処理部５１０はテキスト列に基づき、実行可能な意図を（例えば決定部５１８を用いて）決定するように構成される。処理部５１０は、実行可能な意図に基づいて、音声入力に対する対話応答を（例えば生成部５２０を用いて）生成するように構成される。対話応答は同綴異音異義語を含む。処理部５１０は、実行可能な意図に基づいて、同綴異音異義語の正しい発音を（例えば決定部５１８を用いて）決定するように構成される。処理部５１０は、対話応答を音声出力として（例えばスピーカ部５０８および出力部５２２を用いて）出力するように構成される。対話応答内の同綴異音異義語は音声出力において、決定された正しい発音に従って発音される。
【０１３８】
一部の例において処理部５１０は、実行可能な意図のパラメータに、（例えば割当部５２４を用いて）同綴異音異義語を割り当てるように構成される。同綴異音異義語の正しい発音はパラメータに基づいて決定される。
【０１３９】
一部の例において、実行可能な意図には語彙リストが関連づけられ、語彙リストは同綴異音異義語を含むとともに、語彙リスト内の同綴異音異義語は特定の発音に関連づけられる。そして、同綴異音異義語の正しい発音は語彙リスト内の同綴異音異義語に関連づけられた特定の発音に基づいて決定される。
【０１４０】
一部の例において、処理部５１０はユーザから同綴異音異義語と他の１つ以上の単語を含んだ音声入力を（例えば音声入力部５０４から、かつ受信部５１２を用いて）受け取るように構成される。処理部５１０は、音声入力においてユーザが発音した通りの同綴異音異義語に対応する音素列を決定するため、自動音声認識システムを用いて音声入力を（例えば音声処理部５１４を用いて）処理するように構成される。処理部５１０は、音声入力対する対話応答であって、同綴異音異義語を含む対話応答を（例えば生成部５２０を用いて）生成するように構成される。処理部５１０は、対話応答を音声出力として（例えばスピーカ部５０８および出力部５２２を用いて）出力するように構成される。対話応答内の同綴異音異義語は、音素列に従って音声出力内で発音される。
【０１４１】
一部の例において、音素列は自動音声認識システムの音響モデルを用いて決定される。一部の例において、対話応答を出力することは、音声合成器を用いて対話応答内の同綴異音異義語を合成することを含む。対話応答は音素列に基づいて合成される。
【０１４２】
一部の例において、音素列は、対話応答内の同綴異音異義語に関連づけられたメタデータに記憶される。対話応答内の同綴異音異義語を音素列に従って合成するため、メタデータは音声合成器によってアクセスされる。
【０１４３】
添付図面を参照して複数の例を十分に説明してきたが、様々な変更や修正が本技術分野に属する当業者に明らかになっていくであろう。そのような変更や修正は、添付された特許請求の範囲によって規定されるように、様々な例の範囲内に含まれるものであることが理解されるべきである。
【０１４４】
いくつかのケースにおいて、上述したシステム、手順、および機器は、要求に応じたコンテンツや、ユーザが興味を持つかもしれない他の任意のコンテンツのユーザに対する受け渡しを向上させるために、様々なソースから取得可能なデータ（例えば文脈上の情報）を収集したり利用したりすることを含むことができる。本開示はいくつかの例においてそれを予期しており、この収集されたデータは、特定の人物を一意に特定したり、連絡するために用いることができたり、位置を特定したりする、個人情報データを含んでよい。そういった個人情報データは、人口統計データ、位置に基づくデータ、電話番号、電子メールアドレス、自宅アドレス、または本人を確認する他の任意の情報を含むことができる。  
【０１４５】
本開示はそのような個人情報データを、上述したシステム、手順、および機器とともに用いることが、ユーザの利益のために利用されうることを認識している。例えば、個人情報データは、同綴異音異義語の正しい発音を決定するために用いることができる。従って、そのような個人情報データの利用は、上述したシステム、手順、および機器の音声出力において、同綴異音異義語がより正確に発音されることを可能にすることができる。
【０１４６】
本開示はさらに、そういった個人情報データの収集、解析、開示、転送、記憶、または他の利用を受け持つエンティティが、定評のある(well-established)プライバシーポリシおよび／またはプライバシー慣行を満たすであろうことを予期している。特に、そのようなエンティティは、個人情報データをプライベートかつセキュアに保持するための、産業界もしくは政府の要求に合致している、もしくはそれより進んでいると一般的に認識されているプライバシーポリシおよび慣行を実施ならびに一貫して用いなければならない。例えば、ユーザからの個人情報は、エンティティの合法かつ合理的な利用のために収集されねばならず、それらの適法な利用を超えて共有されたり販売されたりされてはならない。さらに、そういった収集はユーザのインフォームドコンセントが得られた後にのみ行われるべきである。加えて、そのようなエンティティは、そのような個人情報データへアクセスを保護ならびに安全にするとともに、個人情報データにアクセスする第３者が彼らのプライバシーポリシおよび手順を守ることを保証するために必要なすべての工程を実行するであろう。さらに、そのようなエンティティは、広く受け入れられているポリシおよび慣行を守っていることを保証するために、第３者によって自身を評価させることができる。
【０１４７】
これらがあるにもかかわらず、本開示はさらに、ユーザが個人情報データの利用またはアクセスを選択的にブロックする例についても予期している。すなわち、本開示は、そういった個人情報データがアクセスされないようにする、あるいは個人情報データへのアクセスをブロックするためにハードウェアおよび／またはソフトウェア要素が提供されてもよいことを予期している。例えば、広告配信サービスの場合、上述したシステムおよび機器はユーザがサービスに登録する際に個人情報の収集への関与に「オプトイン」するか「オプトアウト」するかを選択できるように構成されてよい。別の例では、ターゲットコンテンツ配信サービスに位置情報を提供しないことをユーザが選択できる。さらに別の例では、正確な位置情報は提供しないが、位置範囲の情報の転送は許可することをユーザが選択できる。
【０１４８】
従って、本開示は開示された様々な例の１つ以上を実施するための個人情報データの利用を概してカバーしているが、本開示はまた、それら様々な例を、そういった個人情報データを利用する必要なく実施可能であることも意図している。すなわち、ここに開示される様々な例は、そういった個人情報データの全部または一部が欠けていることによって実行不能になることはない。例えば、同綴異音異義語の正しい発音は、ユーザに関連づけられた機器によって要求されているコンテンツ、コンテンツ配信サービスが利用可能な他の非個人情報、あるいは公的に利用可能な情報のような、非個人情報データまたは公然かつ最小量の個人情報に基づいて決定することができる。
【図１】
0006357458.tif 000042
【図２】
0006357458.tif 000043
【図３Ａ】
0006357458.tif 000044
【図３Ｂ】
0006357458.tif 000045
【図３Ｃ】
0006357458.tif 000046
【図４】
0006357458.tif 000047
【図５】
0006357458.tif 000048