説明

音声再生装置、音声再生方法及びコンピュータプログラム

【課題】位相復元技術を用いた音声再生処理において、高品質に音声を再生することが可能な音声再生装置、音声再生方法を提供する。
【解決手段】音声再生装置20は、音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び位相値の取り得る範囲を出力する情報出力部26と、振幅値に対して整合するように位相値を更新し、更新した位相値が位相値の取り得る範囲を超えた場合は、位相値の取り得る範囲に収まるように更新した位相値を補正し、振幅値及び補正した位相値に基づいて復元信号を生成する波形合成部25と、復元信号を出力する音声出力部21と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、音声再生装置、音声再生方法及びコンピュータプログラムに関し、特に、位相復元技術を用いて音声を再生する音声再生装置、音声再生方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
MP3、AAC等の音声信号の非可逆圧縮技術では、修正離散コサイン変換及び聴覚モデルに基づいて音声信号を圧縮している。しかし、これらの方式では、すでに十分なパラメータチューニング及び最適化が行われており、現在の性能に対してさらなる性能向上を図るのは困難な状況にある。
【0003】
一方、非可逆圧縮技術において、短時間フーリエ変換(STFT)の振幅を符号化して、音声信号を圧縮する方式の研究が進められている。この方式では、復号時に位相復元技術(非特許文献1を参照)を利用して、STFTの振幅に対して整合する位相を生成することができるため、位相を符号化せずに、その分、振幅に割り当てるビット数を多くすることが可能となる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】D. W. Griffin and J. S. Lim, ASSP, vol. 32(2), pp. 236-243, 1984.
【発明の概要】
【発明が解決しようとする課題】
【0005】
位相復元技術を用いることにより、符号化のビットを全て振幅に割り当てることができるため、振幅を高精度に復号することができる。しかし、位相についての情報が全くない状態から振幅のみに基づいて位相を生成した場合、再生される音声の音質は著しく低下する。
【0006】
そこで、本発明の目的は、位相復元技術を用いた音声再生処理において、高品質に音声を再生することが可能な音声再生装置、音声再生方法及びそのような音声再生方法をコンピュータに実行させるコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明に係る音声再生装置は、音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び位相値の取り得る範囲を出力する情報出力部と、振幅値に対して整合するように位相値を更新し、更新した位相値が位相値の取り得る範囲を超えた場合は、位相値の取り得る範囲に収まるように更新した位相値を補正し、振幅値及び補正した位相値に基づいて復元信号を生成する波形合成部と、復元信号を出力する音声出力部と、を有する。
【0008】
さらに、本発明に係る音声再生装置において、複数のスペクトログラム成分は、音声信号を窓関数を用いて隣接する時間フレームが重複するように分解して周波数変換することにより生成された複数の原スペクトログラム成分に対して、複数の原スペクトログラム成分の原振幅値及び原位相値のうち少なくとも一つが変更されたものであり、波形合成部は、複数のスペクトログラム成分を逆周波数変換することにより生成した合成信号を、窓関数と同一の窓関数を用いて時間フレームと同一の時間フレームに分解して周波数変換することにより、振幅値に対して整合する第2の位相値を求め、当該第2の位相値により位相値を更新することが好ましい。
【0009】
さらに、本発明に係る音声再生装置において、情報出力部は、原振幅値及び原位相値を量子化した量子化振幅値及び量子化位相値を逆量子化した値を振幅値及び位相値とし、原位相値を量子化した量子化ステップにより定まる位相値の範囲を位相値の取り得る範囲として出力することが好ましい。
【0010】
さらに、本発明に係る音声再生装置において、情報出力部は、音声信号の信号値の取り得る第2の範囲を出力し、波形合成部は、合成信号の信号値が第2の範囲を超えた場合、第2の範囲に収まるように合成信号の信号値を補正することが好ましい。
【0011】
また、本発明に係る音声再生方法は、音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び位相値の取り得る範囲を出力するステップと、振幅値に対して整合するように位相値を更新し、更新した位相値が位相値の取り得る範囲を超えた場合は、位相値の取り得る範囲に収まるように更新した位相値を補正し、振幅値及び補正した位相値に基づいて復元信号を生成するステップと、復元信号を出力するステップと、を含む。
【0012】
さらに、本発明に係る音声再生方法において、複数のスペクトログラム成分は、音声信号を窓関数を用いて隣接する時間フレームが重複するように分解して周波数変換することにより生成された複数の原スペクトログラム成分に対して、複数の原スペクトログラム成分の原振幅値及び原位相値のうち少なくとも一つが変更されたものであり、復元信号を生成するステップにおいて、複数のスペクトログラム成分を逆周波数変換することにより生成した合成信号を、窓関数と同一の窓関数を用いて時間フレームと同一の時間フレームに分解して周波数変換することにより、振幅値に対して整合する第2の位相値を求め、当該第2の位相値により位相値を更新することが好ましい。
【0013】
さらに、本発明に係る音声再生方法において、振幅値、位相値及び位相値の取り得る範囲を出力するステップにおいて、原振幅値及び原位相値を量子化した量子化振幅値及び量子化位相値を逆量子化した値を振幅値及び位相値とし、原位相値を量子化した量子化ステップにより定まる位相値の範囲を位相値の取り得る範囲として出力することが好ましい。
【0014】
さらに、本発明に係る音声再生方法において、振幅値、位相値及び位相値の取り得る範囲を出力するステップにおいて、音声信号の信号値の取り得る第2の範囲を出力し、復元信号を生成するステップにおいて、合成信号の信号値が第2の範囲を超えた場合、第2の範囲に収まるように合成信号の信号値を補正することが好ましい。
【0015】
また、本発明に係るコンピュータプログラムは、音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び位相値の取り得る範囲を出力するステップと、振幅値に対して整合するように位相値を更新し、更新した位相値が位相値の取り得る範囲を超えた場合は、位相値の取り得る範囲に収まるように更新した位相値を補正し、振幅値及び補正した位相値に基づいて復元信号を生成するステップと、復元信号を出力するステップと、をコンピュータに実行させる。
【発明の効果】
【0016】
本発明によれば、位相復元技術を用いた音声再生処理において、高品質に音声を再生することが可能な音声再生装置、音声再生方法及びそのような音声再生方法をコンピュータに実行させるコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0017】
【図1】本発明を適用した音声通信システムの概略構成図である。
【図2】波形合成部の概略構成を示す図である。
【図3】音声符号化装置による音声符号化処理の動作を示すフローチャートである。
【図4】各信号及びスペクトログラムの関係について説明するための模式図である。
【図5】音声再生装置による音声再生処理の動作を示すフローチャートである。
【図6】逆量子化された位相値の範囲について説明するための模式図である。
【図7】音声再生装置により再生した音声の品質を表すグラフである。
【図8】他の音声再生装置の概略構成図である。
【図9】スペクトログラムの編集処理の動作を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明に係る音声再生装置、音声再生方法及びコンピュータプログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【0019】
図1は、本発明を適用した音声通信システムの概略構成を示す図である。図1に示すように、音声通信システム1は、音声符号化装置10及び音声再生装置20を有する。
【0020】
音声符号化装置10は、音声入力部11、インターフェース部12、記憶部13及び制御部14を有する。以下、音声符号化装置10の各部について詳細に説明する。
【0021】
音声入力部11は、外部の音声をアナログの電気信号に変換して取り込むマイクロフォンを有する。また、音声入力部11は、マイクロフォンが出力したアナログの電気信号をデジタルの信号(以下、このデジタルの信号を音声信号と称する)に変換し、音声信号を記憶部13に保存する。音声入力部11は、制御部14と接続されており、制御部14により制御される。
【0022】
インターフェース部12は、例えばインターネット、電話回線網(携帯端末回線網、一般電話回線網を含む)、イントラネット等のネットワークを介して音声再生装置20に符号化した音声信号(以下、符号化データと称する)を送信する通信インターフェースであり、接続するネットワークの通信インターフェース回路を有する。また、インターフェース部12は、例えばUSB等のシリアルバスに準じるインターフェース回路を有し、フラッシュメモリ等を接続し、そのフラッシュメモリ等に符号化データを記憶するようにしてもよい。インターフェース部12は、制御部14と接続されており、制御部14により制御される。
【0023】
記憶部13は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶部13には、音声符号化装置10の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。記憶部13は、制御部14と接続され、音声入力部11を介して取得した音声信号を格納するとともに、制御部14により音声信号についてなされた各種の演算結果を格納する。
【0024】
制御部14は、音声入力部11を介して取得した音声信号を符号化する。そのために、制御部14は、周波数変換部15、量子化部16及び符号化部17を有する。また、制御部14は、音声入力部11、インターフェース部12及び記憶部13と接続され、音声入力部11の音声入力制御、インターフェース部12のデータ送受信制御、記憶部13の制御等を行う。制御部14は、予め記憶部13に記憶されているプログラムに基づいて動作する。あるいは、制御部14は、集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【0025】
音声再生装置20は、音声出力部21、インターフェース部22、記憶部23及び制御部24を有する。以下、音声再生装置20の各部について詳細に説明する。
【0026】
音声出力部21は、制御部24から受け取ったデジタルの音声信号をアナログの電気信号に変換して出力する。あるいは、音声出力部21は、さらにスピーカを有し、アナログの電気信号を音声として出力してもよい。音声出力部21は、制御部24と接続されており、制御部24により制御される。
【0027】
インターフェース部22は、例えばインターネット、電話回線網(携帯端末回線網、一般電話回線網を含む)、イントラネット等のネットワークを介して音声符号化装置10から符号化データを受信する通信インターフェースであり、接続するネットワークの通信インターフェース回路を有する。また、インターフェース部22は、例えばUSB等のシリアルバスに準じるインターフェース回路を有し、フラッシュメモリ等を接続し、そのフラッシュメモリ等から符号化データを取得するようにしてもよい。インターフェース部22は、制御部24と接続されており、制御部24により制御される。
【0028】
記憶部23は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶部23には、音声再生装置20の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。記憶部23は、制御部24と接続され、インターフェース部22を介して音声符号化装置10から受信した符号化データを格納するとともに、制御部24により符号化データについてなされた各種の演算結果を格納する。
【0029】
制御部24は、インターフェース部22を介して音声符号化装置10から受信した符号化データを復号し、音声として再生する。そのために、制御部24は、波形合成部25、逆量子化部26及び復号部27を有する。また、制御部24は、音声出力部21、インターフェース部22及び記憶部23と接続され、音声出力部21の出力制御、インターフェース部22のデータ送受信制御、記憶部23の制御等を行う。制御部24は、予め記憶部23に記憶されているプログラムに基づいて動作する。あるいは、制御部24は、集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【0030】
図2は、波形合成部25の概略構成を示す図である。図2に示すように、波形合成部25は、逆周波数変換部28及び周波数変換部29を有する。
【0031】
図3は、音声符号化装置10による音声符号化処理の動作を示すフローチャートである。以下、図3に示したフローチャートを参照しつつ、音声符号化処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶部13に記憶されているプログラムに基づき主に制御部14により音声符号化装置10の各要素と協働して実行される。
【0032】
最初に、音声入力部11は、外部の音声をマイクロフォンを介して取得し、マイクロフォンが出力したアナログの電気信号をデジタルの音声信号に変換し、記憶部13に保存する(ステップS301)。
【0033】
音声入力部11により取得される音声信号は、次の式により表される。
【数1】

