(58)【調査した分野】(Int.Cl.,DB名)
前記音声的類似性を判定する前記ステップが、前記選択されたタームのうちの前記1つまたは複数のそれぞれと、前記置換タームのうちの前記1つまたは複数のそれぞれとの間の音声的距離を計算するステップを含む、請求項2に記載の方法。
前記音声的類似性を判定することが、前記選択されたタームのうちの前記1つまたは複数のそれぞれと、前記置換タームのうちの前記1つまたは複数のそれぞれとの間の音声的距離を計算することを含む、請求項6に記載のシステム。
コンピュータプログラムで符号化されたコンピュータ可読記憶デバイスであって、前記コンピュータプログラムが、1つまたは複数のコンピュータによって実行されるとき、前記1つまたは複数のコンピュータに、
第1の発話に対応する第1のオーディオデータを受信することと、
前記第1のオーディオデータの第1のトランスクリプションを取得することと、
(i)前記第1のトランスクリプションの1つまたは複数のタームの選択および(ii)置換タームのうちの1つまたは複数を示す、データを受け取ることと、
前記置換タームのうちの1つまたは複数が前記選択されたタームのうちの1つまたは複数の訂正として分類されると判定することと、
前記置換タームのうちの前記1つまたは複数が前記選択されたタームのうちの前記1つまたは複数の訂正として分類されるとの判定に応答して、前記第1のトランスクリプションの1つまたは複数のタームに対応する前記第1のオーディオデータの第1の部分を取得することと、
前記第1のトランスクリプションの前記1つまたは複数のタームに関連する前記第1のオーディオデータの前記第1の部分を使用して、前記置換タームのうちの前記1つまたは複数を認識するための音響モデルをトレーニングすることと
を含む動作を実施させる命令を含み、
前記置換タームのうちの前記1つまたは複数が前記選択されたタームのうちの前記1つまたは複数の訂正として分類されると判定することが、
前記選択されたタームのうちの前記1つまたは複数と前記置換タームのうちの前記1つまたは複数との間の音声的類似性を判定すること、
前記選択されたタームのうちの少なくとも2つの間の接続を決定すること、
前記選択されたタームのうちの少なくとも2つが連続すると判定すること、または
前記選択されたタームのうちの前記1つまたは複数のそれぞれがしきい文字数を含むと判定することのうちの1つを含む、コンピュータ可読記憶デバイス。
【発明を実施するための形態】
【0009】
様々な図面内の同様の参照番号および名称は同様の要素を示す。
【0010】
図1Aは、例示的ユーザインターフェース内で訂正入力を受け取ることを含む、音声検索を実施するための例示的方法を示す。検索システムは、ユーザデバイス106a、例えば携帯電話、タブレット、または音声入力を受け取るように構成された他のユーザデバイス上に表示するためのユーザインターフェース102aを提供する。ユーザインターフェース102aは、クエリに対応するタイプされた入力を受け取るための検索ボックス104と、音声認識セッションを開始して、タイプされた入力の代わりにユーザ10から第1の音声クエリを受け取るためのマイクロフォンアイコン108とを含む。ユーザ10は、例えばユーザインターフェース102a内のマイクロフォンアイコン108を選択することによって、第1の音声入力101を入力する。いくつかの実装形態では、ユーザインターフェースは、検索ボックスに対するタイプされる入力のために提示され得るキーボードレイアウトを含む。
【0011】
ユーザセッションでは、検索システムはユーザ10から発話101を受け取る。例えば、発話101は音声入力でよい。具体的には、ユーザ10は、「Directions to La Jolla(La Jollaへの行き方)」という音声入力をユーザデバイス106aに与える。例えば、ユーザ10は「Jolla」を[zo-la]と発音し得る。第1の音声入力101に応答して、検索ボックス104内の第1の音声入力101から生成された第1のトランスクリプション112の表示を含むユーザインターフェース102aが提示される。第1のトランスクリプション112は「Directions to La Jolla」である。例えば、第1の音声クエリに関してspeech-to-textプロセスが実施され、対応する第1のトランスクリプション112として表明とされるトランスクリプションが生成され得る。検索システムは、ユーザインターフェース102a内に表示するために、ユーザデバイス106aにトランスクリプションを第1のトランスクリプション112として提供する。
【0012】
さらに、第1のトランスクリプション112は、検索システムに対するクエリとして使用され得る。検索システムは、ユーザインターフェース102b内に表示するために、クエリ「Directions to La Zola」に応じた検索結果110を提供する。例えば、検索結果110は、クエリに応答すると検索システムによって判定された特定のリソースに対するリンクを含み得る。しかしながら、この例では、認識されたクエリは、ターム「Jolla」ではなくターム「Zola」と認識された。
【0013】
ユーザインターフェース102bに示されるように、認識に応答して、ユーザ10は、ユーザインターフェース102bと対話して、認識されたターム「Zola」に対応する第1のトランスクリプション112の部分114を選択し得る。例えば、タッチインターフェースでは、ユーザ10は、認識されたターム114を指またはスタイラスでタッチし得る。非タッチインターフェースでは、ユーザは、認識されたタームまでカーソルをナビゲートし、認識されたタームを、例えばマウス入力で選択し得る。
【0014】
ユーザインターフェース102cを参照すると、ユーザ10は、ユーザデバイス106aに第1の入力111を与える。第1の入力111は、第1のトランスクリプション112の選択された部分114を置換するために与えられる。例えば、第1の入力111はタイプされた入力でよい。ユーザ10は、ターム「j-o-l-l-a」のスペリングを1文字ごとにタイプして、選択された部分114を置換し得る。ユーザ10は、ユーザインターフェースによって提供されたキーボードレイアウトを使用して、タームのスペリングをタイプし得る。
【0015】
ユーザインターフェース102dに示されるように、訂正済みトランスクリプション「Directions to La Jolla」が検索ボックス104内に表示される。さらに、訂正済みトランスクリプション116に応答して、検索システムは、ユーザインターフェース102d内に提示するために、訂正済みクエリ「Directions to La Jolla」に応じた検索結果120を提供する。例えば、検索結果120は、訂正済みクエリに応答するように検索システムによって決定された特定のリソースに対するリンクを含み得る。いくつかの実装形態では、検索システムは、クエリを特定のタイプの要求、例えば行き方と認識し、検索結果120の一部として、または検索結果120の代わりに、マップインターフェースを提供する。
【0016】
図1Bは、音声検索を実施するための別の例示的方法を示す。この例では、ユーザ10は、タームのスペリングをタイプすることなく、ユーザデバイス106aに訂正入力を与え、選択された部分114を置換し得る。ユーザインターフェース102bを参照すると、ユーザ10は、第1のトランスクリプション112の部分114を選択して、ターム「Zola」を置換する。ユーザ10が第1のトランスクリプション112の部分114を選択するとき、1つまたは複数の提案トランスクリプションがユーザデバイス106aに与えられる。例えば、ユーザインターフェース102cに示されるように、提案トランスクリプション117「Directions to La Jolla」がドロップダウンボックス115内に表示され得る。ユーザ10は、提案トランスクリプション117を選択して第1のトランスクリプション112を置換し得る。例えば、タッチインターフェースでは、ユーザ10は、指またはスタイラスでユーザインターフェース102cの部分119をタッチし得る。非タッチインターフェースでは、ユーザ10は、部分119までカーソルをナビゲートして、提案トランスクリプション117を選択し、部分119を、例えばマウス入力で選択し得る。
【0017】
ユーザ10が提案トランスクリプション117を選択するとき、ユーザインターフェース102dに示されるように、訂正済みトランスクリプション「Directions to La Jolla」が検索ボックス104内に表示される。さらに、訂正済みトランスクリプション116に応答して、検索システムは、ユーザインターフェース102d内で提示するために、訂正済みクエリ「Directions to La Jolla」に応じた検索結果120を提供する。例えば、検索結果120は、訂正済みクエリに応答するように検索システムによって決定された特定のリソースに対するリンクを含み得る。いくつかの実装形態では、検索システムは、クエリを特定のタイプの要求、例えば行き方と認識し、検索結果120の一部として、または検索結果120の代わりに、マップインターフェースを提供する。
【0018】
図1Aおよび
図1Bを参照しながら説明したユーザセッションから、システムは、音響モデルをトレーニングするためにトレーニングデータを受け取る。具体的には、システムは、(i)第1の音声入力101の少なくとも一部に対応するオーディオデータと、(ii)訂正済みトランスクリプション116内の1つまたは複数のタームとをトレーニングデータとして受け取る。いくつかの実装形態では、システムは、「Directions to La Jolla[zo-la]」に対応するオーディオデータと、訂正済みトランスクリプション116内の置換されたターム「Jolla」とをトレーニングデータとして受け取る。システムは、選択されたターム「Zola」に対応するオーディオデータの部分を識別する。システムは、「Zola[zo-la]」に対応するオーディオデータの部分をオーディオデータから分離する。オーディオデータの分離された部分と、置換されたターム「Jolla」とを使用して、システムは音響モデルをトレーニングする。例えば、システムは、音声入力「Zola[zo-la]」に応答してターム「Jolla」を認識するように音響モデルをトレーニングし得る。
【0019】
いくつかの実装形態では、システムは、第1の音声入力に対応するオーディオデータと、訂正済みトランスクリプション全体とをトレーニングデータとして受け取る。例えば、システムは、「Directions to La Jolla[zo-la]」に対応するオーディオデータと、訂正済みトランスクリプション全体「Direction to La Jolla」とを受け取る。オーディオデータおよびトランスクリプト全体を使用して、システムは音響モデルをトレーニングする。
【0020】
トレーニング済み音響モデルを使用して取得された第2のトランスクリプション118の表示を含むユーザインターフェース102eが提示される。このユーザセッションでは、システムは、ユーザ20から第2の音声入力121を受け取る。具体的には、ユーザ20は、ユーザデバイス106bに音声入力「Directions to La Jolla[zo-la]」を与える。第2の音声入力121に応答して、システムは、トレーニング済み音響モデルを使用して、第2のトランスクリプション118を「Directions to La Zola」ではなく「Directions to La Jolla」として提供する。
【0021】
さらに、第2のトランスクリプション118に応答して、検索システムは、ユーザインターフェース102e内で提示するために、訂正済みクエリ「Directions to La Jolla」に応じた検索結果120を提供する。例えば、検索結果120は、訂正済みクエリに応答するように検索システムによって決定された特定のリソースに対するリンクを含み得る。いくつかの実装形態では、検索システムは、クエリを特定のタイプの要求、例えば行き方と認識し、検索結果120の一部として、または検索結果120の代わりに、マップインターフェースを提供する。
【0022】
図2は、トレーニング済み音響モデルを使用する例示的音声検索システム200を示す。システム200は、インターネット、イントラネット、または別のクライアントおよびサーバ環境内で実装され得るように、サブミットされたクエリに関連する検索結果を提供する。システム200は、以下で説明するシステム、構成要素、および技法が実装され得る情報検索システムの一例である。
【0023】
ユーザ202は、クライアントデバイス204を通じて検索システム214と対話し得る。例えば、クライアント204は、ローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)、例えばインターネットを通じて検索システム214に結合されたコンピュータでよい。いくつかの実装形態では、検索システム214およびクライアントデバイス204は1つのマシンでよい。例えば、ユーザは、クライアントデバイス204上にデスクトップ検索アプリケーションをインストールし得る。クライアントデバイス204は一般に、ランダムアクセスメモリ(RAM)206およびプロセッサ208を含むことになる。
【0024】
ユーザ202は、検索システム214内の検索エンジン230に音声クエリ210をサブミットし得る。ユーザ202が音声クエリ210をサブミットするとき、音声クエリ210はネットワークを通じて検索システム214に送信される。検索システム214は、例えば、ネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で実行中のコンピュータプログラムとして実装され得る。
【0025】
検索システム214は音声認識エンジン254を含む。音声認識エンジン254は音声クエリ210を受け取り、例えば音響モデルおよび言語モデルを使用して、音声クエリを認識されたクエリに文字化する。いくつかの実装形態では、認識されたクエリは、ユーザ202に提示するためにクライアントデバイス204に返される。さらに、認識されたクエリは検索エンジン230に提供される。
【0026】
検索システム214は、索引データベース222および検索エンジン230をさらに含む。検索システム214は、検索結果228を生成することによって入力クエリに応答し、検索結果228は、ユーザ202に提示され得る形式で(例えば、クライアントデバイス204上で実行中のウェブブラウザ内に表示される検索結果ウェブページとして)、ネットワークを通じてクライアントデバイス204に送信される。
【0027】
音声クエリ210から決定された、認識されたクエリが検索エンジン230によって受け取られるとき、検索エンジン230は、クエリ210に合致する、またはクエリ210に応答するリソースを識別する。検索エンジン230は一般に、コーパス(例えば、コンテンツの集合またはリポジトリ)内で見つかったリソース(例えば、インターネット上のウェブページ、イメージ、またはニュース記事)を索引作成する索引作成エンジン220と、索引情報を記憶する索引データベース222と、クエリ210に合致するリソースをランク付けするランキングエンジン252(または他のソフトウェア)とを含む。リソースの索引作成およびランキングは、従来の技法を使用して実施され得る。検索エンジン130は、ユーザ202に提示するために、ネットワークを通じてクライアントデバイス204に検索結果228を送信し得る。
【0028】
さらに、音声認識エンジン254は、音響モデルを使用して、認識されたクエリの1つまたは複数のタームを訂正する。音響モデルは、
図1Aおよび
図1Bを参照しながら上記で説明した技法を使用してトレーニングされ得る。具体的には、音声認識エンジン254は、音声クエリ210の一定の部分を識別し、音響モデルを使用して音声クエリ210の部分に対応する1つまたは複数の訂正済みタームを決定する。音声認識エンジン254は、音声クエリ210の部分に対応する、認識されたクエリの1つまたは複数のタームを、1つまたは複数の訂正済みタームに置換する。音声認識エンジン254は訂正済みクエリを取得して、ユーザデバイス204に訂正済みクエリを提示する。検索エンジン230は、訂正済みトランスクリプションに応答するリソースを識別し、1つまたは複数の検索結果を提供し得る。
【0029】
図3は、音響モデルをトレーニングするための例示的方法300を示す。便宜上、方法300は、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。
【0030】
システムは、発話に対応する第1のオーディオデータを受け取る(310)。例えば、発話は音声入力でよい。ユーザは、音声入力が提供され得ることを示す、特定のユーザインターフェースに関連する音声入力インジケータ、例えばマイクロフォンインジケータを選択し得る。例えば、ユーザデバイスのユーザインターフェースはマイクロフォンインジケータを含み得る。音声入力がユーザによって開始されるとき、ユーザデバイスのマイクロフォンがユーザから音声入力を取り込む。次いで、音声入力がユーザデバイスによってシステムに送信される。音声入力は、例えば「Directions to La Jolla[zo-la]」でよい。
【0031】
システムは、第1のオーディオデータの第1のトランスクリプションを取得する(320)。第1のトランスクリプションは、受け取った第1のオーディオデータのトランスクリプションである。例えば、第1のオーディオデータのトランスクリプションを提供し、トランスクリプションを、認識されたテキスト出力に変換するために、言語モデルが使用され得る。speech to text技法は、オーディオ信号から音素または他の言語単位を識別する音響モデルと、特定の語または語のシーケンスに確率を割り当てる言語モデルの使用を含み得る。いくつかの実装形態では、speech to text技法は、音声入力内の誤りを、例えば綴り規則および/または文法規則に基づいて訂正または補償し得る。
【0032】
第1のトランスクリプションは、例えば特定のユーザインターフェース内で表示するために、ユーザデバイスに提供される。第1のトランスクリプションは、例えば第1のオーディオデータのシステムの認識を示すために表示され得る。次いで、ユーザは、提示された第1のトランスクリプションを検討して、システムが第1のオーディオデータを正しく認識したかどうかを判定する。例えば、第1のオーディオデータは、音声クエリ「Directions to La Jolla[zo-la]」でよく、これは、第1のトランスクリプションにおいてクエリ「Directions to La Zola」と認識され得る。この場合、語「Jolla」が「Zola」と認識された。
【0033】
さらに、システムは、第1のトランスクリプションに応答するアクションを実施し得る。例えば、システムは、第1のトランスクリプションを検索クエリとして使用して、検索結果を取得し得る。検索クエリに応答する1つまたは複数の検索結果は、検索インターフェース内に表示するためにユーザデバイスに提供され得る。いくつかの実装形態では、アクションは、特定のタスク、例えばカレンダエントリを作成することの部分である。いくつかの他の実装形態では、第1のトランスクリプションは、アクション、例えばテキストエディタまたはeメール内でテキストを入力することに対応する。
【0034】
システムは、(i)第1のトランスクリプションの1つまたは複数のタームの選択および(ii)1つまたは複数の置換タームを示す、データを受け取る(330)。第1のトランスクリプションの1つまたは複数のタームの選択は、直接入力によって、例えばタッチスクリーン上で指を使用して、または特定の入力デバイス、例えばマウスカーソルもしくはスタイラスを使用して受け取られ得る。例えば、ユーザは、第1のトランスクリプションの特定のタームをタッチし得る。それに応答して、選択されたタームが、選択されたタームを示すユーザデバイスによって強調表示され得る。したがって、第1のトランスクリプション「Directions to La Zola」について、ユーザはターム「Zola」を選択し得る。
【0035】
いくつかの実装形態では、1つまたは複数の置換タームは、タイプされた入力によって受け取られ得る。ユーザインターフェースは、ユーザからタイプされた入力を受け取るために提示され得るキーボードレイアウトを含む。具体的には、ユーザは、キーボードレイアウトを使用して、特定のタームをタイプし、選択したタームを置換し得る。例えば、ターム「Zola」を選択した後、ユーザは、個々の文字「j-o-l-l-a」をタイプし得る。タイプされる入力は単一のタームに限定されない。例えば、ターム「La Zola」が選択され、ユーザは、文字「l-a-j-o-l-l-a」をタイプし得る。
【0036】
いくつかの実装形態では、1つまたは複数の置換タームは、ユーザインターフェース内で提示される、提案トランスクリプションのユーザ選択によって受け取られ得る。例えば、ユーザインターフェースは、第1のトランスクリプションの特定のタームが選択されるときに提供されるドロップダウンボックスを含み得る。システムは、ドロップダウンボックス内で1つまたは複数の提案トランスクリプションを提示する。1つまたは複数の提案トランスクリプションのそれぞれは、特定のタームを置換するための置換タームを含む。例えば、第1のトランスクリプションのターム「Zola」が選択されるとき、システムは、1つまたは複数の提案トランスクリプションが提示されるドロップダウンボックスを提供する。提案トランスクリプションのうちの1つは「Directions to La Jolla」でよい。この場合、ターム「Jolla」は、選択されたターム「Zola」を置換するための置換タームである。ユーザは、ドロップダウンボックス内の提案トランスクリプション「Directions to La Jolla」を選択し得、システムはターム「Zola」を置換タームとして受け取る。
【0037】
システムは、1つまたは複数の置換タームが1つまたは複数の選択されたタームの訂正として分類されるかどうかを判定する(340)。判定は、一定の基準に基づいて行われ得る。いくつかの実装形態では、判定は、それぞれの選択されたタームとそれぞれの置換タームとの間の音声的類似性に基づき得る。具体的には、音声的類似性は、選択されたタームの音が置換タームにどれほど類似しているかを測定する。選択されたタームと置換タームとの間の音声的類似性は、距離尺度を使用して判定され得る。いくつかの実装形態では、音声的距離は、選択されたタームと置換タームとの間の最小編集距離に基づき得る。置換タームと選択されたタームとの間の最小編集距離がしきい値、例えば2以上である場合、システムは、置換タームが選択されたタームの訂正であると判定し得る。例えば、ユーザは、第1のトランスクリプションからのターム「Zola」を選択し、ターム「Zola」をターム「Jolla」に置換し得る。「Z」が「J」で置換され、「l」が追加されるので、システムは、最小編集距離が2であると判定し得る。それに応答して、システムは、置換ターム「Jolla」が選択されたターム「Zola」の訂正であると判定し得る。
【0038】
別の例では、システムが第1のトランスクリプションを「Directions to La Jolla」として提供する場合、ユーザは、第1のトランスクリプションから「Directions」を選択し、ターム「Directions」をターム「Direction」に置換し得る。「s」が削除されるので、システムは、最小編集距離が1であると判定し得る。それに応答して、システムは、置換ターム「Direction」が、選択されたターム「Directions」の訂正ではないと判定し得る。したがって、システムは、音響モデルをトレーニングするために使用されない、冠詞誤りまたはタイプミスを訂正することなどの置換を除去し得る。いくつかの実装形態では、最小編集距離は、選択されたタームと置換タームとの間の異なる音の数を測定する。いくつかの実装形態では、音声辞書を使用して最小編集距離が計算される。いくつかの実装形態では、音響モデル、例えば音響隠れマルコフモデルを使用して最小編集距離が計算される。
【0039】
いくつかの実装形態では、判定は、選択されたタームの間の接続に基づき得る。具体的には、接続は、ある選択されたタームが他の選択されたタームにどれほど近いかを測定する。接続は、接続距離尺度を使用して決定され得る。いくつかの実装形態では、接続距離は、ある選択されたタームと別の選択されたタームとの間の語数に基づいて決定され得る。語数がしきい値、例えば2以上である場合、システムは、置換タームが、選択されたタームの訂正ではないと判定し得る。例えば、ユーザは、第1のトランスクリプションから2つのターム「Directions」および「Zola」を選択し、ターム「Zola」をターム「Jolla」に置換し得る。システムは、2つのタームの間の接続距離が2であると判定し得る。選択されたターム「Directions」と「Zola」の間に2つのターム「to」および「La」があるからである。それに応答して、システムは、置換タームが、選択されたタームの訂正ではないと判定し得る。したがって、ターム「Directions」がタッチ誤りなどのユーザの間違いで選択された可能性があるので、選択されたターム「Directions」および「Zola」は、音響モデルをトレーニングするために使用されない。
【0040】
別の例では、ユーザは、第1のトランスクリプションから2つのターム「La」および「Zola」を選択し、ターム「Zola」を「Jolla」に置換し得る。2つのターム「La」と「Zola」の間にタームがないので、2つのタームの間の接続距離は0である。システムは、置換タームが、選択されたタームの訂正であると判定し得る。
【0041】
いくつかの実装形態では、判定は、選択されたタームの連続性に基づき得る。例えば、ユーザは、第1のトランスクリプションからターム「Direction」およびターム「Zola」を選択し得る。システムは、選択されたタームは連続しないと判定し得る。それに応答して、システムは、1つまたは複数の置換タームが1つまたは複数の選択されたタームの訂正ではないと判定し得る。したがって、ターム「Directions」がタッチ誤りなどのユーザの間違いで選択された可能性があるので、選択されたタームは、音響モデルをトレーニングするために使用されないことがある。
【0042】
別の例では、ユーザは、第1のトランスクリプションからターム「La」および「Zola」を選択し、ターム「Zola」を「Jolla」に置換し得る。システムは、選択されたターム「La」および「Zola」が連続すると判定し得る。それに応答して、システムは、置換タームが、選択されたタームの訂正であると判定し得る。
【0043】
いくつかの実装形態では、判定は、1つまたは複数の選択されたタームのそれぞれの中の文字数に基づき得る。例えば、ユーザは、第1のトランスクリプションからターム「to」を選択し、ターム「to」を「from」に置換し得る。システムは、選択されたターム「to」内の文字数、すなわち2つの文字を計算し得る。それに応答して、システムは、置換タームが、選択されたタームの訂正ではないと判定し得る。したがって、システムは、音響モデルをトレーニングするために使用されない、前置詞を訂正することなどの置換を除去し得る。
【0044】
別の例では、ユーザは、第1のトランスクリプションから「Zola」を選択し得る。システムは、選択されたターム「Zola」内の文字数が4であると判定し得る。それに応答して、システムは、置換タームが、選択されたタームの訂正であると判定し得る。
【0045】
置換タームのうちの1つまたは複数が、選択されたタームのうちの1つまたは複数の訂正として分類されると判定したことに応答して、システムは、第1のトランスクリプションの1つまたは複数のタームに対応する第1のオーディオデータの第1の部分を取得する(350)。いくつかの実装形態では、第1のオーディオデータの第1の部分は第1のオーディオデータ全体でよい。例えば、システムは、ユーザの発話「Directions to La Jolla[zo-la]」に対応する、第1のオーディオデータである第1の部分を取得し得る。
【0046】
いくつかの実装形態では、第1のオーディオデータの第1の部分が、第1のオーディオデータから分離され得る。第1の部分は、ユーザによって選択される第1のトランスクリプション内の特定のタームに対応する。例えば、ユーザはターム「Zola」を選択し得る。システムは、ターム「Zola」に対応する第1の部分を第1のオーディオデータから分離する。この例では、第1の部分の音は[zo-la]であり得る。
【0047】
いくつかの実装形態では、システムは、第1のトランスクリプションの各タームが開始および終了するタイミングを使用して、第1のオーディオデータから第1の部分を分離し得る。例えば、システムが第1のトランスクリプション「Directions to La Zola」を取得する場合、システムは、オーディオの大きさおよび周波数などのオーディオ特徴に基づいて、第1のトランスクリプションの各タームが開始および終了するタイミングを判定し得る。この例では、システムは、第1のトランスクリプションの4つのタームが開始および終了する8つの特有のタイミングを決定し得る。第1のオーディオデータの第1の部分がターム「Zola」に対応する場合、システムは、ターム「Zola」が開始および終了するタイミングを識別し得る。したがって、システムは、2つのタイミングの間の第1のオーディオデータの部分がオーディオデータの第1の部分であると判定し得る。
【0048】
システムは、第1のトランスクリプションの1つまたは複数のタームに関連する第1のオーディオデータの第1の部分を使用して、置換タームのうちの1つまたは複数を認識するための音響モデルをトレーニングする(360)。いくつかの実装形態では、システムは、第1のオーディオデータ全体および第1のトランスクリプション全体を使用して、音響モデルをトレーニングする。いくつかの実装形態では、システムは、第1のトランスクリプションの1つまたは複数のタームに関連する、分離された第1の部分を使用して、音響モデルをトレーニングする。例えば、第1のオーディオデータから第1の部分[zo-la]を分離した後、システムは、第1の部分[zo-la]を使用して、置換ターム「Jolla」を認識するための音響モデルをトレーニングし得る。
【0049】
図4は、トレーニング済み音響モデルを使用して検索結果を提供するための例示的方法400を示す。便宜上、方法400は、1つまたは複数の場所に配置され、本明細書に従って適切にプログラムされた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。
【0050】
システムは、発話に対応する第2のオーディオデータを受け取る(410)。例えば、発話は音声入力でよい。ユーザは、音声入力が与えられ得ることを示す、特定のユーザインターフェースに関連する音声入力インジケータ、例えばマイクロフォンインジケータを選択し得る。例えば、ユーザデバイスのユーザインターフェースはマイクロフォンインジケータを含み得る。音声入力がユーザによって開始されるとき、ユーザデバイスのマイクロフォンは、ユーザからの音声入力を取り込む。次いで、音声入力はユーザデバイスによってシステムに送信される。音声入力は、例えば「Directions to La Jolla[zo-la]」でよい。
【0051】
システムは、第2のオーディオデータの第2のトランスクリプションを取得する(420)。第2のトランスクリプションは、受け取った第2のオーディオデータのトランスクリプションである。例えば、第2のオーディオデータの第2のトランスクリプションを提供し、第2のトランスクリプションを認識されたテキスト出力に変換するために、音響モデルおよび言語モデルが使用され得る。例えば、第2のオーディオデータは、音声入力「Directions to La Jolla[zo-la]」でよく、これは、第2のトランスクリプションにおいて「Directions to La Zola」と認識され得る。
【0052】
システムは、第2のオーディオデータの第2の部分を識別する(430)。具体的には、第2のオーディオデータの第2の部分は、
図3を参照しながら説明した第1のオーディオデータの第1の部分に対応する。例えば、システムは、第1のオーディオデータの第1の部分[zo-la]に対応する第2のオーディオデータの第2の部分[zo-la]を識別し得る。
【0053】
システムは、トレーニング済み音響モデルを使用して第2の部分の訂正済みトランスクリプションを取得する(440)。具体的には、トレーニング済み音響モデルは、前述の技法を使用してトレーニングされる音響モデルでよい。例えば、
図3を参照しながら説明した例を参照すると、第1のオーディオデータの第1の部分[zo-la]を使用して、置換ターム「Jolla」を認識するように音響モデルがトレーニングされる。第1の部分[zo-la]に対応する、識別された第2の部分[zo-la]に応答して、システムは、第2のオーディオデータの第2の部分についての訂正済みトランスクリプション「Jolla」を取得し得る。
【0054】
システムは、第2のトランスクリプションと訂正済みトランスクリプションとをマージするトランスクリプションを取得する(450)。システムは、第2の部分に対応する第2のトランスクリプションの特定のタームを訂正済みトランスクリプションに置換し、第2のトランスクリプションを訂正済みトランスクリプションとマージする新しいトランスクリプションを取得する。例えば、システムは、第2のトランスクリプションのターム「Zola」を訂正済みトランスクリプション「Jolla」に置換し、マージされたトランスクリプション「Directions to La Jolla」を取得する。
【0055】
システムは、第2のトランスクリプションと訂正済みトランスクリプションとをマージするトランスクリプションに応じた検索結果を取得する(460)。例えば、システムは、トランスクリプション「Directions to La Jolla」に応じた検索結果を取得する。検索結果は、訂正済みクエリに応答するように検索システムによって決定された特定のリソースに対するリンクを含み得る。いくつかの実装形態では、検索システムは、クエリを特定のタイプの要求、例えば行き方と認識し、検索結果の一部として、または検索結果の代わりに、マップインターフェースを提供する。
【0056】
システムは、検索結果のうちの1つまたは複数を提供する(470)。システムは、取得された検索結果をユーザデバイスに提供する。例えば、システムは、ユーザデバイスのユーザインターフェース内に表示されるべき検索結果を提供し得る。
【0057】
本明細書において説明される主題および機能動作の実施形態は、本明細書において開示される構造およびその構造的均等物を含む、デジタル電子回路、有形に実施されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のための、またはデータ処理装置の動作を制御するための、有形非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せでよい。代替または追加として、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するために情報を符号化するように生成される、人工的に生成された伝播信号、例えばマシンで生成された電気信号、光信号、または電磁信号上に符号化され得る。
【0058】
「データ処理装置」という用語はデータ処理ハードウェアを指し、例としてプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)でもよく、またはそれをさらに含み得る。任意選択で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
【0059】
プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ、またはそれらとして説明されることのあるコンピュータプログラムが、コンパイル型言語またはインタプリタ型言語、宣言型言語または手続型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適した他のユニットとしての形態を含む任意の形態として配置され得る。プログラムは、必須ではないがファイルシステム内のファイルに対応し得る。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えばマークアップ言語文書内に記憶された1つまたは複数のスクリプトの中に、当該のプログラム専用の単一のファイル内に、または複数の協調ファイル、例えば1つまたは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル内に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に配置され、もしくは複数の場所にわたって分散され、データ通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように配置され得る。
【0060】
本明細書において説明されるプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行して、入力データに対して演算し、出力を生成することによって機能を実施する1つまたは複数のプログラム可能コンピュータによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、例えばFPGAまたはASICによって、あるいは専用論理回路と1つまたは複数のプログラムされたコンピュータの組合せによっても実施され得る。
【0061】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは専用マイクロプロセッサまたはその両方、あるいは任意の他の種類の中央処理装置に基づくものであり得る。一般には、中央処理装置は、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実施または実行するための中央処理装置と、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補足され、または専用論理回路内に組み込まれ得る。一般には、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクをも含み、あるいはそれらからデータを受け取り、もしくはそれらにデータを転送し、またはその両方を行うように動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えばほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブ内に組み込まれ得る。
【0062】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば内部ハードディスクまたは取外し可能ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0063】
本明細書において説明される様々なシステム、またはそれらの部分の制御が、1つまたは複数の非一時的機械可読記憶媒体上に記憶される命令を含み、1つまたは複数の処理デバイス上で実行可能であるコンピュータプログラム製品内で実装され得る。本明細書において説明されるシステム、またはそれらの部分はそれぞれ、本明細書において説明される動作を実施するための実行可能命令を記憶するための1つまたは複数の処理デバイスおよびメモリを含み得る装置、方法、または電子システムとして実装され得る。
【0064】
ユーザとの対話を実現するために、本明細書において説明される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極線管)もしくはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力を与えることのできるキーボードおよびポインティングデバイス、例えばマウスもしくはトラックボールとを有するコンピュータ上で実装され得る。他の種類のデバイスもユーザとの対話を実現するために使用され得、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、音声フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態として受け取られ得る。さらに、コンピュータは、ユーザによって使用されるデバイスに文書を送り、デバイスから文書を受け取ることによって、例えば、ウェブブラウザから受け取った要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送ることによって、ユーザと対話し得る。
【0065】
本明細書において説明される主題の実施形態は、バックエンド構成要素を例えばデータサーバとして含み、またはミドルウェア構成要素、例えばアプリケーションサーバを含み、またはフロントエンド構成要素、例えばユーザが本明細書において説明される主題の実装形態とそれを通じて対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含み、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステム内で実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、例えばインターネットが含まれる。
【0066】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは、一般には互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行中の、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、例えばクライアントとして働くユーザデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取る目的で、データ、例えばHTMLページをユーザデバイスに送る。ユーザデバイスにおいて生成されたデータ、例えばユーザ対話の結果が、ユーザデバイスからサーバにおいて受信され得る。
【0067】
本明細書は、多くの特定の実装詳細を含むが、これらを、何らかの発明の範囲、または特許請求され得るものの範囲に関する限定と解釈すべきではなく、むしろ特定の発明の特定の実施形態に特有のものであり得る特徴の説明と解釈すべきである。本明細書において別々の実施形態の状況において説明されるいくつかの特徴はまた、単一の実施形態において組み合わせて実装され得る。逆に、単一の実施形態の状況において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切な部分組合せにおいて実装され得る。さらに、特徴が、いくつかの組合せで働くものとして上記で説明され、さらにはそのように最初に特許請求され得るが、特許請求される組合せからの1つまたは複数の特徴がいくつかの場合、組合せから削除され得、特許請求される組合せが、部分組合せまたは部分組合せの変形を対象とし得る。
【0068】
同様に、図面では動作が特定の順序で示されるが、このことは、望ましい結果を達成するために、そのような動作が図示される特定の順序で、または連続した順序で実施されること、またはすべての図示される動作が実施されることを必要とすると理解すべきではない。いくつかの環境では、マルチタスキングおよび並列処理が有利であり得る。さらに、前述の実施形態における様々なシステムモジュールおよび構成要素の分離を、すべての実施形態においてそのような分離を必要とすると理解すべきではなく、記載のプログラム構成要素およびシステムは一般に、単一のソフトウェア製品内に一体化され、または複数のソフトウェア製品内にパッケージ化され得ることを理解されたい。
【0069】
主題の特定の実施形態が説明された。他の実施形態は以下の特許請求の範囲内にある。例えば、請求項に記載のアクションが、異なる順序で実施され、それでもなお望ましい結果を達成し得る。一例として、添付の図に示されるプロセスは、望ましい結果を達成するために、図示される特定の順序、または連続した順序を必ずしも必要とするわけではない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。