(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-26
(45)【発行日】2024-02-05
(54)【発明の名称】ニューラルネットワークを使用したターゲット話者の声でのテキストからの音声合成
(51)【国際特許分類】
G10L 13/10 20130101AFI20240129BHJP
G10L 21/007 20130101ALI20240129BHJP
G10L 25/30 20130101ALI20240129BHJP
【FI】
G10L13/10 112B
G10L21/007
G10L25/30
(21)【出願番号】P 2022112158
(22)【出願日】2022-07-13
(62)【分割の表示】P 2020564447の分割
【原出願日】2019-05-17
【審査請求日】2022-07-13
(32)【優先日】2018-05-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ジア、イー
(72)【発明者】
【氏名】チェン、ジフェン
(72)【発明者】
【氏名】ウー、ヨンフイ
(72)【発明者】
【氏名】シェン、ジョナサン
(72)【発明者】
【氏名】パン、ルオミン
(72)【発明者】
【氏名】ワイス、ロン ジェイ.
(72)【発明者】
【氏名】モレノ、イグナシオ ロペス
(72)【発明者】
【氏名】レン、フェイ
(72)【発明者】
【氏名】チャン、ユー
(72)【発明者】
【氏名】ワン、クアン
(72)【発明者】
【氏名】グエン、パトリック アン フー
【審査官】山下 剛史
(56)【参考文献】
【文献】特開2017-32839(JP,A)
【文献】特開2017-76117(JP,A)
【文献】Ehsan VARIANI, et al.,Deep neural networks for small footprint text-dependent speaker verification,ICASSP 2014,IEEE,2014年05月,pp.4052-4056
【文献】Rama DODDIPATLA, et al.,Speaker adaptation in DNN-based speech synthesis using d-vectors,INTERSPEECH 2017,ISCA,2017年08月,pp.3404-3408
【文献】Quan WANG, et al.,Speaker Diarization with LSTM,ICASSP 2018,IEEE,2018年04月,pp.5239-5243
【文献】Wei PING, et al.,Deep Voice 3: Scaling Text-to-Speech with Convolutional Sequence Learning,ICLR 2018,2018年02月,pp.1-16
(58)【調査した分野】(Int.Cl.,DB名)
G10L 13/00-99/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
データ処理ハードウェアによる実行時に、
ターゲット話者の発話に対応する音声スペクトログラムを取得することと、
音声に合成されるべき音素の入力シーケンスを取得することと、
話者エンコーダネットワークを用いて、前記音声スペクトログラムから前記ターゲット話者の話者埋め込みベクトルを抽出することと、
音素の前記入力シーケンスと前記話者埋め込みベクトルとを入力として受信するように構成されたシンセサイザを用いて、前記ターゲット話者の声での音素の前記入力シーケンスのメルスペクトログラム表現を生成することと、
前記ターゲット話者の前記声での音素の前記入力シーケンスの前記メルスペクトログラム表現を出力のために提供することと、
を含む動作を前記データ処理ハードウェアに実行させ
、
前記話者エンコーダネットワークは、同じ話者の発話に対応する音声スペクトログラムから、埋め込み空間内で互いに近接している話者埋め込みベクトルを抽出するようにトレーニングされている、コンピュータ実装方法。
【請求項2】
データ処理ハードウェアによる実行時に、
ターゲット話者の発話に対応する音声スペクトログラムを取得することと、
音声に合成されるべき音素の入力シーケンスを取得することと、
話者エンコーダネットワークを用いて、前記音声スペクトログラムから前記ターゲット話者の話者埋め込みベクトルを抽出することと、
音素の前記入力シーケンスと前記話者埋め込みベクトルとを入力として受信するように構成されたシンセサイザを用いて、前記ターゲット話者の声での音素の前記入力シーケンスのメルスペクトログラム表現を生成することと、
前記ターゲット話者の前記声での音素の前記入力シーケンスの前記メルスペクトログラム表現を出力のために提供することと、
を含む動作を前記データ処理ハードウェアに実行させ、
前記話者エンコーダネットワークは、互いに異なる話者の発話に対応する音声スペクトログラムから、互いに離れた話者埋め込みベクトルを抽出するようにトレーニングされている、コンピュータ実装方法。
【請求項3】
前記ターゲット話者の前記発話に対応する前記音声スペクトログラムは、任意の長さのメルスペクトログラムを含む、請求項1
または2に記載の方法。
【請求項4】
前記話者エンコーダネットワークは、前記シンセサイザとは別にトレーニングされる、請求項1
または2に記載の方法。
【請求項5】
前記シンセサイザのトレーニング中に、前記話者エンコーダネットワークのパラメータが固定されている、請求項
4に記載の方法。
【請求項6】
前記シンセサイザは、音素入力のシーケンスからメルスペクトログラムを予測するようにトレーニングされたスペクトログラム生成ニューラルネットワークを含む、請求項1
または2に記載の方法。
【請求項7】
前記スペクトログラム生成ニューラルネットワークは、シーケンスツーシーケンスアテンションニューラルネットワークを含む、請求項
6に記載の方法。
【請求項8】
前記スペクトログラム生成ニューラルネットワークは、エンコーダニューラルネットワークおよびデコーダニューラルネットワークを含む、請求項
6に記載の方法。
【請求項9】
前記スペクトログラム生成ニューラルネットワークは、アテンション層をさらに含む、請求項
8に記載の方法。
【請求項10】
データ処理ハードウェアと、
前記データ処理ハードウェアと通信するとともに命令を記憶したメモリハードウェアと、を備えるシステムであって、前記命令は、前記データ処理ハードウェアによる実行時に、
ターゲット話者の発話に対応する音声スペクトログラムを取得することと、
音声に合成されるべき音素の入力シーケンスを取得することと、
話者エンコーダネットワークを用いて、前記音声スペクトログラムから前記ターゲット話者の話者埋め込みベクトルを抽出することと、
音素の前記入力シーケンスと前記話者埋め込みベクトルとを入力として受信するように構成されたシンセサイザを用いて、前記ターゲット話者の声での音素の前記入力シーケンスのメルスペクトログラム表現を生成することと、
前記ターゲット話者の前記声での音素の前記入力シーケンスの前記メルスペクトログラム表現を出力のために提供することと、
を含む動作を前記データ処理ハードウェアに実行させ
、
前記話者エンコーダネットワークは、同じ話者の発話に対応する音声スペクトログラムから、埋め込み空間内で互いに近接している話者埋め込みベクトルを抽出するようにトレーニングされている、システム。
【請求項11】
データ処理ハードウェアと、
前記データ処理ハードウェアと通信するとともに命令を記憶したメモリハードウェアと、を備えるシステムであって、前記命令は、前記データ処理ハードウェアによる実行時に、
ターゲット話者の発話に対応する音声スペクトログラムを取得することと、
音声に合成されるべき音素の入力シーケンスを取得することと、
話者エンコーダネットワークを用いて、前記音声スペクトログラムから前記ターゲット話者の話者埋め込みベクトルを抽出することと、
音素の前記入力シーケンスと前記話者埋め込みベクトルとを入力として受信するように構成されたシンセサイザを用いて、前記ターゲット話者の声での音素の前記入力シーケンスのメルスペクトログラム表現を生成することと、
前記ターゲット話者の前記声での音素の前記入力シーケンスの前記メルスペクトログラム表現を出力のために提供することと、
を含む動作を前記データ処理ハードウェアに実行させ、
前記話者エンコーダネットワークは、互いに異なる話者の発話に対応する音声スペクトログラムから、互いに離れた話者埋め込みベクトルを抽出するようにトレーニングされている、システム。
【請求項12】
前記ターゲット話者の前記発話に対応する前記音声スペクトログラムは、任意の長さのメルスペクトログラムを含む、請求項
10または11に記載のシステム。
【請求項13】
前記話者エンコーダネットワークは、前記シンセサイザとは別にトレーニングされる、請求項
10または11に記載のシステム。
【請求項14】
前記シンセサイザのトレーニング中に、前記話者エンコーダネットワークのパラメータが固定されている、請求項
13に記載のシステム。
【請求項15】
前記シンセサイザは、音素入力のシーケンスからメルスペクトログラムを予測するようにトレーニングされたスペクトログラム生成ニューラルネットワークを含む、請求項
10または11に記載のシステム。
【請求項16】
前記スペクトログラム生成ニューラルネットワークは、シーケンスツーシーケンスアテンションニューラルネットワークを含む、請求項
15に記載のシステム。
【請求項17】
前記スペクトログラム生成ニューラルネットワークは、エンコーダニューラルネットワークおよびデコーダニューラルネットワークを含む、請求項
15に記載のシステム。
【請求項18】
前記スペクトログラム生成ニューラルネットワークは、アテンション層をさらに含む、請求項
17に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は一般に、テキストからの音声合成に関する。
【背景技術】
【0002】
ニューラルネットワークは、複数層の演算を使用して1つ以上の入力から1つ以上の出力を予測する機械学習モデルである。ニューラルネットワークには通常、入力層と出力層の間に位置する1つ以上の隠れ層が含まれる。各隠れ層の出力は、次の隠れ層や出力層など、次の層への入力として使用される。
【0003】
ニューラルネットワークの各層は、層への入力に対して実行される1つ以上の変換演算を指定する。一部のニューラルネットワーク層は、ニューロンと呼ばれる演算を行う。各ニューロンは1つ以上の入力を受け取り、別のニューラルネットワーク層が受け取る出力を生成する。多くの場合、各ニューロンは他のニューロンから入力を受け取り、各ニューロンは1つ以上の他のニューロンに出力を提供する。
【0004】
各層は、当該層のパラメータセットの現在値を使用して1つ以上の出力を生成する。ニューラルネットワークのトレーニングには、入力に対してフォワードパスを継続的に実行し、勾配値を計算し、各層のパラメータセットの現在値を更新することが含まれる。ニューラルネットワークがトレーニングされると、最終のパラメータセットを使用して、プロダクションシステムで予測を行うことができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本明細書は一般に、テキストからの音声合成に関する。
【課題を解決するための手段】
【0006】
音声合成のためのニューラルネットワークベースのシステムは、トレーニング中において用いられなかった話者を含む、多くの様々な話者の声で音声オーディオを生成し得る。システムは、システムのパラメータを更新することなく、ターゲット話者からの数秒の非転写参照オーディオを使用して、ターゲット話者の声で新しい音声を合成できる。システムは、シーケンスツーシーケンスモデルを使用する場合がある。これは、音素のシーケンスまたは書記素のシーケンスから振幅スペクトログラムを生成し、話者の埋め込みで出力を調整する。埋め込みは、任意の長さの音声スペクトログラムを固定次元の埋め込みベクトルに符号化する、独立してトレーニングされた話者エンコーダネットワーク(本明細書では話者検証ニューラルネットワークまたは話者エンコーダとも呼ばれる)を使用して計算され得る。埋め込みベクトルは、データを符号化しまたは別様に表す値のセットである。例えば、埋め込みベクトルは、ニューラルネットワークの隠れ層または出力層によって生成され得る。この場合、埋め込みベクトルは、ニューラルネットワークに入力される1つ以上のデータ値を符号化する。話者エンコーダは、何千もの異なる話者からのノイズの多い音声の個別のデータセットを使用して、話者検証タスクでトレーニングされ得る。システムは、話者エンコーダによって学習された多様な話者に関する知識を活用して、一般化を的確に行うことで、トレーニング中に用いられていない話者からの自然な音声を、当該話者からの僅か数秒のオーディオを使用して、合成し得る。
【0007】
より詳細には、システムは、話者検証タスクのために構成された、独立してトレーニングされた話者エンコーダを含み得る。話者エンコーダは、区別を行うようにトレーニングされてよい。話者エンコーダは、一般化されたエンドツーエンドの損失を使用して、何千もの異なる話者からの非転写オーディオの大規模なデータセットでトレーニングされる。システムは、ネットワークを分離して、ネットワークを独立したデータセットでトレーニングできるようにすることができる。これにより、目的ごとに高品質のトレーニングデータを取得する際の問題が軽減される場合がある。つまり、話者特性の空間をキャプチャする話者区別埋め込みネットワーク(つまり、話者検証ニューラルネットワーク)をトレーニングすることと、話者検証ニューラルネットワークによって学習された表現で調整されたより小さなデータセットで、高品質のテキストから音声へのモデル(本明細書では、スペクトログラム生成ニューラルネットワークと呼ばれる)をトレーニングすることと、を独立して行うことにより、話者モデリングと音声合成とを分離できる。例えば、音声合成には、テキストにはよらない話者検証と比較して、異なったより煩雑なデータ要件がある場合があり、関連する転写とともに数十時間のクリーンな音声が必要になる場合がある。これに対し、話者検証では、残響やバックグラウンドノイズを含む、非転写のノイズの多い音声を有効利用し得るが、十分な数の話者を必要とし得る。したがって、両方の目的に適した高品質のトレーニングデータの単一のセットを取得することは、それぞれの目的に高品質の2つの異なるトレーニングデータセットを取得するよりもはるかに難しい場合がある。
【0008】
本明細書の主題は、以下の利点のうちの1つまたは複数を実現するように実施することができる。例えば、システムは、適応品質の向上をもたらし、事前の埋め込み(単位超球上の点)からランダムにサンプリングすることにより、トレーニングで使用されたものとは異なる完全に新規な話者の合成を可能にし得る。別の例では、システムは、短い限られた量のサンプル音声、例えば5秒の音声しか利用できないターゲット話者の音声を合成することができる。さらに別の利点は、システムが、ターゲット話者の音声のサンプルの転写が利用できないターゲット話者の声で音声を合成できる可能性があることである。例えば、システムは、音声のサンプルが事前に利用できない「ジョン・ドゥ(John Doe)」から5秒間の音声のサンプルを受信し、音声のサンプルの転写がなくとも任意のテキストに対して「ジョン・ドゥ」の声で音声を生成し得る。
【0009】
さらに別の利点は、システムが、特定の話者についてサンプル音声を利用できる言語とは異なる言語で音声を生成できる可能性があることである。例えば、システムはスペイン語で「ジョン・ドゥ」から5秒間の音声のサンプルを受信でき、「ジョン・ドゥ」からの他の音声のサンプルがなくても、英語で「ジョン・ドゥ」の声で音声を生成できる場合がある。
【0010】
従来のシステムとは異なり、話者モデリングと音声合成のトレーニングを分離することにより、記載のシステムは、多数の話者からの音声を含む高品質の音声データの単一のセットが利用できない場合でも、互いに異なる話者の音声を効果的に調整することができる。
【0011】
従来のシステムでは、新しいターゲット話者の声で音声オーディオを生成できるようになる前に、何時間ものトレーニングおよび/または微調整が必要になる場合があるが、記載のシステムは、追加のトレーニングまたは微調整を必要とせずに、新しいターゲット話者の声で音声オーディオを生成し得る。したがって、記載のシステムは、従来のシステムと比較した場合、生成された音声オーディオが元の話者の声である音声から音声への翻訳など、最小の遅延で新しい話者の声で音声を生成する必要があるタスクをより迅速に実行できる。
【0012】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかとなる。
【0013】
一部の態様において、本明細書に記載される主題は、ターゲット話者の音声のオーディオ表現を取得することと、音声がターゲット話者の声で合成される入力テキストを取得することと、話者を互いに区別するようにトレーニングされた話者エンコーダエンジンにオーディオ表現を提供することによって話者ベクトルを生成することと、入力テキストと話者ベクトルとを、オーディオ表現を生成するために参照話者の声を使用してトレーニングされたスペクトログラム生成エンジンに提供することによって、ターゲット話者の声で話される入力テキストのオーディオ表現を生成することと、出力用にターゲット話者の声で話された入力テキストのオーディオ表現を提供することと、のアクションを含み得る方法で具体化され得る。
【0014】
話者検証ニューラルネットワークは、埋め込み空間内で互いに近接している同じ話者からの音声のオーディオ表現の話者埋め込みベクトルを生成するようにトレーニングされているとともに、互いに離れた異なる話者からの音声のオーディオ表現の話者埋め込みベクトルを生成するようにトレーニングされていてもよい。これに代えてまたは加えて、話者検証ニューラルネットワークは、スペクトログラム生成ニューラルネットワークとは別にトレーニングされてもよい。話者検証ニューラルネットワークは長短期記憶(LSTM)ニューラルネットワークである。
【0015】
話者埋め込みベクトルを生成することは、オーディオ表現の複数の重なり合うスライディングウィンドウを話者検証ニューラルネットワークに提供して、複数の個別のベクトル埋め込みを生成することと、複数の個別のベクトル埋め込みの平均を計算することにより、話者埋め込みベクトルを生成することと、を含み得る。
【0016】
出力用にターゲット話者の声で話された入力テキストのオーディオ表現を提供することは、ターゲット話者の声で話された入力テキストのオーディオ表現をボコーダに提供して、ターゲット話者の声で話された入力テキストの時間領域表現を生成することと、再生用の時間領域表現をユーザに提供することと、を含み得る。ボコーダは、ボコーダニューラルネットワークであり得る。
【0017】
スペクトログラム生成ニューラルネットワークは、音素または書記素入力のシーケンスからメルスペクトログラムを予測するようにトレーニングされたシーケンスツーシーケンスアテンションニューラルネットワークであってよい。スペクトログラム生成ニューラルネットワークは、任意選択で、エンコーダニューラルネットワーク、アテンション層、およびデコーダニューラルネットワークを含む場合がある。スペクトログラム生成ニューラルネットワークは、話者埋め込みベクトルを、アテンション層への入力として提供されるエンコーダニューラルネットワークの出力と連結できる。
【0018】
話者埋め込みベクトルは、話者検証ニューラルネットワークまたはスペクトログラム生成ニューラルネットワークのトレーニング中に使用される話者埋め込みベクトルとは異なっていてもよい。スペクトログラム生成ニューラルネットワークのトレーニング中に、話者検証ニューラルネットワークのパラメータが固定されていてもよい。
【0019】
さらなる一態様によれば、話者を互いに区別するように話者検証ニューラルネットワークをトレーニングすることと、入力テキストのオーディオ表現を生成するために複数の参照話者の声を使用してスペクトログラム生成ニューラルネットワークをトレーニングすることと、を含む音声合成で使用するためにニューラルネットワークをトレーニングするコンピュータ実装方法が提供される。この態様は、先行する態様の特徴のいずれかを含み得る。
【0020】
他のバージョンには、コンピュータストレージデバイス上で符号化された、方法のアクションを実行するように構成された、対応するシステム、装置、およびコンピュータプログラムが含まれる。
【0021】
1つまたは複数の実装形態の詳細は、添付の図面および以下の説明に記載されている。他の潜在的な特徴および利点は、説明、図面、および特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【0022】
【
図1】ターゲット話者の声で音声を合成できる例示的なシステムのブロック図。
【
図2】音声合成のトレーニング中の例示的なシステムのブロック図。
【
図3】音声を合成するための推論中の例示的なシステムのブロック図。
【
図4】ターゲット話者の声で話されるテキストのオーディオ表現を生成するための例示的なプロセスのフローチャート。
【発明を実施するための形態】
【0023】
さまざまな図面での同様の参照番号と指示は、同様の要素を示す。
図1は、ターゲット話者の声で音声を合成できる例示的な音声システム100を示すブロック図である。音声合成システム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装することができる。音声合成システム100は、ターゲット話者のオーディオ表現とともに入力テキストを受信し、一連のニューラルネットワークを介して入力を処理し、ターゲット話者の声で入力テキストに対応する音声を生成する。例えば、音声合成システム100が、「こんにちは、私の名前はジョン・ドゥであり、テスト目的でこの音声のサンプルを提供している」と言っているジョン・ドゥの5秒間のオーディオとともに本のページのテキストを入力として受信した場合、これらの入力を処理して、ジョン・ドゥの声で当該ページの口述のナレーションを生成できる。別の例では、音声合成システム100が、別の本からナレーションするジェーン・ドゥ(Jane Doe)の6秒間のオーディオとともに本のページのテキストを入力として受信した場合、これらの入力を処理して、ジェーン・ドゥの声でページの口述のナレーションを生成できる。
【0024】
図1に示されるように、システム100は、話者エンコーダエンジン110およびスペクトログラム生成エンジン120を含む。ターゲット話者に関して、話者エンコーダエンジン110は、話しているターゲット話者のオーディオ表現を受信し、話者埋め込みベクトルまたは埋め込みベクトルとも呼ばれる話者ベクトルを出力する。例えば、話者エンコーダエンジン110は、「こんにちは、私の名前はジョン・ドゥです」と言っているジョン・ドゥのオーディオ録音を受信し、これに応じて、ジョン・ドゥを識別する値を有するベクトルを出力する。話者ベクトルはまた、話者の特徴的な発話速度を捉えていてもよい。
【0025】
話者ベクトルは、固定次元の埋め込みベクトルであり得る。例えば、話者エンコーダエンジン110によって出力される話者ベクトルは、256個の値のシーケンスを有することができる。話者エンコーダエンジン110は、任意の長さの音声スペクトログラムを固定次元の埋め込みベクトルに符号化するようにトレーニングされたニューラルネットワークであり得る。例えば、話者エンコーダエンジン110は、メルスペクトログラムまたはログメルスペクトログラム、ユーザからの音声の表現を、固定数の要素(例えば、256要素)を有するベクトルに符号化するようにトレーニングされた長短期記憶(LSTM:long short-term memory)ニューラルネットワークを含み得る。メルスペクトログラムは、一貫性と詳細な説明のために本開示全体を通して参照されているが、他のタイプのスペクトログラム、または他の適切なオーディオ表現を使用できることが理解されよう。
【0026】
話者エンコーダエンジン110は、音声のオーディオと、オーディオの話者を識別するラベルとのペアを含む、ラベル付けされたトレーニングデータを用いてトレーニングされてもよく、これによって、エンジン110が、互いに異なる話者に対応するものとしてオーディオを分類することを学習する。話者ベクトルは、LSTMニューラルネットワークの隠れ層の出力である可能性があり、ここで、話者からのオーディオからは、互いに声が類似しているほど、互いに類似している話者ベクトルが得られ、話者からのオーディオからは、互いに声が相違するほど、互い相違する話者ベクトルが得られる。
【0027】
スペクトログラム生成エンジン120は、合成すべき入力テキストを受信して、話者エンコーダエンジン110によって決定された話者ベクトルを受信してよく、それに応じて、その入力テキストの音声のオーディオ表現をターゲット話者の声で生成してよい。例えば、スペクトログラム生成エンジン120は、「さようなら」の入力テキストと、「こんにちは、私の名前はジョン・ドゥです」と言っているジョン・ドゥのメルスペクトログラム表現から話者エンコーダエンジン110によって決定された話者ベクトルと、を受信できる。それに応じて、ジョン・ドゥの声で「さようなら」の音声のメルスペクトログラム表現を生成できる。
【0028】
スペクトログラム生成エンジン120は、入力テキストとターゲット話者の話者ベクトルとからターゲット話者の声のメルスペクトログラムを予測するようにトレーニングされている、アテンションネットワークを備えたシーケンスツーシーケンスであるニューラルネットワーク(シーケンスツーシーケンスシンセサイザ、シーケンスツーシーケンス合成ネットワーク、またはスペクトログラム生成ニューラルネットワークとも呼ばれる)を含み得る。ニューラルネットワークは、テキスト、特定の話者によるテキストの音声のオーディオ表現、および特定の話者に関する話者ベクトルを各々が含む複数のトリプレットを含むトレーニングデータでトレーニングされ得る。トレーニングデータで使用される話者ベクトルは、スペクトログラム生成エンジン120からのものであってもよく、そのトリプレットのテキストの音声のオーディオ表現からのものである必要はない場合がある。例えば、トレーニングデータに含まれるトリプレットは、「私はコンピュータが好きです」との入力テキストと、「私はコンピュータが好きです」と言っているジョン・スミス(John Smith)のオーディオからのメルスペクトログラムと、話者エンコーダエンジン110によって出力された、「こんにちは、私の名前はジョン・スミスです」と言っているジョン・スミスのオーディオからのメルスペクトログラムからの話者ベクトルと、を含み得る。
【0029】
一部の実装形態では、スペクトログラム生成エンジン120のトレーニングデータは、話者エンコーダエンジン110がトレーニングされた後、話者エンコーダエンジン110を使用して生成され得る。例えば、ペアのトレーニングデータからなるセットには、元々、入力テキストおよびそのテキストの音声のメルスペクトログラムのペアのみが含まれている場合がある。ペアになったトレーニングデータの各ペアにおけるメルスペクトログラムは、トレーニング済みの話者エンコーダエンジン110に提供されて、トレーニング済みの話者エンコーダエンジン110は、各メルスペクトログラムに対応する話者ベクトルを出力し得る。次に、システム100は、各話者ベクトルをペアのトレーニングデータにおける対応するペアに追加して、テキストと、特定の話者によるテキストの音声のオーディオ表現と、特定の話者に関する話者ベクトルと、からなるトリプレットを含むトレーニングデータを生成することができる。
【0030】
一部の実装形態では、スペクトログラム生成エンジン120によって生成されたオーディオ表現は、音声を生成するためにボコーダに提供され得る。例えば、「さようなら」と言っているジョン・ドゥのメルスペクトログラムは、周波数領域にあり、別のニューラルネットワークに提供されてもよく、当該別のニューラルネットワークは、周波数領域表現を受信し、時間領域表現を出力するようにトレーニングされていて、ジョン・ドゥの声で「さようなら」の時間領域波形を出力する場合がある。次に、時間領域波形は、ジョン・ドゥの声で「さようなら」の音を生成できるスピーカー(ラウドスピーカーなど)に提供されてもよい。
【0031】
一部の実装形態では、システム100または別のシステムは、ターゲット話者の声で音声を合成するためのプロセスを実行するよう使用されてもよい。プロセスは、ターゲット話者の音声のオーディオ表現を取得することと、音声がターゲット話者の声で合成される入力テキストを取得することと、話者を互いに区別するようにトレーニングされた話者エンコーダエンジンにオーディオ表現を提供することによって話者ベクトルを生成することと、入力テキストと話者ベクトルとを、オーディオ表現を生成するために参照話者の声を使用してトレーニングされたスペクトログラム生成エンジンに提供することによって、ターゲット話者の声で話される入力テキストのオーディオ表現を生成することと、出力用にターゲット話者の声で話された入力テキストのオーディオ表現を提供することと、のアクションを含み得る。
【0032】
例えば、プロセスは、話者エンコーダエンジン110が、「私はコンピュータが好きです」と言っているジェーン・ドゥのオーディオからメルスペクトログラムを取得することと、「私はコンピュータが好きです」と言っているジョン・ドゥのメルスペクトログラムに対して生成される話者ベクトルとは異なるジェーン・ドゥのスピーカーベクトルを生成することと、を含み得る。スペクトログラム生成エンジン120は、ジェーン・ドゥに関する話者ベクトルを受信するとともに、英語で「こんにちは、お元気ですか」を意味するスペイン語である可能性がある「ホラコモエスタス(Hola como estas)」の入力テキストを取得することができ、これに応じて、ボコーダによってジェーン・ドゥの声で「ホラコモエスタス」の音声に変換され得るメルスペクトログラムを生成する場合がある。
【0033】
より詳細な例では、システム100は、独立してトレーニングされた3つの構成要素を含み得る。すなわち、任意の長さの音声信号から固定次元ベクトルを出力する話者検証のためのLSTM話者エンコーダと、話者ベクトルで調整される、書記素または音素入力のシーケンスからメルスペクトログラムを予測するシーケンスツーシーケンスアテンションネットワークと、メルスペクトログラムを時間領域波形サンプルのシーケンスに変換する自己回帰ニューラルボコーダネットワークと、である。LSTM話者エンコーダは、話者エンコーダエンジン110であってよく、アテンションネットワークを伴うシーケンスツーシーケンスは、スペクトログラム生成エンジン120であり得る。
【0034】
LSTM話者エンコーダは、所望のターゲット話者からの参照音声信号で合成ネットワークを調整するために使用される。さまざまな話者の特性を捉える参照音声信号を使用して、適切な一般化が実現され得る。適切な一般化により、表音のコンテンツおよびバックグラウンドノイズとは関係なく、短い適応信号のみを使用してこれらの特性を特定できるようになり得る。これらの目的は、テキストによらない話者検証タスクでトレーニングされた話者区別モデルを使用して満足される。LSTM話者エンコーダは、ある複数の話者のみのセットに限定されない、話者区別オーディオ埋め込みネットワークであり得る。
【0035】
LSTM話者エンコーダは、任意の長さの音声発話から計算されたメルスペクトログラムフレームのシーケンスを、dベクトルまたは話者ベクトルとして知られる固定次元の埋め込みベクトルにマッピングする。LSTM話者エンコーダは、発話xが与えられると、LSTMネットワークを使用して固定次元ベクトル埋め込みex=f(x)を学習するように構成され得る。一般化されたエンドツーエンドの損失は、LSTMネットワークをトレーニングするために使用されてよく、これによって、同じ話者からの発話のdベクトルが埋め込み空間内で互いに近接するように、例えば、発話のdベクトル同士が大きなコサイン類似度を有するようになり、一方、互いに異なる話者からの発話のdベクトルは互いに離れているようになる。したがって、任意の長さの発話が与えられた場合、話者エンコーダは、例えば800ミリ秒の長さの重なり合うスライディングウィンドウで実行でき、L2正規化されたウィンドウの複数の埋め込みの平均が発話全体の最終的な埋め込みとして使用される。
【0036】
シーケンスツーシーケンスアテンションニューラルネットワークは、トレーニングデータセットにおけるオーディオ例xごとに、出力がアテンションニューラルネットワークに提供される前に、各タイムステップで真の話者に関連付けられたd次元の埋め込みベクトルをエンコーダニューラルネットワークの出力と連結することによって、複数の特定の話者をモデル化できる。アテンションニューラルネットワークの入力層に提供される話者の埋め込みは、互いに異なる話者間で収束するのに十分である可能性がある。シンセサイザは、中間の言語機能に依存しないエンドツーエンドの合成ネットワークにすることができる。
【0037】
一部の実装形態では、シーケンスツーシーケンスアテンションネットワークは、テキスト転写とターゲットオーディオのペアでトレーニングされてよい。入力では、テキストを音素のシーケンスにマッピングする。これにより、収束が速くなり、人名や地名などのまれな単語の発音が改善される。ネットワークは、事前にトレーニングされた話者エンコーダ(パラメータが凍結されている)を使用して転移学習構成でトレーニングされ、ターゲットオーディオから話者埋め込みを抽出する。つまり、トレーニング中において、話者参照信号は、ターゲット音声と同じである。トレーニング中に明示的な話者識別子ラベルは使用されない。
【0038】
追加的にまたはこれに代えて、ネットワークのデコーダには、スペクトログラム機能の再構築でのL2損失と、追加のL1損失の両方が含まれる場合がある。組み合わされた損失は、ノイズトレーニングデータでより堅牢になる可能性がある。追加的にまたはこれに代えて、合成されたオーディオをさらにクリーンにするために、例えば10パーセンタイルでのスペクトル減算によるノイズリダクションをメルスペクトログラム予測ネットワークのターゲットに対して実行してもよい。
【0039】
システム100は、単一の短いオーディオクリップからこれまでに確認されたことのない話者の独特の特徴を捉え、それらの特徴を備えた新しい音声を合成することができる。システム100は、以下を達成することができる:(1)高レベルで自然な合成された音声(2)ターゲット話者との高度な類似性。高レベルで自然なものとすることは通常、トレーニングデータとして大量の高品質の音声と転写とのペアを必要とする一方、高度な類似性を実現するには、通常、各話者に関して大量のトレーニングデータを必要とする。ただし、個々の話者ごとに高品質のデータを大量に記録することは、非常に費用がかかるか、実際には実行不可能ですらある。システム100は、高度に自然なテキストから音声へのシステムのトレーニングと、話者の特性をうまく捉える別の話者区別埋め込みネットワークのトレーニングとを分離することができる。一部の実装形態では、話者区別モデルは、テキストによらない話者検証タスクでトレーニングされる。
【0040】
ニューラルボコーダは、シンセサイザによって出された合成されたメルスペクトログラムを時間領域の波形に反転する。一部の実装形態では、ボコーダは、サンプルごとの自己回帰ウェーブネット(Wave Net)にすることができる。アーキテクチャには、複数の拡張畳み込み層を含めることができる。シンセサイザネットワークによって予測されたメルスペクトログラムは、さまざまな声の高品質な合成に必要なすべての関連する詳細を捉え、話者ベクトルで明示的に調整する必要なしに、多くの話者からのデータでトレーニングするだけで複数話者ボコーダを構築できる。ウェーブネットアーキテクチャの詳細については、ファン・デン・オールト(van den Oorde)らによるウェーブネット:未処理オーディオの生成モデルCoRR abs/1609.03499、2016年に記載されている。
【0041】
図2は、音声合成のトレーニング中の例示的なシステム200のブロック図である。例示的なシステム200は、話者エンコーダ210、シンセサイザ220、およびボコーダ230を含む。シンセサイザ220は、テキストエンコーダ222、アテンションニューラルネットワーク224、およびデコーダ226を含む。トレーニング中、パラメータが凍結されている可能性がある別個にトレーニングされた話者エンコーダ210は、可変長入力オーディオ信号から話者の固定長dベクトルを抽出することができる。トレーニング中、参照信号またはターゲットオーディオは、テキストと並置されたグラウンドトゥルースオーディオである可能性がある。dベクトルは、テキストエンコーダ222の出力と連結されてよく、複数の時間ステップのそれぞれでアテンションニューラルネットワーク224に渡され得る。話者エンコーダ210を除いて、システム200の他の部分は、デコーダ226からの再構成損失によって駆動され得る。シンセサイザ220は、入力テキストシーケンスからメルスペクトログラムを予測し、メルスペクトログラムをボコーダ230に提供することができる。ボコーダ230は、メルスペクトログラムを時間領域波形に変換することができる。
【0042】
図3は、音声を合成するための推論中の例示的なシステム300のブロック図である。システム300は、話者エンコーダ210、シンセサイザ220、およびボコーダ230を含む。推論中に、2つのアプローチのいずれかを使用し得る。第1のアプローチでは、テキストエンコーダ222は、その転写が合成されるべきテキストと一致する必要がない、未確認(unseen)および/または非転写のオーディオからのdベクトルで直接的に調整され得る。これにより、ネットワークが単一のオーディオクリップから未確認の声を生成できるようになる場合がある。合成に使用する話者の特性は音声から推論されるため、トレーニングセット外部の話者からのオーディオで調整され得る。第2のアプローチでは、ランダムサンプルdベクトルを取得することができ、テキストエンコーダ122は、ランダムサンプルdベクトルで調整されてよい。話者エンコーダは大量の話者を元にしてトレーニングされる可能性があるため、ランダムなdベクトルによってランダムな話者が生成されることもある。
【0043】
図4は、ターゲット話者の声で話されるテキストのオーディオ表現を生成するための例示的なプロセス400のフローチャートである。例示的なプロセスは、本明細書に従って適切にプログラムされたシステムによって実行されるものとして説明される。
【0044】
システムは、ターゲット話者の音声のオーディオ表現を取得する(405)。例えば、オーディオ表現はオーディオ記録ファイルの形式にすることができ、オーディオは1つまたは複数のマイクによって捉えられ得る。
【0045】
システムは、音声がターゲット話者の声で合成される入力テキストを取得する(410)。例えば、入力テキストはテキストファイルの形式にすることができる。
システムは、話者を互いに区別するようにトレーニングされた話者検証ニューラルネットワークにオーディオ表現を提供することによって話者埋め込みベクトルを生成する(415)。例えば、話者検証ニューラルネットワークはLSTMニューラルネットワークにすることができ、話者埋め込みベクトルはLSTMニューラルネットワークの隠れ層の出力にすることができる。
【0046】
一部の実装形態では、システムは、オーディオ表現の複数の重なり合うスライディングウィンドウを話者検証ニューラルネットワークに提供して、複数の個別のベクトル埋め込みを生成する。例えば、オーディオ表現は、約800ミリ秒の長さ(例えば、750ミリ秒以下、700ミリ秒以下、650ミリ秒以下)のウィンドウに分割することができ、重なりは約50%(例えば、60%以上、65%以上、70%以上)にすることができる。次に、システムは、個別のベクトル埋め込みの平均を計算することにより、話者埋め込みベクトルを生成できる。
【0047】
一部の実装形態では、話者検証ニューラルネットワークは、埋め込み空間内で互いに近接している同じ話者からの音声のオーディオ表現の話者埋め込みベクトル、例えば、dベクトルを生成するようにトレーニングされている。話者検証ニューラルネットワークは、互いに離れた異なる話者からの音声のオーディオ表現の話者埋め込みベクトルを生成するようにトレーニングされてよい。
【0048】
システムは、入力テキストと話者埋め込みベクトルとを、オーディオ表現を生成するために参照話者の声を使用してトレーニングされたスペクトログラム生成ニューラルネットワークに提供することによって、ターゲット話者の声で話される入力テキストのオーディオ表現を生成する(420)。
【0049】
一部の実装形態では、スペクトログラム生成ニューラルネットワークのトレーニング中に、話者埋め込みニューラルネットワークのパラメータが固定されている。
一部の実装形態では、スペクトログラム生成ニューラルネットワークは、話者検証ニューラルネットワークとは別にトレーニングされてよい。
【0050】
一部の実装形態では、話者埋め込みベクトルは、話者検証ニューラルネットワークまたはスペクトログラム生成ニューラルネットワークのトレーニング中に使用される話者埋め込みベクトルとは異なる。
【0051】
一部の実装形態では、スペクトログラム生成ニューラルネットワークは、音素または書記素入力のシーケンスからメルスペクトログラムを予測するようにトレーニングされたシーケンスツーシーケンスアテンションニューラルネットワークである。例えば、スペクトログラム生成ニューラルネットワークアーキテクチャは、タコトロン2(Tacotron 2)に基づくことが可能である。タコトロン2ニューラルネットワークアーキテクチャの詳細については、シェン(Shen)らによる議事録で公開された「メルスペクトログラム予測でウェーブネットを調整することによる自然なTIS合成」(2018年の音響、音声、および信号処理に係るIEEE国際会議(ICASSP))に記載されている。
【0052】
一部の実装形態では、スペクトログラム生成ニューラルネットワークは、エンコーダニューラルネットワーク、アテンション層、およびデコーダニューラルネットワークを含むスペクトログラム生成ニューラルネットワークを含む。一部の実装形態では、スペクトログラム生成ニューラルネットワークは、話者埋め込みベクトルを、アテンション層への入力として提供されるエンコーダニューラルネットワークの出力と連結する。
【0053】
一部の実装形態では、エンコーダニューラルネットワークとシーケンスツーシーケンスアテンションニューラルネットワークは、不均衡で共通要素のない話者のセットでトレーニングされ得る。エンコーダニューラルネットワークは、話者同士を区別するようにトレーニングされてよく、これにより、話者の特性をより確実に反映(transfer)できるようになる。
【0054】
システムは、出力用にターゲット話者の声で話された入力テキストのオーディオ表現を提供する(425)。例えば、システムは入力テキストの時間領域表現を生成できる。
一部の実装形態では、システムは、ターゲット話者の声で話された入力テキストのオーディオ表現をボコーダに提供して、ターゲット話者の声で話された入力テキストの時間領域表現を生成する。システムは、再生用の時間領域表現をユーザに提供できる。
【0055】
一部の実装形態では、ボコーダはボコーダニューラルネットワークである。例えば、ボコーダニューラルネットワークは、合成ネットワークによって生成された合成されたメルスペクトログラムを時間領域の波形に反転できるサンプルごとの自己回帰ウェーブネットであってよい。ボコーダニューラルネットワークには、複数の拡張畳み込み層を含み得る。
【0056】
図5は、本明細書において説明する技術を実装するために使用することができるコンピューティングデバイス500およびモバイルコンピューティングデバイス450の例を示している。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、個人用情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの、様々な形態のデジタル・コンピュータを表すように意図されている。モバイルコンピューティングデバイス450は、個人用情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどの、様々な形態のモバイルデバイスを表すよう意図されている。本明細書に示されるコンポーネント、コンポーネント同士の接続および関係と、コンポーネントの機能とは、例示としてのみ意図されており、限定するようには意図されていない。
【0057】
コンピューティングデバイス500は、プロセッサ502と、メモリ504と、記憶デバイス506と、メモリ504および複数の高速拡張ポート510に接続している高速インタフェース508と、低速拡張ポート514および記憶デバイス506に接続している低速インタフェース512とを備える。プロセッサ502、メモリ504、記憶デバイス506、高速インタフェース508、高速拡張ポート510、および低速インタフェース512の各々は、様々なバスを用いて相互接続されており、共通のマザーボードに取り付けられていることもあれば、適切な場合には他の態様により取り付けられていることもある。プロセッサ502は、高速インタフェース508に結合されているディスプレイ516などの外部の入出力デバイス上においてグラフィカルユーザインタフェース(GUI)用のグラフィカル情報を表示するためのメモリ504または記憶デバイス506に記憶されている命令を含む、コンピューティングデバイス500内における実行のための命令を処理することが可能である。他の実装では、複数のプロセッサおよび/または複数のバスは、適切な場合、複数のメモリおよびある種のメモリとともに使用されてよい。さらに、複数のコンピューティングデバイスが接続されて、各デバイスが必要な動作のうちの部分を提供してよい(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステム)。
【0058】
メモリ504は、コンピューティングデバイス500内において情報を記憶する。いくつかの実装では、メモリ504は、1つ以上の揮発性メモリユニットである。いくつかの実装では、メモリ504は、1つ以上の不揮発性メモリユニットである。さらに、メモリ504は、磁気ディスクまたは光学ディスクなどの、別の形態のコンピュータ可読媒体であってもよい。
【0059】
記憶デバイス506は、コンピューティングデバイス500のために大容量の記憶を提供できる。いくつかの実装では、記憶デバイス506は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の同様のソリッド・ステート・メモリ・デバイス、またはデバイスからなるアレイ(ストレージエリアネットワークまたは他の構成のデバイスを含む)などの、コンピュータ可読媒体であってよい。命令は、情報キャリアに記憶されることが可能である。命令は、1または複数の処理デバイス(例えば、プロセッサ502)による実行時に、上述した方法などの1つ以上の方法を実行する。命令は、コンピュータ可読または機械可読媒体(例えば、メモリ504、記憶デバイス506、またはプロセッサ502上のメモリ)などの1または複数の記憶デバイスによって記憶されることも可能である。
【0060】
高速制御部508は、コンピューティングデバイス500のために帯域集約の動作を管理する一方、低速制御部512は、比較的低い帯域集約の動作を管理する。機能のそうした割り当ては、例示にすぎない。いくつかの実装では、高速制御部508は、メモリ504と、ディスプレイ516(例えば、グラフィクスのプロセッサまたはアクセラレータを通じて)と、様々な拡張カード(図示せず)を受容し得る高速拡張ポート510とに結合されている。その実装では、低速制御部512は、記憶デバイス506と低速拡張ポート514とに結合されている。様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポート514は、キーボード、ポインティングデバイス、スキャナなどの、1つ以上の入出力デバイス、またはスイッチもしくはルータなどのネットワーキングデバイス(例えば、ネットワークアダプタを通じて)に結合されていてよい。
【0061】
コンピューティングデバイス500は、図に示すように、多くの異なる形態において実装されてよい。例えば、コンピューティングデバイス500は、スタンダードサーバ520として実装されるか、またはそうしたサーバのグループにおいて複数回にわたって実装されてよい。さらに、コンピューティングデバイス500は、ラップトップコンピュータ522などのパーソナルコンピュータにおいて実装されてよい。さらに、コンピューティングデバイス500は、ラックサーバシステム524の一部として実装されてもよい。これに代えて、コンピューティングデバイス500のコンポーネントは、モバイルコンピューティングデバイス450などのモバイルデバイス(図示せず)における他のコンポーネントと組み合わされてよい。そうしたデバイスの各々は、コンピューティングデバイス500およびモバイルコンピューティングデバイス450のうちの1または複数を含んでよく、システム全体が、互いに通信する複数のコンピューティングデバイスから構成されてもよい。
【0062】
モバイルコンピューティングデバイス450は、プロセッサ552と、メモリ564と、ディスプレイ554などの入出力デバイスと、通信インタフェース566と、送受信機568とをコンポーネントとして特に備える。モバイルコンピューティングデバイス450には、追加の記憶部を提供するために、マイクロドライブまたは他のデバイスなどの記憶デバイスがさらに提供されてよい。プロセッサ552、メモリ564、ディスプレイ554、通信インタフェース566、および送受信機568の各々は、様々なバスを用いて相互接続されており、コンポーネントのうちのいくつかは、共通のマザーボードに取り付けられていることもあれば、適切な場合には他の態様により取り付けられていることもある。
【0063】
プロセッサ552は、モバイルコンピューティングデバイス450内において、メモリ564に記憶されている命令を含む命令を実行できる。プロセッサ552は、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップからなるチップセットとして実装されてよい。プロセッサ552は、例えば、ユーザインタフェースの制御などのモバイルコンピューティングデバイス450の他のコンポーネントの協調と、モバイルコンピューティングデバイス450によって動作させられるアプリケーションと、モバイルコンピューティングデバイス450による無線通信とを可能にする。
【0064】
プロセッサ552は、ディスプレイ554に結合されている制御インタフェース558およびディスプレイインタフェース556を通じてユーザと通信し得る。ディスプレイ554は、例えば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイもしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってよい。ディスプレイインタフェース556は、グラフィカル情報および他の情報をユーザに提示するためにディスプレイ554を動作させるための適切な回路を備えてよい。制御インタフェース558は、ユーザからコマンドを受信し、プロセッサ552に渡すためにそのコマンドを変換してよい。さらに、外部インタフェース562は、他のデバイスとのモバイルコンピューティングデバイス450の近領域通信を可能にするように、プロセッサ552と通信していてもよい。外部インタフェース562は、例えば、いくつかの実装実施形態における有線通信または他の実装における無線通信を可能にする場合があり、さらに、複数のインタフェースが用いられてよい。
【0065】
メモリ564は、モバイルコンピューティングデバイス450内において、情報を記憶する。メモリ564は、1つ以上のコンピュータ可読媒体と、1つ以上の揮発性メモリユニットと、1つ以上の不揮発性メモリユニットと、のうちの1つ以上として実装されることが可能である。さらに、拡張メモリ574が提供されるとともに、例えば、SIMM(シングルインラインメモリモジュール)カードインタフェースを含み得る拡張インタフェース572を通じてモバイルコンピューティングデバイス450に接続されてよい。その拡張メモリ574によって、モバイルコンピューティングデバイス450のための余分な記憶スペースが提供される場合もあれば、また、モバイルコンピューティングデバイス450のためのアプリケーションまたは他の情報が記憶される場合もある。具体的には、拡張メモリ574は、上述した処理を実行し、または補完するための命令を含んでよく、さらに、セキュア情報も含んでいてよい。したがって、例えば、拡張メモリ574は、モバイルコンピューティングデバイス450のためのセキュリティモジュールとして提供される場合もあり、モバイルコンピューティングデバイス450のセキュアな使用を可能にする命令に関しプログラムされていてもよい。さらに、セキュアアプリケーションは、ハッキング不可能な態様により識別情報をSIMMカード上に配置することなど、追加の情報とともにSIMMカードを介して提供される場合がある。
【0066】
メモリは、例えば、下記のように、フラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含み得る。いくつかの実装では、命令は、命令が1または複数の処理デバイス(例えば、プロセッサ552)により実行されたときに上述した方法などの1つ以上の方法を実行する、情報キャリアに記憶される。命令は、1または複数のコンピュータ可読または機械可読媒体(例えば、メモリ564、拡張メモリ574、またはプロセッサ552上のメモリ)などの1または複数の記憶デバイスによって記憶されることも可能である。いくつかの実装では、命令は、例えば、送受信機568または外部インタフェース562を通じて、伝搬信号により受信されることが可能である。
【0067】
モバイルコンピューティングデバイス450は、必要な場合にはデジタル信号処理回路を含み得る通信インタフェース566を通じて無線により通信できる。通信インタフェース566は、特に、GSM(モバイル通信用グローバルシステム)(登録商標)ボイスコール、SMS(ショートメッセージサービス)、EMS(拡張メッセージサービス)、またはMMS(マルチメディアメッセージサービス)、CDMA(符号分割多元接続)、TDMA(時分割多元接続)、PDC(パーソナルデジタルセルラ)、WCDMA(広帯域符号分割多元接続)(登録商標)、CDMA2000、またはGPRS(汎用パケット無線システム)など、様々なモードまたはプロトコルの下、通信を可能にし得る。そうした通信は、例えば、無線周波数を用いた送受信機568を通じて行われてよい。さらに、狭域通信は、Bluetooth、WiFi(登録商標)、または他のそうした送受信機(図示せず)を用いることなどによって、行われてもよい。さらに、GPS(全地球測位システム)受信機モジュール570は、航行および場所に関係する追加の無線データをモバイルコンピューティングデバイス450に提供でき、その無線データは、適切な場合には、モバイルコンピューティングデバイス450上において動作するアプリケーションによって使用されてもよい。
【0068】
さらに、モバイルコンピューティングデバイス450は、ユーザから音声情報を受信し、これを使用に適したデジタル情報に変換できる音声コーデック560を用いて可聴の通信を行ってもよい。音声コーデック560は、例えば、モバイルコンピューティングデバイス450のハンドセットにおいて、スピーカを通じることなどによりユーザに対して可聴音を同様に生成してよい。そうした音は、音声通話からの音を含む場合もあれば、記録された音(例えば、ボイスメッセージ、音楽ファイルなど)を含む場合もあれば、また、モバイルコンピューティングデバイス450上において動作するアプリケーションによって生成される音を含む場合もある。
【0069】
コンピューティングデバイス450は、図に示すように、多くの異なる形態により実装されてよい。例えば、コンピューティングデバイス450は、携帯電話580として実装されてよい。コンピューティングデバイス450は、スマートフォン582、個人用情報端末、または他の同様のモバイルデバイスの一部として実装されてもよい。
【0070】
本明細書に記載されたシステムおよび技術の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにより実現することができる。これらの様々な実装は、記憶システム、1以上の入力デバイス、および1以上の出力デバイスからデータおよび命令を受信し、また記憶システム、1以上の入力デバイス、および1以上の出力デバイスにデータおよび命令を送信するように結合された1以上のプログラム可能なプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1または複数のコンピュータプログラムにおける実装を含むことが可能である。
【0071】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラム可能なプロセッサ用のマシン命令を含み、高度な手続き型および/またはオブジェクト指向プログラミング言語および/またはアセンブリ言語/機械語により実装されることが可能である。プログラムは、マークアップ言語ドキュメントに格納されている1つ以上のスクリプト等である他のプログラムまたはデータを保持するファイルの一部に格納できる。プログラムは、当該プログラム専用の単一のファイルに保存できる。またはプログラムは、複数の調整されたファイル、例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイルに格納できる。コンピュータプログラムは、1台のコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータで実行されるようにデプロイ可能である。
【0072】
本明細書にて用いられる「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械可読信号として機械命令を受信する機械可読媒体を含むプログラマブルプロセッサに機械命令および/またはデータを提供するように用いられる任意のコンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するように用いられる任意の信号を指す。
【0073】
ユーザとの対話を提供するために、本明細書に記載されたシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがそれによって入力をコンピュータに提供することが可能なキーボードおよびポインティングデバイス(例えば、マウスまたはトラックボール)と、を有するコンピュータ上に実装されてもよい。他の種類のデバイスもまた、ユーザとの対話を提供するように用いられてよく、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触知フィードバック)であることが可能であり、ユーザからの入力は、音響入力、音声入力、または触知入力を含む任意の形態により受信されることが可能である。
【0074】
本明細書に記載されたシステムおよび技術は、バックエンドコンポーネント(例えば、データサーバとして)を含むコンピューティングシステム、ミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むコンピューティングシステム、フロントエンドコンポーネント(例えば、ユーザが本明細書に記載されたシステムおよび技術の実装と対話可能なグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステム、またはそうしたバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組み合わせにより実装されることが可能である。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(例えば、通信ネットワーク)によって相互接続されることが可能である。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが含まれる。
【0075】
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、一般に、互いに遠く離れており、典型的には、通信ネットワークを介してインタラクトする。クライアントとサーバとの関係は、個々のコンピュータ上で動作し、かつ互いにクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
【0076】
上記に加えて、本明細書に記載のシステム、プログラムまたは機能がユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的アクションまたはアクティビティ、職業、ユーザプリファレンス、またはユーザの現在の位置に関する情報)の収集を可能にするかどうか、およびいつ可能であるかについて、ユーザにサーバからコンテンツまたは通信が送信されるかについて、まずユーザが選択を行うことを可能にする制御をユーザに提供することができる。さらに、特定のデータは、個人識別可能な情報が削除されるように、保管または使用される前に1つ以上の方法で処理される場合がある。
【0077】
一部の実施形態では、例えば、ユーザの識別情報は、そのユーザについて個人識別可能な情報を決定することができないように扱われてもよく、またはユーザの地理的位置は、位置情報が得られる場所(都市、郵便番号、州レベルなど)ユーザの特定の場所を特定することができない。したがって、ユーザは、ユーザに関する情報の何が収集され、この情報がどのように使用され、どのような情報がユーザに提供されるかについて制御することができる。
【0078】
いくつかの実施形態が記載された。それでも、本発明の範囲から逸脱することなく様々は変形が行われてもよいことが理解されるであろう。例えば、上記のフローの様々な形態を使用して、ステップを並べ替え、追加、または削除することができる。また、システムおよび方法のいくつかの用途が説明されているが、他の多くの用途が企図されていることを認識すべきである。したがって、他の実施形態は、以下の請求の範囲内のものである。
【0079】
主題の特定の実施形態が説明された。他の実施形態は、以下の請求の範囲内である。例えば、請求の範囲に記載されたアクションは、異なる順序で実行することができ、それでも所望の結果を達成することができる。一例として、所望の結果を達成するために、添付の図に示されているプロセスは、必ずしも示されている特定の順序または順次的順序を必要としない。場合によっては、マルチタスクと並列処理が有利な場合がある。