ここで、nはサンプル数を表し、例えば16kHzでサンプリングする場合の1秒間のサンプル数nは、16000となる。
【0034】
次に、周波数変換部15は、記憶部13に保存された音声信号を読み出し、音声信号を周波数領域に変換してスペクトログラムを生成する(ステップS302)。なお、周波数変換部15は、短時間フーリエ変換(STFT)を用いて周波数変換を行う。
【0035】
図4に音声通信システム1が処理する各信号及び各スペクトログラムの関係を説明するための模式図を示す。時間領域の信号を周波数領域の信号に変換する場合、時間領域の信号を所定の時間フレーム毎に区切る必要がある。しかし、時間領域を所定の時間単位で完全に分割すると、各時間フレームの最初の値及び最後の値は、隣接する時間フレームの最後の値又は最初の値と不連続になり、正確に周波数領域に変換することができない。そのため、STFTでは、図4に示すように、音声信号401に対して、隣接する時間フレームが重複するように定めた窓関数402〜404を掛けることにより、音声信号401を各時間フレームが重複するように分解して周波数変換を行う。
【0036】
つまり、周波数変換部15は、音声信号xを隣接する時間フレームが重複するように窓関数を用いて複数の原分解信号xmに分解し、各原分解信号xmをそれぞれSTFTにより周波数変換して複数の周波数帯域に分割することにより複素スペクトログラムを生成する。
【0037】
周波数変換部15により生成される複素スペクトログラムY={Yk,m}の成分(以下、原スペクトログラム成分と称する)は、次の式により表される。
【数2】

