(57)【特許請求の範囲】
【請求項１】
音声データのレベルに基づいて、音声データを構成する各部分を有音あるいは無音と判断する無音判別方法であって、
音声データのレベルを、所定の第１のレベルと前記第１のレベルよりも大きい所定の第２のレベルと比較し、
音声データのレベルが前記第２のレベルよりも大きいことにより定義される第１種の区間に関しては有音と判断し、
音声データの前記第１種の区間ではない区間であって、音声データの前記第１種の区間の始端から前側に第１の所定の距離内であることにより定義される第２種の区間に関しては、前記第２種の区間の音声データのレベルが前記第１のレベルよりも大きいか否かに基づいて有音であるか無音であるかを判断し、
音声データの前記第１種の区間ではない区間であって、音声データの前記第１種の区間の終端から後側に第２の所定の距離内であることにより定義される第３種の区間に関しては、前記第３種の区間の音声データのレベルが前記第１のレベルよりも大きいか否かに基づいて有音であるか無音であるかを判断し、
音声データの前記第１種の区間、前記第２種の区間および前記第３種の区間のいずれにも該当しないことにより定義される第４種の区間に関しては無音であると判断する
ものである無音判別方法。
【請求項２】
請求項１に記載の無音判別方法において、
音声データのレベルが前記第１のレベルよりも大きくない状態が所定の長さよりも長く連続している部分に関しては無音と判断し、
音声データの前記第２種の区間に含まれ、音声データのレベルが前記第１のレベルよりも大きくかつ後側の最も近い前記第１種の区間との間に無音と判断される部分がない部分に関しては有音と判断するとともに、この条件で有音と判断された部分の後側に有音と判断されていない部分が隣接する場合はこれを全て有音と判断し、
音声データの前記第３種の区間に含まれ、音声データのレベルが前記第１のレベルよりも大きくかつ前側の最も近い前記第１種の区間との間に無音と判断される部分がない部分に関しては有音と判断するとともに、この条件で有音と判断された部分の前側に有音と判断されていない部分が隣接する場合はこれを全て有音と判断する
ものである無音判別方法。
【請求項３】
請求項１に記載の無音判別方法において、
音声データの前記第２種の区間に含まれ、音声データのレベルが前記第１のレベルよりも大きくない状態が前記第２種の区間の先頭から連続している部分に関して、その部分の前側に前記第４の区間が隣接する場合には無音と判断し、
音声データの前記第３種の区間に含まれ、音声データのレベルが前記第１のレベルよりも大きくない状態が前記第３種の区間の末尾から連続している部分に関して、その部分の後側に前記第４の区間が隣接する場合には無音と判断する
ものである無音判別方法。
【請求項４】
請求項２に記載の無音判別方法において、
前記のいずれの判断においても無音とも有音とも判断されなかった部分に関しては無音と判断する
ものである無音判別方法。
【請求項５】
請求項１、２、３または４のいずれか１項に記載の無音判別方法を行う手段を有する無音判別装置。
【請求項６】
請求項１、２、３または４のいずれか１項に記載の無音判別方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、無音判別方法、無音判別装置およびコンピュータ読み取り可能な記録媒体に関し、さらに詳細には、音声データ中の無音部分を検出する無音判別方法、無音判別装置およびコンピュータ読み取り可能な記録媒体に関する。
【０００２】
なお、本発明において「音声」とは、人間の声の他に楽音や効果音などの可聴域の音を全て含む概念を意味するものであって、人間の声の信号のみを指すものではない。
【０００３】
【従来の技術】
従来より、音声データを記憶媒体に記憶したり、音声データを通信媒体を介して送受信することが広く行われている。
【０００４】
そして、こうした場合には、なるべく小さな記憶容量や少ない通信時間によって、なるべく長時間の音声に相当するデータを記憶したり、送受信したりすることが経済的な面から望まれている。
【０００５】
一般に、音声には所々に無音の部分があるが、こうした無音の部分と有音の部分とを区別することなしに、無音の部分と有音の部分とで同様の音声データを記憶したり、送受信したりする場合には、記憶媒体の記憶容量や通信媒体における通信時間を無駄に使用することになるということが指摘されていた。
【０００６】
このため、従来から、音声データの記憶や送受信などを行う際において当該音声データが無音を表している場合には、音声を表す通常の音声データに代えて無音であることを示すより短いデータの記憶や送受信などを行うことにより、記憶したり送受信したりするデータ量の圧縮を図る技術が種々提案されている。
【０００７】
例えば、特開平１１−５２９９０号公報には、音声データの示す音声のレベル（本明細書においては、「音声データの示す音声のレベル」を「音声データのレベル」あるいは単に「レベル」と適宜に称することとする。）が所定のスレッショルドレベルを越える場合に有音と判断し、一方、音声データのレベルが所定のスレッショルドレベルをよりも小さい場合に無音と判断することにより、データ量の圧縮を図る技術が開示されている（図１参照：なお、図１においては、理解を容易にするために、音声データのエンベロープレベルを示している。）。
【０００８】
しかしながら、この特開平１１−５２９９０号公報に開示された技術においては、音声データのレベルが所定のスレッショルドレベルよりも小さいか否かによってのみ無音であるか有音であるかを判断しているため、所定のスレッショルドレベルが低いと無音と判断され難くなってデータ量の圧縮率が上がらなくなり、また、所定のスレッショルドレベルが高いと音声の語尾や語頭の切れ目において実際には音声があるにも関わらず無音と判断されてしまうようになって、音声の語尾や語頭などにおいて音声が途切れてしまって滑らかな音声を再現することができないという問題点があった。
【０００９】
即ち、所定のスレッショルドレベルが低い場合には、無音処理すべき不必要な部分まで有音処理されてデータ量の圧縮率が低下してしまい、また、所定のスレッショルドレベルが高い場合には、アタックの長い音の語頭やリリースの長い音の語尾が途切れて不明瞭になって滑らか再生を実現することができないという問題点があった。
【００１０】
また、特公平３−６８３９９号公報には、音声データのレベルが所定のスレッショルドレベルを越える部分を有音と判断するとともに、その前後の部分についても所定の期間内にある部分を有音と判断するようにした技術が開示されている（図２参照：なお、図２においては、理解を容易にするために、音声データのエンベロープレベルを示している。）。
【００１１】
しかしながら、この特公平３−６８３９９号公報に開示された技術においては、音声データのレベルが所定のスレッショルドレベルを越える部分を有音と判断するとともに、その前後の部分についても所定の期間内にある部分は有音とみなすようにしているために、所定の期間が短い場合には、語頭の立ち上がりや語尾の立ち下がりの長い音声に関しては語頭や語尾が途切れてしまって滑らかな音声を再現することができないこととなり、所定の期間が長い場合には、語頭の立ち上がりや語尾の立ち下がりの短い音声に関しては実際は無音の部分まで有音として扱われてデータ量の圧縮率が上がらないという問題点があった。
【００１２】
即ち、所定の期間が短い場合には、アタックの長い音の語頭やリリースの長い音の語尾が途切れて不明瞭になって滑らか再生を実現することができず、所定の期間が長い場合には、アタックやリリースの短い音については無音処理すべき不必要な部分まで有音処理されてデータ量の圧縮率が低下してしまうという問題点があった。
【００１３】
【発明が解決しようとする課題】
本発明は、上記したような従来の技術の有する種々の問題点に鑑みてなされたものであり、その目的とするところは、音声の語尾や語頭が途切れることなく明瞭で滑らかな音声の再現を行うことができるようにするとともに、音声データの無音処理することが好ましい不要な部分において有音処理を行うことのないようにしてデータ量の圧縮率を向上させるようにした無音判別方法、無音判別装置およびコンピュータ読み取り可能な記録媒体を提供しようとするものである。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明は、音声データのレベルに関する２つのスレッショルドレベルと当該２つのスレッショルドレベルに従って定義される音声データの区間とを用いて、音声データ中の無音部分の判別を行うようにしたものである。
【００１５】
即ち、本発明のうち請求項１に記載の発明である無音判別方法は、音声データのレベルに基づいて、音声データを構成する各部分を有音あるいは無音と判断する無音判別方法であって、音声データのレベルを、所定の第１のレベルと上記第１のレベルよりも大きい所定の第２のレベルと比較し、音声データのレベルが上記第２のレベルよりも大きいことにより定義される第１種の区間に関しては有音と判断し、音声データの上記第１種の区間ではない区間であって、音声データの上記第１種の区間の始端から前側に第１の所定の距離内であることにより定義される第２種の区間に関しては、上記第２種の区間の音声データのレベルが上記第１のレベルよりも大きいか否かに基づいて有音であるか無音であるかを判断し、音声データの上記第１種の区間ではない区間であって、音声データの上記第１種の区間の終端から後側に第２の所定の距離内であることにより定義される第３種の区間に関しては、上記第３種の区間の音声データのレベルが上記第１のレベルよりも大きいか否かに基づいて有音であるか無音であるかを判断し、音声データの上記第１種の区間、上記第２種の区間および上記第３種の区間のいずれにも該当しないことにより定義される第４種の区間に関しては無音であると判断するようにしたものである。
【００１６】
ここで、上記した「第１種の区間」、「第２種の区間」、「第３種の区間」ならびに「第４種の区間」におけるそれぞれの区間に関して、各区間の最小長は音声データの処理上の最小単位であればよく、従って、１サンプルでもよいし、あるいは１サンプル乃至複数サンプルを１つのブロックとした１ブロックでもよい。
【００１７】
また、上記した「第１の所定の距離」と「第２の所定の距離」とは同一であってもよいし、異なっていてもよい。
【００１８】
なお、上記した請求項１に記載の発明において、隣り合う「第１種の区間」同士の距離が短く、「第２種の区間」と「第３種の区間」とが隣接する場合、あるいは、「第２種の区間」と「第３種の区間」との一部あるいは全てが重なる場合には、「第４種の区間」が存在し得ない場合が有り得るが、こうした「第４種の区間」が存在しないものも上記した請求項１に記載の発明に含まれるものである。
【００１９】
さらに、上記した請求項１に記載の発明において、「音声データのレベルを、所定の第１のレベルと上記第１のレベルよりも大きい所定の第２のレベルと比較し」ているが、この意味するところは、全ての音声データを「第１のレベル」および「第２のレベル」とそれぞれ比較することを意味するものではない。
【００２０】
即ち、音声データを先に「第２のレベル」と比較して、当該音声データが「第２のレベル」よりも大きいと判断された場合には、当該音声データは「第１のレベル」よりも当然に大きいことになるので、その判断の時点で当該音声データを「第１のレベル」と比較する必要はないものであり、こうしたものも上記した請求項１に記載の発明に含まれるものである。これとは逆に、音声データを先に「第１のレベル」と比較して、当該音声データが「第１のレベル」以下であると判断された場合には、当該音声データは「第２のレベル」よりも当然に小さいことになるので、その判断の時点で当該音声データを「第２のレベル」と比較する必要はないものであり、こうしたものも上記した請求項１に記載の発明に含まれるものである。
【００２１】
また、本発明のうち請求項２に記載の発明である無音判別方法は、本発明のうち請求項１に記載の発明において、音声データのレベルが上記第１のレベルよりも大きくない状態が所定の長さよりも長く連続している部分に関しては無音と判断し、音声データの上記第２種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくかつ後側の最も近い上記第１種の区間との間に無音と判断される部分がない部分に関しては有音と判断するとともに、この条件で有音と判断された部分の後側に有音と判断されていない部分が隣接する場合はこれを全て有音と判断し、音声データの上記第３種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくかつ前側の最も近い上記第１種の区間との間に無音と判断される部分がない部分に関しては有音と判断するとともに、この条件で有音と判断された部分の前側に有音と判断されていない部分が隣接する場合はこれを全て有音と判断するようにしたものである。
【００２２】
ここで、「第２種の区間」と「第３種の区間」との一部あるいは全てが重なる場合には、「第２種の区間」、「第３種の区間」のいずれかにおいて有音と判断されるときには、その部分は有音として判断される。
【００２３】
また、上記した「所定の長さ」は、音声データの処理上の最小単位の長さ以上であれば任意の長さでよい。
【００２４】
また、本発明のうち請求項３に記載の発明である無音判別方法は、本発明のうち請求項１に記載の発明において、音声データの上記第２種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくない状態が上記第２種の区間の先頭から連続している部分に関して、その部分の前側に上記第４の区間が隣接する場合には無音と判断し、音声データの上記第３種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくない状態が上記第３種の区間の末尾から連続している部分に関して、その部分の後側に上記第４の区間が隣接する場合には無音と判断するようにしたものである。
【００２５】
また、本発明のうち請求項４に記載の発明である無音判別方法は、本発明のうち請求項２に記載の発明において、上記のいずれの判断においても無音とも有音とも判断されなかった部分に関しては無音と判断するようにしたものである。
【００２６】
また、本発明のうち請求項５に記載の発明である無音判別装置は、本発明のうち請求項１、２、３または４のいずれか１項に記載の無音判別方法を行う手段を備えるようにしたものである。
【００２７】
即ち、本発明のうち請求項５に記載の発明における本発明のうち請求項１に記載の無音判別方法を行う手段を備えた無音判別装置は、音声データのレベルに基づいて、音声データを構成する各部分を有音あるいは無音と判断する無音判別装置であって、音声データのレベルを、所定の第１のレベルと上記第１のレベルよりも大きい所定の第２のレベルと比較する手段と、音声データのレベルが上記第２のレベルよりも大きいことにより定義される第１種の区間に関しては有音と判断する手段と、音声データの上記第１種の区間ではない区間であって、音声データの上記第１種の区間の始端から前側に第１の所定の距離内であることにより定義される第２種の区間に関しては、上記第２種の区間の音声データのレベルが上記第１のレベルよりも大きいか否かに基づいて有音であるか無音であるかを判断する手段と、音声データの上記第１種の区間ではない区間であって、音声データの上記第１種の区間の終端から後側に第２の所定の距離内であることにより定義される第３種の区間に関しては、上記第３種の区間の音声データのレベルが上記第１のレベルよりも大きいか否かに基づいて有音であるか無音であるかを判断する手段と、音声データの上記第１種の区間、上記第２種の区間および上記第３種の区間のいずれにも該当しないことにより定義される第４種の区間に関しては無音であると判断する手段とを有するようにしたものである。
【００２８】
また、本発明のうち請求項５に記載の発明における本発明のうち請求項２に記載の無音判別方法を行う手段を備えた無音判別装置は、上記した本発明のうち請求項５に記載の発明における本発明のうち請求項１に記載の無音判別方法を行う手段を備えた無音判別装置の構成に加えて、音声データのレベルが上記第１のレベルよりも大きくない状態が所定の長さよりも長く連続している部分に関しては無音と判断する手段と、音声データの上記第２種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくかつ後側の最も近い上記第１種の区間との間に無音と判断される部分がない部分に関しては有音と判断するとともに、この条件で有音と判断された部分の後側に有音と判断されていない部分が隣接する場合はこれを全て有音と判断する手段と、音声データの上記第３種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくかつ前側の最も近い上記第１種の区間との間に無音と判断される部分がない部分に関しては有音と判断するとともに、この条件で有音と判断された部分の前側に有音と判断されていない部分が隣接する場合はこれを全て有音と判断する手段とを有するようにしたものである。
【００２９】
また、本発明のうち請求項５に記載の発明における本発明のうち請求項３に記載の無音判別方法を行う手段を備えた無音判別装置は、上記した本発明のうち請求項５に記載の発明における本発明のうち請求項１に記載の無音判別方法を行う手段を備えた無音判別装置の構成に加えて、音声データの上記第２種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくない状態が上記第２種の区間の先頭から連続している部分に関して、その部分の前側に上記第４の区間が隣接する場合には無音と判断する手段と、音声データの上記第３種の区間に含まれ、音声データのレベルが上記第１のレベルよりも大きくない状態が上記第３種の区間の末尾から連続している部分に関して、その部分の後側に上記第４の区間が隣接する場合には無音と判断する手段とを有するようにしたものである。
【００３０】
また、本発明のうち請求項５に記載の発明における本発明のうち請求項４に記載の無音判別方法を行う手段を備えた無音判別装置は、上記した本発明のうち請求項５に記載の発明における本発明のうち請求項２に記載の無音判別方法を行う手段を備えた無音判別装置の構成に加えて、上記のいずれの判断においても無音とも有音とも判断されなかった部分に関しては無音と判断する手段とを有するようにしたものである。
【００３１】
また、本発明のうち請求項６に記載の発明であるコンピュータ読み取り可能な記録媒体は、本発明のうち請求項１、２、３または４のいずれか１項に記載の無音判別方法をコンピュータに実行させるためのプログラムを記録するようにしたものである。
【００３２】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明による無音判別方法、無音判別装置およびコンピュータ読み取り可能な記録媒体の実施の形態の一例を詳細に説明する。
【００３３】
図３には、本発明による無音判別方法を行う手段を有する無音判別装置を備えた音声圧縮装置のブロック構成図が示されている。
【００３４】
この音声圧縮装置１０は、入力手段１２と、ブロック化手段１４と、比較手段１６と、圧縮・無音処理手段１８と、出力手段２０とを有して構成されており、全体の動作を図示しないマイクロ・コンピュータによって制御されているものである。
【００３５】
ここで、音声圧縮装置１０においては、デジタル化された音声データが入力手段１２からブロック化手段１４へ供給されることになる。具体的には、入力手段１２によって、ハードディスクなどの図示されていない外部の記憶媒体から本発明でいうところの音声データの一例である、１６ビットのビット長を有する２の補数形式のＰＣＭデータが連続して読み出されてブロック化手段１４に供給されるものである。
【００３６】
なお、この実施の形態においては、音声データとして１６ビットのビット長を有する２の補数形式のＰＣＭデータが用いられる場合について説明したが、音声データが１６ビット長や２の補数形式のＰＣＭデータに限定されるものではないことは勿論である。
【００３７】
また、入力手段１２は、上記した実施の形態に限定されるものではなく、音声データを記憶するメモリを備えていて当該メモリを読み出すことにより音声データをブロック化手段１４へ供給するものであってもよいし、音声データをデジタル化するアナログ／デジタル（Ａ／Ｄ）コンバータであってもよいし、通信回線から音声データを受け取るものであってもよい。
【００３８】
次に、ブロック化手段１４は、図示されていない指令手段を介してユーザーから与えられた指令によって、供給された音声データを１個を含む所定個のサンプル毎のブロックに分割し、音声データのブロック化を行うものである。
【００３９】
そして、比較手段１６は、後述する方法に従って、ブロック化手段１４によってブロック化された音声データの各ブロック毎に、音声データのレベルと所定のスレッショルドレベルとの比較判断を行うものである。
【００４０】
また、圧縮・無音処理手段１８は、ブロック化された音声データを圧縮するとともに、後述する方法に従って、比較手段１６の判断結果に基づいて音声データが有音であるか無音であるかを判断し、無音の部分については所定のフォーマットにより圧縮処理を行うものである。
【００４１】
なお、本発明は、上記した比較手段１６ならびに圧縮・無音処理手段１８における有音であるか無音であるかの判断の処理に関するものである。
【００４２】
そして、圧縮・無音処理手段１８において処理された音声データは出力手段２０へ送られて図示しないメモリに記憶され、それから適宜に出力されることになる。
【００４３】
なお、出力手段２０は、上記した実施の形態に限定されるものではなく、圧縮・無音処理手段１８において処理された音声データをハードディスクなどの外部の記憶媒体に書き込むものであってよいし、通信回線へ送り出すものであってもよい。
【００４４】
ここで、上記した入力手段１２、ブロック化手段１４ならびに出力手段２０に関しては、特開平１１−５２９９０号公報に開示された技術を用いることができるので、ここに特開平１１−５２９９０号公報を引用することによりその詳細な説明は省略する。
【００４５】
また、圧縮・無音処理手段１８における音声データを圧縮する際のフォーマットならびに無音部分のデータのフォーマットに関しても、特開平１１−５２９９０号公報に開示された技術を用いることができるので、ここに特開平１１−５２９９０号公報を引用することによりその詳細な説明は省略する。
【００４６】
なお、この実施の形態においては、特開平１１−５２９９０号公報に開示された音声圧縮装置と同様に、音声データが無音と判断された場合には、無音の音声データであることを示すデータと無音部分の連続するブロック数を示すデータとにより音声データが構成されることになり、こうした音声データが出力手段２０から出力されるものである。
【００４７】
そして、出力手段２０から出力された音声データは、例えば、特開平１１−５２９９０号公報に開示された技術を用いた音声伸長装置により元の音声データに復元されるものである。
【００４８】
以下、本発明に関する比較手段１６ならびに圧縮・無音処理手段１８における処理の詳細について説明する。
【００４９】
まず、比較手段１６においては、音声データの各ブロックに含まれるサンプルの絶対値をとり、そのなかの最も大きいものをそれぞれレベルの異なる所定の２つのスレッショルドレベルと比較することになり、その比較結果を処理変数ｌｖｌとして圧縮・無音処理手段１８へ送出する。
【００５０】
ここで、比較手段１６は、比較対象となる絶対値がレベルの大きい方のスレッショルドレベル（図４におけるスレッショルドレベル２に対応する。）より大きい場合には処理変数ｌｖｌとして「２」（ｌｖｌ＝２）を圧縮・無音処理手段１８へ送出し、比較対象となる絶対値がレベルの小さい方のスレッショルドレベル（図４におけるスレッショルドレベル１に対応する。）より小さい場合には処理変数ｌｖｌとして「０」（ｌｖｌ＝０）を圧縮・無音処理手段１８へ送出し、比較対象となる絶対値がレベルの大きい方のスレッショルドレベルより大きくもないしレベルの小さい方のスレッショルドレベルより小さくもない場合には処理変数ｌｖｌとして「１」（ｌｖｌ＝１）を圧縮・無音処理手段１８へ送出する。
【００５１】
ところで、大振幅の信号でもゼロクロス付近だけに注目するとレベルが低くなっており、こうしたゼロクロス付近の部分を無音処理すると音が途切れて汚くなってしまうので、このような部分が無音処理されることを防止するために、圧縮・無音処理手段１８においては、後述するように、処理変数ｌｖｌが「０」であるブロックが定数ＣＮＴ（後述するように、定数ＣＮＴは、無音とみなすために必要な連続している「ｌｖｌ＝０」のブロック数を示している。）個以上連続する部分を無音部分と判断するようになされている。なお、定数ＣＮＴは、予め適当な値が設定されているものである。
【００５２】
即ち、圧縮・無音処理手段１８においては、まず、以下の（１）〜（３）に示すような判断の処理が行われることになる。
【００５３】
（１）音声データのなかで「ｌｖｌ＝２」であるブロックの区間は、有音部分として確定であると判断する。なお、有音部分として確定する「ｌｖｌ＝２」であるブロックの区間は、１個のブロックの区間でもよいし、複数のブロックが連続する区間でもよい。
【００５４】
（２）音声データのなかで「ｌｖｌ＝０」であるブロックが定数ＣＮＴ個以上連続する区間は、無音部分として確定であると判断する。
【００５５】
（３）上記した（１）ならびに（２）のどちらでもない区間（この区間は、「ｌｖｌ＝１」または「ｌｖｌ＝０」の区間である。）は、有音であるか無音であるか未定（以下、「有音であるか無音であるか未定」を「有無未定」と称する。）であると判断する。
【００５６】
図４（ｂ）には、比較手段１６による比較結果として圧縮・無音処理手段１８へ送られた、音声データを構成する各ブロックの処理変数ｌｖｌが図４（ａ）に示すような状態である場合において（図４（ａ）においては、「○」が１つのブロックを示している。）、定数ＣＮＴを「ＣＮＴ＝４」に設定した場合における圧縮・無音処理手段１８の有音確定、無音確定あるいは有無未定の判断結果が示されている。
【００５７】
なお、「カウントＣＮＴ＝４」という値は、説明のために便宜上設定した値であり、定数ＣＮＴの値は、１ブロックに含まれるサンプル数、サンプリング周波数などに応じて適宜決定するものである。
【００５８】
さらに、上記のようにして判断された有無未定の区間については、さらに圧縮・無音処理手段１８において、以下の（４）〜（６）に示す条件で有音であるか無音であるかの判断を行うものである。
【００５９】
（４）有音確定区間の後に有無未定区間が連接する場合には、当該有無未定区間内で前から順番に最大で定数ＥＸＴ（後述するように、定数ＥＸＴは、語尾で有音処理する最大のブロック数を示している。）個のブロックに関して、「ｌｖｌ＝１」であるブロックを有音と判断するとともに、その「ｌｖｌ＝１」であるブロックの前側に有音と判断されていない区間が連接する場合はこの区間に含まれるブロックを全て有音と判断する。なお、定数ＥＸＴは、予め適当な値が設定されているものとする。
【００６０】
（５）有音確定区間の前に有無未定区間が連接する場合には、当該有無未定区間内で後ろから順番に最大で定数ＳＵＳ（後述するように、定数ＳＵＳは、語頭で有音処理する最大のブロック数を示している。）個のブロックに関して、「ｌｖｌ＝１」であるブロックを有音と判断するとともに、その「ｌｖｌ＝１」であるブロックの後側に有音と判断されていない区間が連接する場合はこの区間に含まれるブロックを全て有音と判断する。なお、定数ＳＵＳは、予め適当な値が設定されているものとする。
【００６１】
なお、上記した（４）の最大ＥＸＴ個のブロックの一部あるいは全てが上記した（５）の最大ＳＵＳ個のブロックでもある場合には、そのブロックは上記した（４）あるいは（５）のいずれかの条件により有音と判断される。
【００６２】
（６）上記した（４）ならびに（５）のいずれにも該当しない区間は無音と判断する。
【００６３】
従って、例えば、有無未定区間のうち、有音確定区間の直後の定数ＥＸＴ個のブロックおよび有音確定区間の直前の定数ＳＵＳ個のブロックのいずれにも該当しないブロックは無音と判断されることになる。
【００６４】
また、例えば、有音確定区間の直後のＥＸＴ個のブロックのなかに「ｌｖｌ＝１」であるブロックがあり、かつ、このＥＸＴ個のブロックのなかのこの「ｌｖｌ＝１」であるブロックよりも前に上記した（２）の条件により無音部分と判断される部分がない場合には、この「ｌｖｌ＝１」であるブロックは有音と判断されるとともに、この「ｌｖｌ＝１」であるブロックと有音確定区間との間にある「ｌｖｌ＝０」であるブロックも有音と判断されることになる。
【００６５】
同様に、有音確定区間の直前のＳＵＳ個のブロックのなかに「ｌｖｌ＝１」であるブロックがあり、かつ、このＳＵＳ個のブロックのなかのこの「ｌｖｌ＝１」であるブロックよりも後に上記した（２）の条件により無音部分と判断される部分がない場合には、この「ｌｖｌ＝１」であるブロックは有音と判断されるとともに、この「ｌｖｌ＝１」であるブロックと有音確定区間との間にある「ｌｖｌ＝０」であるブロックも有音と判断されることになる。
【００６６】
また、例えば、有音確定区間の直後のＥＸＴ個のブロックのなかに上記した（２）の条件により無音部分と判断される部分がある場合には、このＥＸＴ個のブロックのうち（２）の条件により無音部分と判断される部分よりも後のブロックは有音確定区間と連接しないため、（４）の条件では有音と判断されない。そのブロックが（５）の条件に該当する場合には有音と判断されるが、そのブロックが（５）の条件にも該当しない場合には無音と判断される。
【００６７】
同様に、有音確定区間の直前のＳＵＳ個のブロックのなかに上記した（２）の条件により無音部分と判断される部分がある場合には、このＳＵＳ個のブロックのうち（２）の条件により無音部分と判断される部分よりも前のブロックは有音確定区間と連接しないため、（５）の条件では有音と判断されない。そのブロックが（４）の条件に該当する場合には有音と判断されるが、そのブロックが（４）の条件にも該当しない場合には無音と判断される。
【００６８】
また、例えば、有音確定区間の直後のＥＸＴ個のブロックに関して、それらのブロックの末尾のブロックが「ｌｖｌ＝０」である場合には、その末尾のブロックおよびその末尾のブロックから前側に連続する「ｌｖｌ＝０」であるブロックは上記した（４）の条件に該当しないため、（４）の条件では有音とは判断されない。それらのブロックが（５）の条件に該当する場合には有音と判断されるが、それらのブロックが（５）の条件にも該当しない場合には無音と判断される。
【００６９】
同様に、有音確定区間の直前のＳＵＳ個のブロックに関して、それらのブロックの先頭のブロックが「ｌｖｌ＝０」である場合には、その先頭のブロックおよびその先頭のブロックから後側に連続する「ｌｖｌ＝０」であるブロックは上記した（５）の条件に該当しないため、（５）の条件では有音とは判断されない。それらのブロックが（４）の条件に該当する場合には有音と判断されるが、それらのブロックが（４）の条件にも該当しない場合には無音と判断される。
【００７０】
このため、例えば、上記した有音確定区間の直後のＥＸＴ個のブロックの区間とその後の有音確定区間の直前のＳＵＳ個のブロックの区間とが重複あるいは連接しない場合、即ち、ＥＸＴ個のブロックの区間とＳＵＳ個のブロックの区間との間にＥＸＴ個のブロックにもＳＵＳ個のブロックにも該当しないブロックが存在する場合には、ＥＸＴ個のブロックの末尾から連続する「ｌｖｌ＝０」であるブロックおよびＳＵＳ個のブロックの先頭から連続する「ｌｖｌ＝０」であるブロックは、上記した（４）ならびに（５）のいずれの条件にも該当しないため無音と判断される。
【００７１】
このように、有音確定区間の直後のＥＸＴ個のブロックおよび有音確定区間の直前のＳＵＳ個のブロックであっても、不要なブロックは無音とみなすようにしてデータ量の圧縮率を向上させている。
【００７２】
図４（ｃ）には、比較手段１６による比較結果として圧縮・無音処理手段１８へ送られた、音声データを構成する各ブロックの処理変数ｌｖｌが図４（ａ）に示すような状態である場合において（図４（ａ）においては、「○」が１つのブロックを示している。）、定数ＣＮＴを「ＣＮＴ＝４」に設定し、定数ＥＸＴを「ＥＸＴ＝８」に設定し、定数ＳＵＳを「ＳＵＳ＝８」に設定した場合における圧縮・無音処理手段１８の有音または無音の判断結果が示されている。
【００７３】
なお、「ＥＸＴ＝８」および「ＳＵＳ＝８」という値は、説明のために便宜上設定した値であり、定数ＥＸＴおよび定数ＳＵＳの値は、１ブロックに含まれるサンプル数、サンプリング周波数などに応じて適宜に決定するものである。
【００７４】
即ち、圧縮・無音処理手段１８によって、図４（ｃ）に示されているように、音声データの示す音声の語尾部分においては、有無未定区間の定数ＥＸＴ個（この実施の形態においては８個である。）のブロックのうち末尾の「ｌｖｌ＝０」のブロックを除く７個のブロックが有音と判断され、音声データの示す音声の語頭部分において、有音確定区間の前の定数ＳＵＳ個（この実施の形態においては８個である。）のブロックのうち、有音確定区間に連接する有無未定区間に含まれる３個のブロックのみが有音と判断されることになる。
【００７５】
次に、圧縮・無音処理手段１８の構成の詳細について説明すると、この圧縮・無音処理手段１８は、ブロック化手段１４によってブロック化された音声データを圧縮し、当該圧縮した各ブロックの音声データたる圧縮データを格納するためのバッファを備えており、このバッファの空き領域の先頭アドレスを保持するポインタによって、バッファに保留されている各ブロックの圧縮データを管理するようになされている。
【００７６】
なお、以下においては、「バッファに保留されているブロック」を「保留ブロック」と称することとする。
【００７７】
ここで、上記した圧縮・無音処理手段１８のバッファは、最大で「ＳＵＳ＋１」個のブロック数の圧縮データを格納できる容量が必要である。
【００７８】
そして、圧縮・無音処理手段１８におけるバッファならびにポインタに関する処理としては、次に示す（１）〜（５）に示す処理が行われる。
【００７９】
なお、以下の（１）〜（５）に示す処理の説明においては、各ブロックの圧縮データとともに処理変数ｌｖｌの値を記憶しておき、出力手段２０に渡すのは純粋な圧縮データのみとする。
【００８０】
（１）ポインタの初期化処理
この処理においては、ポインタにバッファの先頭アドレスをセットする。
【００８１】
（２）処理対象のブロック（以下、「処理対象のブロック」を「本ブロック」と称する。）の圧縮データを保留する処理
この処理においては、ポインタの示すアドレス以降のバッファの空き領域に本ブロックの圧縮データを追加し、追加されたデータのサイズに従ってポインタを進める（図５（ａ）参照）。
【００８２】
（３）保留中の全圧縮データを出力する
バッファの先頭からポインタの示すアドレスの前までの圧縮データを出力手段２０に渡し、ポインタにバッファの先頭アドレスをセットする。
【００８３】
（４）保留中の先頭ブロックの圧縮データを廃棄する
後続ブロックの圧縮データの先頭からポインタの前までのデータをバッファの先頭以降にコピーし、廃棄されたデータのサイズに従ってポインタを戻す（図５（ｂ）参照）。
【００８４】
（５）保留中の全圧縮データを廃棄する
ポインタにバッファの先頭アドレスをセットする。
【００８５】
なお、圧縮・無音処理手段１８は、上記したバッファならびにポインタに加えて、上記した定数ＥＸＴならびに定数ＳＵＳを含む以下に示す内部変数および定数を備えており、圧縮開始の処理に先立って上記したポインタの初期化とともに以下に示す内部変数の初期化を行う。
【００８６】
（１）内部変数
ｆｌｇ：「０」で語頭を表し、「１」で語尾を表すフラグである。
【００８７】
ｂｌｋ：連続している無音のブロック数
ｓｕｓ：語頭で保留中のブロック数、即ち、語頭における保留ブロック数
ｅｘｔ：語尾で有音処理しているブロック数
ｃｎｔ：連続している「ｌｖｌ＝０」のブロック数
（２）定数
ＢＬＫ：一個の圧縮データで表せる最大の無音ブロック数
ＳＵＳ：語頭で有音処理する最大のブロック数
ＥＸＴ：語尾で有音処理する最大のブロック数
ＣＮＴ：無音とみなすために必要な連続している「ｌｖｌ＝０」のブロック数
ここで、内部変数は、
ｆｌｇ＝ｂｌｋ＝ｓｕｓ＝ｅｘｔ＝０」
ｃｎｔ＝ＣＮＴ
に初期化される。
【００８８】
以下、添付のフローチャートを参照しながら、圧縮・無音処理手段１８における音声データの圧縮処理ならびに有音部分と無音部分との判別処理の動作の詳細を説明する。
【００８９】
なお、添付のフローチャートは、この音声圧縮装置１０の全体の動作を制御するマイクロコンピュータの処理内容を示すものであり、音声圧縮装置１０には、添付のフローチャートに示される処理を行うためのプログラムを記憶した記憶媒体およびこの記憶媒体に記憶されたプログラムをマイクロコンピュータの制御に基づいて読み出す図示しない再生装置が備えられており、マイクロコンピュータによってこの記憶媒体に記憶されたプログラムが読み取られるとともに読み取られたプログラムに従って処理が実行される。
【００９０】
また、圧縮・無音処理手段１８は、動作開始後においては、以下において添付のフローチャートを参照しながら説明する動作を、ブロック化手段１６によってブロック化された音声データのブロック毎に繰り返し実行するものである。
【００９１】
図６には、圧縮・無音処理手段１８により実行されるメインルーチンのフローチャートが示されており、圧縮・無音処理手段１８の動作が開始されると、まず、このメインルーチンのサブルーチンたる共通処理ルーチン（図７参照）を実行することになる（ステップＳ６０２）。この共通処理ルーチンの詳細については、図７を参照しながら後述する。
【００９２】
そして、ステップＳ６０２の処理を終了すると、ステップＳ６０４の処理へ進み、処理変数ｌｖｌが「２」であるか否かについて判断する。
【００９３】
このステップＳ６０４の処理において、処理変数ｌｖｌが「２」であると判断された場合には、このメインルーチンのサブルーチンたる有音処理ルーチン（図８参照）を実行することになる（ステップＳ６０６）。この有音処理ルーチンの詳細については、図８を参照しながら後述する。
【００９４】
そして、ステップＳ６０６の処理を終了すると、このメインルーチンを終了する。
【００９５】
一方、ステップＳ６０４の処理において、処理変数ｌｖｌが「２」ではないと判断された場合には、ステップＳ６０８の処理へ進み、内部変数ｃｎｔの値と定数ＣＮＴの値とが一致するか否かについて判断する。
【００９６】
このステップＳ６０８の処理において、内部変数ｃｎｔの値と定数ＣＮＴの値とが一致すると判断された場合には、このメインルーチンのサブルーチンたる無音処理ルーチン（図９参照）を実行することになる（ステップＳ６１０）。この無音処理ルーチンの詳細については、図９を参照しながら後述する。
【００９７】
そして、ステップＳ６１０の処理を終了すると、このメインルーチンを終了する。
【００９８】
一方、ステップＳ６０８の処理において、内部変数ｃｎｔの値と定数ＣＮＴの値とが一致しないと判断された場合には、ステップＳ６１２の処理へ進み、内部変数ｆｌｇが「０」であるか否かについて判断する。
【００９９】
このステップＳ６１２の処理において、内部変数ｆｌｇが「０」であると判断された場合には、このメインルーチンのサブルーチンたる語頭処理ルーチン（図１０参照）を実行することになる（ステップＳ６１４）。この語頭処理ルーチンの詳細については、図１０を参照しながら後述する。
【０１００】
そして、ステップＳ６１４の処理を終了すると、このメインルーチンを終了する。
【０１０１】
一方、ステップＳ６１２の処理において、内部変数ｆｌｇが「０」ではないと判断された場合には、このメインルーチンのサブルーチンたる語尾処理ルーチン（図１１参照）を実行することになる（ステップＳ６１６）。この語尾処理ルーチンの詳細については、図１１を参照しながら後述する。
【０１０２】
そして、ステップＳ６１６の処理を終了すると、このメインルーチンを終了する。
【０１０３】
次に、図７に示す共通処理ルーチンのフローチャートを参照しながら、共通処理について説明すると、まず、本ブロックの音声データたるＰＣＭデータを圧縮して圧縮データを得る処理を行う（ステップＳ７０２）。なお、ＰＣＭデータを圧縮する際のフォーマットに関しては、上記したように特開平１１−５２９９０号公報に開示されているので、その詳細な説明は省略する。
【０１０４】
それから、ステップＳ７０２で得た本ブロックの圧縮データを保留するとともに、内部変数ｓｕｓの値を「１」だけ増加する（ステップＳ７０４）。
【０１０５】
上記したステップＳ７０４の処理を終了すると、処理変数ｌｖｌが「０」であるか否かについて判断する（ステップＳ７０６）。
【０１０６】
このステップＳ７０６の処理において、処理変数ｌｖｌが「０」でないと判断された場合には、内部変数ｃｎｔの値を「０」にクリアし（ステップＳ７０８）、この共通処理ルーチンを終了する。
【０１０７】
一方、ステップＳ７０６の処理において、処理変数ｌｖｌが「０」であると判断された場合には、ステップＳ７１０の処理へ進み、内部変数ｃｎｔの値が定数ＣＮＴの値より小さいか否かについて判断する。
【０１０８】
このステップＳ７１０の処理において、内部変数ｃｎｔの値が定数ＣＮＴの値より小さくないと判断された場合には、そのままこの共通処理ルーチンを終了する。
【０１０９】
一方、ステップＳ７１０の処理において、内部変数ｃｎｔの値が定数ＣＮＴの値より小さいと判断された場合には、内部変数ｃｎｔの値を「１」だけ増加し（ステップＳ７１２）、その後にこの共通処理ルーチンを終了する。
【０１１０】
次に、図８に示す有音処理ルーチンのフローチャートを参照しながら、有音処理について説明すると、まず、内部変数ｂｌｋの値が「０」より大きいか否かについて判断する（ステップＳ８０２）。
【０１１１】
このステップＳ８０２の処理において、内部変数ｂｌｋの値が「０」より大きいと判断された場合には、ブロック数が内部変数ｂｌｋの値である区間の無音部分のデータ（以下、無音部分のデータを「無音データ」と称する。）を出力手段２０へ出力するとともに、内部変数ｂｌｋの値を「０」にクリアし（ステップＳ８０４）、それからステップＳ８０６の処理へ進む。なお、無音データのフォーマットに関しては、上記したように特開平１１−５２９９０号公報に開示されているので、その詳細な説明は省略する。
【０１１２】
一方、ステップＳ８０２の処理において、内部変数ｂｌｋの値が「０」より大きくないと判断された場合には、そのままステップＳ８０６の処理へ進む。
【０１１３】
そして、ステップＳ８０６の処理においては、保留中の全圧縮データを出力手段２０へ出力するとともに、内部変数ｆｌｇに「１」を設定し、さらに内部変数ｓｕｓおよび内分変数ｅｘｔをそれぞれ「０」にクリアし、その後にこの有音処理ルーチンを終了する。
【０１１４】
即ち、ステップＳ８０６の処理においては、保留中の全ての圧縮データを出力している。
【０１１５】
以上に示したように、処理変数ｌｖｌが「２」であるブロックは、無条件に有音と判断され出力される。
【０１１６】
次に、図９に示す無音処理ルーチンのフローチャートを参照しながら、無音処理について説明すると、まず、保留中の全圧縮データを廃棄するとともに、内部変数ｂｌｋの値に内部変数ｓｕｓの値を加算して内部変数ｂｌｋの値を更新し、さらに内部変数ｓｕｓと内部変数ｆｌｇとを「０」にクリアする（ステップＳ９０２）。
【０１１７】
上記したステップＳ９０２の処理を終了すると、ステップＳ９０４の処理へ進み、内部変数ｂｌｋの値が定数ＢＬＫの値以上であるか否かを判断する。
【０１１８】
このステップＳ９０４の処理において、内部変数ｂｌｋの値が定数ＢＬＫの値以上であると判断された場合には、ブロック数が定数ＢＬＫの値である無音データを出力手段２０へ出力するとともに、変数ｂｌｋの値から定数ＢＬＫの値を減算して変数ｂｌｋの値を更新し（ステップＳ９０６）、その後にステップＳ９０４へ戻って処理を繰り返す。
【０１１９】
なお、この無音処理ルーチンによって破棄されたがまだ無音データとして出力されていないブロックに関しては、後続するブロックにおいて実行される処理ルーチンによって無音データとして出力されることになる。
【０１２０】
以上に示したように、処理変数ｌｖｌが「０」であるブロックが定数ＣＮＴ個以上連続する場合には、それらのブロックは無音と判断され無音データが出力される。
【０１２１】
一方、ステップＳ９０４の処理において、内部変数ｂｌｋの値が定数ＢＬＫの値以上ではないと判断された場合には、そのまま無音処理ルーチンを終了する。
【０１２２】
次に、図１０に示す語頭処理ルーチンのフローチャートを参照しながら、語頭処理について説明すると、まず、内部変数ｓｕｓの値と定数ＳＵＳの値とを比較する（ステップＳ１００２）。
【０１２３】
このステップＳ１００２の処理において、内部変数ｓｕｓの値が定数ＳＵＳの値より小さいと判断された場合には、そのままこの語頭処理ルーチンを終了する。
【０１２４】
また、ステップＳ１００２の処理において、内部変数ｓｕｓの値が定数ＳＵＳの値より大きいと判断された場合には、保留中の先頭ブロックの圧縮データを廃棄するとともに、内部変数ｓｕｓの値を「１」だけ減算し、さらに内部変数ｂｌｋの値を「１」だけ加算し（ステップＳ１００４）、その後にステップＳ１００６の処理へ進む。
【０１２５】
また、ステップＳ１００２の処理において、内部変数ｓｕｓの値と定数ＳＵＳの値とが等しいと判断された場合には、ステップＳ１００６へジャンプして進む。
【０１２６】
そして、ステップＳ１００６の処理においては、内部変数ｓｕｓが「０」であるか否かを判断するとともに、内部変数ｓｕｓが「０」でないと判断された場合、即ち、保留中のブロックが存在すると判断された場合には、保留中の先頭ブロックの処理変数ｌｖｌが「１」であるか否かを判断する。
【０１２７】
このステップＳ１００６の処理において、内部変数ｓｕｓが「０」ではないと判断され、かつ、保留中の先頭ブロックの処理変数ｌｖｌが「１」ではないと判断された場合には、ステップＳ１００４へ戻って処理を繰り返す。
【０１２８】
即ち、保留中のブロック数がいったんＳＵＳ個と等しくあるいはＳＵＳ個より大きくなった後は、保留する圧縮データの先頭のブロックは、必ず処理変数ｌｖｌが「１」のものとなるように処理を行っている。
【０１２９】
一方、ステップＳ１００６の処理において、内部変数ｓｕｓが「０」であると判断された場合、または、保留中の先頭ブロックの処理変数ｌｖｌが「１」であると判断された場合には、ステップＳ１００８の処理へ進み、内部変数ｂｌｋの値が定数ＢＬＫの値以上であるか否かを判断する。
【０１３０】
このステップＳ１００８の処理において、内部変数ｂｌｋの値が定数ＢＬＫの値以上ではないと判断された場合には、そのままこの語頭処理ルーチンを終了する。
【０１３１】
一方、ステップＳ１００８の処理において、内部変数ｂｌｋの値が定数ＢＬＫの値以上であると判断された場合には、定数ＢＬＫの値のブロック数分の無音データを出力手段２０へ出力するとともに、内部変数ｂｌｋの値から定数ＢＬＫの値を減算して内部変数ｂｌｋの値を更新し（ステップＳ１０１０）、その後にステップＳ１００８へ戻って処理を繰り返す。
【０１３２】
なお、この語頭処理ルーチンによって保留されたブロックの有音であるか無音であるかの判断は、後続のブロックの状態によって決定されることになる。後続のブロックにおいて有音処理ルーチンが実行される場合には保留されたブロックが有音と判断されて出力され、後続のブロックにおいて無音処理ルーチンが実行される場合には保留されたブロックが無音と判断され無音データが出力される。
【０１３３】
なお、ステップＳ１００６における判断の処理を省略して、ステップＳ１００４の処理から無条件にステップＳ１００８の処理へ進むとともに、ステップＳ１００２において処理変数ｓｕｓの値が定数ＳＵＳの値と等しいと判断した場合にそのままこの語頭処理ルーチンを終了するようにしても、この実施の形態は動作可能であるが、図１２に示すような場合において、「●」で示す処理変数ｌｖｌが「０」である不要なブロックを廃棄して圧縮率を向上させるために設けているものである。
【０１３４】
即ち、本実施の形態においては、保留しているブロックの数がＳＵＳ個に達した時点で、保留しているブロックのうち先頭部分の処理変数ｌｖｌが「０」であるブロックが無音とみなされるようになっているため、処理変数ｌｖｌが「２」である区間の前に存在するＳＵＳ個のブロックのうち先頭部分の処理変数ｌｖｌが「０」である一連のブロックが無音とみなされて破棄される。
【０１３５】
ここで、語頭処理ルーチンにおいては、いったん内部変数ｓｕｓが定数ＳＵＳに等しいかより大きくなったときのみ、バッファの先頭の処理変数ｌｖｌが「０」のブロックを廃棄しているので、図１３に示すような場合において、「◎」で示す残すべき処理変数ｌｖｌが「０」である必要なブロックは廃棄されないことになる（先に定数ＥＸＴ個の個数のブロックが有音処理されるので、「◎」が保留ブロックの先頭になる。）。
【０１３６】
以上に示したように、語頭処理ルーチンにおいては、最大ＳＵＳ個のブロックを保留する処理を行っている。保留したブロックが有音であるか無音であるかの判断は、後続のブロックの状態によって決定される。後続のブロックにおいて有音処理ルーチンが実行される場合には保留されたブロックが有音と判断されて出力され、後続のブロックにおいて無音処理ルーチンが実行される場合には保留されたブロックが無音と判断されて無音データが出力される。
【０１３７】
なお、処理変数ｌｖｌが「２」であるブロックの前に存在するＳＵＳ個のブロックのうちに処理変数ｌｖｌが「０」であるブロックが連続してＣＮＴ個以上ある場合には、ＳＵＳ個のブロックのうちそのＣＮＴ個以上のブロックよりも前の保留されているブロックはそのＣＮＴ個以上のブロックが無音処理ルーチンにおいて無音とみなされて破棄される際に無音とみなされて破棄され、ＳＵＳ個のブロックのうちそのＣＮＴ個以上のブロックよりも後のブロックは処理変数ｌｖｌが「２」であるブロックが有音処理ルーチンにおいて処理される際に有音とみなされて処理される。
【０１３８】
次に、図１１に示す語尾処理ルーチンのフローチャートを参照しながら、語尾処理について説明すると、まず、処理変数ｌｖｌが「１」であるか否かを判断する（ステップＳ１１０２）。
【０１３９】
このステップＳ１１０２の処理において、処理変数ｌｖｌが「１」であると判断された場合には、保留中の全圧縮データを出力手段２０へ出力するとともに、内部変数ｓｕｓを「０」にクリアし（ステップＳ１１０４）、それからステップＳ１１０６へ進む。
【０１４０】
一方、ステップＳ１１０２の処理において、処理変数ｌｖｌが「１」ではないと判断された場合には、そのままステップＳ１１０６の処理へ進む。
【０１４１】
そして、ステップＳ１１０６の処理においては、内部変数ｅｘｔの値を「１」だけ増加する。
【０１４２】
上記したステップＳ１１０６の処理を終了すると、ステップＳ１１０８の処理へ進み、内部変数ｅｘｔの値が定数ＥＸＴの値と一致するか否かについて判断する。
【０１４３】
このステップＳ１１０８の処理において、内部変数ｅｘｔの値が定数ＥＸＴの値と一致しないと判断された場合には、そのままこの語尾処理ルーチンを終了する。
【０１４４】
一方、ステップＳ１１０８の処理において、内部変数ｅｘｔの値が定数ＥＸＴの値と一致すると判断された場合には、内部変数ｆｌｇを「０」にクリアし（ステップＳ１１１０）、それからこの語尾処理ルーチンを終了する。
【０１４５】
なお、ステップＳ１１０２における判断の処理を省略して、無条件でステップＳ１１０４の処理において保留中の全圧縮データを出力手段２０へ出力するようにした場合には、処理変数ｌｖｌが「０」のブロックが連続する場合に、最初の「ＣＮＴ−１」個のブロックを有音処理してしまうことになる。このため、ステップＳ１１０２における判断の処理を行うことが望ましいものである。
【０１４６】
また、このステップＳ１１０２における判断処理を行うことにより、図１４に示すような場合に、「●」で示す末尾の処理変数ｌｖｌが「０」のブロックを保留状態に留めて圧縮率を向上させることができる。
【０１４７】
なお、保留状態のブロックが有音であるか無音であるかの判断は、後続のブロックの状態によって決定されることになる。
【０１４８】
後続のブロックにおいて有音処理ルーチンが実行される場合には保留されたブロックが有音と判断されて出力され、後続のブロックにおいて無音処理ルーチンが実行される場合には保留されたブロックが無音と判断されて無音データが出力される。
【０１４９】
また、後続のブロックにおいて語頭処理ルーチンが実行される場合には、語尾処理ルーチンによって保留されたブロックの数および語頭処理ルーチンによって保留されたブロックの数の合計がＳＵＳ個に達した時点で、「●」で示すブロックが無音とみなされ破棄される。
【０１５０】
以上に示したように、語尾処理ルーチンにおいては、処理変数ｌｖｌが「２」であるブロックの後の最大ＥＸＴ個のブロックに関して、処理変数ｌｖｌが「０」であるブロックは保留し、処理変数ｌｖｌが「１」であるブロックが出現した時点で、当該ブロックを含めて保留されていた全てのブロックを有音とみなして出力している。
【０１５１】
なお、処理変数ｌｖｌが「２」であるブロックの後のＥＸＴ個のブロックのうちに処理変数ｌｖｌが「０」であるブロックが連続してＣＮＴ個以上ある場合には、処理変数ｌｖｌが「０」であるブロックがＣＮＴ個連続して出現した時点で語尾処理ルーチンに代えて無音処理ルーチンが実行され内部変数ｆｌｇの値が「０」に書き換えられるため、これ以降は語尾処理ルーチンは実行されなくなる。
【０１５２】
このため、その処理変数ｌｖｌが「０」であるＣＮＴ個以上の連続するブロックよりも前の処理変数ｌｖｌが「１」であるブロックによってのみ、語尾処理ルーチンにおける有音化が行われることになる。
【０１５３】
図１５には、メインルーチンの実行中に動作の停止を指示された場合において、末尾の無音を保存する必要がある場合に実行される圧縮終了時処理ルーチンのフローチャートが示されている。
【０１５４】
なお、末尾の無音を保存する必要がある場合とは、例えば、音声データの時間長を保つ必要がある場合などである。末尾の無音を保存する必要がなければ、この処理を実行する必要はない。
【０１５５】
即ち、この圧縮終了時処理ルーチンにおいては、まず、内部変数ｂｌｋの値に処理変数ｓｕｓの値を加算して内部変数ｂｌｋの値を更新する（ステップＳ１５０２）。
【０１５６】
このステップＳ１５０２の処理を終了すると、ステップＳ１５０４の処理へ進み、内部変数ｂｌｋの値が定数ＢＬＫの値以上であるか否かを判断する。
【０１５７】
上記したステップＳ１５０４の処理において、内部変数ｂｌｋの値が定数ＢＬＫの値以上であると判断された場合には、ブロック数が定数ＢＬＫの値の無音データを出力手段２０へ出力するとともに、内部変数ｂｌｋの値から定数ＢＬＫの値を減算して内部変数ｂｌｋの値を更新し（ステップＳ１５０６）、それからステップＳ１５０４へ戻って処理を繰り返す。
【０１５８】
一方、ステップＳ１５０４の処理において、内部変数ｂｌｋの値が定数ＢＬＫの値以上ではないと判断された場合には、ステップＳ１５０８の処理へ進み、内部変数ｂｌｋの値が０より大きいか否かを判断する。
【０１５９】
このステップＳ１５０８の処理において、内部変数ｂｌｋの値が０より大きいとは判断されなかった場合には、そのままこの圧縮終了時処理ルーチンを終了する。
【０１６０】
一方、ステップＳ１５０８の処理において、内部変数ｂｌｋの値が０より大きいと判断された場合には、ブロック数が内部変数ｂｌｋの無音データを出力手段２０へ出力し（ステップＳ１５１０）、それからこの圧縮終了時処理ルーチンを終了する。
【０１６１】
なお、上記した実施の形態において、ブロック化手段１４は通常は複数のサンプルで１ブロックを形成するものであるが、１サンプルで１ブロックとするものもブロック手段１４で得られるブロックには含まれるものである。
【０１６２】
また、上記した実施の形態に代えて、音声データのレベルとして、各ブロックに含まれるサンプルの絶対値の平均値や音声データのエンベロープのレベルを採用するようにしてもよい。
【０１６３】
また、上記した実施の形態に代えて、音声データとして圧縮前のＰＣＭデータをバッファに保存しておき、有音か無音かの確定後に圧縮するという手法を用いてもよい。こうした場合には、圧縮データを保留するという上記した実施の形態の手法よりも大きいバッファが必要となるが、無音部分を圧縮するという無駄な処理を行う必要がなくなる。
【０１６４】
さらに、上記した実施の形態のように、音声データの先頭から順番に処理するのではなく、音声データをメモリに記憶させておき、音声データの末尾から先頭に向かって処理するようにしてもよい。
【０１６５】
【発明の効果】
本発明は、以上説明したように構成されているので、音声の語尾や語頭が途切れることなく明瞭で滑らかな音声の再現を行うことができるようになるとともに、音声データのなかで無音処理することが好ましい不要な部分において有音処理を行うことがなくなってデータ量の圧縮率の向上を図ることができるという優れた効果を奏する。
【図面の簡単な説明】
【図１】特開平１１−５２９９０号公報に開示された技術の動作を説明するための説明図である。
【図２】特公平３−６８３９９号公報に開示された技術の動作を説明するための説明図である。
【図３】本発明による無音判別方法を行う手段を有する無音判別装置を備えた音声圧縮装置のブロック構成図である。
【図４】本発明の動作原理を説明するための説明図である。
【図５】（ａ）は本発明における処理対象のブロック（本ブロック）の圧縮データを保留する処理を説明するための説明図であり、（ｂ）は本発明における保留中の先頭ブロックの圧縮データを廃棄するための説明図である。
【図６】本発明のメインルーチンのフローチャートである。
【図７】本発明の共通処理ルーチンのフローチャートである。
【図８】本発明の有音処理ルーチンのフローチャートである。
【図９】本発明の無音処理ルーチンのフローチャートである。
【図１０】本発明の語頭処理ルーチンのフローチャートである。
【図１１】本発明の語尾処理ルーチンのフローチャートである。
【図１２】語頭処理ルーチンにおける動作を説明するための説明図である。
【図１３】語頭処理ルーチンにおける動作を説明するための説明図である。
【図１４】語尾処理ルーチンにおける動作を説明するための説明図である。
【図１５】本発明の圧縮終了時処理ルーチンのフローチャートである。
【符号の説明】
１０      音声圧縮装置
１２      入力手段
１４      ブロック化手段
１６      比較手段
１８      圧縮・無音処理手段
２０      出力手段
【図１】
0004202524.tif 000002
【図２】
0004202524.tif 000003
【図３】
0004202524.tif 000004
【図４】
0004202524.tif 000005
【図５】
0004202524.tif 000006
【図６】
0004202524.tif 000007
【図７】
0004202524.tif 000008
【図８】
0004202524.tif 000009
【図９】
0004202524.tif 000010
【図１０】
0004202524.tif 000011
【図１１】
0004202524.tif 000012
【図１２】
0004202524.tif 000013
【図１３】
0004202524.tif 000014
【図１４】
0004202524.tif 000015
【図１５】
0004202524.tif 000016