(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-10
(45)【発行日】2024-06-18
(54)【発明の名称】音声認識装置、制御方法、及びプログラム
(51)【国際特許分類】
G10L 15/22 20060101AFI20240611BHJP
【FI】
G10L15/22 453
(21)【出願番号】P 2022506994
(86)(22)【出願日】2020-03-09
(86)【国際出願番号】 JP2020009979
(87)【国際公開番号】W WO2021181451
(87)【国際公開日】2021-09-16
【審査請求日】2022-08-25
【前置審査】
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100110928
【氏名又は名称】速水 進治
(72)【発明者】
【氏名】古明地 秀治
(72)【発明者】
【氏名】山本 仁
【審査官】中村 天真
(56)【参考文献】
【文献】特開2012-181307(JP,A)
【文献】特許第6511189(JP,B1)
【文献】韓国公開特許第10-2014-0076816(KR,A)
【文献】特開2014-178959(JP,A)
【文献】特開2008-116744(JP,A)
【文献】奥田浩三ほか,“ゆう度基準による分析周期・窓長の自動選択手法を用いた発話速度の補正と音響モデルの構築”,電子情報通信学会論文誌,2003年02月,Vol. J86-D-II, No.2,p.204-211
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
(57)【特許請求の範囲】
【請求項1】
発話が含まれるソース音声信号をテキスト列に変換する変換部と、
前記テキスト列において隣接するテキスト同士を連結することにより、前記発話の内容を表す連結テキストを生成する連結部と、を有し、
前記テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複しており、
前記連結部は、
前記テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、
前記先行テキストと
前記後続テキストとが重複する時間区間について、前記先行テキストの文字と前記後続テキストの文字とが一致しない時点を検出し、
前記検出した時点と前記先行テキストに対応する音声信号の終了時点との差分である第1差分が、前記検出した時点と前記後続テキストに対応する音声信号の開始時点との差分である第2差分よりも大きければ、前記検出した時点に対応する前記連結テキストの文字として前記先行テキストの文字を利用し、
前記第1差分が前記第2差分よりも小さければ、前記検出した時点に対応する前記連結テキストの文字として前記後続テキストの文字を利用
し、
前記先行テキストからはその末尾を含む一部を除外し、前記後続テキストからはその先頭を含む一部を除外する、音声認識装置。
【請求項2】
各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号の話者又は話者のグループに基づいて定まる、請求項
1に記載の音声認識装置。
【請求項3】
各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号の言語に基づいて定まる、請求項
1に記載の音声認識装置。
【請求項4】
各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号によって表される発話の種類に基づいて定まる、請求項
1に記載の音声認識装置。
【請求項5】
各前記テキストに対応する音声信号の長さは、その音声信号に含まれる発話の推定速度を表す指標値に基づいて定まる、請求項
1に記載の音声認識装置。
【請求項6】
コンピュータによって実行される制御方法であって、
発話が含まれるソース音声信号をテキスト列に変換する変換ステップと、
前記テキスト列において隣接するテキスト同士を連結することにより、前記発話の内容を表す連結テキストを生成する連結ステップと、を有し、
前記テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複しており、
前記連結ステップにおいて、前記テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、
前記先行テキストと前記後続テキストとが重複する時間区間について、前記先行テキストの文字と前記後続テキストの文字とが一致しない時点を検出し、
前記検出した時点と前記先行テキストに対応する音声信号の終了時点との差分である第1差分が、前記検出した時点と前記後続テキストに対応する音声信号の開始時点との差分である第2差分よりも大きければ、前記検出した時点に対応する前記連結テキストの文字として前記先行テキストの文字を利用し、
前記第1差分が前記第2差分よりも小さければ、前記検出した時点に対応する前記連結テキストの文字として前記後続テキストの文字を利用し、
前記先行テキストからはその末尾を含む一部を除外し、
前記後続テキストからはその先頭を含む一部を除外する、制御方法。
【請求項7】
制御方法をコンピュータに実行させるプログラムであって、
前記制御方法は、
発話が含まれるソース音声信号をテキスト列に変換する変換ステップと、
前記テキスト列において隣接するテキスト同士を連結することにより、前記発話の内容を表す連結テキストを生成する連結ステップと、を有し、
前記テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複しており、
前記連結ステップにおいて、前記テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、
前記先行テキストと前記後続テキストとが重複する時間区間について、前記先行テキストの文字と前記後続テキストの文字とが一致しない時点を検出し、
前記検出した時点と前記先行テキストに対応する音声信号の終了時点との差分である第1差分が、前記検出した時点と前記後続テキストに対応する音声信号の開始時点との差分である第2差分よりも大きければ、前記検出した時点に対応する前記連結テキストの文字として前記先行テキストの文字を利用し、
前記第1差分が前記第2差分よりも小さければ、前記検出した時点に対応する前記連結テキストの文字として前記後続テキストの文字を利用し、
前記先行テキストからはその末尾を含む一部を除外し、
前記後続テキストからはその先頭を含む一部を除外する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は音声認識に関する。
【背景技術】
【0002】
音声認識技術が開発されている。音声認識により、例えば、人の発話が含まれる音声信号が、その発話の内容を表すテキストに変換される。
【0003】
特許文献1は、音声認識により、音声信号から単語ネットワークを生成する技術を開示している。ここで、特許文献1では、音声信号が複数の区間に分割され、各区間の音声信号に対して音声認識が行われる。また、隣接する区間は、時間軸上でその一部が互いに重複する。そして、隣接する区間の重複部分に対応する単語ネットワークには、双方の区間から検出された単語であって、かつ、両区間における時間重複の割合が大きいものが採用される。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1において、隣接する区間の重複部分に対応する単語ネットワークに含める単語は、双方の区間から検出された単語から選ばれる。しかしながら、認識結果として正しい単語が双方の区間から検出されるとは限らず、片方の区間からしか検出されない場合もありうる。このように重複する区間の片方からしか正しい単語が検出されない場合、特許文献1の方法では、認識結果に誤りが生じてしまう。
【0006】
本発明は上記の課題に鑑みてなされたものであり、その目的の一つは、音声認識の精度を向上させる技術を提供することである。
【課題を解決するための手段】
【0007】
本発明の音声認識装置は、発話が含まれるソース音声信号をテキスト列に変換する変換部と、テキスト列において隣接するテキスト同士を連結することにより、発話の内容を表す連結テキストを生成する連結部と、を有する。
テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複している。
連結部は、テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、先行テキストからはその末尾を含む一部を除外し、後続テキストからはその先頭を含む一部を除外する。
【0008】
本発明の制御方法は、コンピュータによって実行される。当該制御方法は、発話が含まれるソース音声信号をテキスト列に変換する変換ステップと、テキスト列において隣接するテキスト同士を連結することにより、発話の内容を表す連結テキストを生成する連結ステップと、を有する。
テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複している。
連結ステップにおいて、テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、先行テキストからはその末尾を含む一部を除外し、後続テキストからはその先頭を含む一部を除外する。
【0009】
本発明のプログラムは、本発明の制御方法をコンピュータに実行させる。
【発明の効果】
【0010】
本発明によれば、音声認識の精度を向上させる技術が提供される。
【図面の簡単な説明】
【0011】
【
図1】実施形態1に係る音声認識装置2000の動作を概念的に例示する図である。
【
図2】音声認識装置2000の機能構成を例示するブロック図である。
【
図3】音声認識装置2000を実現するための計算機1000を例示する図である。
【
図4】実施形態1の音声認識装置2000によって実行される処理の流れを例示するフローチャートである。
【
図5】3つの音声信号が重複するケースを例示する図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。以下の説明において、特に説明しない限り、各種所定の値(閾値など)は、その値を利用する機能構成部からアクセス可能な記憶装置に予め記憶させておく。
【0013】
[実施形態1]
<概要>
図1は、実施形態1に係る音声認識装置2000の動作を概念的に例示する図である。ここで、
図1を用いて説明する音声認識装置2000の動作は、音声認識装置2000の理解を容易にするための例示であり、音声認識装置2000の動作を限定するものではない。音声認識装置2000の動作の詳細やバリエーションについては後述する。
【0014】
音声認識装置2000は、発話を表す音声を、その発話の内容を表すテキストに変換するために利用される。そのために、音声認識装置2000は以下のように動作する。
【0015】
音声認識装置2000は、ソースデータ10を取得する。ソースデータ10は、人の発話が記録された音声データであり、例えば会話やスピーチの録音データなどである。音声データは、例えば、音声信号の波形を表すベクトルデータなどである。以下、ソースデータ10によって表される音声信号を、ソース音声信号とも呼ぶ。
【0016】
音声認識装置2000は、ソースデータ10から音声フレーム列20を生成する。音声フレーム列20は、ソースデータ10から得られる複数の音声フレームの時系列データである。音声フレームは、例えば、ソース音声信号のうち、一部の時間区間の音声信号を表す音声データや、その音声データから得られる音声特徴量である。ここで、音声フレーム列20において互いに隣接する音声フレームは、それらに対応する音声信号の一部が、時間軸上で互いに重複する。
【0017】
音声認識装置2000は、音声フレーム列20に含まれる各音声フレームをテキスト32に変換することで、音声フレーム列20をテキスト32の列(テキスト列30)に変換する。そして音声認識装置2000は、テキスト列30において互いに隣接するテキスト32を連結することで、ソースデータ10によって表される発話の内容を表すテキスト(連結テキスト40)を生成する。
【0018】
ここで、前述した通り、音声フレーム列20において互いに隣接する音声フレームは、それらによって表される音声信号の一部が、時間軸上で互い重複している。そのため、テキスト列30において互いに隣接するテキスト32にも、重複部分が存在する。言い換えれば、或るテキスト32に対応する音声信号と、その次に位置するテキスト32に対応する音声信号とについて、重複する時間区間が存在する。そのため、互いに隣接するテキスト32同士を連結する際には、このような重複を排除する必要がある。
【0019】
ここで、音声信号からテキストへの変換を行う際、音声信号の先頭と末尾については、その変換精度が低くなりやすい。そこで音声認識装置2000は、互いに連接するテキスト32を連結する際、前に位置するテキスト32については、その末尾の一部を除外し、かつ、後に位置するテキスト32については、その先頭の一部を除外した上で、連結を行う。例えば
図1では、テキスト32-1とテキスト32-2を連結する際、テキスト32-1の末尾とテキスト32-2の先頭が排除されている。同様に、テキスト32-2とテキスト32-3を連結する際、テキスト32-2の末尾とテキスト32-3の末尾が排除されている。
【0020】
例えば、「特に今日は天気が良い」という発話の内容を表すソースデータ10を音声認識装置2000に入力したとする。そして、ソースデータ10から音声フレーム-1と音声フレーム-2が生成され、これらがそれぞれ、「とくにきょうはへいき」というテキスト32-1と、「しょうはてんきがいい」というテキスト32-2に変換されたとする。
【0021】
この場合、例えば音声認識装置2000は、テキスト32-1の末尾から「へいき」という部分テキストを除くことで、「とくにきょうは」というテキストを得る。また、音声認識装置2000は、テキスト32-2の先頭から「しょうは」という部分テキストを除くことで、「てんきがいい」というテキストを得る。そして音声認識装置2000は、「とくにきょうは」と「てんきがいい」を連結することで、「とくにきょうはてんきがいい(特に今日は天気がいい)」という連結テキスト40を生成する。
【0022】
<作用効果の一例>
音声認識対象の音声信号(ソース音声信号)から複数の音声信号を抽出してテキストへ変換する際、抽出した音声信号の先頭や末尾の部分では、それ以外の部分と比較して変換の精度が低くなりやすい。そこで音声認識装置2000では、ソース音声信号から音声フレーム列20を生成する際、隣接する音声フレーム同士の一部が時間軸上で互いに重複するように、音声信号が抽出される。そして、各音声フレームから得られたテキスト32を連結することで発話の内容を表す連結テキスト40を生成する際、互いに隣接するテキスト32の連結が、前に位置するテキスト32についてはその末尾の一部を除外し、かつ、後に位置するテキスト32についてはその先頭の一部を除外した上で行われる。このようにすることで、音声認識の結果として得られる、発話の内容を表すテキスト(連結テキスト40)では、変換の精度(すなわち、音声認識の精度)が低くなりやすい音声信号の先頭や末尾に対応するテキストが利用されない。よって、精度の高い音声認識を実現することができる。
【0023】
ここで、前述した特許文献1にも、異なる区間の認識結果を連結させる方法が記載されている。具体的には、特許文献1では、隣接する区間の重複部分について、双方の区間から検出された単語の中から時間軸上で重複している割合が所定程度以上である単語を選択することで、単語ネットワークが形成される。
【0024】
しかしながら、正しい単語が、重複する区間の双方から検出されるとは限らず、片方の区間からしか検出されない場合もありうる。このように正しい単語が重複する区間の片方からしか検出されなかった場合、正しい単語が単語ネットワークに含まれないこととなり、認識結果に誤りが生じてしまう。
【0025】
この点、音声認識装置2000による音声認識では、「正しい単語が重複する区間の片方からしか検出されないために認識結果に誤りが生じる」といった問題は生じないため、音声認識の精度が向上する。
【0026】
以下、音声認識装置2000についてより詳細に説明する。
【0027】
<機能構成の例>
図2は、音声認識装置2000の機能構成を例示するブロック図である。音声認識装置2000は、変換部2020及び連結部2040を有する。変換部2020は、ソースデータ10を音声フレーム列20に変換する。さらに、変換部2020は、音声フレーム列20に含まれる各音声フレームをテキスト32に変換することで、音声フレーム列20をテキスト列30に変換する。連結部2040は、テキスト列30において互いに連続するテキスト32同士を連結することで、連結テキスト40を生成する。ここで、連結部2040は、互いに隣接するテキスト32同士を連結する際、前に位置するテキスト32からはその末尾の一部を除外し、かつ、後ろに位置するテキスト32からはその先頭の一部を除外した上で連結を行う。
【0028】
<ハードウエア構成の例>
音声認識装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、音声認識装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0029】
図3は、音声認識装置2000を実現するための計算機1000を例示する図である。計算機1000は、任意の計算機である。例えば計算機1000は、PC(Personal Computer)やサーバマシンなどといった、据え置き型の計算機である。その他にも例えば、計算機1000は、スマートフォンやタブレット端末などといった可搬型の計算機である。
【0030】
計算機1000は、音声認識装置2000を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。後者の場合、例えば、計算機1000に対して所定のアプリケーションをインストールすることにより、計算機1000で、音声認識装置2000の各機能が実現される。上記アプリケーションは、音声認識装置2000の機能構成部を実現するためのプログラムで構成される。
【0031】
計算機1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
【0032】
プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0033】
入出力インタフェース1100は、計算機1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0034】
ネットワークインタフェース1120は、計算機1000を通信網に接続するためのインタフェースである。この通信網は、例えば LAN(Local Area Network)や WAN(Wide Area Network)である。
【0035】
ストレージデバイス1080は、音声認識装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ1040は、このプログラムをメモリ1060に読み出して実行することで、音声認識装置2000の各機能構成部を実現する。
【0036】
ここで、音声認識装置2000は、1つの計算機1000で実現されてもよいし、複数の計算機1000で実現されてもよい。後者の場合、例えば音声認識装置2000は、変換部2020を実現する1つ以上の計算機1000と、連結部2040を実現する1つ以上の計算機1000とを有する分散システムとして実現される。
【0037】
<処理の流れ>
図4は、実施形態1の音声認識装置2000によって実行される処理の流れを例示するフローチャートである。変換部2020はソースデータ10を取得する(S102)。変換部2020はソースデータ10を音声フレーム列20に変換する(S104)。変換部2020は、音声フレーム列20をテキスト列30に変換する(S106)。連結部2040はテキスト列30を連結して連結テキスト40を生成する(S108)。
【0038】
<ソースデータ10の取得:S102>
変換部2020はソースデータ10を取得する(S102)。変換部2020がソースデータ10を取得する方法は任意である。例えば変換部2020は、ユーザが操作するユーザ端末から送信されるソースデータ10を受信することで、ソースデータ10を取得する。その他にも例えば、変換部2020は、変換部2020からアクセス可能な記憶装置に格納されているソースデータ10を取得してもよい。この場合、例えば音声認識装置2000は、ユーザ端末から、取得すべきソースデータ10の指定(ファイル名などの指定)を受け付ける。その他にも例えば、変換部2020は、上記記憶装置に格納されている1つ以上のデータをそれぞれソースデータ10として取得してもよい。すなわちこの場合、記憶装置に予め格納しておいた複数のソースデータ10についてバッチ処理が行われる。
【0039】
<音声フレーム列20への変換:S104>
変換部2020はソースデータ10を音声フレーム列20に変換する(S104)。ここで、音声フレーム列20において互いに隣接する音声フレームに対応する音声信号は、時間軸上でその一部が重複する。例えば変換部2020は、ソース音声信号の先頭から一定の時間幅でタイムウインドウを移動させながら、タイムウインドウに含まれる音声信号を順に抽出していく。以下、タイムウインドウの長さをウインドウ幅と呼び、一度の移動でタイムウインドウを移動させる長さをスライド幅と呼ぶ。
【0040】
音声フレームとして音声信号を扱う場合、変換部2020は、抽出された各音声信号を音声フレームとして、音声フレーム列20を生成する。一方、音声フレームとして音声特徴量を扱う場合、変換部2020は、抽出された各音声信号を音声特徴量に変換し、得られた各音声特徴量を音声フレームとして、音声フレーム列20を生成する。なお、時間軸上でより前に位置する音声信号に対応する音声フレームほど、音声フレーム列20でもより前に位置することになる。
【0041】
ここで、スライド幅はウインドウ幅よりも小さく設定される。こうすることで、ソース音声信号から抽出される音声信号のうち、少なくとも、互いに隣接する2つの音声信号は時間軸上で互いに重複することになる。なお、重複する音声信号は2つに限定されず、3つ以上の音声信号が重複するようにスライド幅やウインドウ幅が定められてもよい。
図5は、3つの音声信号が重複するケースを例示する図である。
【0042】
スライド幅やウインドウ幅は、固定で設定されていてもよいし、固定でなくてもよい。例えば後者の場合、種々の条件に応じて、スライド幅やウインドウ幅が定められる。例えば、条件と、その条件に対応する「スライド幅、ウインドウ幅」のペアとが対応づけられた情報を、予め記憶装置に格納しておく。以下、この情報を設定情報と呼ぶ。変換部2020は、条件を示す情報を取得し、その情報が示す条件に対応付けられているスライド幅やウインドウ幅を利用して、音声フレーム列20の生成を行う。
【0043】
なお、設定情報は、スライド幅とウインドウ幅のいずれか一方のみを示してもよい。例えば、設定情報にスライド幅のみが示されている場合、変換部2020は、スライド幅については設定情報に示されている値を利用し、ウインドウ幅についてはデフォルトで設定されている値を利用する。設定情報にウインドウ幅のみが示されている場合についても同様である。
【0044】
設定情報が示す条件には、様々なものを採用できる。例えば条件として、話者の識別情報を利用する。この場合、設定情報は、話者の識別情報に対し、スライド幅やウインドウ幅を対応付けている。変換部2020は、ソースデータ10によって表される発話の話者の識別情報を特定し、その識別情報を示す設定情報を取得する。
【0045】
変換部2020が話者の識別情報を取得する方法は様々である。例えば変換部2020は、ユーザによって入力された話者の識別情報を取得する。その他にも例えば、変換部2020は、ソースデータ10を利用して特定された話者の識別情報を取得してもよい。具体的には、音声認識装置2000は、ソースデータ10によって表される音声信号の一部を音声特徴量に変換し、その音声特徴量を利用して話者の識別情報を特定する。この場合、話者の識別情報と音声特徴量とを対応付けた情報を予め記憶装置に格納しておく。なお、音声特徴量を利用して話者を特定する技術には、既存の技術を利用することができる。
【0046】
なお、話者の識別情報の代わりに、話者のグループの識別情報を利用してもよい。例えば変換部2020は、ユーザによって入力された話者のグループの識別情報を取得する。
【0047】
条件としては、その他にも例えば、発話の言語を利用することができる。この場合、設定情報は、言語の識別情報に対し、スライド幅やウインドウ幅を対応付けている。変換部2020は、ソースデータ10によって表されている発話の言語の識別情報を特定し、その識別情報を示す設定情報を取得する。例えばソースデータ10が、英語の会話が録音された音声データである場合、英語という言語を示す設定情報が利用される。
【0048】
変換部2020が言語の識別情報を取得する方法は様々である。例えば変換部2020は、ユーザによって入力された言語の識別情報を取得する。その他にも例えば、変換部2020は、ソースデータ10を利用して、言語の識別情報を特定してもよい。具体的には、音声認識装置2000は、ソースデータ10によって表される音声信号の一部を音声特徴量に変換し、その音声特徴量を利用して言語の識別情報を特定する。なお、音声特徴量を利用して言語を特定する技術には、既存の技術を利用することができる。
【0049】
条件としては、その他にも例えば、タスク(発話の種類)を利用することができる。この場合、設定情報は、タスクの識別情報に対し、スライド幅やウインドウ幅を対応付けている。変換部2020は、ソースデータ10に対応するタスクの識別情報を特定し、その識別情報を示す設定情報を取得する。タスクとしては、例えば、会議やプレゼンテーションなどといったものを採用することができる。
【0050】
変換部2020が、ソースデータ10に対応するタスクの識別情報を取得する方法は様々である。例えば変換部2020は、ユーザによって入力されたタスクの識別情報を取得する。
【0051】
なお、音声特徴量から話者や言語などを特定する処理は、音声認識装置2000以外の他の装置によって行われてもよい。この場合、音声認識装置2000は、当該他の装置から、話者や言語の識別情報を取得する。
【0052】
前述した各種の条件に対応付けるスライド幅やウインドウ幅を決定する方法(設定情報を生成する方法)は任意である。例えば、音声認識装置2000の運用を開始する前に、テストデータを利用して設定情報を生成する。具体的には、特定の条件に当てはまるソースデータ10を音声認識装置2000へ与える操作を、スライド幅やウインドウ幅を様々に変えながら行う。そして、連結テキスト40が正しく得られたスライド幅やウインドウ幅と、上記特定の条件とを対応付けた設定情報を生成し、記憶装置に格納する。
【0053】
1つのソースデータ10から抽出される各音声信号の長さ(ウインドウ幅)は、一定でなくてもよい。例えば変換部2020は、ソースデータ10から音声信号を1つずつ順に抽出する際、これから抽出しようとしている音声信号によって表されている発話の推定速度(以下、推定話速)に応じて、その音声信号の長さを決定する。具体的には、抽出された各音声信号に含まれる音素の数を同程度にするために、推定話速が大きいほど音声信号の長さを長くすることが好適である。
【0054】
例えば変換部2020は、これから抽出しようとしている音声信号の開始時点から所定長の音声信号を解析することで、推定話速を表す指標値(以下、話速指標値)を算出する。さらに変換部2020は、算出した話速指標値に応じた長さの音声信号を抽出し、その音声信号から音声フレームを生成する。なお、話速指標値としては、単位時間当たりに含まれる単語数やモーラ数などを利用できる。
【0055】
話速指標値と音声信号との対応関係は、予め定めておく。例えば、話速指標値が入力されたことに応じて音声信号の長さを出力する関数を予め定義しておく。この関数には、任意の単調非減少関数を利用できる。単調非減少関数を利用することで、話速が大きいほど音声信号の長さが長くなる。この場合、変換部2020は、算出した話速指標値を上記関数に入力することで、音声信号の長さを算出する。なお、関数の代わりに学習済みモデルを利用してもよい。
【0056】
その他にも例えば、話速指標値について複数の数値範囲を定め、各数値範囲と音声信号の長さとを対応付けた情報を予め用意しておいてもよい。この場合、変換部2020は、算出した話速指標値が含まれる数値範囲に対応付けられている音声信号の長さを取得する。
【0057】
話速指標値は、これから抽出しようとしている音声信号ではなく、既に抽出された音声信号(例えば、直前に抽出された(時間軸上で1つ手前に位置する)音声信号)を利用して算出されてもよい。この場合、例えば変換部2020は、音声信号が抽出される度に、その音声信号から音声フレームを生成し、その音声フレームをテキスト列30に変換する。変換部2020は、音声信号の長さと、生成されたテキスト列30の長さなどを用いて、話速指標値を算出する。そして変換部2020は、算出した話速指標値を利用して、次に抽出する音声信号の長さを決定する。この方法によれば、音声認識装置2000の動作上必然的に生成されるテキスト列30を利用して話速指標値が算出されるため、効率的に処理を行うことができる。
【0058】
<<音声区間検出の利用について>>
変換部2020は、ソースデータ10を音声フレーム列20に変換する前に、音声区間検出を行って、ソース音声信号を1つ以上の音声区間に分割してもよい。言い換えれば、ソース音声信号から無音区間を排除してもよい。例えば1つの音声区間は、1つの文章を表す発話に相当する。そのため、ソース音声信号を音声区間に分割することで、ソース音声信号から、それぞれが1つの文章を表すと推測される複数の音声区間が得られる。
【0059】
この場合、変換部2020は、音声区間毎に音声フレーム列20を生成する。そのため、テキスト列30や連結テキスト40についても、音声区間ごとに生成されることになる。よって、例えば、ソースデータ10から、それぞれが1つの文章を表す複数の連結テキスト40が得られることになる。
【0060】
ただし、音声区間検出では、1つの文章が複数の音声区間に区切られてしまうことがある。例えば、促音を無音区間として誤認識してしまうケースなどである。
【0061】
そこで例えば、変換部2020は、所定値以下の長さの無音区間が検出された場合、当該無音区間の前後の音声区間をまとめて、1つの音声区間として扱ってもよい。すなわち、当該無音区間の前の音声区間の先頭から、当該無音区間の後の音声区間の終端までの区間が、1つの音声区間にまとめられる。(言い換えれば、このように短い無音区間については、無音区間として扱わないようにする)。
【0062】
変換部2020は、このように2つの音声区間を1つの音声区間にまとめた後に、その1つの音声区間について音声フレーム列20を生成してもよいし、まとめる前の2つの音声区間から個々に音声フレーム列20を生成してもよい。後者の場合、変換部2020は、個々に生成された2つの音声フレーム列20を1つに連結する。この際、例えば変換部2020は、上記無音区間を含む部分についても音声フレームを生成し、1)先行する音声区間について生成した音声フレーム列20、2)無音区間を含む部分について生成した音声フレーム、3)後続の音声区間について生成した音声フレーム列20という順で連結することで、1つの音声フレーム列20を生成することが好適である。このようにすることで、無音区間の前後についても精度の高い音声認識が可能となる。
【0063】
<テキスト列30への変換:S104>
変換部2020は音声フレーム列20をテキスト列30に変換する(S104)。音声フレームをテキストに変換する技術には、既存の技術を利用することができる。例えば変換部2020は、音声フレームをテキスト列30に変換するように学習された変換モデルを有する。変換部2020は、音声フレーム列20に含まれる各音声フレームを順に変換モデルに入力していく。その結果、変換モデルから、音声フレーム列20に対応するテキスト列30が得られる。なお、音声フレームをテキストに変換するモデルを生成する技術には既存の技術を利用することができる。
【0064】
<連結テキスト40の生成:S106>
連結部2040は、テキスト列30に含まれるテキスト32を連結して、連結テキスト40を生成する(S106)。前述したように、ソースデータ10から抽出される各音声信号は、時間軸上で隣接する他の音声信号と一部が重複している。そこで、連結部2040は、互いに隣接するテキスト32同士を連結する際、前に位置するテキスト32からはその末尾の一部を除外し、かつ、後ろに位置するテキスト32からはその先頭の一部を除外することで、連結するテキスト32同士が時間軸上で重複しないようにする。以下、互いに連結される2つのテキスト32のうち、前に位置するテキスト32を先行テキストと呼び、後ろに位置するテキスト32を後続テキストと呼ぶ。また、重複している部分のテキストを、重複テキストと呼ぶ。
【0065】
このような連結を行うためには、先行テキストと後続テキストのそれぞれについて、除外すべき部分を特定する必要がある。そのために、例えば連結部2040は、以下の処理を行う。
【0066】
まず連結部2040は、先行テキストと後続テキストについて、時間軸上で互いに重複する範囲を特定する。例えば、変換部2020が各テキスト32を生成する際、テキスト32に含まれる文字ごとに、その文字に対応する音声信号の時間軸上の位置(例えば、ソース音声信号の開始位置を0とする相対時点)を記録しておく。連結部2040は、このように記録された情報を利用して、先行テキストと後続テキストの重複範囲を特定できる。
【0067】
例えば、先行テキストに対応する音声信号の開始時点と終了時点がそれぞれ t1 と t2 であり、後続テキストに対応する音声信号の開始時点と終了時点がそれぞれ t3 と t4 であるとする。この場合、先行テキストに対応する音声信号と後続テキストに対応する音声信号は、時点 t3 から 時点 t2 までの時間区間で互いに重複している。そのため、先行テキストのうち、時点 t3 から時点 t2 までの音声信号に対応する部分が、後続テキストと重複しているテキストである。後続テキストについても同様である。
【0068】
例えば連結部2040は、先行テキストと後続テキストとが重複する時間区間(以下、重複区間)について、その中点(以下、重複中心時点)を算出する。前述した例では、(t2-t3)/2 が重複中心時点となる。そして連結部2040は、先行テキストから重複中心時点以降の部分を除外し、後続テキストから重複中心時点以前の部分を除外する。こうすることで、先行テキストと後続テキストの重複が排除される。
【0069】
その他にも例えば、連結部2040は、第1重複テキストと第2重複テキストを比較して、互いに一致しない部分を1つ以上検出する。そして、連結部2040は、検出された不一致部分が、重複区間の開始時点と終了時点のどちらに近いかを判定する。不一致部分が開始時点により近い場合、連結部2040は、第2重複テキストにおいて、不一致部分に対応する文字を削除する(空白を表すテキストに置き換える)。一方、不一致部分が終了時点により近い場合、連結部2040は、第1重複テキストにおいて、不一致部分に対応する文字を削除する(空白を表すテキストに置き換える)。このようにすることで、開始時点から近い部分については後続テキストの内容が優先され、終了時点から近い部分については先行テキストの内容が優先される。
【0070】
言い換えれば、連結部2040は、互いに隣接するテキスト32を連結する際、重複区間において先行テキストと後続テキストの内容が一致していなければ、いずれか一方の内容を採用する。その際、連結部2040は、不一致部分が重複区間の終了時点よりも開始時点に近ければ、後続テキストの内容を採用し、不一致部分が重複区間の開始時点よりも終了時点に近ければ、先行テキストの内容を採用する。
【0071】
<連結テキスト40の利用方法>
連結テキスト40の利用方法は任意である。例えば音声認識装置2000は、生成された連結テキスト40を出力する。連結テキスト40の出力先は任意である。例えば音声認識装置2000は、連結テキスト40を記憶装置に格納したり、連結テキスト40をディスプレイ装置に表示させたり、連結テキスト40を他の任意の装置(例えば、ソースデータ10の送信元)へ送信したりする。連結テキスト40はソースデータ10によって表される発話の内容を表すテキストであるため、このようにして出力された連結テキスト40を閲覧することにより、音声認識装置2000のユーザは、ソースデータ10によって表される発話の内容を視覚的に把握することができるようになる。
【0072】
音声認識装置2000は、連結テキスト40をそのまま出力するのではなく、連結テキスト40に対して種々の処理をさらに施してから、連結テキスト40を出力してもよい。例えば連結テキスト40がひらがなやカタカナの文字列である場合、音声認識装置2000は、連結テキスト40に対して、かな漢字変換処理を施してもよい。これにより、連結テキスト40が、漢字を含むテキストに変換される。なお、ひらがなやカタカナの文字列を、漢字を含むテキストに変換する技術には、既存の技術を利用することができる。
【0073】
<利用シーンに応じたモデルの選択>
音声フレームをテキストに変換する変換モデルは、利用シーンに応じて切り替えられることが好適である。例えば、コンピュータ分野の人たちの会議ではコンピュータ分野の専門用語が多く現れる一方、医学分野の人たちの会議では医学分野の専門用語が多く現れる。そこで例えば、分野ごとに学習済みモデルを用意しておく。その他にも例えば、日本語や英語などといった言語ごとにモデルを用意しておくことが好適である。
【0074】
利用シーン(分野や言語)ごとにモデルのセットを選択する方法には、様々な方法を採用できる。例えば、1つの音声認識装置2000において、利用シーンに応じてモデルを切り替えられるようにしておく。この場合、音声認識装置2000からアクセス可能な記憶装置に、利用シーンの識別情報と学習済みモデルとを対応付けて、予め格納しておく。音声認識装置2000は、ユーザに対し、利用シーンを選択する画面を提供する。音声認識装置2000は、ユーザによって選択された利用シーンに対応する学習済みモデルを記憶装置から読み出す。変換部2020や連結部2040は、読み出したモデルを利用する。これにより、ユーザによって選択された利用シーンに適した学習済みモデルを利用して、音声フレームからテキストへの変換が行われる。
【0075】
その他にも例えば、音声認識装置2000を複数用意し、各音声認識装置2000にそれぞれ異なるモデルを設定しておいてもよい。この場合、利用シーンに対応した音声認識装置2000が利用されるようにする。例えば、ユーザからリクエストを受け付けるフロントエンドのマシンを用意し、そのマシンが前述した選択画面を提供するようにする。ユーザが選択画面で利用シーンを選択すると、選択された利用シーンに対応する音声認識装置2000を利用して、音声フレームからテキストへの変換が行われる。
【0076】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
1. 発話が含まれるソース音声信号をテキスト列に変換する変換部と、
前記テキスト列において隣接するテキスト同士を連結することにより、前記発話の内容を表す連結テキストを生成する連結部と、を有し、
前記テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複しており、
前記連結部は、前記テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、先行テキストからはその末尾を含む一部を除外し、後続テキストからはその先頭を含む一部を除外する、音声認識装置。
2. 前記連結部は、
先行テキストと後続テキストとが重複する時間区間の中点を特定し、
前記連結テキストにおいて、前記中点以前の時間範囲には前記先行テキストの文字を利用し、前記中点以降の時間範囲には前記後続テキストの文字を利用する、1.に記載の音声認識装置。
3. 前記連結部は、
先行テキストと後続テキストとが重複する時間区間について、前記先行テキストの文字と前記後続テキストの文字とが一致しない時点を検出し、
前記検出した時点と前記先行テキストに対応する音声信号の終了時点との差分である第1差分が、前記検出した時点と前記後続テキストに対応する音声信号の開始時点との差分である第2差分よりも大きければ、前記検出した時点に対応する前記連結テキストの文字として前記先行テキストの文字を利用し、
前記第1差分が前記第2差分よりも小さければ、前記検出した時点に対応する前記連結テキストの文字として前記後続テキストの文字を利用する、1.に記載の音声認識装置。
4. 各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号の話者又は話者のグループに基づいて定まる、1.から3いずれか一つに記載の音声認識装置。
5. 各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号の言語に基づいて定まる、1.から3いずれか一つに記載の音声認識装置。
6. 各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号によって表される発話の種類に基づいて定まる、1.から3いずれか一つに記載の音声認識装置。
7. 各前記テキストに対応する音声信号の長さは、その音声信号に含まれる発話の推定速度を表す指標値に基づいて定まる、1.から3いずれか一つに記載の音声認識装置。
8. コンピュータによって実行される制御方法であって、
発話が含まれるソース音声信号をテキスト列に変換する変換ステップと、
前記テキスト列において隣接するテキスト同士を連結することにより、前記発話の内容を表す連結テキストを生成する連結ステップと、を有し、
前記テキスト列において互いに隣接するテキストに対応する音声信号同士は、時間軸上でその一部が互いに重複しており、
前記連結ステップにおいて、前記テキスト列において互いに隣接する先行テキストと後続テキストとを連結する際、先行テキストからはその末尾を含む一部を除外し、後続テキストからはその先頭を含む一部を除外する、制御方法。
9. 前記連結ステップにおいて、
先行テキストと後続テキストとが重複する時間区間の中点を特定し、
前記連結テキストにおいて、前記中点以前の時間範囲には前記先行テキストの文字を利用し、前記中点以降の時間範囲には前記後続テキストの文字を利用する、8.に記載の制御方法。
10. 前記連結ステップにおいて、
先行テキストと後続テキストとが重複する時間区間について、前記先行テキストの文字と前記後続テキストの文字とが一致しない時点を検出し、
前記検出した時点と前記先行テキストに対応する音声信号の終了時点との差分である第1差分が、前記検出した時点と前記後続テキストに対応する音声信号の開始時点との差分である第2差分よりも大きければ、前記検出した時点に対応する前記連結テキストの文字として前記先行テキストの文字を利用し、
前記第1差分が前記第2差分よりも小さければ、前記検出した時点に対応する前記連結テキストの文字として前記後続テキストの文字を利用する、8.に記載の制御方法。
11. 各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号の話者又は話者のグループに基づいて定まる、8.から10いずれか一つに記載の音声認識装置。
12. 各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号の言語に基づいて定まる、8.から10いずれか一つに記載の音声認識装置。
13. 各前記テキストに対応する音声信号の長さ、又は隣接するテキストに対応する音声信号同士が重複する時間の長さは、前記ソース音声信号によって表される発話の種類に基づいて定まる、8.から10いずれか一つに記載の音声認識装置。
14. 各前記テキストに対応する音声信号の長さは、その音声信号に含まれる発話の推定速度を表す指標値に基づいて定まる、8.から10いずれか一つに記載の音声認識装置。
15. 8.から14いずれか一つに記載の制御方法をコンピュータに実行させるプログラム。
【符号の説明】
【0077】
10 ソースデータ
20 音声フレーム列
30 テキスト列
32 テキスト
40 連結テキスト
1000 計算機
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージデバイス
1100 入出力インタフェース
1120 ネットワークインタフェース
2000 音声認識装置
2020 変換部
2040 連結部