(57)【要約】【課題】音声データを処理するタイミングを容易に制御することが可能で、かつ、複数の音声を重畳させて再生させるモードと通常の再生モードとを容易に切り変えることが可能な、音声再生用の集積回路装置を提供する。【解決手段】集積回路装置１は、４個以上のバッファ２０と、ホスト１００からのコマンドに基づいて、バッファへのデータの書き込み処理、及び、バッファからのデータの読み出し処理を制御するバッファ制御部３０と、複数の音声データを同時に受け付け可能に構成されており、同時に入力された音声データに基づいて、再生用の音声データを出力する再生音声データ出力処理部５０とを含む。バッファ制御部３０は、ホストからのコマンドに基づいて、バッファ２０を１つのダブルバッファとして動作させる第１の動作モードと、バッファ２０を複数のダブルバッファとして動作させる第２の動作モードとを切り替える。【選択図】図１
2008269199.tif 000002
【特許請求の範囲】
【請求項１】
ホストから入力されるコマンド及び音声データに基づいて音声再生処理を行う集積回路装置であって、
Ｌ個（Ｌは４以上の整数）のバッファと、
前記コマンドに基づいて、前記バッファへのデータの書き込み処理、及び、前記バッファからのデータの読み出し処理を制御するバッファ制御部と、
ｎ個（ｎは２以上の整数）の音声データを同時に受け付け可能に構成されており、同時に入力された前記ｎ個の音声データに基づいて、再生用の音声データを出力する再生音声データ出力処理部と、
を含み、
前記バッファ制御部は、
前記ホストから入力されるコマンドが、前記バッファ制御部の動作モードを第１の動作モードに指定する第１の動作モード指定コマンドである場合、
前記Ｌ個のバッファを、Ｍ個（Ｍは整数）の前記バッファを含むＮ個（Ｎは２以上の整数）の領域に分類し、
いずれかの領域に属する前記バッファへのデータの書き込みが行われているときに、他の領域に属する前記バッファからのデータの読み出しが行われるように、前記書き込み処理、及び、前記読み出し処理を制御し、
前記ホストから入力されるコマンドが、前記バッファ制御部の動作モードを第２の動作モードに指定する第２の動作モード指定コマンドである場合、
前記Ｌ個のバッファを、ｍ個（ｍは２以上の整数）の前記バッファを含むｎ個の領域に分類し、
１つの領域に属するいずれかの前記バッファへのデータの書き込みが行われているときに、同じ領域に属する他の前記バッファからのデータの読み出しが行われるように、前記書き込み処理、及び、前記読み出し処理を制御する集積回路装置。
【請求項２】
請求項１記載の集積回路装置において、
前記ホストから入力されるコマンドが前記第２の動作モード指定コマンドである場合、
前記バッファ制御部は、
異なるｎ個の領域の各読み出し対象バッファからのデータの読み出しが並行して行われるように、前記読み出し処理を制御する集積回路装置。
【請求項３】
請求項２記載の集積回路装置において、
前記再生音声データ出力処理部は、
前記異なるｎ個の領域の各読み出し対象バッファから並行して読み出されたｎ個の音声データに基づいて、前記再生用の音声データを出力する集積回路装置。
【請求項４】
請求項１から請求項３のいずれかに記載の集積回路装置において、
前記バッファ制御部は、
前記ホストから入力されるコマンドが前記第１の動作モード指定コマンドである場合、
異なる領域に属する前記バッファへのデータの書き込みが並行して行われないように、かつ、前記異なる領域に属するバッファからのデータの読み出しが並行して行われないように、かつ、１つの領域に属する前記バッファへのデータの書き込みと前記１つの領域に属するバッファからのデータの読み出しとが並行して行われないように、前記書き込み処理、及び、前記読み出し処理を制御する集積回路装置。
【請求項５】
請求項１から請求項４のいずれかに記載の集積回路装置において、
前記バッファ制御部は、
前記ホストから入力されるコマンドが前記第２の動作モード指定コマンドである場合、
１つの領域に属する複数の前記バッファへのデータの書き込みが並行して行われないように、かつ、前記１つの領域に属する複数の前記バッファからのデータの読み出しが並行して行われないように、前記書き込み処理、及び、前記読み出し処理を制御する集積回路装置。
【請求項６】
請求項１から請求項５のいずれかに記載の集積回路装置において、
前記バッファ制御部は、
それぞれの前記バッファへのデータの書き込みと読み出しとが並行して行われないように、前記書き込み処理、及び、前記読み出し処理を制御する集積回路装置。
【請求項７】
請求項１から請求項６のいずれかに記載の集積回路装置において、
前記ホストとハンドシェークでシリアル通信を行うためのシリアルコントローラをさらに含み、
前記シリアルコントローラは、いずれかの前記バッファへのデータの書き込みが可能になったことを検出して、前記ホストに、新たな音声データを要求する信号を送信する集積回路装置。
【請求項８】
請求項１から請求項７のいずれかに記載の集積回路装置において、
前記再生音声データ出力処理部は、
同時に入力された前記ｎ個の音声データを重畳して出力する集積回路装置。
【請求項９】
請求項１から請求項７のいずれかに記載の集積回路装置において、
前記再生音声データ出力処理部に同時に入力されたｎ個の音声データのそれぞれが、有音を示す有音音声データであるか無音を示す無音音声データであるかを検出する検出処理部をさらに含み、
前記再生音声データ出力処理部は、
前記同時に入力されたｎ個の音声データに前記有音音声データが１つのみ含まれている場合、前記有音音声データを前記再生用の音声データとして出力する集積回路装置。
【請求項１０】
請求項１から請求項７のいずれかに記載の集積回路装置において、
前記再生音声データ出力処理部に同時に入力されたｎ個の音声データのそれぞれが、有音を示す有音音声データであるか無音を示す無音音声データであるかを検出する検出処理部と、
前記同時に入力されたｎ個の音声データがｋ個（ｋは２以上、かつ、ｎ以下の整数）の有音音声データを含むことが検出された場合の前記再生音声データ出力処理部の動作モードを、前記ｋ個の有音音声データを重畳して出力するミキシングモードと、前記ｋ個の有音音声データのいずれか１つを選択して出力する選択出力モードと、再生音声が無音となる音声データを出力する無音出力モードと、のいずれかに設定する動作モード設定処理部と、
をさらに含み、
前記再生音声データ出力処理部は、
前記動作モードがミキシングモードに設定されているときに、同時に入力される前記ｋ個の有音音声データを重畳して出力し、
前記動作モードが選択出力モードに設定されているときに、同時に入力される前記ｋ個の有音音声データのいずれかを選択して出力し、
前記動作モードが前記無音出力モードに設定されているときに、前記再生音声が無音となる音声データを出力する集積回路装置。
【請求項１１】
請求項１から請求項１０のいずれかに記載の集積回路装置において、
Ｌ＝Ｍ×Ｎ＝ｍ×ｎである集積回路装置。
【請求項１２】
請求項１から請求項１１のいずれかに記載の集積回路装置において、
Ｍ＝Ｎ＝ｍ＝ｎ＝２である集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声を再生するための集積回路装置（音声再生ＩＣ）に関する。
【背景技術】
【０００２】
音声データを受け付けて、音声を再生させるための処理を行う音声再生ＩＣが知られている。また、２種類以上の音声を示す音声データに基づいて、複数の音声が重畳された音声を再生する技術が知られている。
【特許文献１】特開２０００−３０８０１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
音声再生ＩＣで自然な音声を再生するためには、音声データを処理するタイミングを制御することが重要である。また、音声再生ＩＣで、複数の音声データを所望のタイミングで制御することができれば、自然な音声を重ねあわせて再生することができる。また、複数の音声を重畳して再生するモードと、通常の音声再生モードとを容易に切り変えることができれば、音声再生ＩＣの利便性を高めることができる。
【０００４】
本発明の目的は、音声データを処理するタイミングを容易に制御することが可能で、かつ、複数の音声を重畳させて再生させるモードと通常の再生モードとを容易に切り変えることが可能な、音声再生用の集積回路装置を提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明に係る集積回路装置は、
ホストから入力されるコマンド及び音声データに基づいて音声再生処理を行う集積回路装置であって、
Ｌ個（Ｌは４以上の整数）のバッファと、
前記コマンドに基づいて、前記バッファへのデータの書き込み処理、及び、前記バッファからのデータの読み出し処理を制御するバッファ制御部と、
ｎ個（ｎは２以上の整数）の音声データを同時に受け付け可能に構成されており、同時に入力された前記ｎ個の音声データに基づいて、再生用の音声データを出力する再生音声データ出力処理部と、
を含み、
前記バッファ制御部は、
前記ホストから入力されるコマンドが、前記バッファ制御部の動作モードを第１の動作モードに指定する第１の動作モード指定コマンドである場合、
前記Ｌ個のバッファを、Ｍ個（Ｍは整数）の前記バッファを含むＮ個（Ｎは２以上の整数）の領域に分類し、
いずれかの領域に属する前記バッファへのデータの書き込みが行われているときに、他の領域に属する前記バッファからのデータの読み出しが行われるように、前記書き込み処理、及び、前記読み出し処理を制御し、
前記ホストから入力されるコマンドが、前記バッファ制御部の動作モードを第２の動作モードに指定する第２の動作モード指定コマンドである場合、
前記Ｌ個のバッファを、ｍ個（ｍは２以上の整数）の前記バッファを含むｎ個の領域に分類し、
１つの領域に属するいずれかの前記バッファへのデータの書き込みが行われているときに、同じ領域に属する他の前記バッファからのデータの読み出しが行われるように、前記書き込み処理、及び、前記読み出し処理を制御する。
【０００６】
本発明では、ホストから入力されるコマンドが第１の動作モード指定コマンドである場合、いずれかのバッファにデータが書き込まれる処理と並行して、他のいずれかのバッファからデータが読み出される処理が行われる。すなわち、バッファ２０が、１つのダブルバッファ（あるいはマルチバッファ）として動作する。そのため、１つのストリームデータを、所望のタイミングで処理することができる。
【０００７】
また、本発明では、ホストから入力されるコマンドが第２の動作モード指定コマンドである場合、ｎ個に分類された各領域で、いずれかのバッファにデータが書き込まれる処理と並行して、他のいずれかのバッファからデータが読み出される処理が行われる。すなわち、バッファ２０が、ｎ個のダブルバッファ（マルチバッファ）として動作する。そのため、ｎ個のストリームデータ（複数の音声データ）を、それぞれ、所望のタイミングで処理することが可能になる。
【０００８】
また、本発明によると、バッファ制御部の動作モードを、ホストからのコマンドによって容易に変更することが可能な、利便性の高い集積回路装置を提供することができる。
【０００９】
（２）この集積回路装置において、
前記ホストから入力されるコマンドが前記第２の動作モード指定コマンドである場合、
前記バッファ制御部は、
異なるｎ個の領域の各読み出し対象バッファからのデータの読み出しが並行して行われるように、前記読み出し処理を制御してもよい。
【００１０】
（３）この集積回路装置において、
前記再生音声データ出力処理部は、
前記異なるｎ個の領域の各読み出し対象バッファから並行して読み出されたｎ個の音声データに基づいて、前記再生用の音声データを出力してもよい。
【００１１】
（４）この集積回路装置において、
前記バッファ制御部は、
前記ホストから入力されるコマンドが前記第１の動作モード指定コマンドである場合、
異なる領域に属する前記バッファへのデータの書き込みが並行して行われないように、かつ、前記異なる領域に属するバッファからのデータの読み出しが並行して行われないように、かつ、１つの領域に属する前記バッファへのデータの書き込みと前記１つの領域に属するバッファからのデータの読み出しとが並行して行われないように、前記書き込み処理、及び、前記読み出し処理を制御してもよい。
【００１２】
（５）この集積回路装置において、
前記バッファ制御部は、
前記ホストから入力されるコマンドが前記第２の動作モード指定コマンドである場合、
１つの領域に属する複数の前記バッファへのデータの書き込みが並行して行われないように、かつ、前記１つの領域に属する複数の前記バッファからのデータの読み出しが並行して行われないように、前記書き込み処理、及び、前記読み出し処理を制御してもよい。
【００１３】
（６）この集積回路装置において、
前記バッファ制御部は、
それぞれの前記バッファへのデータの書き込みと読み出しとが並行して行われないように、前記書き込み処理、及び、前記読み出し処理を制御してもよい。
【００１４】
例えば、本発明では、バッファとして、シングルポートメモリを適用してもよい。
【００１５】
（７）この集積回路装置において、
前記ホストとハンドシェークでシリアル通信を行うためのシリアルコントローラをさらに含み、
前記シリアルコントローラは、いずれかの前記バッファへのデータの書き込みが可能になったことを検出して、前記ホストに、新たな音声データを要求する信号を送信してもよい。
【００１６】
これにより、バッファへのデータの書き込みと、バッファからのデータの読み出しとを、所望のタイミングで、効率よく行うことができる。
【００１７】
（８）この集積回路装置において、
前記再生音声データ出力処理部は、
同時に入力された前記ｎ個の音声データを重畳して出力してもよい。
【００１８】
（９）この集積回路装置において、
前記再生音声データ出力処理部に同時に入力されたｎ個の音声データのそれぞれが、有音を示す有音音声データであるか無音を示す無音音声データであるかを検出する検出処理部をさらに含み、
前記再生音声データ出力処理部は、
前記同時に入力されたｎ個の音声データに前記有音音声データが１つのみ含まれている場合、前記有音音声データを前記再生用の音声データとして出力してもよい。
【００１９】
（１０）この集積回路装置において、
前記再生音声データ出力処理部に同時に入力されたｎ個の音声データのそれぞれが、有音を示す有音音声データであるか無音を示す無音音声データであるかを検出する検出処理部と、
前記同時に入力されたｎ個の音声データがｋ個（ｋは２以上、かつ、ｎ以下の整数）の有音音声データを含むことが検出された場合の前記再生音声データ出力処理部の動作モードを、前記ｋ個の有音音声データを重畳して出力するミキシングモードと、前記ｋ個の有音音声データのいずれか１つを選択して出力する選択出力モードと、再生音声が無音となる音声データを出力する無音出力モードと、のいずれかに設定する動作モード設定処理部と、
をさらに含み、
前記再生音声データ出力処理部は、
前記動作モードがミキシングモードに設定されているときに、同時に入力される前記ｋ個の有音音声データを重畳して出力し、
前記動作モードが選択出力モードに設定されているときに、同時に入力される前記ｋ個の有音音声データのいずれかを選択して出力し、
前記動作モードが前記無音出力モードに設定されているときに、前記再生音声が無音となる音声データを出力してもよい。
【００２０】
（１１）この集積回路装置において、
Ｌ＝Ｍ×Ｎ＝ｍ×ｎであってもよい。
【００２１】
（１２）この集積回路装置において、
Ｍ＝Ｎ＝ｍ＝ｎ＝２であってもよい。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を適用した実施の形態について図面を参照して説明する。ただし、本発明は以下の実施の形態に限定されるものではない。また、本発明は、以下の実施の形態及び変形例を自由に組み合わせたものを含むものとする。
【００２３】
本実施の形態に係る集積回路装置１は、ホスト１００から入力されるコマンド及び音声データに基づいて、音声を再生するための音声データを出力する集積回路装置である。
【００２４】
ホスト１００とは、所与の電子機器の動作を統括制御する電子デバイスであってもよい。ホスト１００は、ＣＰＵ１１０及びメモリ１２０を含む。ＣＰＵ１１０は、メモリ１２０をワーク領域として使用し、電子機器の動作を制御するための種々の処理を行う。ホスト１００は、また、シリアルコントローラ１３０を含む。シリアルコントローラ１３０によって、ホスト１００と集積回路装置１とのシリアル通信が実現される。ただし、本発明では、ホスト１００と集積回路装置１との通信方式は、シリアル通信に限定されるものではない。ホスト１００と集積回路装置１との通信方式は、例えばパラレル通信（パラレル接続方式）であってもよい。あるいは、ホスト１００と集積回路装置１との通信は、バスを介して実現してもよい。
【００２５】
なお、ホスト１００が制御対象とする電子機器（ホスト１００が搭載される電子機器）は、特に限定されるものではない。電子機器は、例えば、炊飯器や照明器具、洗濯機、電気ポット、給湯器、エアコン等の家庭用電気器具であってもよい。あるいは、電子機器は、テレビやプロジェクタ等の画像を表示する装置や、ＤＶＤ等の画像を録画・再生する装置や、オーディオ等の音声を録音・再生する装置や、カーナビゲーションシステムであってもよい。
【００２６】
本実施の形態では、集積回路装置１とホスト１００とをあわせて、音声再生システムと称してもよい。
【００２７】
１．集積回路装置１の構成
以下、本実施の形態に係る集積回路装置１の構成について説明する。図１〜図５は、集積回路装置１について説明するための図である。
【００２８】
本実施の形態に係る集積回路装置１は、バッファ装置１０を含む。バッファ装置１０は、データを一時的に格納するバッファ２０と、バッファ２０へのデータの書き込みとバッファ２０からのデータの読み出しとを制御するバッファ制御部３０とを含む。以下バッファ装置１０について説明する。
【００２９】
バッファ装置１０は、Ｌ個（Ｌは４以上の整数）のバッファ２０を含む。本実施の形態では、図１〜図３に示すように、バッファ装置１０は、４個のバッファ２０（第１のバッファ２１、第２のバッファ２２、第３のバッファ２３、第４のバッファ２４）を含む。ただし、本発明はこれに限られるものではなく、バッファ装置１０は４個以上のバッファ２０を含んでいてもよい。
【００３０】
バッファ装置１０は、バッファ制御部３０を含む。バッファ制御部３０は、バッファ２０へのデータの書き込み処理、及び、バッファ２０からのデータの読み出し処理を制御する。詳しくは、バッファ制御部３０は、４個のバッファ２０（第１〜第４のバッファ２１，２２，２３，２４）のいずれか（書き込み対象バッファ）を選択し、選択されたバッファへのデータの書き込み処理を実行させる。また、バッファ制御部３０は、４個のバッファ２０からデータを読み出すバッファ（読み出し対象バッファ）を選択し、選択されたバッファからのデータの読み出し処理を実行させる。なお、バッファ制御部３０は、ホスト１００からのコマンドに基づいて、バッファ２０へのデータの書き込み処理、及び、バッファ２０からのデータの読み出し処理を制御する。バッファ制御部３０は、１つのバッファ２０へのデータの書き込みと、データの読み出しとが並行して行われないように、書き込み処理及び読み出し処理を制御してもよい。
【００３１】
本実施の形態では、バッファ制御部３０は、第１及び第２の動作モードを含む複数の動作モードで動作する。バッファ制御部３０は、ホスト１００から入力されたコマンドに基づいて、動作モードが設定される。詳しくは、ホスト１００から入力されるコマンドが、バッファ制御部３０の動作モードを第１の動作モードに指定する第１の動作モード指定コマンドである場合には、バッファ制御部３０は第１の動作モードで動作する。逆に、ホスト１００から入力されるコマンドが、バッファ制御部３０の動作モードを第２の動作モードに指定する第２の動作モード指定コマンドである場合には、バッファ制御部３０は第２の動作モードで動作する。
【００３２】
以下、バッファ制御部３０の具体的な動作（バッファ２０へのデータの書き込み処理、及び、バッファ２０からのデータの読み出し処理）について説明する。
【００３３】
（１）ホスト１００からのコマンドが第１の動作モード指定コマンドである場合
バッファ制御部３０は、ホスト１００から入力されるコマンドが第１の動作モード指定コマンドである場合には、Ｌ個のバッファ２０をＭ個（Ｍは整数）のバッファ２０を含むＮ個（Ｎは２以上の整数）の領域に分類する。本実施の形態では、４個のバッファ２０を、２個のバッファを含む２個の領域に分類する。詳しくは、本実施の形態では、図２に示すように、バッファ２０を、第１及び第２のバッファ２１，２２を含む第１の領域２５と、第３及び第４のバッファ２３，２４を含む第２の領域２６に分類する。
【００３４】
そして、バッファ制御部３０は、いずれかの領域に属するバッファ２０へのデータの書き込みが行われているときに、他の１つの領域に属するバッファ２０からのデータの読み出しが行われるように、書き込み処理及び読み出し処理を制御する。言い換えると、バッファ制御部３０は、第１のバッファ２１又は第２のバッファ２２へのデータの書き込み（読み出し）と、第３のバッファ２３又は第４のバッファ２４からのデータの読み出し（書き込み）とが時間的に重複するタイミングで（同時に）行われるように、データの書き込み処理及び読み出し処理を行ってもよい。
【００３５】
すなわち、バッファ制御部３０は、ホスト１００から入力されるコマンドが第１の動作モード指定コマンドである場合には、第１の領域２５に属するバッファ２０と第２の領域２６に属するバッファ２０とを、ダブルバッファとして動作させる。これにより、バッファ２０にデータを書き込む処理と、バッファ２０からデータを読み出す処理とを時間的に重複するタイミングで実行させることができる。そのため、音声データを処理するタイミングを、容易に制御することができる。
【００３６】
なお、本実施の形態では、バッファ制御部３０は、異なる領域に属するバッファ２０へのデータの書き込みが同時に行われないように、バッファ２０へのデータの書き込み処理を制御してもよい。すなわち、バッファ制御部３０は、第１及び第２のバッファ２１，２２の少なくとも一方へのデータの書き込みが行われているときには、第３及び第４のバッファ２３，２４へのデータの書き込みが行われないように、バッファ２０へのデータの書き込み処理を制御してもよい。また、バッファ制御部３０は、第３及び第４のバッファ２３，２４の少なくとも一方へのデータの書き込みが行われているときには、第１及び第２のバッファ２１，２２へのデータの書き込みが行われないように、バッファ２０へのデータの書き込み処理を制御してもよい。
【００３７】
また、バッファ制御部３０は、異なる領域に属するバッファ２０からのデータの読み出しが同時に行われないように、バッファ２０からの書き込み処理を制御してもよい。すなわち、バッファ制御部３０は、第１及び第２のバッファ２１，２２の少なくとも一方からのデータの読み出しが行われているときには、第３及び第４のバッファ２３，２４からのデータの読み出しが行われないように、バッファ２０からのデータの読み出し処理を制御してもよい。また、バッファ制御部３０は、第３及び第４のバッファ２３，２４の少なくとも一方からのデータの読み出しが行われているときには、第１及び第２のバッファ２１，２２からのデータの読み出しが行われないように、バッファ２０からのデータの読み出し処理を制御してもよい。
【００３８】
さらに、バッファ制御部３０は、１つの領域に属するバッファ２０へのデータの書き込みと読み出しとが同時に行われないように、書き込み処理及び読み出し処理を制御してもよい。すなわち、バッファ制御部３０は、第１のバッファ２１へのデータの書き込み（読み出し）が行われているときには、第２のバッファ２２からのデータの読み出し（書き込み）が行われないように、書き込み処理及び読み出し処理を制御してもよい。また、バッファ制御部３０は、第３のバッファ２３へのデータの書き込み（読み出し）が行われているときには、第４のバッファ２４からのデータの読み出し（書き込み）が行われないように、書き込み処理及び読み出し処理を制御してもよい。
【００３９】
（２）ホスト１００からのコマンドが第２の動作モード指定コマンドである場合
バッファ制御部３０は、ホスト１００から入力されるコマンドが第２の動作モード指定コマンドである場合には、Ｌ個のバッファ２０を、ｍ個（ｍは２以上の整数）のバッファ２０を含むｎ個（ｎは２以上の整数）の領域に分類する。本実施の形態では、４個のバッファ２０を、２個のバッファを含む２個の領域に分類する。詳しくは、本実施の形態では、図３に示すように、バッファ２０を、第１及び第２のバッファ２１，２２を含む第１の領域２７と、第３及び第４のバッファ２３，２４を含む第２の領域２８とに分類する。
【００４０】
そして、バッファ制御部３０は、１つの領域に属するいずれかのバッファ２０へのデータの書き込みが行われているときに、同じ領域に属する他の１つのバッファ２０からのデータの読み出しが行われるように、書き込み処理及び読み出し処理を制御する。すなわち、バッファ制御部３０は、第１のバッファ２１へのデータの書き込み（読み出し）と、第２のバッファ２２からのデータの読み出し（書き込み）とが同時に行われるように、データの書き込み処理及び読み出し処理を制御してもよい。また、バッファ制御部３０は、第３のバッファ２３へのデータの書き込み（読み出し）と、第４のバッファ２４からのデータの読み出し（書き込み）とが同時に行われるように、データの書き込み処理及び読み出し処理を制御してもよい。
【００４１】
すなわち、バッファ制御部３０は、ホスト１００から入力されるコマンドが第２の動作モード指定コマンドである場合には、第１の領域２７に属するバッファ２０（第１及び第２のバッファ２１，２２）をダブルバッファとして動作させ、第２の領域２８に属するバッファ２０（第３及び第４のバッファ２３，２４）をダブルバッファとして動作させる。言い換えると、バッファ制御部３０は、ホスト１００から入力されるコマンドが第２の動作モード指定コマンドである場合には、バッファ２０を、ｎ個（２個）のダブルバッファとして動作させる。そのため、複数の音声データを処理するタイミングを、容易に制御することができる。
【００４２】
本実施の形態では、バッファ制御部３０は、異なるｎ個の領域の読み出し対象バッファ２０からのデータの読み出しが並行して行われるように、読み出し処理を制御してもよい。詳しくは、バッファ制御部３０は、第１のバッファ２１又は第２のバッファ２２からのデータの読み出しと、第３のバッファ２３又は第４のバッファ２４からのデータの読み出しとが並行して行われるように、読み出し処理を制御してもよい。これにより、ミキシングの対象となる音声データを、並行して読み出すことが可能になる。
【００４３】
なお、本実施の形態では、バッファ制御部３０は、１つの領域に属するバッファ２０へのデータの書き込みが同時に行われないように、バッファ２０へのデータの書き込み処理を制御してもよい。すなわち、バッファ制御部３０は、第１及び第２のバッファ２１，２２に同時にデータの書き込みが行われないように、かつ、第３及び第４のバッファ２３，２４に同時にデータの書き込みが行われないように、書き込み処理を制御してもよい。
【００４４】
また、バッファ制御部３０は、１つの領域に属するバッファ２０からのデータの読み出しが同時に行われないように、バッファ２０からのデータの読み出し処理を制御してもよい。すなわち、バッファ制御部３０は、第１及び第２のバッファ２１，２２から同時にデータの読み出しが行われないように、かつ、第３及び第４のバッファ２３，３４から同時にデータの読み出しが行われないように、読み出し処理を制御してもよい。
【００４５】
本実施の形態に係る集積回路装置１は、デコーダ４０を含む。デコーダ４０は、バッファ２０から読み出されたデータをデコードする。デコーダ４０の機能は、専用の制御回路で実現してもよく、ＣＰＵ等のプロセッサで所定のプログラムを実行することによって実現してもよい。
【００４６】
本実施の形態では、デコーダ４０は、第１及び第２のデコーダ４２，４４を含む。なお、第１のデコーダ４２は、第１の領域２５又は第１の領域２７（第１のバッファ２１又は第２のバッファ２２）から読み出されたデータをデコードするデコーダである。また、第２のデコーダ４４は、第２の領域２６又は第１の領域２７（第３のバッファ２３又は第４のバッファ２４）から読み出されたデータをデコードするデコーダである。
【００４７】
ただし、変形例として、デコーダ４０は、２個のデコーダ（第１及び第２のデコーダ４２，４４）を含まない構成をなしていてもよい。また、本発明の集積回路装置は、ホスト１００から入力されたデータをデコードして、デコード後のデータをバッファ装置１０に書き込ませるように構成されたデコーダを含んでいてもよい。すなわち、デコーダ４０が、バッファ装置１０よりも上流側（シリアルコントローラ６０側）に配置されていてもよい。
【００４８】
本実施の形態に係る集積回路装置１は、再生音声データ出力処理部５０を含む。再生音声データ出力処理部５０は、ｎ個の音声データを同時に受け付け可能に構成されている。また、再生音声データ出力処理部５０は、同時に入力されたｎ個の音声データに基づいて、再生用の音声データを出力するように構成されている。
【００４９】
本実施の形態では、再生音声データ出力処理部５０は、同時に入力された複数の音声データを重畳して出力するように構成されていてもよい。このとき、再生音声データ出力処理部５０は、同時に入力された複数の音声データを重畳（加算）する回路（ミキシング回路）を含んでいてもよい。
【００５０】
なお、再生音声データ出力処理部５０は、１つの音声データのみが入力されたときに（バッファ制御部３０の動作モードが第１の動作モードに指定されているとき）は、当該１つの音声データを、再生用の音声データとして出力してもよい。
【００５１】
再生音声データ出力処理部５０の機能は、専用の制御回路で実現してもよく、ＣＰＵ等のプロセッサで所定のプログラムを実行することによって実現してもよい。
【００５２】
本実施の形態に係る集積回路装置１は、デコード後データ格納バッファ５５を含んでいてもよい。デコード後データ格納バッファ５５は、デコーダ４０でデコードされたデータを一時的に記憶し、再生音声データ出力処理部５０へ出力する記憶部である。デコード後データ格納バッファ５５は、先入れ先出し方式でデータの入出力を管理するように構成されていてもよい。
【００５３】
デコード後データ格納バッファ５５は、第１及び第２のデコード後データ格納バッファ５２，５４を含んでいてもよい。ここで、第１のデコード後データ格納バッファ５２とは、第１のデコーダ４２に対応するバッファであり、第２のデコード後データ格納バッファ５４とは、第２のデコーダ４４に対応するバッファであってもよい。そして、第１及び第２のデコード後データ格納バッファ５２，５４は、それぞれ、第１及び第２のデコーダ４２，４４から受け取ったデータを、同時に再生音声データ出力処理部５０に入力させるように構成されていてもよい。デコード後データ格納バッファ５５を利用することによって、所望の音声データを重畳させて出力することが可能になる。なお、第１及び第２のデコード後データ格納バッファ５２，５４は、第１の領域２７に分類されるバッファ２０（第１のバッファ２１又は第２のバッファ２２）、及び、第２の領域２８に分類されるバッファ２０（第３のバッファ２３又は第４のバッファ２４）から同時に読み出された２個の音声データを同時に再生音声データ出力処理部５０に入力させるように構成されていてもよい。
【００５４】
本実施の形態に係る集積回路装置１は、シリアルコントローラ６０を含む。シリアルコントローラ６０は、ホスト１００とハンドシェークでシリアル通信を行う。すなわち、シリアルコントローラ６０は、ホスト１００から入力されるコマンド及びデータ（音声データ）を受け付けて、バッファ装置１０に入力させる。また、シリアルコントローラ６０は、いずれかのバッファ２０（第１〜第４のバッファ２１，２２，２３，２４のいずれか）へのデータの書き込みが可能になったことを検出して、ホスト１００に、新たなデータ（音声データ）を要求する信号を送信する。シリアルコントローラ６０は、新たなデータを要求するコマンドを生成し、ホスト１００に送信してもよい。シリアルコントローラ６０で、集積回路装置１とホスト１００とをハンドシェークで通信することにより、バッファ２０（バッファ装置１０）へのデータの書き込みと、バッファ２０からのデータの読み出しとを、効率よく行うことができる。
【００５５】
ただし、変形例として、集積回路装置は、シリアルコントローラ以外のデータ転送制御装置を含んでいてもよい。集積回路装置は、パラレル接続方式でデータを受け付け可能に構成されていてもよい。あるいは、集積回路装置は、バス接続でデータを受け付けるように構成されていてもよい。
【００５６】
なお、本実施の形態では、Ｍ＝Ｎ＝ｍ＝ｎ＝２である集積回路装置１について説明した。ただし、本発明はこれに限られるものではない。特に、Ｍ≠ｍであってもよく、Ｎ≠ｎであってもよい。また、Ｍ，Ｎ，ｍ，ｎは、それぞれ、３以上のいずれかの値であってもよい。
【００５７】
次に、集積回路装置１を実現するためのハードウエア構成について説明する。
【００５８】
集積回路装置１は、図４に示すように、制御部７２を含んで構成されていてもよい。制御部７２は、集積回路装置１の動作を実現するための種々の制御を行うハードウエアであってもよい。制御部７２は、バッファ制御部３０の各機能を実現してもよい。また、制御部７２は、デコーダ４０、デコード後データ格納バッファ５５、及び、シリアルコントローラ６０の動作を制御してもよい。
【００５９】
あるいは、集積回路装置１は、図５に示すように、ＣＰＵ７４及びメモリ７６を含んで構成されていてもよい。ＣＰＵ７４は、メモリ７６をワーク領域として使用し、集積回路装置１の動作を実現するための種々の処理を行う。ＣＰＵ７４は、バッファ制御部３０の各機能を実現してもよい。また、メモリ７６は、バッファ２０及びデコード後データ格納バッファ５５を実現してもよい。
【００６０】
本実施の形態に係る集積回路装置１は、以上のように構成されていてもよい。以下、集積回路装置１の動作について説明する。
【００６１】
２．集積回路装置１の動作
次に、本実施の形態に係る集積回路装置１の動作について、図６を参照して説明する。図６は、バッファ２０にデータが書き込まれ、そして、バッファ２０からデータが読み出される様子を時系列に示す図である。図６の各バッファ２０において、網掛けで表現されている領域は、データが格納されている状態を示す。なお、図６に示す例では、ホスト１００からのコマンドが第１の動作モード指定コマンドである場合に取得されたデータが格納された領域を薄い網掛けで示し、ホスト１００からのコマンドが第２の動作モード指定コマンドである場合に取得されたデータが格納された領域を濃い網掛けで示している。
【００６２】
はじめに、ステップＳ１で、ホスト１００から、コマンド（CmdFillBufferA）及びデータが入力され、第１の領域２５（第１及び第２のバッファ２１，２２）にデータが書き込まれる。ここで、コマンド（CmdFillBufferA）とは、バッファ制御部３０の動作モードを第１の動作モードに指定するコマンドである。
【００６３】
そして、ステップＳ２で、ホスト１００から、コマンド（CmdFillBufferB)及びデータが入力され、第２の領域２６（第３及び第４のバッファ２３，２４）にデータが書き込まれる。
【００６４】
そして、ステップＳ３で、ホスト１００からコマンド（DecodeStart）が入力され、バッファ２０に書き込まれているデータの読み出しが開始する。
【００６５】
第１の領域２５（第１及び第２のバッファ２１，２２）のデータが読み出され、第１及び第２のバッファ２１，２２が空になり、第１及び第２のバッファ２１，２２へのデータの書き込みが可能になると、データを要求するコマンド（ReqFillBufferA）が発行され、ホスト１００に送信される（ステップＳ４）。
【００６６】
そして、第５ステップで、ホスト１００からコマンド（CmdFillBufferA）及びデータが入力され、第１の領域２５（第１及び第２のバッファ２１，２２）にデータが書き込まれる。なお、本実施の形態では、第１の領域２５にデータが書き込まれる処理と並行して、第２の領域２６に書き込まれたデータの読み出し処理が行われる。そのため、ステップＳ５では、第３のバッファ２３に書き込まれていたデータがすべて読み出されている。
【００６７】
第２の領域２６（第３及び第４のバッファ２３，２４）のデータが読み出され、第３及び第４のバッファ２３，２４が空になり、第３及び第４のバッファ２３，２４へのデータの書き込みが可能になると、データを要求するコマンド（ReqFillBufferB）が発行され、ホスト１００に送信される（ステップＳ６）。
【００６８】
そして、ステップＳ７で、ホスト１００からコマンド（CmdFillBufferB）及びデータが入力され、第２の領域２６（第３及び第４のバッファ２３，２４）にデータが書き込まれる。本実施の形態では、第２の領域２６にデータが書き込まれる処理と並行して、第１の領域２５に書き込まれたデータの読み出し処理が行われる。そのため、ステップＳ７では、第１のバッファ２１に書き込まれていたデータがすべて読み出されている。
【００６９】
第１及び第２のバッファ２１，２２へのデータの書き込みが可能になると、データを要求するコマンド（ReqFillBufferA）が発行され、ホスト１００に送信される（ステップＳ８）。
【００７０】
そして、ステップＳ９で、ホスト１００からコマンド（CmdFillBufferMA1）及びデータが入力され、第１のバッファ２１に書き込まれる。ここで、コマンド（CmdFillBufferMA1）とは、バッファ制御部３０の動作モードを第２の動作モード（ミキシングモード）に指定するコマンドである。そして、ステップＳ９以降では、バッファ制御部３０は第２の動作モードで動作する。
【００７１】
そして、ステップＳ１０でデータを要求するコマンド（ReqFillBufferMB1）が送信され、ステップＳ１１で第３のバッファ２３にデータが書き込まれる。
【００７２】
そして、ステップＳ１２でデータを要求するコマンド（ReqFillBufferMA2）が送信され、ステップＳ１３で第２のバッファ２２にデータが書き込まれる。
【００７３】
そして、ステップＳ１４でデータを要求するコマンド（ReqFillBufferMB2）が送信され、ステップＳ１５で第４のバッファ２４にデータが書き込まれる。
【００７４】
そして、ステップＳ１６でコマンド（DecodeStart）が入力され、バッファ２０に書き込まれているデータの読み出しが開始される。ステップＳ１６及びステップＳ１７では、第１のバッファ２１及び第３のバッファ２３からのデータが同時に読み出されている。
【００７５】
そして、第１のバッファ２１及び第３のバッファ２３からのデータの読み出しが完了し、第１のバッファ２１及び第３のバッファ２３へのデータの書き込みが可能になると、データを要求するコマンド（ReqFillBuffer）が発行され、ホスト１００に送信される（ステップＳ１７）。なお、ステップＳ１７以降は、簡単のため、ホスト１００にデータを要求するコマンドを省略する。
【００７６】
そして、ステップＳ１８で、コマンド（CmdFillBufferMA1）が入力され、第１のバッファ２１にデータが書き込まれる。同時に、第２のバッファ２２及び第４のバッファ２４からデータが読み出される。
【００７７】
そして、ステップＳ１９で、コマンド（CmdFillBufferMB1）が入力され、第３のバッファ２３にデータが書き込まれる。同時に、第２のバッファ２２及び第４のバッファ２４からデータが読み出される。
【００７８】
そして、ステップＳ２０で、コマンド（CmdFillBufferMA2）が入力され、第２のバッファ２２にデータが書き込まれる。同時に、第１のバッファ２１及び第３のバッファ２３からデータが読み出される。
【００７９】
そして、ステップＳ２１で、コマンド（CmdFillBufferMB2）が入力され、第４のバッファ２４にデータが書き込まれる。同時に、第２のバッファ２２及び第４のバッファ２４からデータが読み出される。
【００８０】
以降、ステップＳ１８〜ステップＳ２１の各ステップが繰り返される（ステップＳ２２〜ステップＳ２５参照）。
【００８１】
３．集積回路装置１が奏する作用効果
以下、集積回路装置１が奏する作用効果について説明する。
【００８２】
先に説明したように、集積回路装置１では、バッファ制御部３０が、第１及び第２の動作モードで動作する。
【００８３】
バッファ制御部３０が第１の動作モードで動作する場合、バッファ制御部３０は、第１の領域２５に属するバッファ（第１及び第２のバッファ２１，２２）と第２の領域２６に属するバッファ（第３及び第４のバッファ２３，２４）とを、ダブルバッファとして動作させる。これによると、バッファ２０からデータを読み出す処理を行いながら、その後に読み出されるデータをバッファ２０に格納することができるため、ホスト１００から入力された音声データを所望のペースで出力させることができるため、自然なペースで発声されるように、音声を再生することができる。
【００８４】
また、バッファ制御部３０が第２の動作モードで動作する場合、バッファ３０は、第１の領域２７に属するバッファ２０（第１及び第２のバッファ２１，２２）をダブルバッファとして動作させ、第２の領域２８に属するバッファ２０（第３及び第４のバッファ２３，２４）をダブルバッファとして動作させる。すなわち、バッファ２０を、２個（ｎ個）のダブルバッファとして動作させる。そのため、２種類（ｎ種類）の音声を、それぞれ、所望のペースで出力させることができる。そして、当該２種類（ｎ種類）の音声を、再生音声データ出力処理部５０で重畳することによって、自然なペースで発声される音声が重畳された音声を再生することが可能になる。
【００８５】
なお、集積回路装置１では、バッファ制御部３０の動作モードが、コマンドによって指定される。そのため、バッファ制御部３０の動作モードを、容易に切り替えることが可能で、利便性の高い集積回路装置を提供することができる。
【００８６】
また、集積回路装置１では、バッファ制御部３０の動作モードが、第１及び第２の動作モードのいずれに設定されている場合でも、バッファ２０が利用される。言い換えると、バッファ制御部３０が異なる動作モードで動作する場合でも、バッファ２０を共用することができる。そのため、動作モード毎にバッファを用意する必要がなくなるため、装置構成を簡略化することが可能で、かつ、装置構成（バッファ）の利用効率を高めることが可能である。
【００８７】
４．変形例
本発明は、上述の実施の形態に限定されるものではなく、種々の変形が可能である。本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【００８８】
以下、本発明を適用した実施の形態の変形例について説明する。
【００８９】
（１）第１の変形例
図７は、第１の変形例に係る集積回路装置２について説明するための図である。
【００９０】
集積回路装置２は、再生音声データ出力処理部５０に同時に入力されるｎ個の音声データのそれぞれが、有音を示す有音音声データであるか、無音を示す無音音声データであるかを検出する検出処理部８０を含む。
【００９１】
そして、再生音声データ出力処理部５０は、同時に入力されるｎ個の音声データが有音音声データを１つのみ含んでいる場合に、当該有音音声データを、再生用の音声データとして出力するように構成されていてもよい。このとき、再生音声データ出力処理部５０は、有音音声データを、音声データを重畳させるためのミキシング回路を通さずに出力してもよい。
【００９２】
これによると、有音音声データにノイズが乗る可能性を低くすることができ、ノイズの少ない音声を発声させることが可能になる。
【００９３】
（２）第２の変形例
図８は、第２の変形例に係る集積回路装置３について説明するための図である。
【００９４】
集積回路装置３は、再生音声データ出力処理部５０の動作モードを設定する動作モード設定処理部９０を含む。動作モード設定処理部９０は、再生音声データ出力処理部５０に同時に入力されるｎ個の音声データにｋ個（ｋは２以上、かつ、ｎ以下の整数）の有音音声データが含まれることを検出した場合の、再生音声データ出力処理部５０の動作モードを設定する。すなわち、動作モード設定処理部９０は、再生音声データ出力処理部５０に複数の有音音声データが同時に入力するときの、再生音声データ出力処理部５０の動作モードを設定する。
【００９５】
動作モード設定処理部９０は、再生音声データ出力処理部５０の動作モードを、ｋ個の有音音声データを重畳して出力するミキシングモードと、ｋ個の有音音声データのいずれか１つを選択して出力する選択出力モードと、再生音声が無音となる無音音声データを出力する無音出力モードと、のいずれかに設定してもよい。
【００９６】
そして、再生音声データ出力処理部５０は、動作モード設定処理部９０がミキシングモードに設定されている場合には、再生音声データ出力処理部５０にｋ個の有音音声データが同時に入力されたときに、ｋ個の有音音声データを重畳して出力する処理を行う。また、再生音声データ出力処理部５０は、動作モード設定処理部９０が選択出力モードに設定されている場合には、再生音声データ出力処理部５０にｋ個の有音音声データが同時に入力されたときに、ｋ個の有音音声データのいずれかを選択して出力する処理を行う。また、再生音声データ出力処理部５０は、動作モード設定処理部９０が無音出力モードに設定されている場合には、再生音声データ出力処理部５０にｋ個の有音音声データが同時に入力されたときに、無音音声データを出力する処理を行う。
【００９７】
動作モード設定処理部９０は、再生音声データ出力処理部５０の動作モードを、ホスト１００からのコマンドに基づいて設定してもよい。あるいは、動作モード設定処理部９０は、再生音声データ出力処理部５０の動作モードを、外部（ユーザ）からの設定信号に基づいて設定してもよい。
【００９８】
集積回路装置３によると、入力される音声データの性質や、集積回路装置３の用途に応じて、再生音声データ出力処理部５０の動作を変更することが可能になる。
【図面の簡単な説明】
【００９９】
【図１】本実施の形態に係る集積回路装置について説明するための図。
【図２】本実施の形態に係る集積回路装置について説明するための図。
【図３】本実施の形態に係る集積回路装置について説明するための図。
【図４】本実施の形態に係る集積回路装置について説明するための図。
【図５】本実施の形態に係る集積回路装置について説明するための図。
【図６】本実施の形態に係る集積回路装置について説明するための図。
【図７】変形例に係る集積回路装置について説明するための図。
【図８】変形例に係る集積回路装置について説明するための図。
【符号の説明】
【０１００】
１…集積回路装置、  ２…集積回路装置、  ３…集積回路装置、  １０…バッファ装置、  ２０…バッファ、  ２１…第１のバッファ、  ２２…第２のバッファ、  ２３…第３のバッファ、  ２４…第４のバッファ、  ２５…第１の領域、  ２６…第２の領域、  ２７…第１の領域、  ２８…第２の領域、  ３０…バッファ制御部、  ４０…デコーダ、  ４２…第１のデコーダ、  ４４…第２のデコーダ、  ５０…再生音声データ出力処理部、  ５２…第１のデコード後データ格納バッファ、  ５４…第２のデコード後データ格納バッファ、  ５５…デコード後データ格納バッファ、  ６０…シリアルコントローラ、  ７２…制御部、  ７４…ＣＰＵ、  ７６…メモリ、  ８０…検出処理部、  ９０…動作モード設定処理部、  １００…ホスト、  １１０…ＣＰＵ、  １２０…メモリ、  １３０…シリアルコントローラ
【図１】
2008269199.tif 000003
【図２】
2008269199.tif 000004
【図３】
2008269199.tif 000005
【図４】
2008269199.tif 000006
【図５】
2008269199.tif 000007
【図７】
2008269199.tif 000008
【図８】
2008269199.tif 000009
【図６】
2008269199.tif 000010