説明

音声変換装置、音声変換装システム、プログラムおよび音声変換方法

【課題】ユーザから複数のリクエストが同時に届いた場合または長文のリクエストが届いた場合の応答性を維持する。
【解決手段】音声変換装置は、複数の音声変換部、管理テーブル、受付部、制御部を備える。前記複数の音声変換部は入力されたリクエストのテキストデータを音声データに変換する。前記管理テーブルには音声変換部毎に使用中か未使用かの使用状態が設定されている。前記受付部は自動音声応答装置からのリクエストを受け付ける。前記制御部は複数のリクエストがほぼ同時に受け付けられた場合、前記管理テーブルを参照して未使用の音声変換部をリクエストの数分検索し、検索された一つの音声変換部に一つのリクエストを処理させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、例えば文字等のキャラクタを音声に変換するサービスに利用される音声変換装置、音声変換システム、プログラムおよび音声変換方法に関する。
【背景技術】
【0002】
近年、例えばインターネットなどでは、文字を音声に変換するサービスが開始されており、このサービスには音声合成装置が利用されている。
【0003】
一般に、音声合成装置は、リクエストを受け付ける音声合成制御部と音声合成処理を実施する音声合成エンジンを備えており、ユーザが端末から送ってきたテキストの文面(文字列)を音声データに変換し、音声信号または音声ファイルとしてユーザの端末へ出力するものである。
【0004】
ところで、音声合成装置には、音声合成制御部や音声合成エンジンなどが一つしか備えられていないため、例えば複数のリクエストが同時に届いた場合や、長文のリクエストが届いた場合は、現在の音声合成装置の処理性能では、音声変換の処理に時間がかかり、応答性が損なわれるという問題がある。
【0005】
ネットワーク環境を利用した従来の音声合成技術としては、国別に言語処理を行う言語処理部と音声合成部とを別の計算機に持たせたものの開示がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平7−199983号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、ユーザから複数のリクエストが同時に届いた場合または長文のリクエストが届いた場合に、リクエストに対する応答性を維持することができる音声変換装置、音声変換システム、プログラムおよび音声変換方法を提供することにある。
【課題を解決するための手段】
【0008】
実施形態の音声変換装置は、複数の音声変換部、管理テーブル、受付部、制御部を備える。前記複数の音声変換部は入力されたリクエストのテキストデータを音声データに変換する。前記管理テーブルには音声変換部毎に使用中か未使用かの使用状態が設定されている。前記受付部は自動音声応答装置からのリクエストを受け付ける。前記制御部は複数のリクエストがほぼ同時に受け付けられた場合、前記管理テーブルを参照して未使用の音声変換部をリクエストの数分検索し、検索された一つの音声変換部に一つのリクエストを処理させる。
【図面の簡単な説明】
【0009】
【図1】第1実施形態の音声合成システム全体の構成を示す図である。
【図2】TTSの構成を示すブロック図である。
【図3】管理テーブルの一例を示す図である。
【図4】同時に受信された複数のリクエストの処理の様子を示す図である。
【図5】図4の場合のTTSの動作を示すフローチャートである。
【図6】長文のリクエストの処理の様子を示す図である。
【図7】図6の場合のTTSの動作を示すフローチャートである。
【図8】第2実施形態の音声合成システム全体の構成を示す図である。
【図9】TTSと各音声合成装置の構成を示すブロック図である。
【図10】同時に受信された複数のリクエストの処理の様子を示す図である。
【図11】長文のリクエストの処理の様子を示す図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態を詳細に説明する。
(第1実施形態)
図1は第1の実施形態の音声合成システムの構成を示す図である。
【0011】
図1に示すように、この実施形態の音声合成システムは、サービス利用者(以下「ユーザ」と称す)が操作する顧客端末41,42、構内交換機30(Private Branch eXchange以下「PBX30」と称す)、音声自動応答装置20(Interactive Voice Response以下「IVR20」と称す)、音声合成(Text To Speech)装置10(以下「TTS装置10」と称す)、これらの機器を接続するネットワーク70等から構成されている。
【0012】
顧客端末41は、顧客の発信操作によりPBX30へリクエストAを発信(発呼)し、PBX30からの転送を受けたIVR20からの自動音声応答を得る。
【0013】
顧客端末42は、顧客の発信操作によりPBX30へリクエストBを発信(発呼)し、PBX30からの転送を受けたIVR20からの自動音声応答を得る。
【0014】
PBX30は顧客端末41,42からリクエストの着信(着呼)があった場合、それぞれのリクエストをIVR20に転送する。
【0015】
IVR20はPBX30から転送されてきたリクエストを受けると、当該リクエストに対する応答処理を行いPBX30へ返す。IVR20は、必要に応じてTTS装置10へ音声合成のリクエストを出し、音声データを受け取り、それをPBX30へ返す。
【0016】
IVR20とTTS装置10は、標準的なプロトコルであるMRCPv2(Media Resource Control Protocol Version 2:draft-ietf-speechsc-MRCPv2-24)に基づいて通信する。この場合、IVR20は、MRCPクライアント、TTS装置10がMRCPサーバとして動作する。
【0017】
IVR20は、PBX30により転送されてきた顧客端末41,42からの着信呼に対して応答する。この際、リクエストの応答に音声合成が必要な場合、TTS装置10へ自動的に音声合成のリクエストを送り、TTS装置10から返されてきた音声ファイル(音声データ)を、PBX30を通じて顧客端末41,42に送る。
【0018】
より詳細には、IVR20はリクエストの応答に音声合成が必要な場合、SIPによるメッセージにてTTS装置10へMRCP/RTPのメディアアプリケーション用のセッションの生成をリクエストする。TTS装置10は、IVR20からリクエストを受けて、セッションを確立し、リクエストのテキストデータを音声データに変換して返す。
【0019】
すなわち、IVR20が着呼に対する音声をPBX30に返す際に、IVR20からTTS装置10に音声合成のリクエストがあった場合、TTS装置10はリクエストされたテキストデータを音声データに変換してIVR20へ返す。
【0020】
図2に示すように、TTS装置10は、通信部11、SIP(Session Initiation Protocol:RFC3261,etc)制御部12(以下「SIP制御部12」と称す)、MRCP制御部13、RTP(Real-time Transport Protocol:RFC3550,etc)制御部14(以下「RTP制御部14と称す)、音声合成制御部15、メモリ16、複数の音声変換部としての音声合成エンジン(#1)17,音声合成エンジン(#2)18、音声合成エンジン(#n)19を有している。
【0021】
SIP制御部12、MRCP制御部13、RTP制御部14などはプロトコル毎の通信制御部である。これら通信制御部はIVR20からのリクエストを受け付ける受付部として機能する。
【0022】
通信部11はこれら通信制御部により制御されてネットワーク70に接続された機器との通信(メッセージのやりとり)を行う。
【0023】
SIP制御部12は、通信部11にSIPセッション生成のリクエストが受信された際に、リクエスト送信元のIVR20との間でセッションを確立し、IVR20と通信部11を通じてSIPによる通信を行う。
【0024】
MRCP制御部13は、通信部11により受信されるリクエストの音声合成実施リクエストのMRCP SPEAKメソッドを解析し、リクエストの内容を音声合成制御部15に通知する。MRCP制御部13は音声合成制御部15が許可したリクエストの音声合成実施を示すMRCP 200 IN−PROGRESSメソッドをIVR20に応答し、RTP制御部14に対して音声合成結果の出力を通知する。
【0025】
RTP制御部14は、MRCP制御部13からの通知によりメモリ16内の音声合成結果を順次RTPパケットに搭載しIVR20へ送信する。
【0026】
メモリ16には、リクエストされたテキスト文を分割するための分割条件が予め設定(記憶)されている。分割条件としては、例えば文章を分割すべきおおよその文字数が閾値(例えば1000文字など)として設定されている。またその閾値を越えて出現する句読点(“。”や“、”)で分割する等の条件が設定されている。
【0027】
またメモリ16には、各音声合成エンジン毎に使用中か未使用かの使用状態が設定された管理テーブル16a(図3参照)が格納(設定)されている。
図3に示すように、管理テーブル16aには、エンジンID、使用中フラグ、処理順情報などが対応して記憶される。エンジンIDの欄には、各音声合成エンジンのIDが登録されている。例えば音声合成エンジン(#1)17のエンジンIDを#1とすると、エンジンIDの欄には#1、音声合成エンジン(#2)18のエンジンIDを#2とすると、エンジンIDの欄には#2、音声合成エンジン(#n)19のエンジンIDを#nとすると、エンジンIDの欄には#nが登録されている。
【0028】
使用中フラグの欄には、各エンジンの使用状態が都度設定される。例えばエンジンID#1の音声合成エンジン(#1)17が未使用(アイドル状態)であれば“0”、使用中であれば“1”が設定される。
【0029】
処理順情報の欄には、分割されたメッセージの分割識別子が設定される。例えばリクエストAのメッセージを2つに分割した場合、リクエストA’−1、リクエストA’−2等の分割識別子が付与されるので、これらの分割識別子が処理させるエンジンIDの処理順情報の欄に設定される。
【0030】
音声合成制御部15は、MRCP制御部13からリクエストの内容を受け取り、メモリ16の管理テーブル16aを参照して複数の音声合成エンジン(#1)17,音声合成エンジン(#2)18、音声合成エンジン(#n)19のうち、どのエンジンで処理を行うかを決定し、リクエストに対する音声合成実施をMRCP制御部13に応答する。
【0031】
音声合成エンジン(#1)17,音声合成エンジン(#2)18、音声合成エンジン(#n)19は、リクエストされたテキスト文を音声合成(音声変換)し、音声データ(音声ファイル)を生成する。つまりこれらエンジンはそれぞれに入力されたリクエストのテキストデータを音声データに変換する。
【0032】
音声合成制御部15は、複数のリクエストがほぼ同時に受け付けられた場合、管理テーブル16aを参照して未使用の音声合成エンジンをリクエストの数分検索し、検索された一つの音声合成エンジンに一つのリクエストを処理させる。
【0033】
音声合成制御部15は、受け付けられたリクエストのテキストデータのデータ量が予め設定された閾値を超える場合、管理テーブル16aを参照して未使用の音声合成エンジンを検索し、未使用の音声合成エンジンが二つ以上検索された場合、検索された音声合成エンジンの数分または予め設定されたデータ量以下になるようテキストデータを分割し、分割した各テキストデータに分割識別子を付与してリクエストを生成し、検索された未使用の一つの音声合成エンジンに、分割した一つのリクエストを処理させる。
【0034】
以下、第1実施形態の音声合成システムの動作を説明する。
まず、この音声合成システムのプロトコルを考慮した通信動作を説明する。
ある顧客が例えば顧客端末41を使用し、PBX30に対して発信、つまりリクエストAを行う。この発信とほぼ同時に他の顧客が顧客端末42を使用し、PBX30に対して発信、つまりリクエストBを行ったものとする。
【0035】
PBX30は顧客端末41,42からの着信したリクエストAおよびリクエストBをIVR20に転送する。
【0036】
IVR20は、PBX30から転送されてきたリクエストAおよびリクエストBに対する応答処理を開始する。
【0037】
IVR20はMRCPv2を搭載した装置であり、リクエストAの応答に音声合成が必要な場合、SIPによるMRCP/RTPのメディアアプリケーション用のセッションの生成をTTS装置10へリクエストする。
【0038】
TTS装置10では、通信部11にSIPセッション生成のリクエストを受信した際、SIP制御部12がMRCP制御部13に対してMRCP通信準備を要求し、同時にRTP制御部14にRTP通信準備を要求する。音声合成準備の完了を通知されたところでSIP制御部12は通信部11を介してSIPセッション生成の完了メッセージを送信する。
【0039】
IVR20はリクエストBの応答に音声合成が必要な場合、SIPによるメッセージにてMRCP/RTPのメディアアプリケーション用のセッションの生成をTTS装置10へリクエストし、TTS装置10では、通信部11からリクエストを受け取った各制御部が音声合成準備を行う。
【0040】
IVR20はリクエストAの応答内容の音声合成を行うテキスト文AをMRCP SPEAKメソッドによりTTS装置10に送信し、また同時にリクエストBの応答内容の音声合成を実施するテキスト文BをMRCP SPEAKメソッドによりTTS装置10に送信する。
【0041】
通信部11が受信したリクエストAおよびリクエストBの音声合成実施リクエストのMRCP SPEAKメソッドはMRCP制御部13により精査した後、音声合成処理を制御する音声合成制御部15に通知される。
【0042】
音声合成制御部15は管理テーブル16aを参照し、未使用“0”(アイドル状態)の音声合成エンジンを検索、つまり音声合成処理が可能な空き音声合成エンジンを検索する。
【0043】
音声合成制御部15は、検索の結果、音声合成エンジン(#1)17にリクエストAの音声合成処理を行わせ、音声合成エンジン(#2)18にリクエストBの音声合成処理を行わせる。
【0044】
音声合成エンジン(#1)17からの音声合成実施を音声合成制御部15が受信した場合、MRCP制御部13にリクエストAの音声合成実施を通知する。音声合成エンジン(#1)17はリアルタイム音声合成を行うため、入力されたテキスト文の音声合成処理結果を完了した単位で音声合成制御部15に出力を行う。音声合成制御部15は出力された音声合成結果を、RTP制御部14と共用するメモリ16の記憶エリアに書き込む。
【0045】
音声合成エンジン(#2)18からの音声合成結果を音声合成制御部15が受信した場合、MRCP制御部13にリクエストBの音声合成完了を通知する。
【0046】
MRCP制御部13はリクエストAの音声合成実施を示すMRCP 200 IN−PROGRESSメソッドをIVR20に応答し、RTP制御部14に対して音声合成結果の出力を通知する。
【0047】
RTP制御部14はMRCP制御部13からの通知によりメモリ16内の音声合成結果を順次RTPパケットに搭載しIVR20へ送信する。
【0048】
同様に、MRCP制御部13はリクエストBの音声合成実施を示すMRCP 200 IN−PROGRESSメソッドをIVR20に応答し、RTP制御部14に対して音声合成結果の出力を通知し、IVR20へのRTPパケットを送信する。
【0049】
RTP制御部14がリクエストAの音声合成結果の出力を全て完了した場合、RTP制御部14はMRCP制御部13に音声合成結果出力完了を通知し、MRCP制御部13はIVR20へリクエストAの音声合成結果出力完了を通知するためのMRCP SPEAK−COMPLETEメソッドを送信する。
【0050】
同様に、RTP制御部14がリクエストBの音声合成結果の出力を全て完了した場合、RTP制御部14はMRCP制御部13に音声合成結果出力完了を通知し、MRCP制御部13はIVR20にリクエストBの音声合成結果出力完了を通知するためのMRCP SPEAK−COMPLETEメソッドを送信する。
【0051】
ここで、図4、図5を参照して複数のリクエストがほぼ同時に受信された場合にリクエスト毎に音声合成処理を分散して行う動作を説明する。
TTS装置10では、IVR20からの音声合成のリクエストAおよびリクエストBを通信部11が受信、つまり受け付けると(図5のステップS101)、通信部11は受け付けたリクエストをメモリ16に一時保持する(ステップS102)。
【0052】
続いて、音声合成制御部15はメモリ16の管理テーブル16aを参照して、使用中フラグの状態から、処理を実施していない音声合成エンジンを検索し(ステップS103)、音声合成エンジンの空きの有無を確認する(ステップS104)。
【0053】
この確認の結果、音声合成エンジンに空きがなければ(ステップS104のNo)、処理空き待ちとし(ステップS105)、空きがあれば(ステップS104のYes)、処理させる音声合成エンジンを決定する(ステップS106)。
【0054】
例えば直前にリクエストがなければ、音声合成エンジン(#1)17,(#2)18などは、未使用“0”(アイドル状態)であり、アイドル状態である音声合成エンジン(#1)17と音声合成エンジン(#2)18のうちIDが上位の音声合成エンジン(#1)17にリクエストAの処理を行わせることを決定し、音声合成エンジン(#2)18にリクエストBの処理を行わせることを決定する。
【0055】
次に、音声合成制御部15は、管理テーブル16aの、処理を行わせる音声合成エンジンのエンジンIDに対応する使用中フラグを「使用中」“1”とし、リクエストA’とリクエストB’を、それぞれ決定した音声合成エンジンに入力する(ステップS107)。
【0056】
なお図4において、音声合成制御部15の前後でリクエストA,BがリクエストA’,B’に変っているのは、処理のためにリクエストに属性情報(ヘッダ、インデックス、識別子など)が付与されるためであり、基本的なリクエストとしての情報は変らない。
【0057】
このようにして音声合成制御部15はリクエストA’の処理を音声合成エンジン(#1)17に受け渡し、リクエストB’の処理を音声合成エンジン(#2)18に受け渡すことで、音声合成の処理を分散させる。
【0058】
音声合成エンジンでの音声合成処理が完了し音声データが戻されると、音声合成制御部15は、音声合成結果の音声データをメモリ16に一時保持すると共に、管理テーブル16aの、当該エンジンの使用状態を「使用中」から「未使用」に変更する(ステップS108)。
【0059】
具体的には、音声合成処理が完了した音声合成エンジンが、例えば音声合成エンジン(#1)17であれば、管理テーブル16aの、エンジンID#1に対応する使用中フラグの状態を「使用中」“1”から「未使用」“0”(アイドル状態)に変更する。
【0060】
その後、音声合成制御部15は、音声合成結果の音声データをメモリ16から読み出してIVR20へ送信する(ステップS109)。
【0061】
このように同一装置内に複数の音声合成エンジンを搭載し、各エンジンの使用状況を管理することで、音声合成システムとしては複数の音声合成リクエストを複数の音声合成エンジンに分散させることができ、これにより、音声合成システムとしての処理負荷を軽減し音声合成結果となる音声データの出力性能を向上することができる。
【0062】
続いて、図6、図7を参照して長文のリクエストを分割し音声合成処理を分散して行う動作を説明する。
TTS装置10では、IVR20からの長文のリクエストAを受信、つまり受け付けると、音声合成制御部15は受け付けたリクエストAをメモリ16に保持する(図7のステップS201)。
【0063】
続いて、音声合成制御部15はメモリ16から文章の分割条件を読み出し(ステップS202)リクエストAの文章が分割条件に適合するか否かを判定する(ステップS203)。
【0064】
この判定の結果、リクエストAのテキストデータ(以下「文章」と称す)が分割条件に適合しない場合(ステップS203のNo)は、通常の音声合成処理を行う(ステップS204)。
【0065】
一方、判定の結果、リクエストAの文章が分割条件に適合した場合(ステップS203のYes)、音声合成制御部15はメモリ16の管理テーブル16aを参照して、使用中フラグの状態から、処理を実施していない音声合成エンジンを検索し(ステップS205)、音声合成エンジンの空きの有無を確認する(ステップS206)。
【0066】
この確認の結果、音声合成エンジンに空きがなければ(ステップS206のNo)、処理空き待ちとし(ステップS207)、空きがあれば(ステップS206のYes)、処理させる音声合成エンジンを決定する(ステップS208)。なお音声合成エンジンの具体的な決定の仕方は上記S106の場合と同じである。
【0067】
次に、音声合成制御部15は、メモリ16から読み出した分割条件、検索結果の空きエンジン数に従い文章を分割し、分割した文章それぞれに分割識別子(またはインデックス)を割り付ける(ステップS209)。なお分割識別子を割り付けるのは、分散して音声合成を実施させた後に音声合成結果を、再度、結合するときに正しい順番通りにするためのである。
【0068】
より具体的には、音声合成制御部15はメモリ16に予め設定されている、一度に実施する音声合成のテキストデータの文量を確認し、受信したテキスト文を閾値(設定値)に従い分割する。テキストデータを分断する際、閾値(設定値)を越えて出現する句読点(“。”や“、”)に基づいて分割する。これにより、分割されたテキスト文を1文に結合する際に、前後文脈を解釈し音声合成を実施する音声合成エンジンに対してスムーズな音声合成処理を実施させることができる。
【0069】
以下、この例ではリクエストAの文章をリクエストA’−1、リクエストA’−2の二つに分割する場合について説明する。
【0070】
そして、音声合成制御部15は、管理テーブル16aの、処理を行わせる音声合成エンジンのエンジンIDに対応する使用中フラグを「使用中」“1”、その処理順情報の欄に分割識別子を設定し、分割したリクエストA’−1とリクエストA’−2を、それぞれ決定した音声合成エンジンへ入力する(ステップS210)。
【0071】
この例では、音声合成エンジン(#1)17にリクエストA’−1の音声合成処理を行わせ、音声合成エンジン18にリクエストA’−2の音声合成処理を行わせる。
【0072】
なお図6において、音声合成制御部15の前後でリクエストAがリクエストA’−1,A’−2に変っているのは、分割により一つのリクエストが2つに分けられていることと、それらを処理するために、分割したリクエストに属性情報(ヘッダ、インデックス、識別子など)が付与されるためである。
【0073】
音声合成エンジンでの音声合成処理が完了し、音声合成処理結果の音声データが受信されると、音声合成制御部15は、その音声データを分割識別子の順にソートしてメモリ16に保存すると共に(ステップS211)、管理テーブル16aの、当該エンジンの使用状態を「使用中」から「未使用」に変更する。
【0074】
その後、音声合成制御部15は、音声合成結果の音声データを、分割識別子の順にメモリ16から読み出してIVR20へ送信する(ステップS212)。
【0075】
このように同一装置内に複数の音声合成エンジンを搭載し、長文の音声合成リクエストが受信された場合、音声合成制御部15が分割条件に従ってリクエストの文章を分割して、分割したそれぞれ文章を複数の音声合成エンジンに分散処理させることで、音声合成システムとしての処理負荷を軽減でき、音声合成結果となる音声データの出力性能を向上することができる。
【0076】
このように第1実施形態によれば、顧客端末41,42とPBX30、IVR20、TTS装置10とをネットワーク70を介して接続された音声合成システムにおいて、複数の顧客から同時に着信があった場合にIVR20が再生する音声データをTTS装置10が生成する際に、複数の音声合成リクエストをTTS装置10で処理することが必要になるが、TTS装置10に、複数の音声合成エンジン(#1)17,(#2)18とこれらにリクエストを割り当てる音声合成制御部15を搭載することで、複数の音声合成リクエストを複数の音声合成エンジン(#1)17,(#2)18がそれぞれ分散して処理を行えるので、音声合成システムとしての処理負荷を軽減し、音声合成結果となる音声データの出力性能を向上することができる。
【0077】
また、本実施形態によれば、1回の音声合成処理を実施する際の最適なテキスト文の長さ(分量)をTTS装置10に予め設定しておき、顧客から着信がありIVR20が再生する音声データをTTS装置10が生成する際に、受信した音声合成を実施するテキスト文を適切な長さ(分量)に分けて複数のリクエストを生成し、それぞれのリクエストを複数の音声合成エンジンに分けて送信する。これにより、受信したままの長いテキスト文の音声合成を行うよりも音声合成システムとしての処理負荷を軽減し、音声合成結果となる音声データの出力性能を向上することができる。
【0078】
続いて、図8乃至図11を参照して第2実施形態について説明する。なお第1実施形態と同様の構成には同一の符号を付しその説明は省略する。
この第2実施形態は、音声合成制御部と音声合成エンジンとをそれぞれ別々のハードウェアに搭載し、互いの装置をネットワークで接続して構成した例である。
【0079】
すなわち、図8、図9に示すように、第2実施形態の音声合成システムは、音声合成制御装置10aと、複数の音声合成装置50,60とを有している。
【0080】
音声合成制御装置10aは、ネットワーク70に接続されている。音声合成制御装置10aは、SIP制御部12、MRCP制御部13、RTP制御部14、音声合成制御部15、メモリ16、ソケット通信制御装置91などを有している。
【0081】
SIP制御部12、MRCP制御部13、RTP制御部14などは、プロトコル毎の通信制御部であり、IVR20からのリクエストを受け付ける受付部として機能する。
【0082】
メモリ16には、音声合成装置50,60毎に使用中か未使用かの使用状態が設定され、分割識別子が設定可能な管理テーブル16a(図3参照)が記憶されている。
【0083】
音声合成制御部15は、複数のリクエストがほぼ同時に受け付けられた場合、管理テーブル16aを参照して未使用の音声合成装置50,60をリクエストの数分検索し、検索された一つの音声合成装置50,60に一つのリクエストを割り振る制御部として機能する。
【0084】
また音声合成制御部15は、受け付けられたリクエストのテキストデータのデータ量が予め設定された閾値を超える場合、管理テーブル16aを参照して未使用の音声合成装置50,60を検索し、前記未使用の音声合成装置50,60が二つ以上検索された場合、検索された音声合成装置50,60の数分または予め設定されたデータ量以下になるようテキストデータを分割し、分割した各テキストデータに分割識別子を付与してリクエストを生成し、検索された未使用の一つの音声合成装置50,60に、分割した一つのリクエストを割り振る制御部として機能する。
【0085】
ソケット通信制御装置91は音声合成制御装置と音声合成エンジン装置との通信のためのモジュールであり、通信部11を制御して音声合成制御部15により割り振られたリクエストを処理させる音声合成装置50,60へ送信する。
【0086】
音声合成装置50は、通信部51、音声合成エンジン17を有している。音声合成装置60は、通信部61、音声合成エンジン18を有している。
【0087】
通信部51,61は、リクエストを受信する。通信部51,61は、音声合成エンジン(#1)17,(#2)18により変換された音声データをリクエスト送信元へ返信する。
【0088】
音声合成エンジン(#1)17,(#2)18は、通信部51,61により受信されたリクエストのテキストデータを音声データに変換し通信部51,61に渡す。
【0089】
次に、この第2実施形態の動作を説明する。なおこの第2実施形態の動作は第1実施形態とハードウェア構成が異なり、音声合成制御装置10aと音声合成装置50,60との間でプロセス間通信を行うことになったものである。
【0090】
まず、複数のリクエストがほぼ同時に音声合成制御装置10aに受信された場合にリクエスト毎に音声合成処理を分散して行う動作を説明する。
【0091】
図10に示すように、複数のリクエストA,Bがほぼ同時に音声合成制御装置10aに受信された場合、音声合成制御装置10aでは、通信部11がこれら複数のリクエストA,Bを受け付け、メモリ16に記憶する。
【0092】
続いて、音声合成制御部15はメモリ16の管理テーブル16aを参照して、使用中フラグの状態から、処理を実施していない音声合成エンジンを検索し、音声合成エンジンの空きの有無を確認する。
【0093】
この確認の結果、音声合成エンジンに空きがなければ、処理空き待ちとし、空きがあれば、処理させる音声合成エンジンを決定する。
【0094】
次に、音声合成制御部15は、管理テーブル16aの、処理を行わせる音声合成エンジンのエンジンIDに対応する使用中フラグを「使用中」“1”とし、リクエストA’とリクエストB’を、ソケット通信制御装置91へ通知する。
【0095】
ソケット通信制御装置91は、通信部11を制御して音声合成制御部15により決定された音声合成エンジンが搭載されている音声合成装置50,60へ処理対象のリクエストA’,B’を、ネットワークワーク70を通じて送信する。
【0096】
この例では、音声合成装置50へリクエストA’が送信され、音声合成装置60へリクエストB’が送信される。
【0097】
各音声合成装置50,60では、音声合成処理が完了すると、音声合成処理結果の音声データを音声合成制御装置10aへネットワークワーク70を通じて送信する。
【0098】
音声合成制御装置10aでは、音声合成装置50,60から音声データがソケット通信制御装置91により受信されると、メモリ16に記憶する。
【0099】
音声合成制御部15は、管理テーブル16aの、当該装置の音声合成エンジンの使用状態を「使用中」から「未使用」に変更する。
【0100】
具体的には、音声合成処理が完了した音声合成エンジンが、例えば音声合成エンジン(#1)17であれば、管理テーブル16aの、エンジンID#1に対応する使用中フラグの状態を「使用中」“1”から「未使用」“0”(アイドル状態)に変更する。
【0101】
その後、音声合成制御部15は、音声合成結果の音声データをメモリ16から読み出して通信部11へ渡し、IVR20へ送信する。
【0102】
このように別の装置に音声合成制御部15と複数の音声合成エンジン(#1)17,(#2)18とを分けて搭載することで、音声合成システムとしては複数の音声合成リクエストを複数の音声合成エンジンに分散させることができ、これにより、装置単位でCPU負荷を軽減し、音声合成結果となる音声データの出力性能を向上することができる。
【0103】
続いて、図11を参照して、この第2実施形態において長文のリクエストを分割し音声合成処理を分散して行う動作を説明する。
音声合成制御装置10aでは、IVR20からの長文のリクエストAを通信部11が受信、つまり受け付けると、受け付けたリクエストAをメモリ16に記憶する。
【0104】
音声合成制御部15はメモリ16から文章の分割条件を読み出し、リクエストAの文章が分割条件に適合するか否かを判定する。
【0105】
この判定の結果、リクエストAの文章が分割条件に適合しない場合は、通常の音声合成処理を行う。
【0106】
一方、判定の結果、リクエストAの文章が分割条件に適合した場合、音声合成制御部15はメモリ16の管理テーブル16aを参照して、使用中フラグの状態から、処理を実施していない音声合成エンジンを検索し、音声合成エンジンの空きの有無を確認する。
【0107】
この確認の結果、音声合成エンジンに空きがなければ、処理空き待ちとし、空きがあれば、処理させる音声合成エンジンを決定する。
【0108】
次に、音声合成制御部15は、メモリ16から読み出した分割条件、検索結果の空きエンジン数に従い文章を分割し、分割した文章それぞれに分割識別子(またはインデックス)を割り付ける。なお分割識別子を割り付けるのは、分散して音声合成を実施させた後に音声合成結果を、再度、結合するときに正しい順番通りにするためのである。
【0109】
より具体的には、音声合成制御部15はメモリ16に予め設定されている、一度に実施する音声合成のテキストデータの文量を確認し、受信したテキスト文を閾値(設定値)に従い分割する。テキストデータを分断する際、閾値(設定値)を越えて出現する句読点(“。”や“、”)に基づいて分割する。これにより、分割されたテキスト文を1文に結合する際に、前後文脈を解釈し音声合成を実施する音声合成エンジンに対してスムーズな音声合成処理を実施させることができる。
【0110】
以下、この例ではリクエストAの文章をリクエストA’−1、リクエストA’−2の二つに分割する場合について説明する。
【0111】
そして、音声合成制御部15は、管理テーブル16aの、処理を行わせる音声合成エンジンのエンジンIDに対応する使用中フラグを「使用中」“1”、その処理順情報の欄に分割識別子を設定し、ソケット通信制御装置91へ通知する。
【0112】
ソケット通信制御装置91は、音声合成制御部15により決定された音声合成エンジンが搭載されている音声合成装置50,60へ処理対象のリクエストA’−1,A’−2を、ネットワークワーク70を通じて送信する。
【0113】
この例では、音声合成装置50へリクエストA’−1が送信され、音声合成装置60へリクエストA’−2が送信される。
【0114】
各音声合成装置50,60では、音声合成処理が完了すると、音声合成処理結果の音声データを、ネットワークワーク70を通じて音声合成制御装置10aへ送信する。
【0115】
音声合成制御装置10aでは、音声合成装置50,60から音声データがソケット通信制御装置91により受信されると、音声合成制御部15は、その音声データを分割識別子の順にソートしてメモリ16に記憶すると共に、管理テーブル16aの、当該エンジンの使用状態を「使用中」から「未使用」に変更する。
【0116】
その後、音声合成制御部15は、音声合成結果の音声データを、分割識別子の順にメモリ16から読み出して通信部11を通じてIVRへ送信する。
【0117】
このように別々の装置内に音声合成制御部15と複数の音声合成エンジン(#1)17,(#2)18を搭載し、長文の音声合成リクエストが受信された場合、音声合成制御部15が分割条件に従ってリクエストの文章を分割して、分割したそれぞれの文章を、当該音声合成エンジンが搭載された音声合成装置50,60へネットワークワーク70を通じて送り、複数の音声合成装置50,60に分散処理させることで、装置単位でCPU負荷を軽減でき、音声合成結果となる音声データの出力性能を向上することができる。
【0118】
このようにこの第2実施形態によれば、音声合成の制御機能だけを持たせた音声合成制御装置10aと、音声合成の処理機能だけを持たせた音声合成装置50,60とをネットワーク70を介して接続することで、それぞれの装置単位でのCPU負荷を軽減し、応答性能を向上することができる。
【0119】
説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0120】
上記実施形態では、2基の音声合成エンジンを用いた例を示したが、音声合成エンジンの搭載数は、限定されるものではなくシステムの規模に応じて搭載するものとする。
【0121】
また上記実施形態に示した各構成要素を、コンピュータのハードディスク装置などのストレージにインストールしたプログラムで実現してもよく、また上記プログラムを、コンピュータ読取可能な電子媒体:electronic mediaに記憶しておき、プログラムを電子媒体からコンピュータに読み取らせることで本発明の機能をコンピュータが実現するようにしてもよい。電子媒体としては、例えばCD−ROM等の記録媒体やフラッシュメモリ、リムーバブルメディア:Removable media等が含まれる。さらに、ネットワークを介して接続した異なるコンピュータに構成要素を分散して記憶し、各構成要素を機能させたコンピュータ間で通信することで実現してもよい。
【符号の説明】
【0122】
10…音声合成装置(TTS装置)、10a…音声合成制御装置、11…通信部、12…SIP制御部、13…MRCP制御部、14…RTP制御部、15…音声合成制御部、16…メモリ、16a…管理テーブル、17,18…音声合成エンジン、20…音声自動応答装置(IVR)、30…構内交換機(PBX)、41,42…顧客端末、50,60…音声合成装置、51,61…通信部、60…音声合成装置、61…通信部、70…ネットワーク、91…ソケット通信制御装置。

【特許請求の範囲】
【請求項1】
発呼する端末、構内交換機および自動音声応答装置とネットワークを介して接続され、前記端末からの着呼が構内交換機から自動音声応答装置に転送され、前記自動音声応答装置が着呼に対する音声を返す際に、前記自動音声応答装置から音声合成のリクエストがあった場合、リクエストされたテキストデータを音声データに変換して前記自動音声応答装置へ返す音声変換装置において、
入力されたリクエストのテキストデータを音声データに変換する複数の音声変換部と、
音声変換部毎に使用中か未使用かの使用状態が設定される管理テーブルと、
前記自動音声応答装置からのリクエストを受け付ける受付部と、
複数のリクエストがほぼ同時に受け付けられた場合、前記管理テーブルを参照して未使用の音声変換部をリクエストの数分検索し、検索された一つの音声変換部に一つのリクエストを処理させる制御部と
を具備することを特徴とする音声変換装置。
【請求項2】
発呼する端末、構内交換機および自動音声応答装置とネットワークを介して接続され、前記端末からの着呼が構内交換機から自動音声応答装置に転送され、前記自動音声応答装置が着呼に対する音声を返す際に、前記自動音声応答装置から音声合成リクエストがあった場合、リクエストされたテキストデータを音声データに変換して前記自動音声応答装置へ返す音声変換装置において、
入力されたリクエストのテキストデータを音声データに変換する複数の音声変換部と、
音声変換部毎に、使用中か未使用かの使用状態が設定され、分割識別子が設定可能な管理テーブルと、
前記自動音声応答装置からのリクエストを受け付ける受付部と、
受け付けられたリクエストのテキストデータのデータ量が予め設定された閾値を超える場合、前記管理テーブルを参照して未使用の音声変換部を検索し、前記未使用の音声変換部が二つ以上検索された場合、検索された音声変換部の数分または予め設定されたデータ量以下になるよう前記テキストデータを分割し、分割した各テキストデータに分割識別子を付与してリクエストを生成し、検索された未使用の一つの音声変換部に、分割した一つのリクエストを処理させる制御部と
を具備する音声変換装置。
【請求項3】
発呼する端末、構内交換機および自動音声応答装置とネットワークを介して接続され、前記端末からの着呼が構内交換機から自動音声応答装置に転送され、前記自動音声応答装置が着呼に対する音声を返す際に、前記自動音声応答装置から音声合成のリクエストがあった場合、リクエストされたテキストデータを音声データに変換して前記自動音声応答装置へ返す音声変換システムにおいて、
前記ネットワークに接続され、受信されたリクエストのテキストデータを音声データに変換してリクエスト送信元へ返信する複数の音声変換装置と、
前記ネットワークに接続され、前記音声変換装置毎に使用中か未使用かの使用状態が設定された管理テーブルと、前記自動音声応答装置からのリクエストを受け付ける受付部と、複数のリクエストがほぼ同時に受け付けられた場合、前記管理テーブルを参照して未使用の音声変換装置をリクエストの数分検索し、検索された一つの音声変換装置に一つのリクエストを割り振る制御部と、前記制御部により割り振られたリクエストを処理させる音声合成装置へ送信する通信部とを備える音声合成制御装置と
を具備することを特徴とする音声変換システム。
【請求項4】
発呼する端末、構内交換機および自動音声応答装置とネットワークを介して接続され、前記端末からの着呼が構内交換機から自動音声応答装置に転送され、前記自動音声応答装置が着呼に対する音声を返す際に、前記自動音声応答装置から音声合成リクエストがあった場合、リクエストされたテキストデータを音声データに変換して前記自動音声応答装置へ返す音声変換システムにおいて、
前記ネットワークに接続され、受信されたリクエストのテキストデータを音声データに変換してリクエスト送信元へ返信する複数の音声変換装置と、
音声変換部毎に、使用中か未使用かの使用状態が設定され、分割識別子が設定可能な管理テーブルと、前記自動音声応答装置からのリクエストを受け付ける受付部と、受け付けられたリクエストのテキストデータのデータ量が予め設定された閾値を超える場合、前記管理テーブルを参照して未使用の音声変換装置を検索し、前記未使用の音声変換装置が二つ以上検索された場合、検索された音声変換装置の数分または予め設定されたデータ量以下になるよう前記テキストデータを分割し、分割した各テキストデータに分割識別子を付与してリクエストを生成し、検索された未使用の一つの音声変換装置に、分割した一つのリクエストを割り振る制御部と、前記制御部により割り振られたリクエストを処理させる音声合成装置へ送信する通信部とを備える音声合成制御装置と
を具備する音声変換システム。
【請求項5】
発呼する端末、構内交換機および自動音声応答装置とネットワークを介して接続され、前記端末からの着呼が構内交換機から自動音声応答装置に転送され、前記自動音声応答装置が着呼に対する音声を返す際に、前記自動音声応答装置から音声合成のリクエストがあった場合、リクエストされたテキストデータを音声データに変換して前記自動音声応答装置へ返す音声変換装置に処理を実行させるプログラムにおいて、
前記音声変換装置を、
入力されたリクエストのテキストデータを音声データに変換する複数の音声変換部と、
音声変換部毎に使用中か未使用かの使用状態が設定される管理テーブルと、
前記自動音声応答装置からのリクエストを受け付ける受付部と、
複数のリクエストがほぼ同時に受け付けられた場合、前記管理テーブルを参照して未使用の音声変換部をリクエストの数分検索し、検索された一つの音声変換部に一つのリクエストを処理させる制御部
として機能させることを特徴とするプログラム。
【請求項6】
発呼する端末、構内交換機および自動音声応答装置とネットワークを介して接続され、前記端末からの着呼が構内交換機から自動音声応答装置に転送され、前記自動音声応答装置が着呼に対する音声を返す際に、前記自動音声応答装置から音声合成のリクエストがあった場合、リクエストされたテキストデータを音声データに変換して前記自動音声応答装置へ返す音声変換装置における音声変換支援方法において、
前記自動音声応答装置からのリクエストを受付部が受け付けるステップと、
複数のリクエストがほぼ同時に受け付けられた場合、入力されたリクエストのテキストデータを音声データに変換する複数の音声変換部のうち、音声変換部毎に使用中か未使用かの使用状態が設定された管理テーブルを制御部が参照して未使用の音声変換部をリクエストの数分検索し、検索された一つの音声変換部に一つのリクエストを処理させるステップと
を有することを特徴とする音声変換方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−57734(P2013−57734A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−194893(P2011−194893)
【出願日】平成23年9月7日(2011.9.7)
【出願人】(000003078)株式会社東芝 (54,554)