ここで、k、mはそれぞれ周波数帯域、時間フレームのインデックスを表す。また、Ak,mは原スペクトログラム成分Yk,mの対数振幅値(以下、原振幅値と称する)を表し、φk,mは原スペクトログラム成分Yk,mの位相値(以下、原位相値と称する)(−π<φk,m≦π)を表す。
【0038】
次に、量子化部16は、原スペクトログラム成分Yk,mの原振幅値Ak,m及び原位相値φk,mについて量子化を行う(ステップS303)。
【0039】
一般に、人間の聴覚の音の大きさの知覚はほぼ対数的であり、位相は一様分布である。そのため、本実施形態の量子化部16は、原振幅値Ak,m及び原位相値φk,mに対して等間隔量子化を行う。量子化部16により量子化された原振幅値(以下、量子化振幅値と称する)A^k,m及び原位相値(以下、量子化位相値と称する)φ^k,mは、次の式により表される。
【数3】

【数4】

ここで、
【数5】

は床関数を表し、量子化振幅値A^k,m
【数6】

より大きい場合は量子化振幅値A^k,mは式(6)の値とし、量子化振幅値A^k,mが0より小さい場合は量子化振幅値A^k,mは0にする。
【0040】
-kは周波数帯域kにおける各時間フレームの原振幅値Ak,mの平均値である。また、ΔAk,m及びΔφk,mは、それぞれ対数振幅及び位相の量子化ステップを表し、次の式により表される。
【数7】

【数8】

