(58)【調査した分野】(Int.Cl.,DB名)
前記バイアスされた音声認識が前記音声入力の非認識をもたらしたことに応答して、前記後続のユーザが前記記憶されたコンテンツの再生を引き起こすことを可能にするために前記後続のユーザへの選択可能なオプションの提供を引き起こすステップ
をさらに含む、請求項1に記載のコンピュータ実装方法。
前記第1のユーザがオーディオコンテンツを録音することを意図することを示す前記入力を前記第1のユーザから受信したことに応答して、前記少なくとも1つの識別子を示す前記入力を提供することを前記第1のユーザに指示するプロンプトを前記第1のユーザに提供するステップ
をさらに含む、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
1つまたは複数の出力デバイスにおいて前記音声作動製品によって、前記叙述に関連付けられた前記書誌情報に対する請求を提供するステップをさらに含む、請求項6または7に記載のコンピュータ実装方法。
前記叙述は既存の書物を含み、前記方法は、前記書誌情報をデータベース内の前記既存の書物と照合するステップをさらに含む、請求項6から10のいずれか一項に記載のコンピュータ実装方法。
前記出力デバイスのうちの1つまたは複数を介して前記音声作動製品によって、前記データベース内の前記既存の書物に関連付けられた付加情報を提供するステップをさらに含む、請求項11に記載のコンピュータ実装方法。
前記オーディオファイルは、前記データベース内の前記既存の書物に関連付けられた付加情報に基づいて前記コンピュータメモリ内でさらにインデックス付けされる、請求項11から13のいずれか一項に記載のコンピュータ実装方法。
前記コンピュータメモリは、対応する書誌情報によってインデックス付けされた複数の録音済みのオーディオファイルを記憶する、請求項6から14のいずれか一項に記載のコンピュータ実装方法。
前記音声作動製品によって前記オーディオファイル内に、前記ユーザによって選択された1つまたは複数の音響効果を組み込むステップをさらに含む、請求項6から16のいずれか一項に記載のコンピュータ実装方法。
前記第2のコマンドが前記ユーザと異なるユーザによって話されたことを判定するために前記第2のコマンドで音声分析を実行するステップをさらに含む、請求項6から17のいずれか一項に記載のコンピュータ実装方法。
前記音声作動製品によって、前記音声分析結果に基づいて前記異なるユーザ向けに手直しされたインタラクティブダイアログを開始するステップをさらに含む、請求項18に記載のコンピュータ実装方法。
【発明を実施するための形態】
【0025】
次に、
図1を参照すると、本明細書において開示される技術が実装されてもよい例示的な環境が示される。例示的な環境は、複数のクライアントコンピューティングデバイス106
1〜Nおよび自動化アシスタント120を備える。自動化アシスタント120は、
図1にはクライアントコンピューティングデバイス106
1〜Nと別のものとして例示されるが、いくつかの実装形態において、自動化アシスタント120のすべてまたはいくつかの態様は、クライアントコンピューティングデバイス106
1〜Nのうちの1つまたは複数よって実装されてもよい。たとえば、クライアントデバイス106
1は、自動化アシスタント120の1つまたは複数の態様の1つのインスタンスを実装してもよく、クライアントデバイス106
Nは、自動化アシスタント120のそれらの1つまたは複数の態様の別個のインスタンスも実装してもよい。自動化アシスタント120の1つまたは複数の態様がクライアントコンピューティングデバイス106
1〜Nからリモートにある1つまたは複数のコンピューティングデバイスによって実装される実装形態において、クライアントコンピューティングデバイス106
1〜Nおよび自動化アシスタント120のそれらの態様は、ローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)(たとえば、インターネット)などの1つまたは複数のネットワークを介して通信してもよい。
【0026】
クライアントデバイス106
1〜Nは、たとえばデスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載娯楽システム、車載ナビゲーションシステム)、および/またはコンピューティングデバイスを備えるユーザの着用可能装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)のうちの1つまたは複数を含んでもよい。追加の、および/または代替的なクライアントコンピューティングデバイスが提供されてもよい。いくつかの実装形態において、所与のユーザは、コンピューティングデバイスの協調「エコシステム」を共同で形成する複数のクライアントコンピューティングデバイスを利用する自動化アシスタント120と通信してもよい。いくつかのそのような実装形態において、自動化アシスタント120は、たとえばアクセスが「サービスを受ける」ユーザによって制御されるリソース(たとえば、コンテンツ、文書など)への機能強化されたアクセス権を自動化アシスタント120に付与するその特定のユーザに「サービスを提供する」と考えられてもよい。いくつかの場合において、自動化アシスタント120は、そのユーザの発話の認識を微調整し、精度を改善するためにサービスを受けるユーザによって音声訓練されてもよい。しかしながら、簡潔にするため、本明細書において説明されるいくつかの例では、ユーザが単一のクライアントコンピューティングデバイス106を操作することに絞って説明する。
【0027】
クライアントコンピューティングデバイス106
1〜Nの各々は、メッセージ交換クライアント107
1〜Nのうちの対応する1つなどの様々な異なるアプリケーションを操作してもよい。メッセージ交換クライアント107
1〜Nは、様々な形態のものがあってもよく、それらの形態は、クライアントコンピューティングデバイス106
1〜Nによって異なってもよく、および/または複数の形態はクライアントコンピューティングデバイス106
1〜Nのうちの単一の1つで操作されてもよい。いくつかの実装形態において、メッセージ交換クライアント107
1〜Nのうちの1つまたは複数は、ショートメッセージングサービス("SMS")および/またはマルチメディアメッセージングサービス("MMS")クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャー、インターネットリレーチャット、または"IRC"など)、ソーシャルネットワークに関連付けられたメッセージングアプリケーション、自動化アシスタント120との会話専用のパーソナルアシスタントメッセージングサービスなどの形態をとってもよい。いくつかの実装形態において、メッセージ交換クライアント107
1〜Nのうちの1つまたは複数は、クライアントコンピューティングデバイス106のウェブブラウザ(図示せず)または他のアプリケーションによってレンダリングされるウェブページまたは他のリソースを介して実装されてもよい。
【0028】
本明細書においてより詳しく説明されるように、自動化アシスタント120は、1つまたは複数のクライアントデバイス106
1〜Nのユーザインターフェース入力および出力デバイスを介して、1人または複数のユーザとのダイアログセッションに参加する。いくつかの実装形態において、自動化アシスタント120は、クライアントデバイス106
1〜Nのうちの1つの1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって提供されたユーザインターフェース入力に応答してユーザとのダイアログセッションに参加してもよい。それらの実装形態のうちのいくつかにおいて、ユーザインターフェース入力は、自動化アシスタント120に明示的に向けられる。たとえば、メッセージ交換クライアント107
1〜Nのうちの1つは、自動化アシスタント120との対話専用であるパーソナルアシスタントメッセージングサービスであってもよく、そのパーソナルアシスタントメッセージングサービスを介して提供されるユーザインターフェース入力は、自動化アシスタント120に自動的に提供されてもよい。また、たとえばユーザインターフェース入力は、自動化アシスタント120が呼び出されるべきであることを示す特定のユーザインターフェース入力に基づいてメッセージ交換クライアント107
1〜Nのうちの1つまたは複数において自動化アシスタント120に明示的に向けられてもよい。たとえば、特定のユーザインターフェース入力は、1つまたは複数のタイプ入力された文字(たとえば、@AutomatedAssistant)、ユーザによるハードウェアボタンおよび/もしくは仮想ボタンのインタラクティブな操作(たとえば、タップ、長タップ)、口頭コマンド(たとえば、"Hey Automated Assistant")、ならびに/または他の特定のユーザインターフェース入力であってもよい。いくつかの実装形態において、自動化アシスタント120は、ユーザインターフェース入力に応答して、そのユーザインターフェース入力が自動化アシスタント120に明示的に向けられていないときでも、ダイアログセッションに参加してもよい。たとえば、自動化アシスタント120は、ユーザインターフェース入力のコンテンツを調べ、特定の語がユーザインターフェース入力内に存在することに応答して、および/または他の手掛かりに基づいてダイアログセッションに参加してもよい。多くの実装形態において、自動化アシスタント120は、インタラクティブボイスレスポンス("IVR")と連動してもよく、したがってユーザはコマンド、検索などを発声することができ、自動化アシスタントは、その発声をテキストに変換するために1つまたは複数の文法を利用し、そのテキストにしかるべく応答してもよい。
【0029】
クライアントコンピューティングデバイス106
1〜Nおよび自動化アシスタント120の各々は、データおよびソフトウェアアプリケーションを記憶しておくための1つまたは複数のメモリと、データにアクセスしアプリケーションを実行するための1つまたは複数のプロセッサと、ネットワーク上の通信を容易にする他のコンポーネントとを備えてもよい。クライアントコンピューティングデバイス106
1〜Nのうちの1つまたは複数によって、および/または自動化アシスタント120によって実行されるオペレーションは、複数のコンピュータシステムに分散させてもよい。自動化アシスタント120は、たとえばネットワークを通じて互いに結合される1つまたは複数のロケーションにある1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装されてもよい。
【0030】
自動化アシスタント120は、自然言語プロセッサ122と、応答コンテンツエンジン130とを備えてもよい。いくつかの実装形態において、自動化アシスタント120のエンジンおよび/またはモジュールのうちの1つまたは複数は、省略され、組み合わされ、および/または自動化アシスタント120から分離しているコンポーネントで実装されてもよい。自動化アシスタント120は、応答コンテンツエンジン130によって生成され、および/または維持される応答コンテンツを提供するために、関連付けられたクライアントデバイス106
1〜Nを介して1人または複数のユーザとのダイアログセッションに参加してもよい。
【0031】
いくつかの実装形態において、応答コンテンツエンジン130は、自動化アシスタント120とのダイアログセッションにおいてクライアントデバイス106
1〜Nのうちの1つのユーザによって生成される様々な入力に応答して応答コンテンツを生成する。応答コンテンツエンジン130は、ダイアログセッションの一部としてユーザに提示するための応答コンテンツ(たとえば、ユーザのクライアントデバイスから分離しているときに1つまたは複数のネットワーク上で)を提供する。たとえば、応答コンテンツエンジン130は、クライアントデバイス106
1〜Nのうちの1つを介して提供される自由形式自然言語入力に応答して応答コンテンツを生成してもよい。本明細書で使用されるように、自由形式入力は、ユーザによって作成され、ユーザによる選択について提示されるオプションのグループに制約されない入力である。
【0032】
本明細書で使用されるように、「ダイアログセッション」は、ユーザと自動化アシスタント120との間の1つまたは複数のメッセージの論理的にセルフコンテインドである交換を含んでもよい。自動化アシスタント120は、セッションの間の時間の経過、セッションの間のユーザ文脈(たとえば、場所、スケジュールされた会合の前/間/後など)の変更、ユーザと自動化アシスタントとの間のダイアログ以外のユーザとクライアントデバイスとの間の1つまたは複数の介在するインタラクションの検出(たとえば、ユーザがしばらくの間アプリケーションを切り替える、ユーザがそのときから歩き去り、その後スタンドアロンの音声作動製品に戻る)、セッションの間のクライアントデバイスのロック/スリープ、自動化アシスタント120の1つまたは複数のインスタンスとインターフェースするために使用されるクライアントデバイスの変更などの様々な信号に基づいてユーザとの複数のダイアログセッションを区別してもよい。
【0033】
いくつかの実装形態において、自動化アシスタント120がユーザフィードバックを請求するプロンプトを提供したときに、自動化アシスタント120は、プロンプトに応答して受信されるべきユーザインターフェース入力を処理するように構成されるクライアントデバイス(プロンプトを提供する際に経由する)の1つまたは複数のコンポーネントをプリエンプティブに起動してもよい。たとえば、ユーザインターフェース入力がクライアントデバイス106
1のマイクロフォンを介して提供されるべきである場合、自動化アシスタント120は、マイクロフォンをプリエンプティブに「開く」(それによって、インターフェース要素をヒットするか、もしくはマイクロフォンを開くために「ホットワード」を話す必要性を回避する)、クライアントデバイス106
1のローカル音声テキスト変換プロセッサをプリエンプティブに起動する、クライアントデバイス106
1とリモート音声テキスト変換プロセッサとの間の通信セッションをプリエンプティブに確立する、および/またはグラフィカルユーザインターフェースをクライアントデバイス106
1上に表現する(たとえば、フィードバックを提供するように選択されてもよい1つもしくは複数の選択可能な要素を含むインターフェース)ことを行わせる1つまたは複数のコマンドを提供してもよい。これは、コンポーネントがプリエンプティブに起動されてなかった場合に比べて速くユーザインターフェース入力が提供され、および/または処理されることを可能にしてもよい。
【0034】
自動化アシスタント120の自然言語プロセッサ122は、クライアントデバイス106
1〜Nを介してユーザによって生成された自然言語入力を処理し、応答コンテンツエンジン130などの自動化アシスタント120の1つまたは複数の他のコンポーネントによって使用するための注釈付き出力を生成してもよい。たとえば、自然言語プロセッサ122は、クライアントデバイス106
1の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語自由形式入力を処理してもよい。生成された注釈付き出力は、自然言語入力の1つまたは複数の注釈およびオプションにより自然言語入力の語のうちの1つまたは複数(たとえば、すべて)を含む。
【0035】
いくつかの実装形態において、自然言語プロセッサ122は、自然言語入力における様々な種類の文法情報を識別し、注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、語にその文法上の役割を注釈として付けるように構成される品詞タグ付け器を含んでもよい。たとえば、品詞タグ付け器は、「名詞」、「動詞」、「形容詞」、「代名詞」などの品詞を各語にタグ付けしてもよい。また、たとえばいくつかの実装形態において、自然言語プロセッサ122は、それに加えておよび/または代替的に自然言語入力における語の間の構文的関係を決定するように構成される依存関係解析器を備えてもよい。たとえば、依存関係解析器は、どの語が文章の他の語、主語、および動詞を修飾するかなどを決定し(たとえば、解析木)、そのような依存関係の注釈を行ってもよい。
【0036】
いくつかの実装形態において、自然言語プロセッサ122は、それに加えておよび/または代替的に人々(たとえば、文学作品の登場人物を含む)、組織、場所(実在および架空)などへの参照などの1つまたは複数の文節におけるエンティティ参照を注釈するように構成されるエンティティタグ付け器を含んでもよい。エンティティタグ付け器は、高水準の粒度(たとえば、人々などのエンティティクラスへのすべての参照の識別を可能にする)および/または低水準の粒度(たとえば、特定の人などの特定のエンティティへのすべての参照の識別を可能にする)のエンティティへの参照に注釈を付けてもよい。エンティティタグ付け器は、特定のエンティティを解決するために自然言語入力のコンテンツに依存してもよく、および/またはオプションにより特定のエンティティを解決するために知識グラフまたは他のエンティティデータベースと通信してもよい。
【0037】
いくつかの実装形態において、自然言語プロセッサ122は、それに加えておよび/または代替的に1つまたは複数の文脈上の手掛かりに基づいて同じエンティティへの参照をグループ化するか、または「クラスタ化」するように構成される同一指示解決器を備えてもよい。たとえば、同一指示解決器は、自然言語入力"I like reading Winnie the Pooh to you, son. Let's record it."中の語"it"を"Winnie the Pooh"というユーザの可聴表現に解決するために利用されてもよい。
【0038】
いくつかの実装形態において、自然言語プロセッサ122の1つまたは複数のコンポーネントは、自然言語プロセッサ122の1つまたは複数の他のコンポーネントからの注釈に依存してもよい。たとえば、いくつかの実装形態において、名前を付けられたエンティティタグ付け器は、特定のエンティティへのすべての言及に注釈を付ける際に同一指示解決器および/または依存関係解析器からの注釈に依存する場合がある。また、たとえばいくつかの実装形態において、同一指示解決器は、同じエンティティへの参照をクラスタ化する際に依存関係解析器からの注釈に依存する場合がある。いくつかの実装形態において、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数のコンポーネントは、特定の自然言語入力の外の関係する前の入力および/または他の関係するデータを使用して1つまたは複数の注釈を決定してもよい。
【0039】
上で述べたように、応答コンテンツエンジン130は、クライアントデバイス106
1〜Nのうちの1つのユーザとのダイアログセッション中に提供する提案および/または他のコンテンツを生成する際に1つまたは複数のリソースを利用する。様々な実装形態において、応答コンテンツエンジン130は、アクションモジュール132と、エンティティモジュール134と、コンテンツモジュール136とを備えてもよい。
【0040】
応答コンテンツエンジン130のアクションモジュール132は、クライアントコンピューティングデバイス106
1〜Nから受信された自然言語入力および/または自然言語プロセッサ122によって提供される自然言語入力の注釈を利用して、自然言語入力に応答する少なくとも1つのアクションを決定する。いくつかの実装形態において、アクションモジュール132は、自然言語入力に含まれる1つまたは複数の語に基づいてアクションを決定してもよい。たとえば、アクションモジュール132は、アクションが1つまたは複数のコンピュータ可読媒体において自然言語入力に含まれる1つまたは複数の語にマッピングされることに基づいてアクションを決定してもよい。たとえば、"record an audible rendition of a narrative"というアクションは、"I'd like to record..."、"Let's record it"、"I'm going to read <someone> a story"、"Let's record a singalong"などの1つまたは複数の語にマッピングされてもよい。別の例として、"render an audio file of a previously-recorded audible rendition of a narrative"というアクションは、"Read me a story"、"Ready me <story keyword>"、"Read me a story about <keyword>"、"I miss <recording user>"などの1つまたは複数の語にマッピングされてもよい。
【0041】
書誌データベース152は、1つまたは複数の非一時的コンピュータ可読媒体上で提供されてもよく、既存の作品(たとえば、本、詩、歌、脚本、台本など)などの複数の叙述、および/または関連付けられたエンティティ(著者、出版社、生産者、登場人物など)、エンティティの各々の特性、ならびにオプションでそれらのエンティティの間の関係に関連付けられた情報を含んでもよい。たとえば、書誌データベース152は、特定の本の識別子(たとえば、書名、ISBNなど)と、著者、共著者、イラストレータ、ジャンル(たとえば、ファンタジー、対象年齢など)、長さ(単語数および/またはページ数)、ニックネーム(またはエイリアス)、出版社、出版日、音響効果、テーマ、トピックなどのその本の1つもしくは複数の特性および/または属性とを含んでもよい。いくつかの実装形態において、書誌データベース152は、たとえばクラウド内の1つまたは複数のサーバコンピューティングシステムにまたがって記憶されてもよく、複数の異なるクライアントデバイス106上で動作し、および/または複数の異なるユーザにサービスを提供する複数の自動化アシスタント120にアクセス可能であってもよい。
【0042】
叙述データベース154は、1つまたは複数の非一時的コンピュータ可読媒体上で提供されてもよく、自動化アシスタント120とインタラクティブにやり取りするクライアントデバイス106のユーザによって提供される叙述の可聴表現を含む1つまたは複数の録音済みのオーディオファイル(様々な非可逆および/または可逆オーディオフォーマット(たとえば、MPEG、MP3、ALAC、FLAC、WMAなど)を使用して記憶されてもよい)のライブラリを備えてもよい。たとえば、ユーザが本明細書で説明される技術を使用して叙述の可聴表現を録音することを自動化アシスタント120に指示するたびごとに、その結果得られるオーディオファイルは、叙述データベース154に記憶され、インデックス付けされてもよい。叙述データベース154は、1つまたは複数のクライアントデバイス106、1つまたは複数のサーバ(たとえば、クラウド)などの1つまたは複数のメモリロケーションに記憶されてもよい。
【0043】
コンテンツモジュール136は、書誌データベース152および叙述データベースの両方への(たとえば、1つもしくは複数のネットワークを通じて、またはローカルコンピューティングメモリ内で)アクセス権を有してもよい。様々な実装形態において、コンテンツモジュール136は、たとえばアクションモジュール132から、ユーザコマンドを受信するように構成されてもよい。それらのコマンドに応答して、コンテンツモジュール136は、様々なアクションを実行してもよく、これらのアクションは限定しないが新規オーディオファイルを録音して叙述データベース154に記憶すること、叙述データベース154に記憶された以前に録音したオーディオファイルの可聴表現を生成する(たとえば、再生する)こと、および/または叙述データベース154に記憶された録音済みのオーディオファイルを書誌データベース152に含まれる情報に関連付けることを含む。
【0044】
図2は、自動化アシスタント120がユーザ101による作品(たとえば、本、歌、エッセー、詩、台本、脚本など)の可聴表現を録音するダイアログセッションの一例を示す。
図2に示されるようなコンピューティングデバイス210は、1つまたは複数のマイクロフォンと1つまたは複数のスピーカーとを備えてもよい。
図2は、コンピューティングデバイス210のユーザ101と本明細書において説明される実装形態による自動化アシスタント120との間で、マイクロフォンおよびスピーカーを介して行われてもよいダイアログセッションの例を示す。
図1の自動化アシスタント120の1つまたは複数の態様は、コンピューティングデバイス210上に、および/またはコンピューティングデバイス210とネットワーク通信している1つまたは複数のコンピューティングデバイス上で実装されてもよい。本明細書において説明される例では、自動化アシスタントがユーザ101に「サービスを提供する」と仮定してもよい。たとえ、自動化アシスタント120は、ユーザ101によって制御されるリソースへの特権的アクセス権を有してもよく、ユーザ101からの発話を理解するように訓練されてもよい(たとえば、ユーザの語彙、アクセント、発音、抑揚などに合わせてチューニングされてもよい)。
【0045】
図2において、ユーザ101は、ユーザ101と自動化アシスタント120との間のダイアログセッションを開始するために"(102に示される)I'm going to read a story to my child. Let's record it"という自然言語入力280Aを提供する。自然言語入力280Aに応答して、自動化アシスタント120は、"Sure, what story are you going to read."という自然言語出力282Aを提供する。次いで、ユーザ101は、たとえば"Goodnight Moon"という書名などの書誌情報を含む自然言語入力280Bを提供する。次いで、自動化アシスタント120は、ユーザによって読み上げられる物語の可聴表現を録音することをユーザに促す自然言語出力282Bを提供する。
【0046】
次いで、ユーザは、物語の可聴表現を含む音声入力280Cを提供する。ときには後になってたとえばユーザが物語を読むことを完了した後、いくつかの実装形態において、ユーザは、自動化アシスタント120が録音を停止するトリガーとして認識してもよい、自然言語入力280D(いくつかの場合において、物語からの最終単語またはフレーズであってもよい)などのある種の入力を提供してもよい。次いで、自動化アシスタント120は、録音済みのオーディオファイルの時間的長さなどの様々な出力を提供してもよい。いくつかの実装形態において、自動化アシスタント120は、ユーザが音声録音を聴きたいかユーザに尋ねるプロンプト、ユーザが録音を保持することを望むことを確認するプロンプト、などの他の出力も提供してもよい。いくつかの実装形態において、自動化アシスタント120は、書誌情報を請求するために、前もってそれを求めるのではなく、(282Aに示されるように)録音の完了後まで待ってもよい。
【0047】
図2に示されるセッションが完了した後、様々な実装形態において、自動化アシスタント120は、(たとえば、ローカルにある、またはたとえば、クラウドを形成する1つまたは複数のサーバ上の)コンピュータデバイス210から利用可能なコンピュータメモリ(たとえば、叙述データベース154)内に、ユーザ101によって話された叙述の録音済みの可聴表現を含むオーディオファイルを記憶してもよい。いくつかの実装形態において、オーディオファイルは、たとえば280Bにおいて、少なくとも一部はユーザによって提供される書誌情報に基づいてコンピュータメモリ内でインデックスを付けられてもよい。
【0048】
いくつかの実装形態において、叙述は、出版された本などの既存の書物を含んでもよい。いくつかのそのような実装形態において、ユーザによって提供される書誌情報は、既存の作品(たとえば、
図1の154)のデータベース内の既存の書物と照合されてもよい。既存の書物に関連付けられた付加情報もまた、データベースに記憶されてもよい。この付加情報は、たとえば付加的書誌情報(たとえば、著者、ISBN、出版年、版など)、さらには(たとえば、録音ユーザ101による、および/または他のユーザによって使用される)作品に使用される1つもしくは複数のニックネームまたはエイリアス、書物に関連付けられたカバーアートおよび/または他のアートワーク(たとえば、作品の1つもしくは複数の出版された版からのイラストレーション、ファンアートなど)、音響効果(以下で説明される)、雑学的知識、作品中の登場人物に関する情報(たとえば、素性、人種、性別など)、テーマ、トピック、キーワードもしくはフレーズなどの他の付加情報を含んでもよい。
【0049】
以下でより詳しく説明されるように、様々な実装形態において、この付加情報の様々な部分は、たとえばコンピューティングデバイス210の1つまたは複数の出力デバイスを用いて、自動化アシスタント120によって出力されるとおりに提供されてもよい。たとえば、出力される付加情報は、コンピューティングデバイス210のディスプレイ(図示せず)上に出力される既存の書物を著す視覚的表現を含んでもよい。コンピューティングデバイス210がディスプレイを備えていない場合、様々な実装形態において、スマートフォンまたは付近にあるスマートテレビなどのユーザ101によって制御されるコンピューティングデバイスのエコシステムの1つまたは複数の他のコンピューティングデバイスが視覚的表現をディスプレイ上に出力してもよい。いくつかの実装形態において、オーディオファイルは、データベース内の既存の書物に関連付けられた付加情報の1つまたは複数の部分に基づいて自動化アシスタント120によってコンピュータメモリ(たとえば、154)内でさらにインデックス付けされてもよい。
【0050】
様々な実装形態において、自動化アシスタント120は、子供102などの同じユーザまたは異なるユーザから入力デバイスのうちの1つまたは複数に受信されたコマンドに応答して、オーディオ出力デバイスを介して1つまたは複数のすでに録音されているオーディオファイル(たとえば、
図2に示されるセッションにおいて録音されたオーディオファイル)を表現するように構成されてもよい。コマンドは、子供102が再生を望むオーディオファイルの識別子を含んでもよい。いくつかの実装形態において、識別子は、オーディオファイルが録音されたときに録音ユーザによって提供された書誌情報を示す情報を含んでもよい。
【0051】
図3は、異なるセッションにおいて子供102とコンピューティングデバイス210上で動作する自動化アシスタント120との間の例示的なダイアログを示す。380Aにおいて、子供102は、"Can you read me a story?"というフレーズを話す。子供のコマンドが、子供がどのような物語を聴きたいのかについてあいまいであると仮定して、自動化アシスタント120は、たとえば382Aにおいて子供がどの物語を聴きたいかを示すよう子供を促すことによって、子供のコマンドのあいまいさをなくしてもよい。382Bにおいて、子供は、自分が聴きたい物語の識別子を提供することによって対応してもよい。たとえば、子供は、380Bにおいて、"Goodnight Moon"という書名などの書誌情報を提供してもよい。(オプションであってもよい)382Bにおいて、自動化アシスタント120は、可聴情報を提供してもよく、次いで382Cにおいて、自動化アシスタント120は、その識別子(たとえば、書誌情報)に関連してコンピューティングデバイス210にアクセス可能であるコンピュータメモリ(たとえば、154)に記憶されたオーディオファイルを再生してもよい。他の実装形態において、子供102が"read me Goodnight Moon"などのあまりあいまいでないコマンドを提供することによって始めた場合、382Aおよび382Bは、あいまいさをなくすことが不要な場合があるので、スキップしてもよい。
【0052】
図4は、ユーザ101とコンピューティングデバイス210上で実行している自動化アシスタント120との間のより複雑な録音ダイアログを示す。この例では、480Aにおいて、ユーザ101は、自分の子供に歌を歌ってあげるというコマンドを発行する。482Aにおいて、自動化アシスタント120は、たとえば書誌情報を探索することによって、どの歌が歌われるかについてあいまいさをなくそうと探索する。480Bにおいて、ユーザ101は、書誌情報("Old MacDonald Had a Farm")を提供する。
【0053】
いくつかの実装形態において、および上で述べたように、自動化アシスタント120は、書誌情報をデータベース内の既存の作品と照合してもよい。いくつかの実装形態において、自動化アシスタント120は、その既存の作品に、またはそのジャンルの既存の作品に特に適用可能である場合がある録音オプションを提供してもよい。たとえば、ユーザ提供の書誌情報をよく知られている子供の歌"Old MacDonald Had a Farm"と照合したことに応答して、自動化アシスタント120は、たとえば書誌データベース152内の既存の作品に関連して記憶された付加情報に基づいて音響効果が歌に付随することが多いと判定してもよい。したがって、482Bにおいて、自動化アシスタント120は、ユーザ101が任意の音響効果を音声録音に組み込みたいかを確認するようユーザ101に促してもよい。
【0054】
480Cにおいて、ユーザ101は、音響効果を組み込みたいことを確認してもよい。ユーザは、様々な仕方で音響効果を録音済みのオーディオファイルに組み込んでもよい。単純な一例において、ユーザ(またはユーザが読み聞かせしている聞き手)は、録音時に音響効果を聴覚的に提供してもよく、音響効果は周囲騒音として録音に単純に焼かれる。しかしながら、
図4に示されるような他の実装形態において、音響効果の組み込みに対するより多くのオプションが自動化アシスタント120によって提供されてもよい。
【0055】
たとえば、ユーザ101は、自動化アシスタントに、ユーザが"cow"という単語を話したときに必ず、自動化アシスタント120が歌の途中の適切な時点において既存のオーディオファイル("<filename>"は再生されるべきオーディオファイルに対するプレイスホルダーを示す)を再生すべきであることを指示する。この場合、既存のオーディオファイルは、再生されたときに、牛のモーという鳴き声を表現してもよい。いくつかの実装形態において、そのような既存のオーディオファイルがユーザ101によって取得され(たとえば、音響効果ライブラリからダウンロードされ)、たとえばコンピューティングデバイス210上、ユーザ101によって操作されるコンピューティングデバイスのエコシステムの別のコンピューティングデバイス上、および/またはクラウド上の自動化アシスタント120に利用可能なコンピュータメモリに記憶されてもよい。他の実装形態において、既存のオーディオファイルは、上で説明される付加情報に関連して書誌データベース152に記憶されてもよい。
【0056】
"Old MacDonald Had a Farm"については、ユーザ101(および/または聴いている子供102)が"and on his farm he had a cow"というフレーズを歌ったときに、自動化アシスタント120は、その歌の可聴表現に関して音声分析を実行してもよい。いくつかの実装形態において、自動化アシスタント120は、現在の音響効果をいつ再生すべきかを決定するために書誌データベースに記憶された付加情報を利用してもよい。たとえば、自動化アシスタント120は、ユーザ101(または子供102)が"with a..."と言ったときに必ず、自動化アシスタント120は既存のオーディオファイルの可聴表現を生成するべきであると判定してもよい。したがって、ユーザ101が子供102に歌を歌って聴かせている間、音響効果がリアルタイムで組み込まれ、体験の質を増加させる。さらに、既存のオーディオファイルの再生は、歌の録音に、たとえばユーザの声とともに録音された周囲騒音として組み込まれ、および/またはリアルタイムおよび/または下流サウンドファイル処理を使用して結果として得られるオーディオファイルに縫い込まれ(stitch)てもよい。
【0057】
別の例として、ユーザ101は、自動化アシスタント120に、ユーザが"duck"という単語を話したときに必ず、自動化アシスタント120が"quack"という音(たとえば、ゴム製アヒルの潰したときの音、鴨笛の音など)を発生するユーザによって操作されるデバイスから発せられる音を再生すべきであることを指示する。そのような実装形態において、自動化アシスタント120は、"following sound"というフレーズの直前のユーザ作成音を録音してもよい。次いで、自動化アシスタント120は、ユーザ101が子供102に歌を歌って聴かせている間に録音済みの音の可聴表現を生成してもよく、その音を、たとえば周囲騒音を用いて、および/または録音済みの音を結果として得られるオーディオファイル内に縫い込むことにより、歌の可聴録音内に音を焼き付けてもよい。482Cにおいて、自動化アシスタント120は、要求された音響効果を挿入することおよび適切な時刻を確認する。
【0058】
図5は、子供102とコンピューティングデバイス210上で動作する自動化アシスタント120との間の別の例示的なダイアログを示す。
図5に示されるダイアログは、自動化アシスタント120が様々な叙述の可聴表現のすでに録音済みのオーディオファイルのライブラリ(たとえば、154)を検索するいくつかの実装形態における能力を示す。580Aにおいて、子供102は、自動化アシスタント120がウサギの物語を読むことを要求する。いくつかの実装形態において、自動化アシスタント120は、(大人および/または自動化アシスタント120によるサービスを受けるアカウントの所有者であってもよい)ユーザ101ではなく、特に見知らぬユーザ向けに合わせるモード(たとえば、"generalized"または"sandbox"モード)に切り替わってもよい。
【0059】
たとえば、いくつかの実装形態において、自動化アシスタント120は、受信音声コマンドが本明細書で説明される技術を使用して1つまたは複数のオーディオファイルを録音した別の個人(たとえば、ユーザ101)(または場合によっては、自動化アシスタント120によるサービスを受ける別の個人)とは異なる個人(たとえば、子供102)によって話されたことを判定するために子供102から受信された音声コマンド580Aに対して音声処理(たとえば、話者認識、声認識、音声認識)を実行してもよい。いくつかのそのような実装形態において、自動化アシスタントは、子供102に合わせて手直しされているインタラクティブダイアログを応答可能に開始してもよい。
図5において、たとえば自動化アシスタント120は、582Aにおいて、前に録音されたオーディオファイルのライブラリ(たとえば、154)を検索することによって子供の要求からあいまいさをなくすことを試み、とにかく"bunnies"に関係する2つの応答結果を返すことによって応答する。たとえば、これらのオーディオファイルがユーザ101によって前に録音されていたときに、ユーザ101は、たとえば"bunnies"、"rabbits"などのキーワードを含んでいた書誌情報を提供していた場合もあるか、または叙述が"bunnies"という語(もしくはその同義語)をその書名、もしくはその本文中にさえ含む場合もある。次いで、子供102は、580Bにおいて、自動化アシスタント120は、オプションで、582Bで確認し、次いで582Cで表現してもよい、あいまいさをなくした答えで応答することができる。
【0060】
上で述べたように、いくつかの実装形態において、自動化アシスタント120は、受信された音声コマンドの音声処理に応答して、自動化アシスタント120によるサービスを受けるユーザ101以外の個人に合わせる"generalized"モードに切り替わってもよい。自動化アシスタント120が、自動化アシスタント120のサービスを受けるユーザ101によって使用される語彙をより適切に理解するように訓練されてもよいことを思い出してもらいたい。したがって、一般化モードでは、自動化アシスタント120は、自動化アシスタント120のサービスを受けるユーザ101とインタラクティブにやり取りするために自動化アシスタント120によって通常使用されるものと異なる1つもしくは複数の文法、語彙、および/または決定木を利用してもよい。いくつかの実装形態において、一般化またはサンドボックスモードにある間に、自動化アシスタント120は、自動化アシスタント120によるサービスを受けるユーザ101によって制御されるコンテンツおよび/またはインターネット上で利用可能な一般コンテンツなどの様々なコンテンツへの未知のユーザのアクセスを制限するようにダイアログを手直ししてもよい。
【0061】
いくつかの実装形態において、話者がユーザ101以外の個人であるとの判定に応答して、自動化アシスタント120は、自然言語入力ではなく、個人からの二択入力(たとえば、yesまたはno)を請求する単純化したダイアログを実装してもよい。たとえば、自動化アシスタント120は、次のようなダイアログを開始してもよい。
自動化アシスタント120: "Sounds like you want to hear a story. Is that right?"
個人(ユーザ101ではない): "yes"
自動化アシスタント120: "Ok. I have three stories. The first is Macbeth. Do you want to read that?"
個人(ユーザ101ではない): "yes"
このようなダイアログは、本明細書で説明されるオーディオファイル作成技術へのアクセスを簡素化してもよい。それに加えて、そのようなダイアログは、本明細書で説明される技術を使用して作成されたオーディオファイル以外のコンテンツにアクセスする個人の能力を制限してもよい。さらに、ユーザ101以外の個人とインタラクティブにやり取りするときに、自動化アシスタント120は、(認識されないアクセント、発音、語彙、抑揚、ピッチなどを有する場合がある)個人からの自然言語入力を解釈することができること以上に容易に"yes"、"no"、"okay"などの単純な二択応答を解釈することができてもよい。
【0062】
別の例として、自動化アシスタント120が、話者がユーザ101と異なる誰かであると判定したときに、自動化アシスタント120は、本明細書の技術を使用して生成された音声録音の方へ検索結果をバイアスしてもよい。それに加えて、または代替的に、自動化アシスタント120は、インターネット上で一般的に利用可能なコンテンツならびに/または特定のユーザにとって個人的なものであってもよいコンテンツ(たとえば、守秘義務および/もしくは機密コンテンツ)などの他のコンテンツから(除外するポイントにすら)離れる方向に検索結果をバイアスしてもよい。たとえば、自動化アシスタント120のサービスを受けているユーザ101が特定のキーワード検索する音声コマンドを発行すると想定する。自動化アシスタント120は、インターネット、ユーザによって制御されるクラウドストレージ、電子メールまたはユーザによって制御されてもよい他の文書などの任意の多数のソースから集められた応答検索結果を提供してもよい。対照的に、自動化アシスタント120のサービスを受けていない子供(たとえば、102)または別の個人が、同じキーワードを有する同じ音声コマンドを発行すると想定する。自動化アシスタント120は音声処理を実行して、話者が自動化アシスタント120によるサービスを受けているユーザでないと判定してもよい。その結果、自動化アシスタント120は、本明細書で説明される技術を使用して録音されたオーディオファイルの方へ検索結果をバイアスしてもよく、他のコンテンツに対して検索結果をバイアス(または完全に除外)してもよい。
【0063】
それに加えて、または代替的に、いくつかの実装形態において、音声コマンドそれ自体の解釈は、本明細書において説明される技術を使用して録音されたファイルを探索する方へバイアスされてもよい。一例として、自動化アシスタント120に関連付けられた音声テキスト変換エンジンは、話者がユーザ101と異なるという事実を考慮しながら受信された音声入力をテキストに変換してもよい。これは、自動化アシスタント120によって実行される音声テキスト変換の精度および/またはロバスト性を増加させてもよい。たとえば、自動化アシスタント120は、音声テキスト変換で使用される音声テキスト変換モデルの、および/またはその音声テキスト変換モデルによって生成される1つもしくは複数の値を修正してもよく、を明細書で説明される技術を使用して録音されたファイルに関連付けられたパラメータに適合するテキストが受信された音声入力に適合するテキストとして選択される尤度を増加させるようにそれらの値を修正する場合がある。これは、自動化アシスタント120の性能を改善し、および/または他の何らかの形で音声入力の不正確な表現によって消費される場合がある様々な計算リソース(たとえば、音声入力の不正確な表現を是正するために必要な場合がある追加の「ターン」によって消費されるネットワークトラフィック)の使用を減らしてもよい。
【0064】
いくつかの実装形態において、自動化アシスタント120によって利用される音声テキスト変換モデルのうちの1つまたは複数は、たとえばデジタルオーディオデータをテキストの単語またはフレーズにマッピングする複数の経路を定義する有限状態復号グラフを実装してもよい。いくつかの実装形態において、これらの音声テキスト変換モデルのうちの1つもしくは複数は、文脈依存モデル(たとえば、話者が公称ユーザ101と異なるという認識に少なくとも一部は基づいて生成される)と選択的に結合される場合があり、および/または出力がその文脈依存モデルによって選択的に修正されてもよいベースモデルを含んでもよい。ベースモデルは、ユーザによって話される可能性の高い比較的共通する単語およびフレーズを含む主語彙をサポートしてもよい。文脈依存モデルは、他方では、ユーザ101と異なる誰かが話しているときなどの特定の文脈に対するベースモデルの語彙を効果的に増補するために使用できる1つまたは複数の単語もしくはフレーズに対する経路を含んでもよい。ベースモデルが文脈依存モデルと統合されるか、または他の何らかの形で補完されてもよい方式は、たとえば経路がモデル内に符号化される方式に基づいて異なる実装形態において異なってもよい。
【0065】
図6は、本明細書で開示される実装形態による例示的な方法600を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しつつ説明される。このシステムは、自動化アシスタント120の1つまたは複数のコンポーネントなどの様々なコンピュータシステムの様々なコンポーネントを備えてもよい。さらに、方法600の動作が特定の順序で示されるが、これは制限することを意味しない。1つまたは複数の動作が、順序変更、省略、または追加されてもよい。
【0066】
ブロック602において、システムは、叙述の可聴表現を録音するための第1のコマンドを含む入力を受信してもよい。この入力は、タッチスクリーン、マイクロフォン、キーボード、マウス、加速度計(たとえば、ジェスチャーを検出すること)、カメラ(たとえば、ジェスチャーを検出すること)などの様々な種類の入力デバイスで様々な形態により受信されてもよい。いくつかの実装形態において、ブロック604で、システムは、録音されるべき叙述に関する書誌情報を請求する出力を提供してもよい。たとえば、自動化アシスタント120は、"what are you going to read/sing/perform?"などの質問もしくは文によりユーザに促してもよい。いくつかの実施形態において、ブロック604において提供される出力の1つまたは複数のパラメータは、ブロック602において提供される入力に基づいて選択されてもよい。たとえば、ユーザが"I'm going to read a story, let's record it."というコマンドを発行したと想定する。単語"story"に基づいてブロック604において提供される出力は、"What story are you going to read?"などの文を含んでもよい。他の実装形態では、ブロック604の出力は、ディスプレイ(たとえば、タッチスクリーン)、触覚フィードバック機構、プリンタなどの話者と異なる出力デバイスを使用して提供されてもよい。
【0067】
ブロック606において、システムは、録音されるべき叙述に関連付けられた書誌情報を含む入力をユーザから受信してもよい。いくつかの実装形態において、ユーザは、ブロック602において提供されるコマンドの一部としてこの情報を提供してもよい。たとえば、ユーザが"I'm going to sing 'Mary had a little lamb' to my daughter. Let's record it."と積極的に述べる場合がある。そのような場合、ブロック606は、ユーザが書誌情報をすでに提供しているので省略されてもよい。
【0068】
ユーザは、マイクロフォン、タッチスクリーンディスプレイ、キーボード、マウス、加速度計、カメラなどを含む様々な種類の入力デバイスを使用してブロック606において様々な種類の入力を提供してもよい。たとえば、いくつかの実装形態において、書誌情報の入力を促されたときに、ユーザは、単純にカメラの前で本を1冊手に持ってもよい。カメラは、本の1つまたは複数の画像を撮影してもよく、光学式文字認識、バーコードおよび/もしくはクイックレビュー("QR")コードなどの本に付けられた視覚的印の読み取りなどの様々な種類の視覚的分析を実行して、書誌情報を自動的に検出してもよい。それに加えて、様々な実施形態において、ユーザによって提供される書誌情報は、書名、テーマ、著者、出版社、ISBN番号などの既存の作品を識別するために使用可能である任意の識別子を含んでもよい。
【0069】
ブロック608において、システム(たとえば、コンテンツモジュール136)は、ブロック608において受信された書誌情報をデータベース(たとえば、
図1の書誌データベース152)内の1つまたは複数の既存の作品と照合してもよい。様々な実装形態において、書誌データベース152の一致するエントリから取得された付加情報は、たとえばユーザによって最終的に録音されるオーディオファイルにインデックスを付けるために使用されてもよい。一例として、ユーザによって提供される本の書名は、書誌データベース152内にエントリを有する1つまたは複数の既存の作品と照合されてもよい。ユーザが本の音声表現を録音した後、既存の作品に関する書誌データベース152から取得された様々な付加情報は、たとえば叙述データベース154内の録音済みのオーディオファイルに関連付けられてもよい。
【0070】
いくつかの実施形態において、システムは、他の種類の書誌情報を書誌データベース152内の1つまたは複数のエントリと照合してもよい。たとえば、ユーザは、書誌データベースに記憶された1つもしくは複数のエイリアスまたはキーワードと照合してもよいエイリアスまたは他のキーワードを提供してもよい。たとえば、ユーザは、登場人物の名前、別の書名、副題などを提供してもよい。ユーザによって提供される登場人物が書誌データベース152内の複数のエントリ(たとえば、その登場人物を主役とする複数の本)と一致した場合、すべての一致するエントリ、またはx個の最も近い一致するエントリに関連付けられた付加情報は、録音済みのオーディオファイルに最終的に関連付けられるか、またはユーザは、さらにあいまいさをなくす機会を与えられてもよい。
【0071】
いくつかの実装形態において、ブロック610で、システムは、一致する既存の作品に関連付けられた様々な付加情報を出力してもよい。たとえば、いくつかの実装形態において、ディスプレイを装備するコンピューティングデバイス(たとえば、210)は、一致する既存の作品に関連付けられたカバーアートおよび/または他のアート/イラストレーション/絵を表現してもよい。いくつかの実装形態において、付加情報は、正しい既存の作品が録音に関連付けられたことを録音ユーザが確認するために出力されてもよい。不正な既存の作品に関連付けられた付加情報が出力される場合、ユーザは、間違っている既存の作品がブロック608において照合されたことを通知されてもよく、追加のコマンドおよび/または書誌情報を自動化アシスタント120に提供し、たとえば自動化アシスタント120が正しい既存の作品と照合することを試みてもよい。
【0072】
ブロック612において、システムは、録音ユーザによって提供された叙述の可聴表現を録音してもよい。たとえば、自動化アシスタントは、録音状態に遷移し、そこで、(コンピューティングデバイス210と一体化しているか、またはスタンドアロンの)マイクロフォンを使用して雑音を録音する。いくつかの実装形態において、自動化アシスタント120は、閾値条件を満たす時間間隔を有する一時停止があるときに録音を停止してもよい。他の実装形態において、自動化アシスタント120は、録音ユーザが録音を停止するコマンド(たとえば、"recording complete")を意図的に発行したことに応答して、またはキーワードもしくはフレーズ(たとえば、"The End.")に応答して録音を停止してもよい。いくつかの実装形態において、自動化アシスタント120は、録音されている既存の作品に関連付けられたコンテンツへのアクセス権を有してもよく、そのコンテンツを分析して既存の作品の終端語またはフレーズを決定してもよい。次いで、その終端語またはフレーズは、自動化アシスタント120が録音を停止することをトリガーするために録音ユーザから検出されてもよい。
【0073】
いくつかの実装形態において、ブロック614で、自動化アシスタント120は1つまたは複数の音響効果を録音の中に組み込んでもよい。たとえば、すでに説明されるように、録音ユーザは、単純に、叙述の可聴表現を提供しながら音響効果を手作業で作成してもよい。それに加えてまたは代替的に、(
図4に関して上で説明されるように)録音ユーザは、音響効果(たとえば、短い持続時間のオーディオファイル)を特定の単語またはフレーズの後など様々なポイントにおいて叙述の中に組み込むことを自動化アシスタント120に指示してもよい。
【0074】
ここまで説明される非限定的な音響効果に加えて、いくつかの実装形態において、他の種類の音響効果も、音楽、音声修正などの録音に組み込まれてもよい。たとえば、複数の異なる登場人物からの録音されるべき叙述の特徴的なダイアログを想定する。さらに、単一のユーザがこの複数の登場人物が出て来るダイアログの可聴表現を提供しているとも想定する。いくつかの実装形態において、自動化アシスタント120は、様々な種類の音声修正をユーザの声に適用して一方の登場人物が話すダイアログを他方の登場人物が話すダイアログから聴覚的に区別(たとえば、ピッチを変える、効果を加える、音量を加減するなど)してもよい(たとえば、録音が完了した後に後処理をする)。
【0075】
別の例として、いくつかの実装形態において、複数のユーザが、複数の登場人物に関連付けられた、ユーザが話す行の可聴表現を録音してもよい(たとえば、台本または脚本)。いくつかの実装形態において、自動化アシスタント120は、異なる登場人物/俳優が話す行を区別してもよく、その行を話す登場人物(または登場人物を演じる俳優)、その前後にどのような行が来るかなどの情報を注釈として(たとえば、オーディオファイルの一部の中に含まれてもよい)行に入れてもよい。後から、自動化アシスタント120が、複数話者朗読を再生することを指示されるときに、ユーザは、何人かの登場人物(または俳優)が話す行のみを読むが、聞き手ユーザによって送られるリアルタイムの行から同期してそれらの行を読むことを自動化アシスタントに指示してもよい。
【0076】
たとえば、自動化アシスタント120との第1のセッションにおいて、2人の俳優がシェークスピアのマクベスに一シーンからの自分の朗読行を録音すると想定する。後から、マクベスを演じる第1の俳優は、マクベス夫人を演じる第2の俳優が存在していなくても、マクベス夫人が話す行を含むオーディオファイルのそれらの部分のみを再生し、リアルタイムで第1の俳優が読むマクベスの行と同期してそれらを読むことを自動化アシスタント120に指示してもよい。自動化アシスタント120は、たとえば書誌データベース152に記憶されたマクベスの台本に基づいてリアルタイムで、マクベスの行と一致する第1の俳優が話す行を検出してもよく、その後すぐにマクベス夫人の応答行を再生してもよい。したがって、一方のシーンについて、第1の俳優と自動化アシスタント120との間のダイアログは次のように展開してもよい。
マクベス夫人(自動化アシスタント120を介して)
A foolish thought, to say a sorry sight.
マクベス(存在する俳優によってリアルタイムで話される)
There's one did laugh in's sleep, and one cried 'Murder!'
That they did wake each other: I stood and heard them:
But they did say their prayers, and address'd them
Again to sleep.
マクベス夫人(自動化アシスタント120を介して)
There are two lodged together.
マクベス(存在する俳優によってリアルタイムで話される)
One cried 'God bless us!' and 'Amen' the other;
As they had seen me with these hangman's hands.
Listening their fear, I could not say 'Amen,'
When they did say 'God bless us!'
マクベス夫人(自動化アシスタント120を介して)
Consider it not so deeply.
【0077】
再び
図6を参照すると、叙述の可聴表現の録音が完了した後、オプションのブロック616において、システムは、録音済みのオーディオファイルの承認を請求してもよい。いくつかの実装形態において、システムは、オーディオファイル全体を再生して、その後ユーザに承認または不承認してもらってもよい。他の実装形態において、システムは、録音ユーザがたとえば、一部を削除すること、複数のオーディオファイルを継ぎ合わせることなどによってオーディオファイルを修正することを可能にする1つまたは複数のユーザインターフェース(オーディオ、グラフィカルなど)を提供してもよい。さらに他の実装形態において、システムは、録音の持続時間、一致した既存の作品などの他の情報をユーザに提供してもよい。ブロック618において、システムは、限定はしないがユーザによって提供される書誌情報、ユーザによって提供されるエイリアスもしくは他のキーワード、テーマ、トピック、書誌データベース152から取得される書誌情報、録音ユーザの識別情報(たとえば、"mommy"、"daddy"など)などを含む、1つまたは複数のデータ点によって叙述データベース154内の録音済みのオーディオファイルにインデックスを付けてもよい。
【0078】
図7は、本明細書で開示される実装形態による例示的な方法700を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しつつ説明される。このシステムは、自動化アシスタント120の1つまたは複数のコンポーネントなどの様々なコンピュータシステムの様々なコンポーネントを備えていてもよい。さらに、方法700の動作が特定の順序で示されるが、これは制限することを意味しない。1つまたは複数の動作が、順序変更、省略、または追加されてもよい。
【0079】
ブロック702において、システムは音声入力を受信してもよい。様々な実装形態において、音声入力は、明示的なコマンド、または話者が本明細書で説明される技術を使用して作成されたオーディオファイルを再生したいことを暗示的に示唆する他の文を含んでもよい。いくつかの実装形態において、様々なフレーズがオーディオファイルを表現するためにコマンドにマッピングされてもよい。たとえば、"I miss mommy"または"I like how daddy reads stories"などのフレーズは、子供のそれぞれの親によって録音され(インデックスを付けられ)たオーディオファイルを表現するためにコマンドにマッピングされてもよい。
【0080】
ブロック704において、システムは、音声入力に対して音声処理(たとえば、話者認識)を実行して、たとえば話者が本明細書において説明されるような叙述の表現を含むオーディオファイルを前に録音した1人または複数のユーザ(たとえば、大人、親)と異なるかどうかを判定してもよい。それに加えて、または代替的に、いくつかの実装形態において、システムは、たとえば語彙、ピッチ、抑揚などの音声入力の様々な特性を使用して、話者が子供である可能性が高いかどうかを検出してもよい。
【0081】
ブロック702において受信された音声入力がオーディオファイルを明示的に識別しないと仮定すると、ブロック706において、システムは、所望のオーディオファイルを識別するために使用できるユーザからの書誌入力を請求する出力を提供してもよい。この出力は、多くの実装形態において音声出力であってもよいが、他の実装形態では、出力は、視覚的形態などの他の形態をとってもよい。ブロック708において、システムは、事実上検索クエリであるものを含み、書名、著者、録音ユーザ、エイリアス、テーマなどの書誌情報を含んでもよい音声入力を(典型的に、ただし排他的にではなく)受信してもよい。ブロック710において、システムは、たとえば叙述データベース154から応答結果を検索してもよい。
【0082】
ブロック712において、システムは、ブロック702の音声処理に基づいて話者が録音ユーザと異なる、および/または自動化アシスタント120に関連付けられた(たとえば、そのサービスを受ける)ユーザと異なるかどうかを判定してもよい。答えがyesである場合、方法700はブロック714に進んでもよい。ブロック714において、システムは、本明細書で説明される技術を使用して(たとえば、叙述データベース154に記憶された)録音されたオーディオファイルの方へバイアスされる検索結果を提供してもよい。いくつかの実装形態において、システムは、自動化アシスタント120のサービスを受けるユーザによって制御されるコンテンツ(たとえば、他の文書、電子メール、設定、媒体など)および/またはインターネット上で一般的に利用可能なコンテンツなどの他のコンテンツから離れる方向に検索結果をバイアスしてもよい。いくつかの実装形態において、このように離れる方向にバイアスすることは、検索結果から叙述データベース154に含まれていない少なくともいくつかのコンテンツを除外する限り進んでもよい。
【0083】
それに加えてまたは代替的に、いくつかの実装形態において、システムは、話者の声の1つまたは複数の音響特性に基づいて話者によって提供される音声入力の音声認識をバイアスしてもよい。たとえば、システムは、ブロック702および/または708において受信された音声入力に対して音声認識を実行してもよい。システムはまた、音声入力の音響特性、たとえばピッチ、抑揚、発音、語彙などを分析して、素性、性別、おおよその年齢などの話者の特性を決定してもよい。音声入力が特定の音響特性を有する(たとえば、子供の話し方である)との判定に応答して、システムは、音声認識を本明細書において説明される技術を使用して録音されたオーディオファイルに関連付けられた識別子(たとえば、書誌情報)の認識の方へバイアスしてもよい。
【0084】
再び
図7を参照すると、ブロック712における答えがnoである(すなわち、ユーザがオーディオファイルを録音した同一人物である、および/または自動化アシスタント120のサービスを受けているユーザである)場合、方法700はブロック716に進んでもよい。ブロック716において、システムは、たとえば叙述データベース154に含まれているコンテンツ以外の自動化アシスタントのサービスを受けるユーザによって制御されるコンテンツ、インターネット上で利用可能なコンテンツなどを含んでもよい、バイアスされていない検索結果を提供してもよい。
【0085】
ブロック718において、システムは、検索結果からのユーザ選択を含む入力を受信してもよい。たとえば、いくつかの実施形態において、ブロック714/716で、システムは、(叙述データベース154からの応答する前に録音されたオーディオファイルを含む)検索結果の音声リストを提供してもよく、ユーザは、それらの結果から選択した音声入力を提供してもよい。他の実装形態において、ブロック714/716で、システムは、検索結果の視覚的リストをグラフィカルユーザインターフェース上に提供してもよく、そのユーザは、たとえばマウス、タッチスクリーン入力を使用して、または所望の結果を話すことによってそれらの結果から選択してもよい。
【0086】
ブロック720において、システムは、選択されたオーディオファイルの可聴表現を生成してもよい。いくつかの実装形態において、システムは、オーディオファイルの可聴表現を生成した後に他の出力を提供してもよい。たとえば、システムは、様々な事実、雑学的知識、または既存の作品および/または著者と関係する他の情報を提供してもよい。たとえば、"Mary Had a Little Lamb"の録音のオーディオファイルを表現した後、自動化アシスタント120は、"Did you know that the author of that song, 'Mary Had A Little Lamb' is also responsible for why Americans celebrate Thanksgiving?"などの1つの雑学的知識を出力してもよい。
【0087】
いくつかの実装形態において、ブロック716で、システムは、録音済みのオーディオファイルに無関係であるクエリ(たとえば、ブロック702または708において受信された)に直接応答する情報を提供してもよく(その場合、少なくともブロック706を省略してもよい)、次いで本明細書において説明される技術を使用したオーディオファイル録音に対応する検索結果を提供してもよい。たとえば、ユーザが、"How old was Mark Twain when he died?"などの著者に関する一般的検索クエリを提供すると想定する。自動化アシスタント120は、答え("74")を提供することによって最初に応答してもよい。次いで、自動化アシスタント120は、叙述データベース154に記憶された1つまたは複数のオーディオファイルがMark Twainに関係する(たとえば、書かれている、言及しているなど)と判定してもよい。その判定に基づいて自動化システムは、ユーザが1つまたは複数のMark Twain関係のオーディオファイルを再生したいかどうかを尋ねる出力(たとえば、"By the way, you have recorded two titles written by Mark Twain. Shall I read one?")を提供することによってフォローアップしてもよい。
【0088】
図8は、本明細書で説明される技術のうちの1つまたは複数の態様を実行するためにオプションで利用されてもよい例示的なコンピューティングデバイス810のブロック図である。いくつかの実装形態において、クライアントコンピューティングデバイス、自動化アシスタント120、および/または他のコンポーネントのうちの1つまたは複数は、例示的なコンピューティングデバイス810の1つまたは複数のコンポーネントを含んでもよい。
【0089】
コンピューティングデバイス810は、典型的には、バスサブシステム812を介して多数の周辺デバイスと通信する少なくとも1つのプロセッサ814を備える。これらの周辺デバイスは、たとえばメモリサブシステム825およびファイルストレージサブシステム826を含むストレージサブシステム824、ユーザインターフェース出力デバイス820、ユーザインターフェース入力デバイス822、およびネットワークインターフェースサブシステム816を含んでもよい。入力および出力デバイスは、ユーザとコンピューティングデバイス810とのインタラクションを可能にする。ネットワークインターフェースサブシステム816は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0090】
ユーザインターフェース入力デバイス822は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/または他の種類の入力デバイスを含んでもよい。一般に、「入力デバイス」という用語の使用は、情報をコンピューティングデバイス810内に、または通信ネットワーク上に入力するためのすべての可能な種類のデバイスおよび方法を含むことが意図される。
【0091】
ユーザインターフェース出力デバイス820は、表示サブシステム、プリンタ、ファックス機、または音声出力デバイスなどの非視覚的ディスプレイを含んでもよい。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための他の何らかのメカニズムを含んでもよい。表示サブシステムは、音声出力デバイスなどを介して非視覚的ディスプレイも備えてもよい。一般に、「出力デバイス」という用語の使用は、情報をコンピューティングデバイス810からユーザまたは別のマシンもしくはコンピューティングデバイスに出力するためのすべての可能な種類のデバイスおよび方法を含むことが意図される。
【0092】
ストレージサブシステム824は、本明細書で説明されるモジュールのうちのいくつかまたはすべての機能を実現するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム824は、
図6および
図7の方法の選択された態様を実行する、さらには
図1に示される様々なコンポーネントを実装する論理回路を備えてもよい。
【0093】
これらのソフトウェアモジュールは、一般的にプロセッサ814によって単独でまたは他のプロセッサと組み合わせて実行される。ストレージサブシステム824において使用されるメモリ825は、プログラム実行時に命令およびデータを記憶するための主ランダムアクセスメモリ(RAM)830、ならびに固定された命令が記憶されるリードオンリーメモリ(ROM)832を含む多数のメモリを備えることができる。ファイルストレージサブシステム826は、プログラムおよびデータファイル用の永続的記憶域を備えることができ、ハードディスクドライブ、関連する取り外し可能媒体を伴ったフロッピーディスクドライブ、CD-ROMドライブ、光ドライブ、または取り外し可能メディアカートリッジを含んでもよい。いくつかの実装形態の機能を実装するモジュールは、ファイルストレージサブシステム826によって、ストレージサブシステム824またはプロセッサ814によってアクセス可能な他のマシン内に記憶されてもよい。
【0094】
バスサブシステム812は、コンピューティングデバイス810の様々なコンポーネントおよびサブシステムに意図したとおりに互いに通信させるメカニズムを備える。バスサブシステム812は、単一のバスとして概略が図示されるが、バスサブシステムの代替的実装形態では複数のバスを使用してもよい。
【0095】
コンピューティングデバイス810は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類のものであってもよい。コンピュータおよびネットワークはその性質上絶えず変化し続けるので、
図8に示されるコンピューティングデバイス810の説明は、いくつかの実装を例示することを目的とする特定の例としてのみ意図される。コンピューティングデバイス810の他の多くの構成は、
図8に示されるコンピューティングデバイスよりも多いまたは少ない構成要素を有するものが可能である。
【0096】
本明細書において説明されるいくつかの実装形態がユーザに関する個人情報(たとえば、他の電子通信から抽出されたユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの位置、ユーザの時刻、ユーザのバイオメトリック情報、ならびにユーザの活動および人口学的情報、ユーザ間の関係など)を収集するか、または使用する場合がある状況では、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、およびその情報がどのようにユーザに関して収集され、記憶され、使用されるかについて制御する1つまたは複数の機会を提供される。すなわち、本明細書で説明されるシステムおよび方法は、関連するユーザからそうする明示的許可を受けた後にのみユーザ個人情報を収集し、記憶し、および/または使用する。
【0097】
たとえば、ユーザは、プログラムまたは特徴がその特定のユーザまたはプログラムまたは特徴に関連する他のユーザに関するユーザ情報を収集するかどうかに関する制御を提供される。個人情報が収集される各ユーザは、ユーザに関連する情報収集を制御することを可能にし、情報が収集されるかどうか、情報の一部分が収集されるべきかどうかに関して許諾もしくは許可を与える1つまたは複数のオプションを提示される。たとえば、ユーザは、通信ネットワーク上で1つまたは複数のそのような制御オプションの提供を受けることができる。それに加えて、特定データが、それが記憶されるか、または使用される前に1つまたは複数の方法で処理されてもよく、したがって個人的に識別可能な情報は取り除かれる。一例として、ユーザの識別情報は、個人的に識別可能な情報がいっさい決定され得ないように取り扱われてもよい。別の例として、ユーザの地理的位置は、ユーザの特定の位置が決定できないようにより広い領域に一般化されてもよい。本開示の文脈において、親子関係などのシステムによって取り込まれる関係は、安全な仕方で、たとえばそれらの関係を使用して自然言語入力を解析し、および/または解釈する自動化アシスタントの外ではアクセス可能でないように維持されてもよい。たとえば、自動化アシスタントは、自動化アシスタントが本明細書で説明される技術を実施することを目的としてその情報を学習した場合であっても"who is Sally's mother?"などの質問に対する答えを漏らすことがないものとしてもよい(たとえば、母親が"I want to record a story for my daughter, Sally."と言う)。本明細書において説明される技術を実施している間にユーザに関する自動化アシスタントによって学習された他の人口学的情報(たとえば、年齢、性別、能力など)についても同じことが言える。
【0098】
いくつかの実装形態が本明細書において説明され例示されたが、機能を実行しおよび/もしくは結果を取得するための様々な他の手段ならびに/または構造体ならびに/または本明細書において説明される利点のうちの1つまたは複数が利用され、そのような変更形態および/または修正形態の各々は本明細書で説明される実装形態の範囲内にあるとみなされる。より一般的には、本明細書で説明されるすべてのパラメータ、寸法、材料、および構成形状は例示的であり、実際のパラメータ、寸法、材料、および/または構成形状は教示が使用される特定の1つまたは複数のアプリケーションに依存することを意図される。当業者であれば、単なる決まり切った実験を用いて、本明細書で説明される特定の実装形態と同等の多数の実装形態を認識するか、または確認することができるであろう。したがって、前述の実装形態は、例としてのみ提示されること、ならびに特許請求の範囲およびその均等物の範囲内で具体的に説明され請求される以外の方法でも実装形態は実施されてもよいことは理解されるであろう。本開示の実装形態は、本明細書において説明される各個別の特徴、システム、物品、材料、キット、および/または方法に向けられる。それに加えて、2つまたはそれ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾することがなければ、本開示の範囲内に含まれる。