以下、認識結果補正装置等の2つの実施の形態について、図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
実施の形態1および2に共通して、第一文字列と第一音素列との対が2対以上格納されており、一の文に対応する入力音声を音声認識した結果である入力文字列を取得し、入力文字列の少なくとも一部に対応する音素列である第二音素列を取得し、第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得し、入力文字列の少なくとも一部を第一文字列に置き換える補正処理を行い、補正処理後の文字列を出力する認識結果補正装置について説明する。
認識結果補正装置は、例えば、サーバと通信可能な端末である。端末は、例えば、LANやインターネット等のネットワーク、無線または有線の通信回線などを介して、サーバと通信可能に接続される。ただし、認識結果補正装置は、スタンドアロンの端末でもよい。
サーバは、例えば、自然言語処理を用いたサービスを提供する企業のサーバである。自然言語処理とは、人間が使う自然言語をコンピュータに処理させる技術である。自然言語処理は、例えば、音声認識、形態素解析等の処理を含む。なお、音声認識、形態素解析等については、後述する。または、サーバは、クラウドサーバやASPサーバ等でもよく、そのタイプや所在は問わない。
端末は、例えば、携帯端末である。携帯端末とは、例えば、スマートフォン、タブレット端末、携帯電話機、ノートPC等であるが、その種類は問わない。または、端末は、例えば、据え置き型のPCでもよく、そのタイプや所在は問わない。
(実施の形態1)
本実施の形態において、第一文字列は用語に対応する文字列であり、入力文字列を形態素解析した結果である形態素情報を取得し、形態素情報に対して2以上の名詞を結合して一の名詞とする結合処理を施し、結合処理後の形態素情報を用いて、入力文字列中の1以上の名詞を特定し、1以上の各名詞ごとに、当該名詞に対応する第二音素列を取得し、1以上の各第二音素列ごとに、当該第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得し、入力文字列の1以上の名詞を、取得した1以上の第一文字列に置き換える認識結果補正装置1について説明する。
予め決められた条件は、第一音素列および第二音素列において対応する1以上の母音に関する第一条件を含む。予め決められた条件は、第一条件に加えて又はこれに代えて、第一音素列および第二音素列において対応する1以上の子音が全て一致するという第二条件を含んでもよい。または、予め決められた条件は、第一条件に加えて又はこれに代えて、第一音素列および第二音素列において対応する1以上の子音のうち予め決められた割合以上が一致するという第三条件を含んでもよい。または、予め決められた条件は、第一〜第三の3つの条件を含んでもよい。
本実施の形態では、特に、予め決められた条件が第一〜第三の3条件を含み、予め決められた条件を構成する第一〜第三条件の組み合わせによって、第一音素列に対応する第一文字列の取得を行う際の優先順位が異なる認識結果補正装置1について説明する。
図1は、本実施の形態における認識結果補正装置1のブロック図である。認識結果補正装置1は、格納部11、処理部12、および出力部13を備える。処理部12は、入力文字列取得部121、音素列取得部122、第一文字列取得部123、および補正部124を備える。音素列取得部122は、形態素情報取得手段1221、形態素情報処理手段1222、特定手段1223、および音素列取得手段1224を備える。
格納部11には、第一文字列と第一音素列との対が、2対以上、格納される。第一文字列とは、1以上の文字の配列である。文字は、例えば、平仮名、片仮名、漢字等である。なお、文字は、日本語の文字に限らず、外国語の文字でもよい。外国語の文字とは、例えば、中国語の文字、ハングル文字、ギリシア文字、アルファベット等であるが、その種類は問わない。
第一文字列は、例えば、用語である。用語とは、書いたり話したりするときに用いられる語句である。用語は、通常、特定の分野で特に使われる語句である。特定の分野とは、例えば、金融の分野であるが、商取引の分野、工学の分野など、どの分野でもよい。この種の用語は、例えば、専門用語、学術用語などでもよい。
用語は、例えば、1または2以上の名詞の配列で構成される。一の名詞で構成される用語は、例えば、“去年”、“収支”などである。2以上の名詞の配列で構成される用語は、例えば、“五年”、“池田泉州銀行”(「池田泉州銀行」は登録商標:以下同様)などである。
または、用語は、自立語であってもよい。自立語とは、文中で単独でも文節を構成することのできる語である。自立語は、例えば、名詞、動詞、形容詞、形容動詞、副詞等であるが、付属語以外の語であれば何でもよい。付属語とは、単独では文節を構成することができず、常に自立語の下に付いて文節の一部として用いられる語である。付属語は、例えば、助詞、助動詞などである。
または、用語は、一の自立語の中の、文脈や活用等により変化しない、静的な部分であってもよい。静的な部分は、例えば、動詞の語幹である。
なお、第一文字列は、例えば、文でもよい。文とは、書いたり話したりする際の表現の単位である。なお、文は、主語と述語を有する完全な文章でなくてもよく、例えば、主語のみで構成され、述語を有していなくてもよいもよいし、主語が省略され、述語のみで構成されても構わない。
文は、例えば、1または2以上の形態素の配列で構成される、といってもよい。形態素とは、文を構成する単位である。形態素は、例えば、名詞、動詞、形容詞、形容動詞、副詞、助詞、助動詞等の品詞に対応する要素である。または、形態素は、自立語、付属語に対応する要素でもよく、その分類方法は問わない。なお、第一文字列が文である場合の認識結果の補正手法についは、実施の形態2で説明する。
第一音素列とは、第一文字列に対応する1以上の音素の配列である。なお、対応することは、通常、第一音素列の全部が第一文字列の全部に対応することであるが、例えば、第一音素列の一部が第一文字列の全部に対応する場合を含んでもよいし、第一音素列の全部が第一文字列の一部に対応する場合を含んでもよいし、第一音素列の一部が第一文字列の一部に対応する場合をも含むと考えても構わない。
音素とは、発話音声を構成する音の最小単位である。発話音声とは、ユーザが用語や文等の文字列を発音した音声である。発話音声は、母音と子音の組み合わせで構成される。母音は、例えば、a,i,u,e,o等であるが、その種類は問わない。子音は、例えば、k,s,t,n,h,m,r,y,w,g,z,d,b,p,ky,my等であるが、その種類は問わない。なお、音素は、例えば、上記のようにローマ字で表現されるが、発音記号で表現されてもよく、その表現形式は問わない。
第一音素列は、例えば、1以上のローマ字の配列で構成される。かかる第一音素列は、例えば、第一文字列の読み仮名を、1以上のローマ字の配列に変換することにより得られる。従って、第一音素列は、例えば、第一文字列の読み仮名のローマ字表記であってもよい。なお、ローマ字表記は、例えば、訓令式であるが、ヘボン式でもよく、その表現形式は問わない。
格納部11に格納される第一文字列と第一音素列との対は、通常、用語を単位とする対である。用語を単位とする第一文字列と第一音素列との対は、例えば、“去年”と“k,y,o,n,e,n”との対、“池田泉州銀行”と“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”との対、“収支”と“sy,u,s,i”との対などである。
ただし、格納部11に格納される第一文字列と第一音素列との対は、例えば、文を単位とする対であってもよい。文を単位とする第一文字列と第一音素列との対は、例えば、“池田泉州銀行の去年の収支を教えて”と、“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o,n,o,k,y,o,n,e,n,n,o,sy,u,s,i,w,o,o,s,i,e,t,e”との対などである。なお、一の文に対応する第一音素列は、例えば、ベクトル空間モデルにおける第一ベクトルであってもよい。なお、ベクトル空間モデル、および第一ベクトルについては、実施の形態2で説明する。
なお、以下では、上記のような、第一文字列と第一音素列との対を、「対情報」と記す場合がある。
また、格納部11は、対情報以外の情報も格納し得る。対情報以外の情報とは、例えば、辞書、音声認識用コーパスなどである。辞書とは、単語と、当該単語に関する各種の情報との組の集合である、といってもよい。各種の情報とは、例えば、読み仮名、品詞名などの情報である。辞書は、例えば、金融等の特定の分野の用語の辞書であるが、汎用的な用語の辞書でもよく、その種類は問わない。
音声認識用コーパスとは、音声認識を行うためのコーパスである。コーパスとは、自然言語による文や用語と、当該文等に関する情報との組の集合である、といってもよい。文等に関する情報は、例えば、構文、品詞、発音などの情報であるが、その種類は問わない。音声認識用コーパスは、例えば、HMM(Hidden Markov Model)に基づくコーパスであるが、その種類は問わない。音声認識用コーパスは、通常、汎用的な用語のコーパスである。
なお、格納部11に格納される1または2以上の対情報の集合は、コーパスの一種と考えてもよく、これを「特定用語コーパス」と呼ぶ場合がある。特定用語コーパスとは、特定の分野の用語のコーパスである。
処理部12は、各種の処理を行う。各種の処理とは、例えば、入力文字列取得部121、音素列取得部122、第一文字列取得部123、補正部124、形態素情報取得手段1221、形態素情報処理手段1222、特定手段1223、および音素列取得手段1224などの処理である。
入力文字列取得部121は、入力文字列を取得する。入力文字列とは、入力された音声を音声認識した結果であり、1または2以上の文字の配列で構成される。音声認識とは、人間が発話した音声をコンピュータに認識させ、文字列に変換する技術である、といってもよい。なお、かかる技術は公知であり、詳しい説明を省略する。
入力文字列は、通常、一の文の全部に対応する文字列であるが、例えば、文節や単語等、文の一部に対応する文字列でもよいし、2以上の文に対応する文字列でも構わない。
取得とは、例えば、サーバからの受信である。詳しくは、例えば、ユーザが「池田泉州の去年の収支を教えて」と発話したとすると、入力文字列取得部121は、その発話音声を、認識結果補正装置1を実現する端末のマイクロフォン等を介して受け付け、音声信号に変換する。入力文字列取得部121は、変換した音声信号を、当該端末の通信モジュールを介して、サーバに送信する。
サーバは、認識結果補正装置1から送信された音声信号を受信して、音声認識等の処理を行い、入力文字列を取得する。取得される入力文字列は、発話と同じ文字列であることは好適であるが、例えば、“池田選手の5年の収支を教えて”といった、発話とは異なる文字列が取得される場合もあり得る。
なお、これは、例えば、音声認識等の処理に用いる辞書が汎用的なものであるために、金融等の特定の分野において「池田泉州銀行」を意味する用語「池田泉州」を、これと発音が同じ又は略同じ一般的な2つの単語の配列「池田」「選手」と誤認識することによる、とも考えられる。また、「去年」が、明瞭に“kyonen”と発音されず、例えば、“gonen”の近い音で発音された結果、「5年」と認識された、とも考えられる。つまり、発話とは異なる文字列が取得される原因は、ユーザの不明瞭な発音でもよいし、コンピュータの誤認識でもよく、その種類は問わない。
サーバは、認識結果補正装置1から受信した音声信号に対して、上記のようにして取得した入力文字列を、認識結果補正装置1に送信する。
認識結果補正装置1において、通信モジュールがサーバからの入力文字列を受信し、入力文字列取得部121は、その受信された入力文字列を取得する。
なお、詳細は後述するが、取得された入力字列が、例えば、“池田選手の5年の収支を教えて”といった、発話とは異なる入力文字列である場合、この誤った入力文字列を、単に、発話と同じ入力文字列“池田泉州の去年の収支を教えて”に補正するのではなく、発話の意図をより的確に示す入力文字列“池田泉州銀行の去年の収支を教えて”に補正する処理が、音素列取得部122、第一文字列取得部123、および補正部124により行われる。また、取得された入力字列が、例えば、発話と同じ入力文字列“池田泉州の去年の収支を教えて”である場合にも、その正しい入力文字列は、より的確な“池田泉州銀行の去年の収支を教えて”に補正される。
または、入力文字列取得部121は、サーバから入力文字列を受信する代わりに、自ら音声認識を行い、その音声認識の結果である入力文字列を取得してもよい。詳しくは、例えば、ユーザが「池田泉州の去年の収支を教えて」と発話したとすると、入力文字列取得部121は、その発話音声を、マイクロフォン等を介して受け付け、音声信号に変換する。入力文字列取得部121は、変換した音声信号に対し、格納部11の音声認識用コーパス等を用いて、音声認識を行い、入力文字列を取得する。なお、こうして入力文字列取得部121が自ら音声認識を行う場合にも、発話と同じ入力文字列が取得されるとは限らず、例えば、“池田選手の5年の収支を教えて”といった、発話とは異なる文字列が取得される場合もあり得る。
音素列取得部122は、第二音素列を取得する。第二音素列とは、入力文字列の少なくとも一部に対応する2以上の音素の配列である。少なくとも一部とは、入力文字列の一部でもよいし、全部でもよい。一部とは、例えば、名詞に対応する部分であるが、自立語に対応する部分でもよいし、自立語中の静的な部分でもよく、入力文字列のどの部分でも構わない。
音素列取得部122を構成する形態素情報取得手段1221は、形態素情報を取得する。形態素情報とは、形態素に関する情報である。形態素情報取得手段1221が取得する形態素情報は、入力文字列取得部121が取得した入力文字列を形態素解析した結果に関する情報である。形態素解析とは、文を構成する1以上の形態素を解析する処理である。形態素解析は、例えば、文に対応する入力文字列を構成する2以上の形態素の配列、および2以上の各形態素の品詞などを解析する処理を含む。取得される形態素情報は、例えば、入力文字列を構成する2以上の形態素の配列、および2以上の各形態素の品詞を示す情報を含む。
形態素情報は、例えば、一の形態素に対応する1または2以上の文字の配列(かかる文字列を、以下、「単語」と記す場合がある)と、品詞名との組(以下、「組情報」と記す場合がある)の集合である。形態素情報は、例えば、単語“池田”と品詞名“名詞”との組である第一の組情報、単語“泉州”と品詞名“名詞”との組である第二の組情報、単語“の”と品詞名“助詞”との組である第三の組情報といった、2以上の組情報で構成される。ただし、形態素情報のデータ構造は問わない。
形態素情報もまた、サーバから受信され得る。サーバは、例えば、音声認識により取得した文字列に対して形態素解析を行い、形態素情報を取得してもよい。サーバは、取得した形態素情報を、取得した入力文字列と対に、認識結果補正装置1に送信してもよい。サーバから送信された形態素情報は、認識結果補正装置1を実現する端末の通信モジュールによって受信され、形態素情報取得手段1221は、その受信された形態素情報を取得する。
または、形態素情報取得手段1221は、入力文字列取得部121が取得した入力文字列に対して、自ら形態素解析を行い、形態素情報を取得してもよい。
形態素情報取得手段1221は、通常、入力文字列取得部121が入力文字列を取得したことに応じて、当該入力文字列に関する形態素情報を取得する。ただし、形態素情報取得手段1221は、入力文字列が取得された後、例えば、タッチパネル等の入力デバイスを介して、形態素情報の取得の指示が受け付けられたことに応じて、形態素情報を取得してもよく、その取得のトリガやタイミングは問わない。
形態素情報処理手段1222は、形態素情報取得手段1221が取得した形態素情報に対し、例えば、結合処理を施す。結合処理とは、入力文字列取得部121が取得した入力文字列において、連続する2以上の名詞を結合して一の名詞とするために、形態素情報を変更する処理である。
結合処理は、例えば、上記の形態素情報を構成する2以上の組情報のうち、単語“池田”と品詞名“名詞”との組である第一の組情報、およびこれに続く単語“選手”と品詞名“名詞”との組である第二の組情報を用いて、連続する2つの名詞である単語“池田”および単語“選手”を結合することにより、一の名詞である単語“池田選手”を構成し、当該第一および第二の組情報を、構成した一の単語“池田選手”と品詞名“名詞”との組である新たな第一の組情報に更新する処理である。
かかる結合処理が施されることで、上記形態素情報は、単語“池田選手”と品詞名“名詞”との組である第一の組情報、およびこれに続く単語“の”と品詞名“助詞”との組である第二の組情報などで構成された形態素情報に更新される。
なお、結合処理は必須ではない。例えば、取得された入力文字列中に、連続する2以上の名詞が存在しない場合、形態素情報処理手段1222は、結合処理を行わないことは言うまでもない。また、取得された入力文字列中に、連続する2以上の名詞が存在する場合でも、形態素情報処理手段1222は、当該2以上の名詞を必ずしも結合しなくてもよい。
特定手段1223は、例えば、結合処理が施された後の形態素情報を用いて、入力文字列に含まれる1以上の名詞を特定する。特定手段1223は、例えば、上記の更新された形態素情報を用いて、3つの名詞“池田選手”,“去年”,および“収支”を特定する。なお、特定手段1223は、結合処理が施されていない形態素情報を用いて、入力文字列に含まれる1以上の名詞を特定してもよい。
音素列取得手段1224は、例えば、特定手段1223が特定した1以上の各名詞ごとに、当該名詞に対応する音素の配列である第二音素列を取得する。音素列取得手段1224は、例えば、格納部11の辞書を用いて、当該名詞の読み仮名のローマ字表記を取得する。または、格納部11に、仮名とローマ字との対応を示す対応情報が格納されており、音素列取得手段1224は、例えば、辞書を用いて、当該名詞の読み仮名を取得し、取得した読み仮名を、対応情報を用いてローマ字に変換してもよい。
なお、第二音素列の取得は、文単位で行われてもよい。例えば、後述する実施の形態2における音素列取得部222は、辞書を用いて、入力文字列の全部(つまり、一の文の全体)の読み仮名を取得し、取得した読み仮名を、対応情報を用いてローマ字に変換する。
第一文字列取得部123は、格納部11から、音素列取得部122が取得した第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得する。なお、類似とは、通常、概ね一致することであるが、完全に一致する場合(以下、完全一致)も含む。
予め決められた条件は、例えば、第一条件を含む。第一条件とは、第一音素列および第二音素列において対応する母音が全て一致するという条件である。なお、全て一致することは、例えば、完全一致であるが、部分一致でもよい。部分一致は、通常、以下で説明するような前方一致であるが、例えば、後方一致でもよいし、中央一致でも構わない。
対応する母音が全て一致することは、第一音素列を構成する1以上の音素の配列(例えば、“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”)と、第二音素列を構成する1以上の音素の配列(例えば、“i,k,e,d,a,s,e,n,sy,u”)との各々において、例えば、先頭の音素から順に番号1,2,3等を付した場合に、第一音素列に含まれる1以上の各母音が何番目の音素であるかを示す1以上の番号の組(以下、「第一音素列における母音配列」と記す場合がある:例えば、{1,3,5,7,10,12,15})の少なくとも先頭の部分(例えば、1番目の音素から5番目の音素まで部分)が、第二音素列における母音配列(例えば、{1,3,5,7,10})と一致し、かつ、同じ番号の音素(例えば、音素1,音素3,音素5,音素7,音素10)の種類が一致することである。
従って、例えば、第一音素列“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”は、第二音素列“i,k,e,d,a,s,e,n,sy,u”に対して、第一条件を満たしている。
または、予め決められた条件は、第一条件に代えて又はこれに加えて、第二条件を含んでもよい。第二条件とは、第一音素列および第二音素列において対応する子音が全て一致するという条件である。対応する子音とは、第一音素列を構成する1以上の音素の配列(例えば、“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”)と、第二音素列を構成する1以上の音素の配列(例えば、“i,k,e,d,a,s,e,n,sy,u”)との各々において、第一音素列に含まれる1以上の各子音が何番目の音素であるかを示す1以上の番号の組(以下、「第一音素列における子音配列」と記す場合がある:例えば、{2,4,6,8,9,11,13,14})の少なくとも先頭の部分(例えば、2番目の音素から9番目の音素までの5つの子音)が、第二音素列における子音配列(例えば、{2,4,6,8,9})と一致し、かつ、同じ番号の音素(例えば、音素2,音素4,音素6,音素8,音素9)の種類が一致することである。
従って、例えば、第一音素列“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”は、第二音素列“i,k,e,d,a,s,e,n,sy,u”に対して、第二条件をも満たしている。
または、予め決められた条件は、例えば、第一条件に代えて又はこれに加えて、第三条件を含んでもよい。第三条件とは、第一音素列(例えば、“ky,o,n,e,n”)および第二音素列(例えば、“g,o,n,e,n”)において対応する子音が類似するという条件である。対応する子音が類似することは、例えば、対応する2以上の子音のうち、予め決められた割合以上が一致することである。予め決められた割合とは、対応する子音の数に対する、一致する子音の数の割合である。予め決められた割合は、例えば、“50%”であるが、“2/3”、“4割”等でもよく、その数値や単位は問わない。
例えば、第一音素列における子音配列は“ky,o,n,e,n”{1,3,5}であり、第二音素列“g,o,n,e,n”における子音配列もまた{1,3,5}であるから、対応する子音の数は3個である。そして、対応する3個の子音のうちのうち、一番目の子音だけが異なり、3番目の子音および5番目の子音は一致するため、一致する子音の数は2個である。従って、対応する子音の数に対する、一致する子音の数の割合は、“2/3”と計算される。
この場合、例えば、予め決められた割合が“50%”であれば、第一音素列“g,o,n,e,n”は、第二音素列“ky,o,n,e,n”に対して、第三条件を満たしている。
第一文字列取得部123は、例えば、第一条件および第二条件を満たす第一音素列、第一条件および第三条件を満たす第一音素列、第二条件を満たす第一音素列、および第三条件を満たす第一音素列の優先順序で、第一音素列に対応する第一文字列の取得を行う。
優先順序とは、2種類以上の条件に関する判断を順番に行い、最初に条件を満たした第一音素列に対応する第一文字列を取得する動作において、どの種類の条件に関する判断を優先するかの順序である。第一文字列取得部123は、いずれかの条件を満たすまで、1回または2回以上、判断を行い、その条件を満たした第一音素列に対応する第一文字列を取得する。こうして第一文字列を取得した後、第一文字列取得部123は、その条件よりも優先順序が後の条件に関する判断を行わない。
詳しくは、第一文字列取得部123は、最初、第一条件および第二条件を満たす第一音素列が存在するか否かを判断する。そして、第一条件および第二条件を満たす第一音素列が存在する場合、第一文字列取得部123は、当該第一音素列を取得し、他の3種類の判断を行わない。
第一条件および第二条件を満たす第一音素列が存在しない場合、第一文字列取得部123は、次に、第一条件および第三条件を満たす第一音素列が存在するか否かを判断する。そして、第一条件および第三条件を満たす第一音素列が存在する場合、第一文字列取得部123は、当該第一音素列を取得し、他の2種類の判断を行わない。
第一条件および第三条件を満たす第一音素列が存在しない場合、第一文字列取得部123は、次に、第二条件を満たす第一音素列が存在するか否かを判断する。そして、第二条件を満たす第一音素列が存在する場合は、当該第一音素列を取得し、他の1種類の判断を行わない。
第二条件を満たす第一音素列が存在しない場合、第一文字列取得部123は、次に、第三条件を満たす第一音素列が存在するか否かを判断する。そして、第三条件を満たす第一音素列が存在する場合、第一文字列取得部123は、当該第一音素列を取得する。なお、第三条件を満たす第一音素列が存在しない場合、第一文字列取得部123は、通常、どの第一文字列も取得しない。
なお、予め決められた条件は、例えば、第一および第二の各音素列を構成する音素の数に関する条件を含んでいてもよい。音素の数に関する条件は、例えば、各音素列を構成する音素数の差分が閾値以下である、という条件でもよいし、または、第一音素列の音素数に対する上記差分の割合が閾値以下である、という条件でもよい。
なお、予め決められた条件は、第一音素列と第二音素列との類似度に関する条件でもよい。例えば、後述する実施の形態2における第一文字列取得部223は、格納部21に格納されている2以上の各第一音素列ごとに、当該第一音素列と前記第二音素列との類似度を算出し、第二音素列との類似度が、算出した2以上の類似度の中で最も高く、かつ閾値以上である又は閾値より高いという条件を満たす第一文字列を取得する。本実施の形態1における第一文字列取得部123も、これと同様の動作を行ってもよい。ただし、実施の形態2における類似度は、文に対応する音素列間の類似度であるが、本実施の形態1における類似度は、用語(つまり、特定手段1223が特定した名詞)に対応する音素列間の類似度となる。
補正部124は、入力文字列の少なくとも一部を、第一文字列取得部123が取得した第一文字列に置き換える補正処理を行う。
補正部124は、例えば、入力文字列取得部121が取得した入力文字列の、特定手段1223が特定した1以上の名詞を、第一文字列取得部123が取得した1以上の第一文字列に置き換える補正処理を行う。
なお、補正処理は、入力文字列の全部に対して行われてもよい。例えば、後述する実施の形態2における補正部224は、かかる補正処理を行う。
出力部13は、補正処理が行われた後の入力文字列(以下、補正入力文字列と記す場合がある)を出力する。出力部13は、補正入力文字列を、例えば、ディスプレイに表示するが、記録媒体に蓄積したり、プリンタでプリントアウトしたりしてもよいし、スピーカから音声の態様で出力しても構わない。あるいは、出力部13は、補正入力文字列を、外部の装置に送信したり、他のプログラムへ引渡したりしてもよく、その出力の態様は問わない。
なお、外部の装置は、例えば、補正入力文字列を用いて処理を行う処理装置であるが、外部モニタなどでもよく、その種類は問わない。また、他のプログラムは、例えば、補正入力文字列を用いて処理を行うアプリケーションプログラムであるが、その種類は問わない。さらに、こうした処理装置やアプリケーションプログラムが行う処理は、例えば、金融に関する情報処理である。金融に関する情報処理は、例えば、ユーザの口座情報を用いて資金の動きを特定し、資金の動きからユーザの取引傾向を分析し、取引傾向に基づいて、残高予測や資金移動の提案をユーザに対して行う、といった処理である。ただし、処理は、例えば、商取引、工学といった、金融以外の分野の情報処理でもよく、その種類は問わない。
格納部11は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、RAMなど揮発性の記録媒体でも実現可能である。格納部11に対情報等の情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部11で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル、マイクロフォン等、何でもよい。なお、格納部11に関する上記事項は、実施の形態2の格納部21にも当てはまる。
処理部12、入力文字列取得部121、音素列取得部122、第一文字列取得部123、補正部124、形態素情報取得手段1221、形態素情報処理手段1222、特定手段1223、および音素列取得手段1224は、通常、MPUやメモリ等から実現され得る。処理部12等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、処理手順は、ハードウェア(専用回路)で実現してもよい。
なお、入力文字列取得部121の音声受付機能は、マイクロフォンによって実現される。入力文字列取得部121は、マイクロフォンを含むと考えても、含まないと考えてもよい。音声受付機能は、マイクロフォンのドライバーソフトによって、またはマイクロフォンとそのドライバーソフトとで実現され得る。
また、入力文字列取得部121の送信機能は、通常、無線または有線の通信手段(例えば、NIC(Network interface controller)やモデム等の通信モジュール)で実現されるが、放送手段(例えば、放送モジュール)で実現されてもよい。出力部13の送信機能も、同様に実現され得る。さらに、入力文字列取得部121の受信機能は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段(例えば、放送受信モジュール)で実現されてもよい。なお、こうした事項は、入力文字列取得部121以外の構成要素の送受信機能(例えば、出力部13の送信機能)についても当てはまる。
なお、処理部12、入力文字列取得部121等に関する上記事項は、実施の形態2の処理部22、入力文字列取得部221等にも当てはまる。
出力部13は、ディスプレイやスピーカ等の出力デバイスを含むと考えても含まないと考えてもよい。出力部13は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。なお、出力部13に関する上記事項は、実施の形態2の出力部23にも当てはまる。
次に、認識結果補正装置1の動作について、図2および図3のフローチャートを用いて説明する。図2は、本実施の形態における認識結果補正装置1の動作を説明するフローチャートである。
(ステップS201)入力文字列取得部121は、入力文字列の取得を行うか否かを判断する。入力文字列取得部121は、例えば、認識結果補正装置1を実現する端末の通信モジュールがサーバから入力文字列を受信した場合に、入力文字列の取得を行うと判断する。または、入力文字列取得部121は、かかる端末のマイクロフォンを介して発話音声が入力された場合に、入力文字列の取得を行うと判断してもよい。入力文字列の取得を行う場合はステップS202に進み、入力文字列の取得を行わない場合は、ステップS201に戻る。
(ステップS202)入力文字列取得部121は、入力文字列を取得する。入力文字列取得部121は、例えば、通信モジュールが受信した入力文字列を取得する。または、入力文字列取得部121は、入力された発話音声に対して音声認識処理を行い、入力文字列を取得してもよい。
(ステップS203)音素列取得部122は、ステップS202で取得された入力文字列の少なくとも一部に対応する第二音素列を取得する。音素列取得部122は、例えば、図3に示すような音素列取得処理を実行する。なお、音素列取得処理については後述する。
(ステップS204)第一文字列取得部123は、ステップS203で取得された第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を、格納部11から取得する。なお、予め決められた条件については、前述したので説明を省略する。また、本実施の形態において、第一文字列取得部123は、例えば、図4に示すような第一文字列取得処理を実行してもよい。この第一文字列取得処理については後述する。
(ステップS205)補正部124は、ステップS202で取得された入力文字列の少なくとも一部を、ステップS204で取得された第一文字列に置き換える補正処理を行う。本実施の形態において補正部124が行う補正処理は、ステップS202で取得された入力文字列の、後述するステップS303で特定された1以上の名詞を、ステップS204で取得された1以上の第一文字列に置き換える処理である。
(ステップS206)出力部13は、ステップS205で補正処理が施された後の入力文字列を出力する。出力部13は、補正入力文字列を、例えば、ディスプレイに表示するが、外部の装置に送信したり、他のプログラムへ引渡したりしてもよい。その後、ステップS201に戻る。
なお、図2のフローチャートにおいて、認識結果補正装置1の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは問わない。
図3は、上記ステップS203の音素列取得処理を説明するフローチャートである。
(ステップS301)音素列取得部122を構成する形態素情報取得手段1221は、ステップS202で取得された入力文字列を形態素解析した結果に関する形態素情報を取得する。形態素情報取得手段1221は、かかる形態素情報を、例えば、サーバから入力文字列と対に受信してもよいし、または、取得された入力文字列に対して自ら形態素解析を行うことにより取得してもよい。
(ステップS302)形態素情報処理手段1222は、ステップS301で取得された形態素情報に対し、連続する2以上の名詞を結合して一の名詞とするべく形態素情報を変更する結合処理を施す。
(ステップS303)特定手段1223は、ステップS302で結合処理が施された後の形態素情報を用いて、ステップS202で取得された入力文字列に含まれる1以上の名詞を特定する。
(ステップS304)音素列取得手段1224は、変数iに初期値“1”をセットする。なお、変数iは、ステップS303で特定された1以上の名詞のうち、未選択の名詞を順番に選択していくための変数である。
(ステップS305)音素列取得手段1224は、i番目の名詞があるか否かを判別する。例えば、ステップS303で特定された名詞の数をm個(ただし、mは1以上の整数)とすると、音素列取得手段1224は、i≦mの場合に、i番目の名詞があると判別し、m<iの場合には、i番目の名詞がないと判別する。i番目の名詞がある場合はステップS306に進み、i番目の名詞がない場合は上位の処理にリターンする。
(ステップS306)音素列取得手段1224は、i番目の名詞に対応する第二音素列を取得する。なお、音素列取得手段1224は、こうして取得した第二音素列を、変数iに対応付けて、例えば、MPUの内部メモリ等に保持する。
(ステップS307)音素列取得手段1224は、変数iをインクリメントする。その後、ステップS305に戻る。
図4は、上記ステップS204の第一列取得処理を説明するフローチャートである。
(ステップS401)第一文字列取得部123は、第一条件および第二条件を満たす第一音素列が存在するか否かを判断する。第一条件および第二条件を満たす第一音素列が存在する場合はステップS402に進み、第一条件および第二条件を満たす第一音素列が存在しない場合はステップS403に進む。
(ステップS402)第一文字列取得部123は、第一条件および第二条件を満たす第一音素列を取得する。その後、上位処理にリターンする。
(ステップS403)第一文字列取得部123は、第一条件および第三条件を満たす第一音素列が存在するか否かを判断する。第一条件および第三条件を満たす第一音素列が存在する場合はステップS404に進み、第一条件および第三条件を満たす第一音素列が存在しない場合はステップS405に進む。
(ステップS404)第一文字列取得部123は、第一条件および第三条件を満たす第一音素列を取得する。その後、上位処理にリターンする。
(ステップS405)第一文字列取得部123は、第二条件を満たす第一音素列が存在するか否かを判断する。第二条件を満たす第一音素列が存在する場合はステップステップS406に進み、第二条件を満たす第一音素列が存在しない場合はステップステップS407に進む。
(ステップS406)第一文字列取得部123は、第二条件を満たす第一音素列を取得する。その後、上位処理にリターンする。
(ステップS407)第一文字列取得部123は、第三条件を満たす第一音素列が存在するか否かを判断する。第三条件を満たす第一音素列が存在する場合はステップS408に進み、第三条件を満たす第一音素列が存在しない場合は上位処理にリターンする。
(ステップS408)第一文字列取得部123は、第三条件を満たす第一音素列を取得する。その後、上位処理にリターンする。
以下、本実施の形態における認識結果補正装置1の具体的な動作例について説明する。なお、以下の説明は、種々の変更が可能であり、本発明の範囲を何ら制限するものではない。
本例における認識結果補正装置1は、サーバと通信可能なスマートフォン等の携帯端末である。サーバは、自然言語処理を用いた音声認識や翻訳等のサービスを提供する企業のサーバである。
認識結果補正装置1の格納部11には、例えば、図5に示すような2以上の対情報が格納される。図5は、本実施の形態における対情報のデータ構造図である。対情報は、第一音素列と第一文字列との対で構成される。第一音素列は、1以上の音素の配列で構成される。なお、図5では、各音素に、先頭から何番目の音素かを示す番号(1,2,3等)を付している。
第一文字列は、用語に対応する文字列である。格納される2以上の第一文字列の多くは、特に、例えば、金融分野の用語(例えば、「池田泉州銀行」や「収支」等)に対応する文字列であるが、汎用的な用語(例えば、「去年」や「今年」等)に対応する文字列が含まれていてもよい。
格納部11の2以上の各対情報には、ID(例えば、“1”,“2”,“3”等)が対応付いている。例えば、ID“1”に対応する対情報(以下、対情報1と記す場合がある)は、第一音素列“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”と、第一文字列“池田泉州銀行”との対で構成される。また、ID“2”に対応する対情報(対情報2)は、第一音素列“k,a,n,s,a,i,g,i,n,k,o”と、第一文字列“関西銀行”(「関西銀行」は登録商標:以下同様)との対で構成される。同様に、対情報3は、第一音素列“ky,o,n,e,n”と第一文字列“去年”との対で構成され、対情報4は、第一音素列“k,o,t,o,s,i”と第一文字列“今年”との対で構成され、対情報5は、第一音素列“sy,u,s,i”と第一文字列“収支”との対で構成される。
また、格納部11には、条件情報も格納されている。条件情報とは、予め決められた条件に関する情報である。条件情報は、第一〜第三条件を含む。なお、予め決められた条件、および第一〜第三条件等、前述した事項については、同じ説明を繰り返さない。
さらに、格納部11には、例えば、アラビア数字と漢数字との対応表といった各種の情報や、他のプログラムなども格納されている。他のプログラムは、例えば、金融に関する情報を処理するアプリケーションプログラム(例えば、資産運用アプリ、インターネットバンキングのアプリなど)である。
ユーザは、認識結果補正装置1である携帯端末に向かって「池田泉州の収支を教えて」と発話したとする。この発話音声は、当該携帯端末のマイクロフォンを介して音声信号に変換され、音声信号は、当該携帯端末の通信モジュールを介して、サーバに送信される。
サーバは、認識結果補正装置1から送信された音声信号を受信して、音声認識等の処理を行い、入力文字列を取得する。本例では、発話とは異なる入力文字列“池田選手の5年の収支を教えて”が取得されたとする。サーバは、取得した入力文字列を、認識結果補正装置1に送信する。
上記入力文字列は、当該携帯端末の通信モジュールによって受信される。認識結果補正装置1において、入力文字列取得部121は、通信モジュールが受信した入力文字列を取得する。音素列取得部122は、取得された入力文字列の、1以上の名詞に対応する部分の第二音素列を取得する音素列取得処理を、以下のように実行する。
すなわち、音素列取得部122を構成する形態素情報取得手段1221は、取得された入力文字列「池田選手の5年の収支を教えて」に対し、アラビア数字「5」を漢数字「五」に変更した後、形態素解析を行い、形態素情報を取得する。取得された形態素情報は、第一〜第十の10個の組情報を有する。
第一の組情報は、単語“池田”と品詞名“名詞”との組である。第二の組情報は、単語“泉州”と品詞名“名詞”との組である。第三の組情報は、単語“の”と品詞名“助詞”との組である。第四の組情報は、単語“五”と品詞名“名詞”との組である。第五の組情報は、単語“年”と品詞名“名詞”との組である。第六の組情報は、単語“の”と品詞名“助詞”との組である。第七の組情報は、単語“収支”と品詞名“名詞”との組である。第八の組情報は、単語“を”と品詞名“助詞”との組である。第九の組情報は、単語“教え”と品詞名“動詞”との組である。第十の組情報は、単語“て”と品詞名“助詞”との組である。
形態素情報処理手段1222は、取得された形態素情報に対し、以下のような結合処理を施す。すなわち、形態素情報処理手段1222は、上記10個の組情報のうち、まず、第一および第二の組情報を用いて、連続する2つの名詞である単語“池田”および単語“選手”を結合し、一の名詞である単語“池田選手”を構成して、当該第一および第二の組情報を、一の単語“池田選手”と品詞名“名詞”との組である新たな第一の組情報に更新する。次に、形態素情報処理手段1222は、第四および第五の組情報を用いて、連続する2つの名詞である単語“五”および単語“年”を結合し、一の名詞である単語“五年”を構成して、当該第四および第五の組情報を、一の単語“池田選手”と品詞名“名詞”との組である新たな第三の組情報に更新する。
結合処理が施された後の形態素情報は、次のような第一〜第八の8個の組情報を有する。第一の組情報は、単語“池田選手”と品詞名“名詞”との組である。第二の組情報は、単語“の”と品詞名“助詞”との組である。第三の組情報は、単語“五年”と品詞名“名詞”との組である。第四の組情報は、単語“の”と品詞名“助詞”との組である。第五の組情報は、単語“収支”と品詞名“名詞”との組である。第六の組情報は、単語“を”と品詞名“助詞”との組である。第七の組情報は、単語“教え”と品詞名“動詞”との組である。第八の組情報は、単語“て”と品詞名“助詞”との組である。
特定手段1223は、結合処理後の形態素情報を用いて、入力文字列“池田選手の5年の収支を教えて”に含まれる3つの名詞“池田選手”,“五年”,および“収支”を特定する。
音素列取得手段1224は、かかる3つの名詞のうち、1番目の名詞“池田選手”に対応する第二音素列“i,k,e,d,a,s,e,n,sy,u”を取得し、2番目の名詞“五年”に対応する第二音素列“g,o,n,e,n”を取得し、3番目の名詞“収支”に対応する第二音素列“sy,u,s,i”を取得する。
第一文字列取得部123は、上記3つの名詞に関して取得された3つの第二音素列ごとに、当該第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を、格納部11から取得する。
すなわち、1番目の名詞“池田選手”に関して取得された第二音素列“i,k,e,d,a,s,e,n,sy,u”に対しては、格納されている2以上の対情報(図5参照)のうち、対情報1を構成する第一音素列“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”だけが、第一および第二の2条件を満たし、他のどの対情報を構成する第二音素列も、第一および第二の2条件を満たさないため、第一文字列取得部123は、対情報1を用いて、第一音素列“i,k,e,d,a,s,e,n,sy,u,g,i,n,k,o”に対応する第一文字列“池田泉州銀行”を取得する。
また、2番目の名詞“五年”に関して取得された第二音素列“g,o,n,e,n”に対しては、格納されている2以上の対情報の中に、第一および第二の2条件を満たすものは存在せず、対情報3を構成する第一音素列“ky,o,n,e,n”だけが、第一および第三の2条件を満たすため、第一文字列取得部123は、対情報3を用いて、第一音素列“ky,o,n,e,n”に対応する第一文字列“去年”を取得する。
また、2番目の名詞“五年”に関して取得された第二音素列“g,o,n,e,n”に対しては、格納されている2以上の対情報の中に、第一および第二の2条件を満たすものは存在せず、対情報3を構成する第一音素列“ky,o,n,e,n”だけが、第一および第三の2条件を満たすため、第一文字列取得部123は、対情報3を用いて、第一音素列“ky,o,n,e,n”に対応する第一文字列“去年”を取得する。
さらに、3番目の名詞“収支”に関して取得された第二音素列“sy,u,s,i”に対しては、対情報5を構成する第一音素列“sy,u,s,i”だけが、第一および第二の2条件を満たすため、第一文字列取得部123は、対情報5を用いて、第一音素列“sy,u,s,i”に対応する第一文字列“収支”を取得する。
補正部124は、入力文字列“池田選手の五年の収支を教えて”の、特定された3つの名詞“池田選手”,“五年”および“収支”を、取得された3つの第一文字列“池田泉州銀行”,“去年”,および“収支”にそれぞれ置き換えることにより、補正後の入力文字列“池田泉州銀行の去年の収支を教えて”を取得する。
出力部13は、補正後の入力文字列を出力する。補正後の入力文字列の出力先は、金融に関する情報を処理するアプリケーションプログラムである。処理部12および出力部13は、このアプリケーションプログラムの制御下で、例えば、以下のような処理を行う。
補正後の入力文字列“池田泉州銀行の去年の収支を教えて”がアプリケーションプログラムに引き渡されると、処理部12は、当該入力文字列に含まれる“去年”を“平成29年度”に変換する。そして、処理部12は、例えば、外部のサーバに対し、“池田泉州銀行”,“平成29年度”、および“収支”の3語をキーとする検索を行う。本例では、検索の結果、池田泉州銀行の平成29年度の収支に関する情報“○○億円の利益”が取得されたとする。処理部12は、こうして取得した情報を、補正後の入力文字列と共に、ディスプレイに出力する。
これによって、認識結果補正装置1である携帯端末のディスプレイには、例えば、図6に示すような画面が表示される。図6は、補正後の入力文字列等を含む画面の出力例を示す図である。この画面は、文字列“質問”と、この文字列に対応付いた入力欄と、この入力欄に表示された補正後の入力文字列“池田泉州銀行の去年の収支を教えて”と、この補正後の入力文字列が示す質問に対する回答を示す文字列“池田泉州銀行の去年の収支は○○億円の利益です”とを有する。
こうして、ユーザは、金融等の特定の分野の用語を含む質問を音声入力し、その質問への的確な回答を得ることができる。
なお、画面には、例えば、補正前の入力文字列“池田選手の五年の収支を教えて”がさらに表示されてもよい。それによって、ユーザは、自分の発話音声が、当初は誤変換されていたこと、および、発話通りに的確に補正されたことを確認できる。ただし、画面の構成は問わない。
以上、本実施の形態によれば、格納部11に、1以上の文字の配列である第一文字列と、第一文字列に対応する1以上の音素の配列である第一音素列との対が、2対以上、格納されており、認識結果補正装置1は、入力された音声であり、一の文に対応する音声を音声認識した結果である入力文字列を取得し、入力文字列の少なくとも一部に対応する2以上の音素の配列である第二音素列を取得し、格納部11から、第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得し、入力文字列の少なくとも一部を、取得した第一文字列に置き換える補正処理を行い、補正処理後の入力文字列を出力することにより、音声認識の結果を的確に補正できる。
また、第一文字列が、1以上の名詞の配列で構成された用語に対応する文字列であり、認識結果補正装置1は、入力文字列を形態素解析した結果であり、2以上の形態素の配列および2以上の各形態素の品詞を示す形態素情報を取得し、形態素情報に対し、連続する2以上の名詞を結合して一の名詞とする結合処理を施し、結合処理が施された形態素情報を用いて、入力文字列に含まれる1以上の名詞を特定し、特定した1以上の各名詞ごとに、名詞に対応する音素の配列である第二音素列を取得し、格納部11から、取得した1以上の各第二音素列ごとに、第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得し、入力文字列の、特定手段が特定した1以上の名詞を、取得した1以上の第一文字列に置き換える補正処理を行うことにより、音声認識の結果を用語単位で簡単かつ的確に補正できる。
また、予め決められた条件が、第一音素列および第二音素列において対応する母音が全て一致するという第一条件を含むことにより、認識結果補正装置1は、母音が全て同じ用語(例えば、母音が全て同じで、かつ子音の一部が異なる「五年(gonen)」と「去年(kyonen)」等)に対して、的確な補正が行える。
また、予め決められた条件が、第一音素列および第二音素列において対応する子音が全て一致するという第二条件を含むことにより、認識結果補正装置1は、子音が全て同じ用語(例えば、子音が全て同じで、かつ母音の一部が異なる「権利(kenri)」と「金利(kinri)」等)に対して、的確な補正が行える。特に、予め決められた条件が第一条件および第二条件を含むことで、子音が全て同じで、かつ母音も全て同じ用語(例えば、「選手(sensyu)」と「泉州(sensyu)」)に対して、的確な補正が行える。
また、予め決められた条件が、第一音素列および第二音素列において対応する子音のうち予め決められた割合以上が一致するという第三条件を含むことにより、認識結果補正装置1は、子音の一部が同じで、かつ母音の一部が異なる用語(例えば、「権利(kenri)」と「金利(kinri)」等)に対して、的確な補正が行える。特に、予め決められた条件が第一条件および第三条件を含むことで、認識結果補正装置1は、子音の一部が同じで、かつ母音が全て同じ用語(例えば、「五年(gonen)」と「去年(kyonen)」に対しても、的確な補正が行える。
また、予め決められた条件が、第一音素列および第二音素列において対応する母音または子音の一致に関する2以上の条件を含み、認識結果補正装置1は、2以上の条件のうち第一音素列が満たす1以上の条件に応じた優先順序で、第一音素列に対応する第一文字列の取得を行うことにより、認識結果補正装置1は、音声認識の結果をより的確に補正できる。
また、予め決められた条件が、第一音素列および第二音素列において対応する母音が全て一致するという第一条件と、第一音素列および第二音素列において対応する子音が全て一致するという第二条件と、第一音素列および第二音素列において対応する子音のうち予め決められた割合以上が一致するという第三条件とを含むことにより、認識結果補正装置1は、音声認識の結果をより的確に補正できる。
また、認識結果補正装置1は、第一条件および第二条件を満たす第一音素列、第一条件および第三条件を満たす第一音素列、第二条件を満たす第一音素列、および第三条件を満たす第一音素列の優先順序で、第一音素列に対応する第一文字列の取得を行うことにより、音声認識の結果をより的確に補正できる。
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをCD−ROMなどの記録媒体に記録して配布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における認識結果補正装置1を実現するソフトウェアは、例えば、以下のようなプログラムである。
つまり、コンピュータがアクセス可能な記録媒体は、1以上の文字の配列である第一文字列と、当該第一文字列に対応する1以上の音素の配列である第一音素列との対が、2対以上、格納される格納部11を具備し、このプログラムは、前記コンピュータを、入力された音声であり、一の文に対応する音声を音声認識した結果である入力文字列を取得する入力文字列取得部121と、前記入力文字列の少なくとも一部に対応する2以上の音素の配列である第二音素列を取得する音素列取得部122と、前記格納部11から、前記第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得する第一文字列取得部123と、前記入力文字列の少なくとも一部を、前記第一文字列取得部123が取得した第一文字列に置き換える補正処理を行う補正部124と、前記補正処理後の入力文字列を出力する出力部13として機能させるためのプログラムである。。
そして、前記第一文字列は、1以上の名詞の配列で構成された用語に対応する文字列であり、このプログラムは、前記コンピュータを、前記入力文字列を形態素解析した結果であり、2以上の形態素の配列および当該2以上の各形態素の品詞を示す形態素情報を取得する形態素情報取得手段1221と、前記形態素情報に対し、連続する2以上の名詞を結合して一の名詞とする結合処理を施す形態素情報処理手段1222と、前記結合処理が施された形態素情報を用いて、前記入力文字列に含まれる1以上の名詞を特定する特定手段1223と、前記特定手段が特定した1以上の各名詞ごとに、当該名詞に対応する音素の配列である第二音素列を取得する音素列取得手段1224としてさらに機能させ、前記第一文字列取得部123は、前記格納部11から、前記音素列取得手段1224が取得した1以上の各第二音素列ごとに、当該第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得し、前記補正部124は、前記入力文字列の、前記特定手段1223が特定した1以上の名詞を、前記第一文字列取得部123が取得した1以上の第一文字列に置き換える補正処理を行う、プログラムである。
なお、このプログラムは、例えば、前述したアプリケーションプログラムの一部であってもよい。
(実施の形態2)
本実施の形態において、第一文字列は一の文に対応する文字列であり、1以上の第一音素列ごとに、第二音素列との類似度を算出し、第二音素列との類似度が、算出した2以上の類似度中で最も高く、かつ閾値以上であるという条件を満たす第一音素列に対応する第一文字列を取得し、入力文字列の全部を当該第一文字列に置き換える認識結果補正装置2について説明する。
図7は、本実施の形態における認識結果補正装置2のブロック図である。認識結果補正装置2は、格納部21、処理部22、および出力部23を備える。処理部22は、入力文字列取得部221、音素列取得部222、第一文字列取得部223、および補正部224を備える。第一文字列取得部223は、算出手段2231、および第一文字列取得手段2232を備える。
格納部21には、第一文字列と、第一文字列に対応する第一音素列との対(対情報)が、2対以上、格納される。なお、実施の形態1における第一文字列は、通常、用語に対応する文字列であったが、本実施の形態における第一文字列は、一の文に対応する文字列である。文の構成、第一文字列を構成する文字の種類、第一音素列を構成する音素の種類等は、実施の形態1と同様である。格納部21に格納される1または2以上の対情報の集合もまた、コーパスの一種と考えてもよく、これを「特定文コーパス」と呼ぶ場合がある。特定文コーパスとは、特定の分野の文のコーパスである。
なお、本実施の形態における第一音素列は、例えば、後述する第一ベクトルであるが、実施の形態1における第一音素列と同様、読み仮名のローマ字表記であってもよい。
処理部22を構成する入力文字列取得部221は、入力文字列を取得する。本実施の形態における入力文字列は、一の文の全部に対応する文字列である。なお、入力文字列の取得方法は、実施の形態1と同様である。
音素列取得部222は、入力文字列取得部221が取得した入力文字列の全部に対応する第二音素列を取得する。音素列取得部222は、例えば、格納部21の辞書を用いて、一の文の全部の読み仮名を取得し、取得した読み仮名をローマ字に変換することにより、かかる第二音素列を取得する。
なお、音素列取得部222は、例えば、取得した第二音素列を用いて、後述する第二ベクトルを取得するが、第二ベクトルの取得は行われなくてもよい。
第一文字列取得部223は、音素列取得部222が取得した第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を、格納部21から取得する。
詳しくは、第一文字列取得部223を構成する算出手段2231は、格納部21に格納されている2以上の第一音素列ごとに、当該第一音素列と、音素列取得部222が取得した第二音素列との類似度を算出し、類似度情報を取得する。類似度とは、第一音素列と第二音素列との間の類似性の度合いを示す情報である。類似度は、例えば、コサイン類似度である。
コサイン類似度とは、ベクトル空間モデルを用いて、2つの文の間の類似度を計算する手法である。ベクトル空間モデルとは、文を構成する2以上の要素(例えば、語や音素等)を変数とする多次元の空間を定義し、文の特徴を当該空間内のベクトルの方向や大きさで表現するモデルである、といってもよい。
ベクトル空間モデルでは、例えば、各種の母音および各種の子音といった、N個(ただし、Nは2以上の整数)の音素を軸とするN次元のベクトル空間が定義され、一の文を構成する音素列は、N次元ベクトル空間におけるベクトルとして表現される。
前述した第一ベクトルおよび第二ベクトルは、かかるN次元のベクトル空間におけるベクトルである。第一音素列と第二音素列との類似度は、例えば、第一ベクトルと第二ベクトルとのなす角度の余弦として算出される。こうして算出される類似度が、コサイン類似度である。
詳しくは、ベクトルは、例えば、(a,i,u,e,o,k,s,t,n,h,・・・)のような、N個の変数の組として表現される。ベクトルを構成するN個の各音素“a”,“i”,“u”等の値は、例えば、一の文において当該音素が出現する回数を示す。
なお、上記のベクトルにおいては、前述した前方一致に対応して、先頭に5種類の母音が配置され、その後方に(N−5)個の子音が配置されることで、母音に対して重み付けがなされている。ただし、5個の母音の順序は、適宜変更され得る。また、(N−5)個の子音の順序も、適宜変更され得る。さらに、例えば、一部の子音が、母音よりも前方に配列されてもよいし、母音か子音かを問わず、特定の音素に対して重み付けがされていてもよい。特定の音素に対する重み付けは、例えば、ベクトルを構成するN個の音素の配列を決める際に、当該音素を前方に配置することにより実現される。
コサイン類似度は、例えば、第一音素列に対応する第一ベクトルと、第二音素列に対応する第二ベクトルとのなす角度の余弦である。余弦は、例えば、第一ベクトルと第二ベクトルとの内積を、第一ベクトルの大きさと第二ベクトルの大きさとの積で除算することにより取得される。コサイン類似度が“1”に近いほど、第一音素列と第二音素列との間の類似性は高く、コサイン類似度が“0”に近いほど、第一音素列と第二音素列との間の類似性は低い。
類似度情報とは、第一音素列と第二音素列との類似度に関する情報である。類似度情報は、例えば、第一音素列識別子と、コサイン類似度とを有する。第一音素列識別子とは、第一音素列を識別する情報である。第一音素列識別子は、例えば、“1”,“2”,“3”等のIDであるが、第一音素列を識別し得る情報であれば何でもよい。ただし、類似度情報は、例えば、コサイン類似度以外の類似度を有していてもよいし、第一音素列識別子を有していなくてもよく、そのデータ構造は問わない。
算出手段2231は、例えば、格納部21に格納されている2以上の第一音素列ごとに、当該第一音素列に対応する第一ベクトルを取得し、音素列取得部222が取得した第二音素列に対応する第二ベクトルとのコサイン類似度を算出し、類似度情報を取得する。
第一文字列取得手段2232は、格納部21から、音素列取得部222が取得した第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得する。予め決められた条件は、算出手段2231が算出した2以上の類似度の中で最も高く、かつ閾値以上である又は閾値より高い、という条件である。
第一文字列取得手段2232は、例えば、算出手段2231が取得した2以上の類似度情報を用いて、算出された2以上の類似度の中で最も高く、かつ閾値以上である又は閾値より高い、という条件を満たす第一音素列に対応する第一文字列を、格納部21から取得する。
補正部224は、入力文字列取得部221が取得した入力文字列の全部を、第一文字列取得手段2232が取得した第一文字列に置き換える補正処理を行う。
出力部23は、補正部224が補正処理を施した後の入力文字列を出力する。
次に、認識結果補正装置2の動作について、図2および図8のフローチャートを用いて説明する。
認識結果補正装置2の基本的な動作は、図2のフローチャートを用いて説明したものと同様である。本実施の形態におけるステップS201〜S206は、以下のようになる。
(ステップS201)入力文字列取得部221は、入力文字列の取得を行うか否かを判断する。判断の方法は、実施の形態1と同様である。入力文字列の取得を行う場合はステップS202に進み、入力文字列の取得を行わない場合は、ステップS201に戻る。
(ステップS202)入力文字列取得部221は、入力文字列を取得する。取得される入力文字列は、一の文に対応する文字列である。入力文字列の取得方法は、実施の形態1と同様である。
(ステップS203)音素列取得部222は、ステップS202で取得された入力文字列の全部に対応する第二音素列を取得する。
(ステップS204)第一文字列取得部223は、ステップS203で取得された第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を、格納部21から取得する。本実施の形態では、入力文字列取得部221を構成する算出手段2231および第一文字列取得手段2232が、例えば、図8に示すような第一文字列取得処理を実行する。なお、この第一文字列取得処理については後述する。
(ステップS205)補正部224は、ステップS202で取得された入力文字列の全部を、ステップS204で取得された第一文字列に置き換える補正処理を行う。
(ステップS206)出力部23は、ステップS205で補正処理が施された後の入力文字列を出力する。出力の態様は、実施の形態1と同様である。その後、ステップS201に戻る。
図8は、本実施の形態における第一文字列取得処理を説明するフローチャートである。なお、このフローチャートにおいて、第一音素列は、これに対応する第一ベクトルでもよい。また、第二音素列は、これに対応する第二ベクトルでもよい。さらに、類似度は、第一ベクトルと第二ベクトルとのコサイン類似度でもよい。
(ステップS801)第一文字列取得部223を構成する算出手段2231は、変数jに初期値“1”をセットする。なお、変数jは、格納部21に格納されている2以上の第一音素列のうち、未選択の第一音素列を順番に選択していくための変数である。
(ステップS802)算出手段2231は、j番目の第一音素列があるか否かを判別する。例えば、格納されている第一音素列の数をn個(ただし、nは2以上の整数)とすると、算出手段2231は、j≦nの場合に、j番目の第一音素列があると判別し、n<jの場合には、j番目の第一音素列がないと判別する。j番目の第一音素列がある場合はステップS803に進み、j番目の第一音素列がない場合はステップS805に進む。
(ステップS803)算出手段2231は、j番目の第一音素列と、ステップS202で取得された第二音素列との類似度を算出する。算出手段2231は、算出した類似度に関する類似度情報を取得し、MPUの内部メモリ等に保持する。
(ステップS804)は、変数jをインクリメントする。その後、ステップS802に戻る。
(ステップS805)第一文字列取得手段2232は、例えば、MPUの内部メモリ等に保持されている2以上の類似度情報を用いて、ステップS803で算出された2以上の類似度の中で最も高く、かつ閾値以上である又は閾値より高い、という条件を満たす第一音素列に対応する第一文字列を、格納部21から取得する。その後、上位の処理にリターンする。
以下、本実施の形態における認識結果補正装置2の具体的な動作例について説明する。なお、以下の説明は、種々の変更が可能であり、本発明の範囲を何ら制限するものではない。
本例における認識結果補正装置2は、スタンドアロンの端末である。この端末は、自然言語処理を用いた音声認識を行う機能を有する。
認識結果補正装置2の格納部21には、例えば、図9に示すような2以上の対情報が格納される。図9は、本実施の形態における対情報のデータ構造図である。対情報は、第一音素列に対応する第一ベクトルと、第一文字列との対で構成される。第一音素列に対応する第一ベクトルは、前述したようなN次元のベクトル(a,i,u,e,o,k,s,t,n,h,・・・)である。
第一文字列は、一の文に対応する文字列である。格納される2以上の第一文字列の多くは、特に、例えば、金融分野の文(例えば、「池田泉州銀行の去年の収支を教えて」や「関西銀行の前期の収支を教えて」といった、金融分野での使用が想定される文)に対応する文字列であるが、汎用的な文に対応する文字列が含まれていてもよい。
格納部21の2以上の各対情報には、ID(例えば、“1”,“2”等)が対応付いている。例えば、ID“1”に対応する対情報(対情報1)は、第一音素列に対応する第一ベクトル(1,4,2,2,6,1,3,1,4,0,・・・)と、第一文字列“池田泉州銀行の去年の収支を教えて”との対で構成される。同様に、対情報2は、第一音素列に対応する第一ベクトル(2,4,1,3,7,3,3,2,3,0,・・・)と、第一文字列“関西銀行の前期の収支を教えて”との対で構成される。
また、格納部21には、例えば、音声認識を行うためのプログラムや、金融に関する情報を処理するアプリケーションプログラムといった、他のプログラムも格納されている。
ユーザは、認識結果補正装置2である端末に向かって「池田泉州の収支を教えて」と発話したとする。この発話音声は、当該端末のマイクロフォンを介して音声信号に変換される。
認識結果補正装置2において、入力文字列取得部221は、上記音声信号に対して音声認識処理を行い、入力文字列を取得する。本例では、発話とは異なる入力文字列“池田選手の五年の収支を教えて”が取得されたとする。さらに、音素列取得部222は、取得された入力文字列の全部に対応する第二音素列“i,k,e,d,a,s,e,n,sy,u,n,o,g,o,n,e,n,n,o,sy,u,s,i,w,o,o,s,i,e,t,e”を取得する。さらに、音素列取得部222は、かかる第二音素列に対応する第二ベクトル(1,3,2,5,5,1,3,1,5,0,・・・)を取得する。
第一文字列取得部223は、こうして取得された第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を、格納部21から取得する。詳しくは、第一文字列取得部223を構成する算出手段2231は、まず、対情報1を構成する第一ベクトル(1,4,2,2,6,1,3,1,4,0,・・・)と、取得された第二ベクトル(1,3,2,5,5,1,3,1,5,0,・・・)とのコサイン類似度を算出する。ここでは、コサイン類似度0.6が算出されたとする。
次に、算出手段2231は、対情報2を構成する第一ベクトル(2,4,1,3,7,3,3,2,3,0,・・・)と、取得された第二ベクトル(1,3,2,5,5,1,3,1,5,0,・・・)とのコサイン類似度を算出する。ここでは、コサイン類似度0.4が算出されたとする。
第一文字列取得手段2232は、算出された2つのコサイン類似度の中で最も高く、かつ閾値0.5以上である又は閾値0.5より高い、という条件を満たす第一ベクトル(1,4,2,2,6,1,3,1,4,0,・・・)に対応する第一文字列“池田泉州銀行の去年の収支を教えて”を、格納部21から取得する。
補正部224は、取得された入力文字列“池田選手の五年の収支を教えて”の全部を、取得された第一文字列“池田泉州銀行の去年の収支を教えて”に置き換える補正処理を行う。出力部23は、補正処理が施された後の入力文字列“池田泉州銀行の去年の収支を教えて”を、アプリケーションプログラムに引き渡す。
これによって、認識結果補正装置2である端末のディスプレイには、図6と同様の画面が表示される。
以上、本実施の形態によれば、格納部21に、1以上の文字の配列である第一文字列と、第一文字列に対応する1以上の音素の配列である第一音素列との対が、2対以上、格納されており、認識結果補正装置2は、入力された音声であり、一の文に対応する音声を音声認識した結果である入力文字列を取得し、入力文字列の少なくとも一部に対応する2以上の音素の配列である第二音素列を取得し、格納部21から、第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得し、入力文字列の少なくとも一部を、取得した第一文字列に置き換える補正処理を行い、補正処理後の入力文字列を出力することにより、音声認識の結果を的確に補正できる。
また、第一文字列が、一の文に対応する文字列であり、認識結果補正装置2は、入力文字列の全部に対応する2以上の音素の配列である第二音素列を取得し、格納部21に格納されている2以上の第一音素列ごとに、第一音素列と第二音素列との類似度を算出し、第二音素列との類似度が、算出した2以上の類似度の中で最も高く、かつ閾値以上である又は閾値より高いという条件満たす第一文字列を取得し、補正部224は、入力文字列の全部を、第一文字列取得手段が取得した第一文字列に置き換える補正処理を行うことにより、音声認識の結果を文単位で簡単かつ的確に補正できる。
なお、本実施の形態では、一の文に対応する音素列に関して類似度を算出しているが、類似度は、例えば、用語に対応する音素列に関して算出されてもよく、類似度の算出対象となる音素列の属性や長さは問わない。
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをCD−ROMなどの記録媒体に記録して配布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における認識結果補正装置2を実現するソフトウェアは、以下のようなプログラムである。
つまり、コンピュータがアクセス可能な記録媒体は、1以上の文字の配列である第一文字列と、当該第一文字列に対応する1以上の音素の配列である第一音素列との対が、2対以上、格納される格納部21を具備し、このプログラムは、前記コンピュータを、入力された音声であり、一の文に対応する音声を音声認識した結果である入力文字列を取得する入力文字列取得部221と、前記入力文字列の少なくとも一部に対応する2以上の音素の配列である第二音素列を取得する音素列取得部222と、前記格納部21から、前記第二音素列と予め決められた条件を満たすほど類似する第一音素列に対応する第一文字列を取得する第一文字列取得部223と、前記入力文字列の少なくとも一部を、前記第一文字列取得部223が取得した第一文字列に置き換える補正処理を行う補正部224と、前記補正処理後の入力文字列を出力する出力部23として機能させるためのプログラムである。
そして、前記第一文字列は、文に対応する文字列であり、前記音素列取得部222は、前記入力文字列の全部に対応する2以上の音素の配列である第二音素列を取得し、このプログラムは、前記コンピュータを、前記格納部21に格納されている2以上の第一音素列ごとに、当該第一音素列と前記第二音素列との類似度を算出する算出手段2231と、前記第二音素列との類似度が、前記算出手段2231が算出した2以上の類似度の中で最も高く、かつ閾値以上である又は閾値より高いという条件を満たす第一文字列を取得する第一文字列取得手段2232としてさらに機能させ、前記補正部224は、前記入力文字列の全部を、前記第一文字列取得手段2232が取得した第一文字列に置き換える補正処理を行う、プログラムである。
なお、このプログラムは、例えば、前述したアプリケーションプログラムの一部であってもよい。
図10は、各実施の形態におけるプログラムを実行して、認識結果補正装置1または認識結果補正装置2を実現するコンピュータシステム900の内部構成の一例を示す図である。図10において、コンピュータシステム900は、プログラムを実行するコンピュータであるMPU911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、アプリケーションプログラム、システムプログラム、およびデータを記憶するストレージ914と、MPU911、ROM912等を相互に接続するバス915と、外部ネットワークや内部ネットワーク等のネットワークへの接続を提供するネットワークカード916と、メモリカードスロット917と、ディスプレイ918と、ディスプレイ918の表示面に設けられたタッチパネル919と、マイクロフォン921とを備える。ストレージ914は、例えば、フラッシュメモリである。なお、コンピュータシステム900全体をコンピュータと呼んでもよい。
コンピュータシステム900に、認識結果補正装置1等の機能を実行させるプログラムは、例えば、メモリカード920に記憶されて、メモリカードスロット917に挿入され、ストレージ914に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータシステム900に送信され、ストレージ914に記憶されてもよい。プログラムは、実行の際にRAM913にロードされる。なお、プログラムは、メモリカード920、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータシステム900に、認識結果補正装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
なお、上述したコンピュータシステム900は、携帯端末であるが、認識結果補正装置1等は、例えば、据え置き型のPCまたはサーバで実現されてもよい。この場合、例えば、タッチパネル919はキーボードおよびマウスに、メモリカードスロット917はディスクドライブに、ストレージ914はハードディスクやSSDに、メモリカード920はCDやDVD等のディスクに、それぞれ置き換えられてもよい。ただし、以上は例示であり、認識結果補正装置1等を実現するコンピュータのハードウェア構成は問わない。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。