ここで、αは定数であり、例えば3である。σkは周波数帯域kにおける各時間フレームの原振幅値Ak,mの標準偏差である。また、ak,mは周波数帯域k、時間フレームmにおいて対数振幅に割り当てるビット数を表し、pk,mは周波数帯域k、時間フレームmにおいて位相に割り当てるビット数を表す。固定ビットレートの場合、つまりak,mとpk,mの和が固定値である場合、人間の聴覚は位相に対して鈍感であるため、ak,mをpk,m以上とすることが望ましい。
【0041】
図4に示すように、量子化振幅値A^k,m及び量子化位相値φ^k,mは、それぞれ原振幅値Ak,m及び原位相値φk,mに対応して生成される。
【0042】
次に、符号化部17は、量子化振幅値A^k,m、量子化位相値φ^k,m、これらの量子化ステップ、窓関数についての情報及び音声信号を分解した時間フレームについての情報を符号化する(ステップS304)。符号化部17は、ハフマン符号化等の周知の可逆符号化方式によりこれらの情報を符号化する。
【0043】
次に、制御部14は、符号化部17により符号化された符号化データをインターフェース部12を介して音声再生装置20に送信し(ステップS305)、一連のステップを終了する。
【0044】
図5は、音声再生装置20による音声再生処理の動作を示すフローチャートである。以下、図5に示したフローチャートを参照しつつ、音声再生処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶部23に記憶されているプログラムに基づき主に制御部24により音声再生装置20の各要素と協働して実行される。
【0045】
最初に、インターフェース部22は、音声符号化装置10から符号化データを受信する(ステップS501)。
【0046】
次に、復号部27は、受信した符号化データを復号し、量子化振幅値A^k,m、量子化位相値φ^k,m、これらの量子化ステップ、窓関数についての情報及び音声信号を分解した時間フレームについての情報を取得する(ステップS502)。なお、復号部27は、音声符号化装置10の符号化部17が符号化した符号化方式の逆変換を行って符号化データを復号する。
【0047】
次に、逆量子化部26は、量子化振幅値A^k,m及び量子化位相値φ^k,mについて逆量子化を行う(ステップS503)。
【0048】
逆量子化部26により逆量子化された対数振幅値(以下、単に振幅値と称する)A'k,m及び逆量子化された位相値(以下、単に位相値と称する)φ'k,mは、次の式により表される。
【数9】

【数10】

つまり、振幅値A'k,m及び位相値φ'k,mは、それぞれ、原振幅値Ak,m及び原位相値φk,mが量子化された量子化ステップの範囲における中心の値となる。
【0049】
また、逆量子化部26は、原位相値φk,mを量子化した量子化ステップにより定まる位相値φ'k,mの取り得る範囲、つまり位相値φ'k,mの量子化誤差の範囲を算出し、振幅値A'k,m及び位相値φ'k,mとともに波形合成部25に出力する。このように、逆量子化部26は、振幅値A'k,m、位相値φ'k,m及び位相値φ'k,mの取り得る範囲を出力する情報出力部として機能する。
【0050】
図4に示すように、振幅値A'k,m及び位相値φ'k,mは、それぞれ原振幅値Ak,m及び原位相値φk,mに対応して生成される。
【0051】
次に、波形合成部25は、振幅値A'k,mに対して整合するように位相復元技術を利用して位相値φ'k,mを更新し、更新した位相値φ'k,mが原位相値φk,mを量子化した量子化ステップの範囲に収まるように補正し、振幅値A'k,m及び補正した位相値φ'k,mに基づいて時間領域の復元信号を生成する(ステップS504〜S508)。
【0052】
上述したように、音声符号化装置10は、音声信号を高能率に圧縮するため、原振幅値及び原位相値を量子化している。そのため、逆量子化した振幅値及び位相値は、量子化前の原振幅値及び原位相値に対して量子化ステップの幅の誤差を持ち、逆量子化後の音声の品質は元の音声の品質より低くなる。一方、音声符号化装置10は、音声信号を、隣接する時間フレームが重複するように分割してSTFTを行っている。そのため、STFTにより生成されたスペクトログラムでは、ある時間フレームの振幅値及び位相値は、その前後の時間フレームの振幅値及び位相値と何らかの関連性を持つ。つまり、スペクトログラムから復元したある時間フレームの時間領域の信号を、その前後の時間フレームの時間領域の信号と合成し、再度スペクトログラムに変換して得た位相値は、元の位相値よりも元の振幅値に対して整合性が高くなる。そこで、位相復元技術では、スペクトログラム成分を逆周波数変換して生成した信号を、そのスペクトログラム成分(又はその元となる原スペクトログラム成分)を生成したときと同一の窓関数を用いて同一の時間フレームに分解して周波数変換することにより、元の振幅値に対して整合性の高い位相値を求める。
【0053】
一方、位相値を更新することにより、位相値が元の位相値φ'k,mから大幅に離れた値になるおそれもある。図6は、位相値が取り得る値の範囲について説明するための模式図である。図6は、位相値が2ビットに量子化される例を示しており、π〜π/2は00に、π/2〜0は01に、0〜−π/2は10に、−π/2〜−πは11に量子化される。つまり、量子化位相値が01である場合、原位相値はπ/2〜0の範囲内にある。そのため、位相値を更新することにより、位相値がπ/2〜0の範囲外の値601となった場合、波形合成部25は、位相値を取り得る範囲の境界値602に補正する。
【0054】
波形合成部25の逆周波数変換部28は、各時間フレーム毎に、振幅値A'k,mと位相値φ'k,mから求まるスペクトログラム成分(以下、単にスペクトログラム成分と称する)Y'k,mを逆周波数変換して時間領域の信号(以下、分解信号と称する)x'mを生成する。そして、各時間フレームについて生成した分解信号x'mを合成して、時間的に連続する合成信号x'を生成する(ステップS504)。なお、逆周波数変換部28は、逆STFTにより逆周波数変換を行う。
【0055】
図4に示すように、各分解信号x'mは、スペクトログラム成分のうち同じ時間フレームの全ての周波数帯域のスペクトログラム成分Y'k,mを逆周波数変換することにより生成される。また、合成信号x'は、全ての分解信号x'mを合成して生成される。あるいは、合成信号x'は、相互に隣接する2つの分解信号毎に、その2つの分解信号x'mを合成して生成してもよい。
【0056】
なお、スペクトログラム成分Y'k,mは、次の式により表される。
【数11】

また、スペクトログラム成分Y'k,mからなる複素スペクトログラムY'={Y'k,m}を逆周波数変換することにより得られる合成信号x'は、次の式のように表される。
【数12】

【0057】
次に、波形合成部25の周波数変換部29は、逆周波数変換部28が生成した合成信号x'を再度、周波数領域に変換し、スペクトログラムを生成する(ステップS505)。
【0058】
図4に示すように、周波数変換部29は、合成信号x'を、音声符号化装置10の周波数変換部15が用いた窓関数と同一の窓関数を用いて、音声信号を分解した時間フレームと同一の時間フレームに分解して、複数の第2の分解信号x''mを生成する。そして、各第2の分解信号x''mをそれぞれSTFTにより周波数変換して複数の周波数帯域に分割することによりスペクトログラムを生成する。
【0059】
周波数変換部29により生成される複素スペクトログラムY''={Y''k,m}の成分(以下、第2のスペクトログラム成分と称する)は、次の式により表される。
【数13】

ここで、A''k,mは第2のスペクトログラム成分Y''k,mの対数振幅値(以下、第2の振幅値と称する)を表し、φ''k,mは第2のスペクトログラム成分Y''k,mの位相値(以下、第2の位相値と称する)(−π<φ''k,m≦π)を表す。
【0060】
なお、複素スペクトログラムY''={Y''k,m}は、合成信号x'を用いて次の式のように表される。
【数14】

【0061】
次に、波形合成部25は、スペクトログラム成分Y'k,mの位相値φ'k,mを、対応する第2のスペクトログラム成分Y''k,mの第2の位相値φ''k,mに更新する(ステップS506)。このとき、波形合成部25は、更新した位相値φ'k,mが、位相値φ'k,mの取り得る範囲、つまり原位相値φk,mを量子化した量子化ステップの範囲を超えている場合、その範囲に収まるように更新した位相値φ'k,mを補正する。その場合、波形合成部25は、更新した位相値φ'k,mをその範囲の境界値のうち第2の位相値φ''k,mに近い方の境界値に補正する。
【0062】
つまり、位相値φ'k,mは、次の式により更新及び補正される。
【数15】

ここで、∠Zは複素数Zの偏角を表し、−π〜πの範囲の値をもつ。従って、∠Y''k,mは第2のスペクトログラム成分Y''k,mの第2の位相値を表す。また、φ(i)k,mは位相値φ'k,mの初期値、つまり逆量子化部26により式(10)で逆量子化された位相値を表す。
【0063】
次に、逆周波数変換部28は、各時間フレーム毎に、ステップS503で逆量子化された振幅値A'k,mと、ステップS506で更新、補正された位相値φ'k,mからなるスペクトログラム成分Y'k,mを逆周波数変換して再度分解信号x'mを生成する。そして、各時間フレームについて生成した分解信号x'mを合成して、合成信号x'を生成する(ステップS507)。
【0064】
次に、波形合成部25は、位相値φ'k,mが収束したか否かを判定する(ステップS508)。波形合成部25は、ステップS506において更新した、各周波数帯域、各時間フレームにおける全ての位相値φ'k,mの値の変化が所定回数連続して所定値以下である場合に、位相値φ'k,mが収束したと判定する。
【0065】
波形合成部25は、位相値φ'k,mが収束していない場合、ステップS505〜S507の処理を繰り返し、位相値φ'k,mが収束すると、ステップS509へ移行する。
【0066】
なお、波形合成部25は、位相値φ'k,mが収束したか否かを判定するのではなく、更新処理を所定回数行ったか否かを判定してもよい。その場合、波形合成部25は、更新処理を所定回数行うまでステップS505〜S507の処理を繰り返し、所定回数行ったときにステップS509へ移行する。
【0067】
ステップS509において、波形合成部25は、ステップS507で生成した合成信号x'を復元信号として音声出力部21に出力する。一方、音声出力部21は、受け取った復元信号をアナログの電気信号に変換して出力する(ステップS508)。
【0068】
なお、波形合成部25は、ステップS504、S507において、各時間フレームについて生成した分解信号x'mを合成して合成信号x'を生成したときに、生成した合成信号x'の信号値が元の音声信号xの信号値の取り得る範囲を超えていた場合、その範囲内に収まるように合成信号x'の信号値を補正してもよい。
【0069】
例えば、音声信号が16ビットで表される場合、その音声信号を圧縮して復号した合成信号も16ビットの範囲内に収まるべきである。そこで、音声符号化装置10の符号化部17は、量子化振幅値A^k,m、量子化位相値φ^k,m等の情報とともに音声信号の信号値の取り得る範囲(以下、第2の範囲と称する)(−32768〜32767)についての情報を符号化する。音声再生装置20の復号部27は、符号化データから第2の範囲についての情報を取得し、逆量子化部26を介して波形合成部25に送信する。そして、波形合成部25は、ステップS504で生成した合成信号x'の信号値が−32768より小さい場合は−32768に補正し、32767より大きい場合は32767に補正する。あるいは、波形合成部25は、合成信号x'の信号値の最小値が−32768より小さい場合は最小値が−32768になり、合成信号x'の信号値の最大値が32767より大きい場合は最大値が32767になるように、合成信号全体を線形に補正してもよい。
【0070】
また、音声通信システム1では、スペクトログラムの非負性を利用し、非負値行列因子分解(NMF)の技術を用いて、より効率的に符号化を行うことができる。その場合、音声符号化装置10の制御部14は、周波数変換部15により生成されたスペクトログラムのうち振幅について、NMFを用いて所定のパーツ(音階又は繰り返し部分等)毎に分解してから量子化を行う。一方、音声再生装置20の制御部24は、逆量子化部26により逆量子化された対数振幅値について、各パーツを合成してから波形合成を行う。
【0071】
また、音声符号化装置10の制御部14は、周波数変換部15により生成されたスペクトログラムのうち振幅については量子化を行わず、位相についてのみ量子化を行ってもよい。その場合、音声再生装置20の制御部24は、復号部27により復号された対数振幅値を振幅値とし、逆量子化部26により逆量子化された位相値を位相値として波形合成を行う。
【0072】
また、量子化ステップ、窓関数についての情報、音声信号を分解した時間フレームについての情報または第2の範囲についての情報は、符号化データとして音声符号化装置10から音声再生装置20に送信するのではなく、音声符号化装置10及び音声再生装置20に共通して予め定めておいてもよい。その場合、これらの情報は、予め記憶部13及び23に記憶される。
【0073】
以上詳述したように、図5に示したフローチャートに従って動作することによって、音声再生装置20は、振幅に対して矛盾性の低い位相を高精度に算出できるようになった。これにより、音声再生装置20は、位相復元技術を用いた音声再生処理において、高品質に音声を再生することができるようになった。
【0074】
図7は、本実施形態の音声再生装置20により再生した音声の品質を表すグラフを示す。図7に示すグラフ700では、縦軸はITU−R BS.1387−1で定義されている音質の客観評価を行うためのアルゴリズムPEAQにより得られる客観品質劣化度合い(ODG;Objective Difference Grade)のスコアを示す。ODGのスコアは−4〜0の範囲の値を取り、0に近いほど劣化が少ないことを表す。一方、横軸は振幅に割り当てたビット数を示す。グラフ700では、振幅と位相はあわせて8ビットとなるように量子化しており、位相のビット数は、8から振幅のビット数を引いた値となる。
【0075】
グラフ701は、図5に示したフローチャートに従って再生した音声のODGを示す。グラフ702は、図5に示したフローチャートのステップS505〜S508の処理を省略して再生した音声のODGを示す。つまり、グラフ702の音声は、逆量子化された振幅及び位相について1回の逆STFTにより得られた復元信号による再生音声であり、その復元信号(合成信号)x'は、式(11)で表されるスペクトログラム成分からなる複素スペクトログラムY'に対して次の式で求められる。
【数16】

グラフ703は、図5に示したフローチャートのステップS506の処理において位相値を範囲制限をせずに更新した場合の再生音声のODGを示す。つまり、グラフ703の音声は、次の更新式で表される復元信号(合成信号)x'による再生音声である。
【数17】

【数18】

【数19】

【0076】
図7に示す例では、評価する音声信号として、RWC研究用音楽データベースのポップス、ロック、クラシック等、様々なジャンルの楽曲のうち12個の楽曲を用いている。なお、各グラフのODGは、12個の楽曲についての平均値を表す。各音声信号は、16kHzのモノラル信号に変換している。また、STFTは、ハミング窓を用いて、フレーム長512点、フレームシフト256点で行っている。また、式(7)に示した対数振幅の量子化ステップΔAk,mの定数αは3としている。また、位相の更新の繰り返し回数は100回である。
【0077】
グラフ701、703に示すように、図5に示したフローチャートに従って再生した音声は、範囲制限をせずに位相値を更新する場合の再生音声より、全てのビット割り当てにおいて高品質となる。また、グラフ702に示すように、1回の逆STFTにより得られる再生音声は、振幅に5ビットを割り当てたときに最も高品質となる。一方、グラフ701に示すように、図5に示したフローチャートに従って再生した音声は、振幅に6ビットを割り当てたときに最も高品質となり、このときの音声は、振幅に5ビットを割り当てたときの1回の逆STFTにより得られる再生音声よりもはるかに高品質となる。
【0078】
図8は、音声再生装置をスペクトログラムの編集処理に適用する場合の例を示す概略構成図である。図8に示す音声再生装置30は、図1に示す音声再生装置20の各部に加えて入力部33を有する。
【0079】
入力部33は、キーボード、マウス等の入力装置及び入力装置から信号を取得するインターフェース回路を有し、利用者の操作に応じた信号を制御部35に出力する。
【0080】
記憶部34には、音声再生装置30の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。記憶部34は、制御部35と接続され、インターフェース部32を介して取得したスペクトログラム及びそのスペクトログラムを生成する際に用いられた窓関数及び時間フレームについての情報を格納する。また、制御部24によりスペクトログラムについてなされた各種の演算結果を格納する。
【0081】
制御部35は、インターフェース部32を介して受信したスペクトログラムを編集する。そのために、制御部35は、情報出力部36及び波形合成部37を有する。また、制御部35は、音声出力部31、インターフェース部32、入力部33及び記憶部34と接続され、音声出力部31の出力制御、インターフェース部32のデータ送受信制御、入力部33の入力制御、記憶部34の制御等を行う。制御部35は、予め記憶部34に記憶されているプログラムに基づいて動作する。あるいは、制御部35は、集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【0082】
波形合成部37は、図2に示す波形合成部25と同様に、逆周波数変換部38及び周波数変換部39を有する。
【0083】
図9は、音声再生装置30によるスペクトログラムの編集処理の動作を示すフローチャートである。以下、図9に示したフローチャートを参照しつつ、スペクトログラムの編集処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶部34に記憶されているプログラムに基づき主に制御部35により音声再生装置30の各要素と協働して実行される。
【0084】
最初に、情報出力部36は、入力部33を介して、利用者からのスペクトログラムの編集指示を受け付ける(ステップS901)。この編集指示は、編集対象のスペクトログラム、編集対象の時間フレーム、振幅を何dB増大又は減少させる等の編集内容等を特定するものである。
【0085】
情報出力部36は、入力部33を介して、利用者からのスペクトログラムの編集指示を受け付けると、対応する編集対象のスペクトログラムを記憶部34から読み出す(ステップS902)。
【0086】
例えば、スペクトログラムの振幅を変更する場合、振幅のみを変更し、その振幅に対応する位相を変更しなければ、振幅と位相の整合性が取れなくなり、再生する音声の品質は低下する。そこで、音声再生装置30は、図5に示すフローチャートのステップS504〜S507の処理と同様の処理を行うことにより、変更した振幅と整合するように位相復元技術を利用して位相を更新し、更新した位相が所定の範囲に収まるように補正する。この場合、変更前のスペクトログラムの振幅値及び位相値をそれぞれ原振幅値Ak,m及び原位相値φk,mとする。そして、変更後のスペクトログラムの振幅値を振幅値A'k,mとし、変更前のスペクトログラムの位相値を位相値φ'k,mとする。なお、位相値φ'k,mの取り得る範囲は、振幅を変更する割合に応じて定められる。例えば、振幅を1dB変更するのに対し、位相の変更可能範囲を±0.1πとする。その場合、振幅を5DB変更する場合は位相の変更可能範囲は±0.5πとなる。あるいは、位相値の取り得る範囲は、予め固定値として定めておいてもよい。
【0087】
そして、情報出力部36は、振幅値A'k,m、位相値φk,m及び位相値φk,mの取り得る範囲を波形合成部37に出力する。
【0088】
次に、波形合成部37の逆周波数変換部38は、各時間フレーム毎に、振幅値A'k,mと位相値φ'k,mから求まるスペクトログラム成分Y'k,mを逆周波数変換して分解信号x'mを生成する。そして、各時間フレームについて生成した分解信号x'mを合成して、時間的に連続する合成信号x'を生成する(ステップS903)。
【0089】
次に、波形合成部37の周波数変換部39は、逆周波数変換部38が生成した合成信号x'を再度、周波数領域に変換し、スペクトログラムを生成する(ステップS904)。
【0090】
周波数変換部39は、合成信号x'を、元のスペクトログラムを生成する際に用いられた窓関数と同一の窓関数を用いて、元の音声信号を分解した時間フレームと同一の時間フレームに分解して、複数の第2の分解信号x''mを生成する。そして、各第2の分解信号x''mをそれぞれSTFTにより周波数変換して複数の周波数帯域に分割することにより第2のスペクトログラム成分Y''k,mを生成する。
【0091】
次に、波形合成部37は、スペクトログラム成分Y'k,mの位相値φ'k,mを、対応する第2のスペクトログラム成分Y''k,mの第2の位相値φ''k,mに更新する(ステップS905)。このとき、波形合成部37は、更新した位相値φ'k,mが、位相値φ'k,mの取り得る範囲を超えた場合、その範囲に収まるように更新した位相値φ'k,mを補正する。その場合、波形合成部37は、更新した位相値φ'k,mをその範囲の境界値のうち第2の位相値φ''k,mに近い方の境界値に補正する。
【0092】
次に、逆周波数変換部38は、各時間フレーム毎に、ステップS902で取得していた振幅値A'k,mと、ステップS905で更新された位相値φ'k,mからなるスペクトログラム成分Y'k,mを逆周波数変換して再度分解信号x'mを生成する。そして、各時間フレームについて生成した分解信号x'mを合成して、合成信号x'を生成する(ステップS906)。
【0093】
次に、波形合成部37は、位相値φ'k,mが収束したか否かを判定する(ステップS907)。波形合成部37は、ステップS905において更新した、各周波数帯域、各時間フレームにおける全ての位相値φ'k,mの値の変化が所定回数連続して所定値以下である場合に、位相値φ'k,mが収束したと判定する。
【0094】
波形合成部37は、位相値φ'k,mが収束していない場合、ステップS904〜S906の処理を繰り返し、位相値φ'k,mが収束すると、ステップS903で生成した合成信号x'を復元信号として音声出力部21に出力する。一方、音声出力部21は、受け取った復元信号をアナログ信号に変換して出力する(ステップS908)。
【0095】
以上詳述したように、図9に示したフローチャートに従って動作することによって、音声再生装置30は、スペクトログラムの編集処理において、変更した振幅に対して矛盾性の低い位相を高精度に算出できるようになり、高品質に音声を再生することができるようになった。
【符号の説明】
【0096】
1 音声通信システム
10 音声符号化装置
20、30 音声再生装置
11 音声入力部
12、22、32 インターフェース部
13、23、34 記憶部
14、24、35 制御部
15、29、39 周波数変換部
16 量子化部
17 符号化部
21、31 音声出力部
25、37 波形合成部
26 逆量子化部
27 復号部
28、38 逆周波数変換部
33 入力部
36 情報出力部

【特許請求の範囲】
【請求項1】
音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び前記位相値の取り得る範囲を出力する情報出力部と、
前記振幅値に対して整合するように前記位相値を更新し、前記更新した位相値が前記範囲を超えた場合は、前記範囲に収まるように前記更新した位相値を補正し、前記振幅値及び前記補正した位相値に基づいて復元信号を生成する波形合成部と、
前記復元信号を出力する音声出力部と、
を有することを特徴とする音声再生装置。
【請求項2】
前記複数のスペクトログラム成分は、前記音声信号を窓関数を用いて隣接する時間フレームが重複するように分解して周波数変換することにより生成された複数の原スペクトログラム成分に対して、前記複数の原スペクトログラム成分の原振幅値及び原位相値のうち少なくとも一つが変更されたものであり、
前記波形合成部は、前記複数のスペクトログラム成分を逆周波数変換することにより生成した合成信号を、前記窓関数と同一の窓関数を用いて前記時間フレームと同一の時間フレームに分解して周波数変換することにより、前記振幅値に対して整合する第2の位相値を求め、当該第2の位相値により前記位相値を更新する、請求項1に記載の音声再生装置。
【請求項3】
前記情報出力部は、前記原振幅値及び前記原位相値を量子化した量子化振幅値及び量子化位相値を逆量子化した値を前記振幅値及び前記位相値とし、前記原位相値を量子化した量子化ステップにより定まる前記位相値の範囲を前記位相値の取り得る範囲として出力する、請求項2に記載の音声再生装置。
【請求項4】
前記情報出力部は、前記音声信号の信号値の取り得る第2の範囲を出力し、
前記波形合成部は、前記合成信号の信号値が前記第2の範囲を超えた場合、前記第2の範囲に収まるように前記合成信号の信号値を補正する、請求項2または3に記載の音声再生装置。
【請求項5】
音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び前記位相値の取り得る範囲を出力するステップと、
前記振幅値に対して整合するように前記位相値を更新し、前記更新した位相値が前記範囲を超えた場合は、前記範囲に収まるように前記更新した位相値を補正し、前記振幅値及び前記補正した位相値に基づいて復元信号を生成するステップと、
前記復元信号を出力するステップと、
を含むことを特徴とする音声再生方法。
【請求項6】
前記複数のスペクトログラム成分は、前記音声信号を窓関数を用いて隣接する時間フレームが重複するように分解して周波数変換することにより生成された複数の原スペクトログラム成分に対して、前記複数の原スペクトログラム成分の原振幅値及び原位相値のうち少なくとも一つが変更されたものであり、
前記復元信号を生成するステップにおいて、前記複数のスペクトログラム成分を逆周波数変換することにより生成した合成信号を、前記窓関数と同一の窓関数を用いて前記時間フレームと同一の時間フレームに分解して周波数変換することにより、前記振幅値に対して整合する第2の位相値を求め、当該第2の位相値により前記位相値を更新する、請求項5に記載の音声再生方法。
【請求項7】
前記振幅値、前記位相値及び前記位相値の取り得る範囲を出力するステップにおいて、前記原振幅値及び前記原位相値を量子化した量子化振幅値及び量子化位相値を逆量子化した値を前記振幅値及び前記位相値とし、前記原位相値を量子化した量子化ステップにより定まる前記位相値の範囲を前記位相値の取り得る範囲として出力する、請求項6に記載の音声再生方法。
【請求項8】
前記振幅値、前記位相値及び前記位相値の取り得る範囲を出力するステップにおいて、前記音声信号の信号値の取り得る第2の範囲を出力し、
前記復元信号を生成するステップにおいて、前記合成信号の信号値が前記第2の範囲を超えた場合、前記第2の範囲に収まるように前記合成信号の信号値を補正する、請求項6または7に記載の音声再生方法。
【請求項9】
音声信号における重複する時間フレームにそれぞれ対応する複数のスペクトログラム成分について、各スペクトログラム成分の振幅値、位相値及び前記位相値の取り得る範囲を出力するステップと、
前記振幅値に対して整合するように前記位相値を更新し、前記更新した位相値が前記範囲を超えた場合は、前記範囲に収まるように前記更新した位相値を補正し、前記振幅値及び前記補正した位相値に基づいて復元信号を生成するステップと、
前記復元信号を出力するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図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


【公開番号】特開2013−57895(P2013−57895A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−197404(P2011−197404)
【出願日】平成23年9月9日(2011.9.9)
【出願人】(504202472)大学共同利用機関法人情報・システム研究機構 (119)