[go: up one dir, main page]

JP2014041240A - タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム - Google Patents

タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム Download PDF

Info

Publication number
JP2014041240A
JP2014041240A JP2012183083A JP2012183083A JP2014041240A JP 2014041240 A JP2014041240 A JP 2014041240A JP 2012183083 A JP2012183083 A JP 2012183083A JP 2012183083 A JP2012183083 A JP 2012183083A JP 2014041240 A JP2014041240 A JP 2014041240A
Authority
JP
Japan
Prior art keywords
phase
frequency
audio data
time
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012183083A
Other languages
English (en)
Inventor
Yoshihisa Furukawa
善久 古川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pioneer Corp
Original Assignee
Pioneer Electronic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pioneer Electronic Corp filed Critical Pioneer Electronic Corp
Priority to JP2012183083A priority Critical patent/JP2014041240A/ja
Publication of JP2014041240A publication Critical patent/JP2014041240A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Reverberation, Karaoke And Other Acoustics (AREA)

Abstract

【課題】タイムスケーリングやピッチシフトを実現するためのFFT方式を用いた位相連続処理において、高品質な音に変換する。
【解決手段】デジタルオーディオデータを、周波数成分ごとの振幅と位相に変換するFFT部21と、デジタルオーディオデータを、FFT部21の実行タイミングから時間伸縮長だけ異なる実行タイミングで再度FFT変換して得られた位相と、FFT部21で得られた位相の差分値を位相変化量として時間伸縮後の位相を推定し、位相連続処理を行う位相連続処理部33と、を備えた。
【選択図】図2

Description

本発明は、デジタルオーディオデータのタイムスケーリングまたはピッチシフトを行うタイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラムに関するものである。
デジタルオーディオデータの音高を変えずに時間軸上の長さを伸張および圧縮する「タイムスケーリング」、およびデジタルオーディオデータの音高だけを変更して時間軸上の長さを変更しない「ピッチシフト(キーコントロール)」を実現する方法として、FFT(Fast Fourier Transform,高速フーリエ変換)方式が知られている。例えば、特許文献1には、FFT方式を用いて入力サンプリング数と出力サンプリング数とを変更することで、タイムスケーリングを行う方法が記載されている。また、特許文献2には、FFT方式を用いてタイムスケーリングを行う際に、入力オーバーラップサンプリング数と出力オーバーラップサンプリング数とを変更したときのトランジェント(打撃音)の開始ずれを補正する方法が記載されている。
ところが、FFT方式を用いると、アタックが急峻な打楽器音(リズム音)の場合、アタック部が時間軸方向に間延びし、アタック感が失われるという音質劣化が生じる。これは、例えば上記のようにFFT方式を用いて入出力のサンプリング数を変更することでタイムスケーリングを実現する場合、原音の位相のままでは、次のFFT演算との間で位相が不連続になってしまうため、位相が不連続にならないように、位相を連続化する処理(以下、「位相連続処理」と称する)が必要となると共に、ピッチシフトを行う場合は周波数領域で周波数シフトを行なうため、FFTにより計算した位相を周波数シフト後の位相とすることができず、周波数シフト後の周波数成分ごとに位相連続処理が必要となり、その結果、原音とはまったく違う位相になるためである。つまり、従来のFFT方式では、FFTにより計算された位相を周波数シフト後には別の値に変換して用いなければならないため、周波数成分間でアタックを失わないために保つべき位相関係が失われ、アタック感の消失を防止できなかった。この問題を解決するため、特許文献3では、振幅および/または位相の時間変化率の演算結果からアタック音が検出された場合、位相連続処理ではなく、FFT変換した位相そのものを用いて位相リセット処理を行うことにより、アタック感を再現している。
特表2007−519967号公報 米国特許7565289号公報 特開2012−2858号公報
ところが、従来のFFT方式は、アタック部以外においても音の劣化が生じるといった問題があった。図12は、従来例に係る位相連続処理の概念図である。同図上段は、2048サンプルのFFTデータが、入力オーバーラップ数N(N=(時間伸縮率)×512)間隔で入力されることを示している。また、同図下段は、2048サンプルのIFFTデータが、出力オーバーラップ数512(固定値)間隔で出力されることを示している。また、同図において、「i」はFFT演算回数、「j」はFFT周波数bin番号を示している。また、従来例に係る連続位相計算式は、同図中段の(式B)に示すとおりである。(式B)において、「Fs」はサンプリング周波数を示している。当該連続位相計算式に示すように、従来例に係る位相連続処理では、位相の変化量から真の周波数を推定し、時間伸縮長から時間伸縮後の位相を演算している。このため、(1)推定誤差が蓄積してしまう、(2)周波数成分が独立でない場合に誤差が生じてしまう、などの問題があり、音質劣化を招いていた。
本発明は、上記の問題点に鑑み、FFT方式を用いて位相連続処理を行う場合に、高品質な音に変換可能なタイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラムを提供することを目的とする。
本発明のタイムスケーリング方法は、デジタルオーディオデータを、周波数成分ごとの振幅と位相に変換する第1の周波数変換ステップと、デジタルオーディオデータを、第1の周波数変換ステップの実行タイミングから時間伸縮長だけ異なる実行タイミングで、周波数成分ごとの振幅と位相に変換する第2の周波数変換ステップと、第1の周波数変換ステップで得られた位相と、第2の周波数変換ステップで得られた位相の差分値を、位相変化量とし、時間伸縮後の位相を推定する位相推定ステップと、を実行することを特徴とする。
本発明のオーディオデータ処理装置は、デジタルオーディオデータを、周波数成分ごとの振幅と位相に変換する第1の周波数変換手段と、デジタルオーディオデータを、第1の周波数変換手段の実行タイミングから時間伸縮長だけ異なる実行タイミングで、周波数成分ごとの振幅と位相に変換する第2の周波数変換手段と、第1の周波数変換手段で得られた位相と、第2の周波数変換手段で得られた位相の差分値を、位相変化量とし、時間伸縮後の位相を推定する位相推定手段と、を備えたことを特徴とする。
これらの構成によれば、第1の周波数変換ステップ(第1の周波数変換手段)で得られた位相と、第2の周波数変換ステップ(第2の周波数変換手段)で得られた位相の差分値から位相変化量を求め、当該位相変化量から時間伸縮後の位相を推定するため、位相の変化量から真の周波数を推定し、時間伸縮長から時間伸縮後の位相を演算する従来の位相演算処理と比較して、誤差要因が少ない。このため、FFT方式を用いた位相連続処理による音質劣化を防止できる。
上記のタイムスケーリング方法において、時間伸縮長は、時間伸縮率と、出力オーバーラップ数の乗算値に基づいて演算される長さであることを特徴とする。
この構成によれば、出力オーバーラップ数を固定とした場合、時間伸縮率と出力オーバーラップ数の乗算値を、入力オーバーラップ数として算出できる。つまり、入力オーバーラップ数を可変することで、時間伸縮長(タイムスケーリング量)を可変できる。
上記のタイムスケーリング方法において、振幅および/または位相の時間変化率の演算結果を用いて異なる位相切替判別を行う複数の位相切替判別処理の処理結果に応じ、周波数成分ごとの位相が、第1の周波数変換ステップの演算結果そのものとして位相のリセット処理を行う位相リセット処理と、周波数成分ごとの位相が、第1の周波数変換ステップの前回の演算結果から時間伸縮を考慮して連続変化したものとして位相の連続化処理を行う位相連続処理と、のいずれの位相演算処理を行うかを判別する位相演算処理判別ステップと、位相演算処理判別ステップの判別結果に応じて、位相リセット処理または位相連続処理を行う位相演算処理ステップと、を実行し、第1の周波数変換ステップ、第2の周波数変換ステップおよび位相推定ステップは、位相連続処理を行う場合に実行されることを特徴とする。
この構成によれば、振幅および/または位相の時間変化率の演算結果を用いて、異なる位相切替判別を行う複数の位相切替判別処理を行うことにより、急峻な音の立ち上がりなどを検出できる。また、当該複数の位相切替判別処理の処理結果に応じて、適切な位相演算処理(位相リセット処理および位相連続処理のいずれか)を行うため、アタック感の消失を防止できる。つまり、振幅および/または位相の時間変化率の演算結果から、急峻な音の立ち上がりなどが検出された場合は、位相連続処理ではなく、FFT変換した位相そのものを用いて位相リセット処理を行うため、アタック感を再現することが可能となる。これにより、アタックが緩いロングトーンの音(メロディ音)だけでなく、アタックが急峻な打楽器音(リズム音)についても、FFT方式を用いた高品質なタイムスケーリングが可能となる。
上記のタイムスケーリング方法において、複数の位相切替判別処理は、異なる周波数帯域ごとにアタック部の有無を判別するものであり、位相演算処理ステップでは、複数の位相切替判別処理の判別によりアタック部「有」と判別された場合、位相リセット処理を行い、アタック部「無」と判別された場合、位相連続処理を行うことを特徴とする。
この構成によれば、異なる周波数帯域ごとにアタック部の有無を判別するため、正確にアタック部を検出することができる。
上記のタイムスケーリング方法において、位相演算処理ステップによる位相演算処理後の各周波数成分を、デジタルオーディオデータに変換する周波数逆変換ステップと、周波数逆変換ステップによる周波数逆変換処理時に、時間伸縮率に比例して周波数逆変換後のデジタルオーディオデータのデータ数を増減させる時間伸縮演算ステップと、をさらに実行することを特徴とする。
この構成によれば、位相演算処理ステップの後、周波数逆変換ステップおよび時間伸縮演算ステップを実行することにより、デジタルオーディオデータの音高を変えずに時間軸上の長さを伸張および圧縮するタイムスケーリングを実現できる。
本発明のピッチシフト方法は、上記のタイムスケーリング方法における各ステップと、デジタルオーディオデータのサンプリング周波数を変更することで、時間伸縮および音高変更を行うサンプリングレート変換演算ステップと、を実行し、タイムスケーリング方法の各ステップによる時間伸縮長と、サンプリングレート変換演算ステップによる時間伸縮長とが相殺され、音高のみが変更されることを特徴とする。
従来のFFTを用いて周波数領域で周波数シフトを行なう方式のピッチシフトでは、FFTによって計算された位相は周波数シフト後には別の値に変換して用いなければならないため、周波数成分間でアタックを失わないために保つべき位相関係が失われるので位相リセット処理を正しく行なえずアタック感の消失を防止できない。これに対し、サンプリングレート変換法を用いる構成では、周波数領域で周波数シフトを行わないためFFTにより計算した位相をアタック部分においてはピッチシフト変換音の位相とすることができるので、位相リセット処理により、アタック感の消失を防止できる。また、周波数シフト処理の誤差要因が少ないため、サンプリングレート変換法を使用しない従来のFFT方式と比較すると、アタック部以外の音質低下も防止でき、高品質なピットシフトが可能となる。
本発明のプログラムは、コンピューターに、上記のタイムスケーリング方法における各ステップを実行させることを特徴とする。
本発明のプログラムは、コンピューターに、上記のピッチシフト方法における各ステップを実行させることを特徴とする。
これらのプログラムを実行することにより、FFT方式を用いて位相連続処理を行う場合に、高品質な音に変換可能なタイムスケーリング方法またはピッチシフト方法を実現できる。
第1実施形態に係る再生装置と、その一部であるオーディオデータ処理部の簡易ブロック図である。 第1実施形態に係るオーディオデータ処理部のブロック図である。 オーディオデータ処理部によるピッチシフト処理を示すフローチャートである。 第1実施形態に係る位相演算処理を示すフローチャートである。 第1実施形態に係る位相連続処理の概念図である。 第2実施形態に係る位相演算処理を示すフローチャートである。 第3実施形態に係るオーディオデータ処理部のブロック図である。 基準値の根拠を示す補足説明図である。 基準値の根拠を示す補足説明図である。 ピーク位相維持処理の概念図である。 第3実施形態に係る位相演算処理を示すフローチャートである。 従来例且つ変形例に係る位相連続処理の概念図である。
以下、本発明の一実施形態に係るタイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラムについて、添付図面を参照しながら詳細に説明する。本実施形態では、本発明のオーディオデータ処理装置を、CDプレーヤーなどの再生装置に適用した場合について例示する。
[第1実施形態]
図1(a)は、再生装置1の簡易ブロック図である。同図に示すように、再生装置1は、再生部2と、オーディオデータ処理部3(オーディオデータ処理装置)と、バッファメモリ4と、オーディオデータ出力部5と、を備えている。再生部2は、CDなどのデバイスから楽曲・楽音を読み出して再生する。オーディオデータ処理部3は、CPU(Central Processing Unit)またはDSP(Digital Signal Processor)によって主要部が構成され、再生部2によって再生されたデジタルオーディオデータ(以下、単に「オーディオデータ」と称する)をバッファメモリ4に格納すると共に、バッファメモリ4から読み出したオーディオデータに対し、デジタル信号処理を施す。なお、バッファメモリ4は、入力用のバッファメモリ4(以下、「入力バッファ4a」と称する)と、出力用のバッファメモリ4(以下、「出力バッファ4b」と称する)と、から成る。オーディオデータ出力部5は、オーディオデータ処理部3による処理後のオーディオデータ(出力バッファ4bから読み出したオーディオデータ)を、外部(アンプおよびスピーカーを有する出力装置など)に出力する。
図1(b)は、オーディオデータ処理部3の一例を示すブロック図である。図1(b)のオーディオデータ処理部3は、主な機能構成として、タイムスケーリング部11を備えている。タイムスケーリング部11は、上記のバッファメモリ4(入力バッファ4a)から、処理対象となるオーディオデータを取得してタイムスケーリング(時間伸縮変換処理)を行う。なお、本実施形態では、FFT方式を用いてタイムスケーリングを行う。
一方、図1(c)は、オーディオデータ処理部3の他の例を示すブロック図である。図1(c)のオーディオデータ処理部3は、主な機能構成として、SRC部12と、タイムスケーリング部11と、を備えている。つまり、図1(b)のオーディオデータ処理部3に、SRC部12を追加した構成となっている。
SRC部12は、タイムスケーリング部11によるタイムスケーリングの前あるいは後に、オーディオデータのサンプリング周波数を変更するSRC処理を行う(サンプリングレート変換演算ステップ)。SRC処理は本来デジタルオーディオデータのサンプリング周期を変更するために使われる技術であるが、SRC処理を施して新たに求めたサンプリングデータを、サンプリング周波数を元のままとすることで時間伸縮および音高変更が行われる。つまり、図1(c)のオーディオデータ処理部3は、SRC部12とタイムスケーリング部11によるオーディオデータの時間伸縮長を相殺することで、時間軸上の長さを変更することなく音高のみを変更させるピッチシフトを実現できるようになっている。以下、図1(c)に示したオーディオデータ処理部3により、主にピッチシフトを行う方法について記載する。
図2は、オーディオデータ処理部3の詳細な機能構成を示すブロック図である。上記の通り、オーディオデータ処理部3は、SRC部12およびタイムスケーリング部11から成る。本実施形態では、最初にSRC処理を行い、その後タイムスケーリングを行うものとする。SRC部12は、原音となるオーディオデータに対してSRC処理を行う。
一方、タイムスケーリング部11は、FFT部21、位相演算部22、逆FFT部23および時間伸縮演算部24から成る。FFT部21は、オーディオデータを、周波数成分ごとの振幅と位相に変換する(第1の周波数変換ステップ)。つまり、時間領域の音を、周波数領域に変換し、振幅と位相を求める。
位相演算部22は、振幅の時間変化率の演算結果に応じて、位相演算処理を行う。具体的には、振幅の時間変化率を振幅で除算した正規化振幅差分値を用いて、異なる位相切替判別を行う複数の位相切替判別処理を行い、その判別結果に応じた位相演算処理を行う。当該複数の位相切替判別処理は、アタック部を検出するための処理である。同図に示すように、位相演算部22は、アタック検出部31、位相リセット処理部32および位相連続処理部33を備えている。さらに、アタック検出部31は、全周波数帯域検出部31a、周波数帯域別検出部(A)31bおよび周波数帯域別検出部(B)31cから成る。
全周波数帯域検出部31aは、上記の複数の位相切替判別処理の一つである第1の位相切替判別処理により、正規化振幅差分値の合計値が所定の閾値L1(当該閾値を、以下「高閾値」と称する)以上であるか否かを判別し、前回の演算において高閾値未満であり、且つ今回の演算で高閾値以上である場合、全周波数帯域に対してリセット処理が必要なアタック部を検出したと判定する。具体的例を挙げると、バスドラ等の低音の打楽器の打撃音を検出した場合などである。低音打楽器の場合のアタック部には楽器の音の高さを特徴づける基本の低い周波数成分から上のかなり高音域までの周波数成分が含まれているため、ほぼ全周波数帯にわたるような位相のリセット処理が必要となる。
また、周波数帯域別検出部(A)31bは、第1の位相切替判別処理により、正規化振幅差分値の合計値が、上記の高閾値未満且つ所定の閾値L2(当該閾値を、以下「低閾値」と称する)以上である場合(但し、L1>L2)、第2の位相切替判別処理を行う。当該第2の位相切替判別処理は、周波数成分ごとに正規化振幅差分値を低閾値で2値化し且つ高域限定で、周波数成分ごとにアタック部を検出する処理である。ここでは、中域から高域の打撃音(アタック)を検出可能である。
さらに、周波数帯域別検出部(B)31cは、第1の位相切替判別処理により、正規化振幅差分値の合計値が所定の閾値L2未満であると判別した場合、第3の位相切替判別処理を行う。当該第3の位相切替判別処理は、周波数成分ごとに正規化振幅差分値を高い閾値で2値化して、周波数成分ごとにアタック部の有無を検出する処理である。ここでは、ボーカルや弦楽器などによる打撃音を検出可能である。
位相リセット処理部32は、全周波数帯域検出部31a、周波数帯域別検出部(A)31bおよび周波数帯域別検出部(B)31cにおいてアタック部が検出された場合、周波数成分ごとの位相が、FFT部21の演算結果そのものとして位相のリセット処理(以下、「位相リセット処理」と称する)を行う。
一方、位相連続処理部33は、全周波数帯域検出部31a、周波数帯域別検出部(A)31bおよび周波数帯域別検出部(B)31cにおいてアタック部が検出されなかった場合、周波数成分(周波数bin)ごとの位相が、FFT部21の前回の演算結果から時間伸縮を考慮して連続変化したものとして位相の連続化処理(以下、「位相連続処理」と称する)を行う。このように、本実施形態の位相演算部22は、正規化振幅差分値の合計値、および個別の周波数成分ごとの値に応じて、位相リセット処理および位相連続処理のいずれかの処理を選択的に行う。
ところで、本実施形態の位相連続処理部33は、FFT部21によるFFTの実行タイミングから時間伸縮長だけ異なる実行タイミングで、2回目のFFTを行う(第2の周波数変換ステップ)。そして、FFT部21で得られた位相と、2回目のFFTで得られた位相の差分値を位相変化量とし、時間伸縮後の位相を推定する(位相推定ステップ)。つまり、変換前オーディオデータから直接的に時間伸縮後の位相変化量を取得する。詳細については、図5を参照して後述する。
逆FFT部23は、位相演算部22による位相演算処理後の各周波数成分を、オーディオデータに変換する(周波数逆変換ステップ)。つまり、周波数領域の振幅と位相を、時間領域の音に変換する。
時間伸縮演算部24は、逆FFT部23による周波数逆変換処理時に、時間伸縮率に比例してデータ数を増減させる(時間伸縮演算ステップ)。具体的には、SRC部12によるオーディオデータの時間伸縮長を相殺するように時間伸縮する。なお、時間伸縮の方法については、逆FFT部23により演算された時間領域のオーディオデータをFFT時にずらしたサンプル数より時間伸縮率に比例して変化させたサンプル数だけずらすことにより実現する。時間伸縮演算部24による演算処理後のオーディオデータは、変換音として出力される。
なお、ステレオ再生の場合、本実施形態では、各部(SRC部12、FFT部21、位相演算部22、逆FFT部23および時間伸縮演算部24)において、左右の音を独立して処理する。
次に、図3および図4のフローチャートを参照し、第1実施形態に係るピッチシフト処理の流れについて説明する。まず、オーディオデータ処理部3は、初期化処理を行い(FFT演算回数i=1とする,S01)、入力バッファ4aからオーディオデータを取得する(S02)。続いて、SRC部12によりSRC処理を行い(S03)、その後S04以降のタイムスケーリングを開始する。
タイムスケーリングでは、まず、入力窓関数(ハニング窓関数)を乗じ(S04)、i回目のFFTを行う(S05)。また、周波数成分、すなわちFFT周波数bin番号jをj=0とし(S06)、位相振幅計算を行う(S07)。以上、S03〜S07は、FFT部21による処理工程である。
続いて、オーディオデータ処理部3は、位相演算部22により位相演算処理を行う(S08)。当該位相演算処理については、図4にて後述する。オーディオデータ処理部3は、位相演算処理を終えると、振幅と位相を複素数化し(S09)、FFT周波数bin番号jが、FFTサンプル数nFFTの半分に達したか否か、すなわち「j==nFFT/2」に達したか否かを判別する(S10)。ここで、FFTサンプル数nFFTの半分に達していない場合は(S10:No)、FFT周波数bin番号jをカウントアップして(S11)、S07に戻る。また、FFTサンプル数nFFTの半分に達した場合は(S10:Yes)、複素数化したデータの共役複素数を残り半分の負の周波数成分の複素数データとしてIFFTを行う(S12)。以上、S09〜S12は、逆FFT部23による処理工程である。
続いて、オーディオデータ処理部3は、出力窓関数(ハニング窓関数)を乗じ(S13)、SRC率をキャンセルすべく、入力オーバーラップ数に時間伸縮率(タイムストレッチ率)を乗算して、出力ポインタを移動する(S14)。また、これを出力バッファ4bに書き込んで(出力バッファ4bに加算して,S15)、変換音として出力する。以上、S13〜S15は、時間伸縮演算部24による処理工程である。なお、この実施例では出力窓関数もFFT前と同じハニング窓としたが、必ずしも同じである必要はなく、別の窓関数を選んでもよい。
その後、オーディオデータ処理部3は、入力オーバーラップ数の入力ポインタを移動し(S16)、入力バッファ4aにオーディオデータが残っているか否かを判別する(S17)。ここで、オーディオデータが残っている場合は(S17:データあり)、FFT演算回数iをカウントアップして(S18)、S02に戻る。また、オーディオデータが残っていない場合は(S17:データなし)、ピッチシフト処理を終了する。
次に、図4を参照し、図3のS08に相当する位相演算処理について説明する。オーディオデータ処理部3(位相演算部22)は、まず、振幅の差分を演算し(S21)、正規化振幅差分値を求める(S22)。すなわち、振幅の時間変化率をさらに振幅で除算することにより正規化振幅差分値を求める。但し、振幅が0であるか、非常に微小である場合は、除算できないか、除算の結果が適切でなくなる可能性があるため、例外処理として正規化振幅差分値も0とする。ここで、i回目の正規化振幅差分値の合計値(図4では、「Σi」と表記)が、高閾値以上であるか、低閾値以上高閾値未満であるか、低閾値未満であるかを判別する(S23,第1の位相切替判別処理)。
ここで、i回目の正規化振幅差分値の合計値Σiが高閾値以上の場合は(S23:高閾値以上)、i-1回目の正規化振幅差分値の合計値Σi-1が高閾値以上であったか否かを判別し(S24)、高閾値以上でなかった場合(S24:No)、全周波数帯域に対して位相リセット処理を行う(S30)。また、i-1回目の正規化振幅差分値の合計値Σi-1が高閾値以上であった場合は(S24:Yes)、位相連続処理を行う(S31)。つまり、全周波数帯域検出部31aにより、i-1回目演算2値化が0で、i回目演算の2値化が1の場合にアタック部が検出されたと判別し、位相リセット処理部32により、周波数成分ごとの位相を、FFT部21の演算結果そのものとして位相リセット処理を行う。また、アタック部が検出されなかった場合は、位相連続処理部33により、周波数成分ごとの位相が、FFT部21の前回の演算結果から時間伸縮を考慮して連続変化したものとして位相連続処理を行う。
また、正規化振幅差分値の合計値が低閾値以上高閾値未満の場合は(S23:低閾値以上高閾値未満)、周波数成分ごとの正規化振幅差分値を低閾値で2値化し(S25)、さらに高域限定で(S26)、周波数別リセット(A)の要否を判別する(S27,第2の位相切替判別処理)。ここで、周波数別リセット(A)が必要と判別した場合は(S27:Yes)、周波数成分ごとに位相リセット処理を行い(S30)、周波数別リセット(A)が不要と判別した場合は(S27:No)、位相連続処理を行う(S31)。つまり、周波数帯域別検出部(A)31bにより、i-1回目演算2値化が0で、i回目演算の2値化が1の場合にアタック部が検出されたと判別し、位相リセット処理部32による位相リセット処理を行う。また、アタック部が検出されなかった場合は、位相連続処理部33による位相連続処理を行う。
さらに、正規化振幅差分値の合計値が低閾値未満の場合は(S23:低閾値未満)、周波数成分ごとの正規化振幅差分値を高閾値で2値化し(S28)、周波数別リセット(B)の要否を判別する(S29,第3の位相切替判別処理)。ここで、周波数別リセット(B)が必要と判別した場合は(S29:Yes)、位相リセット処理を行い(S30)、周波数別リセット(B)が不要と判別した場合は(S29:No)、位相連続処理を行う(S31)。つまり、周波数帯域別検出部(B)31cにより、i-1回目演算2値化が0で、i回目演算の2値化が1の場合にアタック部が検出されたと判別し、位相リセット処理部32による位相リセット処理を行い、アタック部が検出されなかった場合は、位相連続処理部33による位相連続処理を行う。なお、請求項における「位相演算処理判別ステップ」は、S23〜S29に相当し、「位相演算処理ステップ」は、S30,S31に相当する。
次に、位相連続処理の詳細について説明する。図5は、第1実施形態に係る位相連続処理の概念図である。同図上段は、2048サンプルのFFTデータが、入力オーバーラップ数N(N=(時間伸縮率)×512)間隔で入力されることを示している。また、同図下段は、2048サンプルのIFFTデータが、出力オーバーラップ数512(固定値)間隔で出力されることを示している。また、同図において、「i」はFFT演算回数、「j」はFFT周波数bin番号を示している。また、第1実施形態に係る連続位相計算式は、同図中段の(式A)に示すとおりである。(式A)において、「in2θi,j」は同図「i番目FFT2実行タイミング」で実行されたFFTにより計算された入力位相を示している。
また、同図上段における「i番目FFT実行タイミング(現在)」とは、FFT部21による1回目のFFT実行タイミングを示している。また、同じく同図上段における「i番目FFT2実行タイミング」とは、位相連続処理部33による2回目のFFT実行タイミングを示している。なお、2回目のFFTについては、アタック検出部31によるアタック検出前(位相演算処理判別ステップ前)に行っても良い。
一方、図12は、従来例に係る位相連続処理の概念図である。また、従来例に係る連続位相計算式は、同図中段の(式B)に示すとおりである。(式B)において、「Fs」はサンプリング周波数を示している。
図5と図12を比較すると明らかであるが、第1実施形態に係る位相連続処理では、フレームごとに(i番目の周波数変換処理として)、2回のFFTを行う(従来例は、「i番目FFT実行タイミング(現在)」のみ)。また、第1実施形態に係る連続位相計算式(式A)は、従来例(式B)と比較して、単純な計算式となっている。このように、従来例では、位相の変化量から真の周波数を推定し、時間伸縮長から時間伸縮後の位相を演算しているのに対し、第1実施形態では、演算を行うのではなく、2回のFFT演算結果の位相差分値をそのまま時間伸縮後の位相としている。
図5を参照し、本実施形態の位相連続処理についてさらに説明する。同図上段に示すように、「i番目FFT実行タイミング(現在)」は、FFT部21による「(i−1)番目FFT実行タイミング」から、入力オーバーラップ数(N)分遅れて実行される。また、「i番目FFT2実行タイミング」は、FFT部21による「(i−1)番目FFT実行タイミング」から、出力オーバーラップ数(512)分遅れて実行される。つまり、「i番目FFT2実行タイミング」は、「i番目FFT実行タイミング(現在)」から、時間伸縮変化長(512−N)分遅れて実行される。
なお、タイムスケーリングを行う場合のユーザ操作としては、例えば「0.5倍速」から「2倍速」の間で再生速度を変更可能な場合(時間伸縮率を0.5≦N/512≦2の間で変更可能な場合)、入力オーバーラップ数を、256≦N≦1024の間で可変する操作を行うことにより、「0.5倍速」から「2倍速」のマスターテンポ(音程を変えることなく再生速度を変更すること)を実現する。したがって、時間伸縮率によって「i番目FFT2実行タイミング」と「i番目FFT実行タイミング(現在)」の間隔は512サンプルで変わることはなく、「i番目FFT実行タイミング(現在)」と前回のFFT実行タイミング「(i−1)番目FFT実行タイミング」が可変する。
以上説明したとおり、第1実施形態によれば、正規化振幅差分値に応じて、アタック部の有無を検出し、その検出結果に応じて、FFTの演算結果そのものを利用して位相のリセット処理を行う位相リセット処理と、前回のFFTの演算結果から時間伸縮を考慮して位相の連続化処理を行う位相連続処理と、のいずれかを行うため、高品質な音の変換が可能となる。
また、アタック部が検出されなかった場合に実行する位相連続処理において、2回のFFTで得られた位相の差分値から位相変化量を求め、当該位相変化量から時間伸縮後の位相を推定するため、従来の位相演算処理(図12参照)と比較して、誤差要因が少ない。このため、FFT方式を用いた位相連続処理による音質劣化を防止できる。また、タイムスケーリング部11の時間伸縮長は、時間伸縮率(N/512)と、出力オーバーラップ数(512)の乗算値(N=入力オーバーラップ数)に基づいて演算されるため、入力オーバーラップ数(N)を可変することで、時間伸縮長(タイムスケーリング量)を可変できる。
また、振幅の時間変化率を振幅で除算した正規化振幅差分値を用いてアタック部を検出するため、原音の音量が小さい場合でも正確且つ確実にアタック部を検出することができる。さらに、正規化振幅差分値を用いて、異なる周波数帯域ごとに3回の位相切替判別処理を行うため、より確実にアタック部を検出することができる。例えば、正規化振幅差分値の合計値が高閾値以上の場合は、位相リセットをするべき周波数成分が広範囲に広がっていることを意味するため、全周波数帯域に対して第1の位相演算処理を行うことで、確実にアタック部を検出できる。また、正規化振幅差分値の合計値が高閾値未満の場合は、周波数帯域ごとにアタック部の有無を検出するため、微細なアタックであっても確実に検出することができる。
また、SRC部12により、サンプリングレート変換法を用いることで、周波数領域で周波数シフトを行わないためFFTにより計算した位相そのものをアタック部分においてはピッチシフト変換音の位相とすることができるので、位相リセット処理により、アタック感の消失を防止できる。また、周波数シフト処理の誤差要因が少ないため、サンプリングレート変換法を使用しない従来のFFT方式と比較すると、アタック部以外の音質低下も防止でき、高品質なピットシフトが可能となる。
[第2実施形態]
次に、図6を参照し、本発明の第2実施形態について説明する。上記の第1実施形態では、振幅の時間変化率から得られる正規化振幅差分値に基づいてアタック部を検出したが、本実施形態は、位相の時間変化率から得られる位相断層度に基づいてアタック部を検出する点で異なる。以下、第1実施形態と異なる点のみ説明する。なお、本実施形態において、第1実施形態と同様の構成部分については同様の符号を付し、詳細な説明を省略する。また、第1実施形態と同様の構成部分について適用される変形例は、本実施形態についても同様に適用される。
本実施形態のオーディオデータ処理部3は、図2に示した第1実施形態の機能構成から、全周波数帯域検出部31a、周波数帯域別検出部(A)31bおよび周波数帯域別検出部(B)31cを省略した構成となっている(図示省略)。当該構成により、本実施形態の位相演算部22は、位相の時間変化率の演算結果に応じて、位相演算処理を行う(位相演算ステップ)。具体的には、アタック検出部31により、位相の時間変化率である位相断層度を用いて、位相断層が生じているか否かを判別し、その判別結果に応じて位相演算処理を行う。つまり、位相断層が生じている場合は、アタック部「有」と判定し、位相リセット処理部32による位相リセット処理を行う。また、位相断層が生じていない場合は、アタック部「無」と判定し、位相連続処理部33による位相連続処理を行う。
図6は、第2実施形態に係る位相演算処理を示すフローチャートである。なお、図3に示したピッチシフト処理のメインフローについては、第1実施形態と同様であるため、図示を省略する。本実施形態のオーディオデータ処理部3(位相演算部22)は、まず、位相の2階差分を演算し(S41)、位相断層度を算出する(S42)。ここで、位相断層度が所定の閾値以上であるか否かに応じて、位相断層の有無(アタック部の有無)を判別する(S43)。つまり、位相断層度が所定の閾値以上である場合は(S43:あり)、位相リセット処理部32により、周波数成分ごとの位相が、FFT部21の演算結果そのものとして位相リセット処理を行う(S44)。また、位相断層度が所定の閾値未満である場合は(S43:なし)、位相連続処理部33により、周波数成分ごとの位相が、FFT部21の前回の演算結果から時間伸縮を考慮して連続変化したものとして位相連続処理を行う(S45)。
以上説明したとおり、本実施形態によれば、位相の時間変化率を用いることで、原音の音量に拠らず、アタック部を正確に検出することができる。また、位相断層の有無で2つの処理に分岐するだけで良いため、少ない演算処理量で、高品質なタイムスケーリングおよびピッチシフトを実現できる。
なお、上記の実施形態では、オーディオデータ処理部3の構成について、図2に示した第1実施形態の機能構成から、全周波数帯域検出部31a、周波数帯域別検出部(A)31bおよび周波数帯域別検出部(B)31cを省略したものとしたが、第1実施形態の機能構成と同様の構成としても良い。この場合、全周波数帯域検出部31a、周波数帯域別検出部(A)31bおよび周波数帯域別検出部(B)31cにより、位相断層度を用いて、異なる位相切替判別を行う複数の位相切替判別処理を行う。また、当該複数の位相切替判別処理により位相断層が生じているか否かを判別し、その判別結果に応じて位相演算処理を行う。なお、本例における位相演算処理の流れは、図4に示した第1実施形態の位相演算処理において、S21の「振幅差分」を「位相差分」に、またS22の「正規化振幅差分値」を「位相断層度」に変更したものと同様であるため、図示を省略する。
また、第1実施形態の正規化振幅差分値を用いたアタック部の検出方法と、第2実施形態の位相断層度を用いたアタック部の検出方法と、を組み合わせてアタック部を検出しても良い。この構成によれば、アタック部の検出精度をより向上させることができる。
[第3実施形態]
次に、図7〜図11を参照し、本発明の第3実施形態について説明する。本実施形態では、位相演算処理として、位相リセット処理と位相連続処理以外に、ピーク位相維持処理を行う。当該「ピーク位相維持処理」とは、周波数スペクトルのスペクトルピークと、当該スペクトルピークに近接する近接周波数帯域の位相関係を維持する処理を指す。以下、「ピーク位相維持処理」の対象となるスペクトルピークの決定方法、および位相関係を維持するか否かの判定方法等について、主に説明する。なお、本実施形態においても、上記の各実施形態と同様の構成部分については同様の符号を付し、詳細な説明を省略する。また、上記の各実施形態と同様の構成部分について適用される変形例は、本実施形態についても同様に適用される。
図7は、第3実施形態に係るオーディオデータ処理部3のブロック図である。本実施形態のオーディオデータ処理部3は、図2に示した第1実施形態の機能構成に、スペクトルピーク検出部34、位相差算出部35、位相判定部36およびピーク位相維持処理部37を追加した構成となっている。
スペクトルピーク検出部34は、FFT部21(第1の周波数変換ステップ)によるFFT変換後の周波数スペクトルから、振幅が極大となるスペクトルピークを検出する(スペクトルピーク検出ステップ)。但し本実施形態では、瞬間的に振幅が極大となったものではなく、時間的に継続しているスペクトルピーク(以下、「継続音ピーク」と称する)を検出する。具体的には、FFT部21の前回の演算結果による同じ周波数帯域または当該同じ周波数帯域に近接する近接周波数帯域の振幅が極大であり、且つFFT部21の今回の演算結果による振幅が極大となるスペクトルピークを、「継続音ピーク」として検出する。なお、継続音ピーク判定に用いる「近接周波数帯域」とは、隣接する周波数帯域(両側の2つのbin)であるものとする。
位相差算出部35は、スペクトルピーク検出部34で検出した継続音ピークの位相と、当該継続音ピークに近接する近接周波数帯域の位相との位相差を算出する(位相差算出ステップ)。
位相判定部36は、位相差算出部35で算出された位相差に応じて、継続音ピークとその近接周波数帯域の位相関係を維持するか否かを判定する(位相判定ステップ)。具体的には、位相差が、FFT部21によるFFT前に適用した入力窓関数(図3のS04参照)に応じて定まる基準値から所定の閾値以下である場合、スペクトルピークと近接周波数帯域の位相関係を維持すると判定する。逆に、位相差が、所定の閾値を超える場合、スペクトルピークと近接周波数帯域の位相関係を維持しないと判定する。「位相差が、所定の閾値を超える場合」とは、例えばスペクトルピークの近傍に、別の音が存在する場合(2つの音が近い場合)などが考えられる。この場合は、スペクトルピークと近接周波数帯域の関連性が低いため、位相関係を維持しないことで、音質低下を防止できる。なお、位相差を判定する際の「基準値」とは、入力窓関数がハニング窓関数の場合、逆位相(π)となる。この点について、図8および図9を参照して簡単に説明する。
図8および図9は、周波数bin「i−1」の周波数サンプル、周波数bin「i」の周波数サンプル、周波数bin「i+1」の周波数サンプルを、それぞれ上段、中段、下段に示したものである。図8の点線楕円部に示すように、FFT計算される位相が同じであるとすると、センター位置(窓かけしたピーク位置)では、逆位相となる。そこで、図9に示すように、窓かけした状態(センター最大)を再現するため、センター位置で位相が合うように計算すると、FFT計算される位相は、周波数bin「i」の両側のbinが逆位相となる(点線楕円部参照)。つまり、図8に示したように、両端が「0」になる窓関数を用いた場合、スペクトルピーク(継続音ピーク)に対し、隣接周波数帯域の位相は逆位相となる。このため、位相判定部36では、「基準値」を逆位相(π)として、位相関係を維持するか否かを判定している。なお、入力窓関数として、両端が「0」とならない窓関数を用いた場合、その窓関数に応じて基準値を設定することとなる。
図7の説明に戻る。ピーク位相維持処理部37は、位相判定部36の判定の結果、「位相関係を維持する」と判定された場合、近接周波数帯域について、ピーク位相維持処理を行う。より具体的には、継続音ピークに対して、位相連続処理を行い、近接周波数帯域に対してのみ、ピーク位相維持処理を行う。位相連続処理の位相推定方法については、第1実施形態(図5参照)を適用可能である。一方、本実施形態の位相連続処理部33は、位相判定部36の判定の結果、「位相関係を維持しない」と判定された場合、同じく第1実施形態で示した位相連続処理を行う。
ここで、図10を参照し、ピーク位相維持処理の位相推定方法について説明する。図10は、ピーク位相維持処理の概念図である。本実施形態では、継続音ピーク(周波数bin「i」)の両側それぞれ3bin(周波数bin「i−3」、周波数bin「i−2」、周波数bin「i−1」、周波数bin「i+1」、周波数bin「i+2」、周波数bin「i+3」の合計6つのbin)を、近接周波数帯域としてピーク位相維持処理を行う。なお、同図において、横方向は時間軸を示している(縦方向矢印で示される1列分のマス7個は、FFT1回分のデータを示している)。
また、図10では、上段に示す時間伸縮前の状態から、下段に示す時間伸縮前の状態となるように、3%時間を引き延ばすタイムスケーリングを行うことを示している。また、周波数bin「i」を示す横方向矢印上に表記された円形の中抜き矢印は、継続音ピーク(周波数bin「i」)に対してのみ位相連続処理を行った結果推定される位相変化を示している。また、縦方向矢印は、ピーク位相維持処理において、継続音ピークの位相変化を、近接周波数帯域(両側6つのbin)に対して反映することを意味している。したがって、j=iのbinが継続音ピークの場合、FFTから求まる複素データより算出されるピーク位相をθi、位相連続処理により算出された周波数bin「i」の時間伸縮後の位相をθ´iとすると、隣接する周波数bin「i+1」の位相は、「θ´i+1=θ´i+(θi+1−θi)」で算出される。その他の5つのbinについても、同様に算出される。このように、ピーク位相維持処理では、継続音ピークの前回と今回の位相連続処理による位相差に合わせて、時間伸縮後の位相を推定する。
次に、図11を参照し、第3実施形態に係る位相演算処理の流れについて説明する。なお、図3に示したピッチシフト処理のメインフローについては、第1実施形態と同様であるため、異なる部分のみ説明する。本実施形態のオーディオデータ処理部3(位相演算部22)は、まず、FFT周波数bin番号jをj=1とし(S51)、継続音ピークに該当するか否かを判定する(S52)。つまり、前回の演算時に同じ周波数binまたはその隣接するbinで振幅が極大であり、且つ現在の演算時に振幅が極大となったか否かを判別する。継続音ピークに該当すると判定した場合は(S52:Yes)、位相連続処理を行う(S53)。
また、継続音ピークに該当しないと判定した場合は(S52:No)、位相リセットが必要か否かの判定を行う(S54)。当該判定は、第1実施形態の位相判定方法(図4のS23〜S29参照)を適用可能である。位相リセットが必要と判定された場合は(S54:Yes)、位相リセット処理を行う(S55)。また、位相リセットが不要と判定された場合は(S54:No)、継続音ピークの近傍に該当するか否かを判別する(S56)。つまり、継続音ピークの両側それぞれ3binの近接周波数帯域に該当するか否かを判別する。
継続音ピークの近傍に該当しないと判定した場合は(S56:No)、位相連続処理を行う(S53)。また、継続音ピークの近傍に該当すると判定した場合は(S56:Yes)、継続音ピークが単音であるか否かを判別する(S57)。つまり、継続音ピークと近接周波数帯域の位相差が、基準値(逆位相)から所定の閾値以下の場合、継続音ピークが単音であると判定する。継続音ピークが単音であると判定した場合は(S57:単音)、ピーク位相維持処理を行う(S58)。また、継続音ピークが複音であると判定した場合は(S57:複音)、位相連続処理を行う(S53)。
なお、位相演算処理(S53、S55、S58のいずれか)の後は、図3に示した第1実施形態の処理と同様に、振幅と位相を複素数化する(S59)。その後、FFT周波数bin番号jが、FFTサンプル数nFFTの半分に達したか否かを判別し(S60)、達していない場合は(S60:No)、FFT周波数bin番号jをカウントアップして(S61)、S52に戻る。また、達した場合は(S60:Yes)、図3のS12に移行する。
以上説明したとおり、本実施形態によれば、位相リセット処理を行わない場合、スペクトルピークと近接周波数帯域の位相差に応じて、位相連続処理およびピーク位相維持処理のいずれかの処理を行うため、高品質なタイムスケーリングが可能となる。つまり、位相差が基準値から所定の閾値以下である場合は、相関関係が高いことを意味するため、位相関係を維持することで、高品質な音に変換できる。一方、位相差が基準値から所定の閾値を超える場合は、相関関係が低いことを意味するため、位相関係を維持しないことで、音質の悪化を防止できる。また、スペクトルピークが時間的に継続しているか否かを判別し、時間的に継続している場合のみ、その近接周波数帯域をピーク位相維持処理の対象とするため、時間的に継続しない音に対して位相差を維持させることによる、音質の悪化を防止できる。
なお、第3実施形態では、位相連続処理として、位相連続処理部33により2回目の周波数変換を行ったが(1回目の周波数変換は、FFT部21にて周波数変換を行ったが)、FFT部21による周波数変換に加え、位相演算部22により、2回の周波数変換を行っても良い。
また、第3実施形態では、位相連続処理について、第1実施形態と同様の位相推定方法(図5参照)を適用するものとしたが、従来例の位相推定方法(図12参照)を適用しても良い。つまり、位相の変化量から真の周波数を推定し、時間伸縮長から時間伸縮後の位相を推定しても良い。
また、位相リセットが必要か否かの判定について(位相切替判別処理について)、第1実施形態の位相判定方法(図4のS23〜S29参照)を適用するものとしたが、この場合、ステレオの左右の音に対する正規化振幅差分値の合算結果を用いて、複数の位相切替判別処理を行っても良い。例えば、ステレオの左右の音に音量差があった場合、同一音源からの発生音は左右同時にリセットしないと位相が左右ばらばらになってしまう。このため、合算結果を用いて判別を行うことにより、左右の音の位相リセットのタイミングを同期させ、音像(定位)の乱れを防止することができる。
また、ステレオの左右の音に対する正規化振幅差分値の合算結果と、ステレオの左右の音それぞれの正規化振幅差分値と、の両方を用いて、複数の位相切替判別処理を行っても良い。この構成によれば、ステレオの左右の音それぞれの正規化振幅差分値を用いることで、左右の音量差なども考慮して、より確実に音像の乱れを防止することができる。
また、変形例として、位相切替判別処理においてアタック部が検出された場合でも、スペクトルピークが時間的に継続している継続成分に対しては、位相連続処理を行っても良い。この構成によれば、スペクトルピークが時間的に継続している継続成分を位相リセット処理の対象外とすることで、アタック部の前後で継続して鳴っている音を途切れにくくすることができる。
また、正規化振幅差分値の合計値Σiが高閾値以上である場合であってアタック部が検出された場合(図4のS24:Noの場合)、低周波成分のみ、所定時間だけタイミングを遅らせて位相リセット処理を行っても良い。これは、低音域の音は周期が長いため、前処理で検出した位相リセットのタイミングでは位相が安定せず、位相リセット処理の効果が小さいが、タイミングを遅らせることで、位相リセット処理の効果を高めることができるためである。これにより、低音打楽器における打撃音後に継続する低周波数の音、例えばバスドラムの胴鳴りなどの高音質化を図ることができる。
また、上記の各実施形態において、オーディオデータ処理部3は、再生部2による再生に伴ってバッファメモリ4に書き込まれるオーディオデータを解析しながらピッチシフト(タイムスケーリング)を行うものとしたが、事前に解析したデータを読み出してこれらを行っても良い。つまり、楽曲を再生しながらリアルタイムにピッチシフト(タイムスケーリング)を行う構成としても良いし、事前に解析したデータを利用して、楽曲全体または楽曲の一部をピッチシフト(タイムスケーリング)する構成としても良い。
また、上記に示したオーディオデータ処理部3の各構成要素をプログラムとして提供することが可能である。また、そのプログラムを各種記録媒体(CD−ROM、フラッシュメモリ等)に格納して提供することも可能である。すなわち、コンピューターをオーディオデータ処理部3の各構成要素として機能させるためのプログラム、およびそれを記録した記録媒体も、本発明の権利範囲に含まれる。
また、上記の各実施形態では、オーディオデータ処理部3を再生装置1に適用した場合を例示したが、ミキサー装置などのDJ機器、各種電子楽器およびコンピューター(PCアプリケーション、タブレット端末用アプリケーション)などに適用しても良い。また、カラオケ装置、ボイスチェンジャーおよび音声合成装置など、音高を変更する機能を有する音声処理装置への適用も有用である。例えば、本発明を適用することで、異なる楽曲を連続して再生するDJ機器において、連続再生する楽曲のキーが不協和な関係にある場合に、ピッチシフトにより親和性の高いキーに変換するハーモニックスミックスを高音質化できる。また、カラオケ装置において、ユーザの声の高さに合わせてキー変更する機能があるが、音質を落とさずにキー変更可能なように、音源を打ち込み音であるMIDIとしている場合が多いが、本発明を適用することによって、生音を音源に用いても高品質なキー変換が可能となる。
さらに、キーを変えずに音声の時間軸長さだけを変更する場合など、タイムスケーリングのみの適用も可能である。例えば、異なる楽曲を連続して再生するDJ機器に本発明を適用することで、連続再生する楽曲のテンポのみを変更し、キー(音高)を変更しないタイムスケーリング(マスターテンポ)を高音質化できる。また、音声を録音・再生できる装置において、高速再生しても、キーを変えない早聴き機能を高音質化できる。その他、本発明の要旨を逸脱しない範囲で、適宜変更が可能である。
1…再生装置 2…再生部 3…オーディオデータ処理部 4…バッファメモリ 4a…入力バッファ 4b…出力バッファ 5…オーディオデータ出力部 11…タイムスケーリング部 12…SRC部 21…FFT部 22…位相演算部 23…逆FFT部 24…時間伸縮演算部 31…アタック検出部 32…位相リセット処理部 33…位相連続処理部 34…スペクトルピーク検出部 35…位相差算出部 36…位相判定部 37…ピーク位相維持処理部

Claims (9)

  1. デジタルオーディオデータを、周波数成分ごとの振幅と位相に変換する第1の周波数変換ステップと、
    前記デジタルオーディオデータを、前記第1の周波数変換ステップの実行タイミングから時間伸縮長だけ異なる実行タイミングで、周波数成分ごとの振幅と位相に変換する第2の周波数変換ステップと、
    前記第1の周波数変換ステップで得られた位相と、前記第2の周波数変換ステップで得られた位相の差分値を、位相変化量とし、時間伸縮後の位相を推定する位相推定ステップと、を実行することを特徴とするタイムスケーリング方法。
  2. 前記時間伸縮長は、時間伸縮率と、出力オーバーラップ数の乗算値に基づいて演算される長さであることを特徴とする請求項1に記載のタイムスケーリング方法。
  3. 振幅および/または位相の時間変化率の演算結果を用いて異なる位相切替判別を行う複数の位相切替判別処理の処理結果に応じ、前記周波数成分ごとの位相が、前記第1の周波数変換ステップの演算結果そのものとして位相のリセット処理を行う位相リセット処理と、前記周波数成分ごとの位相が、前記第1の周波数変換ステップの前回の演算結果から時間伸縮を考慮して連続変化したものとして位相の連続化処理を行う位相連続処理と、のいずれの位相演算処理を行うかを判別する位相演算処理判別ステップと、
    前記位相演算処理判別ステップの判別結果に応じて、前記位相リセット処理または前記位相連続処理を行う位相演算処理ステップと、を実行し、
    前記第1の周波数変換ステップ、前記第2の周波数変換ステップおよび前記位相推定ステップは、前記位相連続処理を行う場合に実行されることを特徴とする請求項1または2に記載のタイムスケーリング方法。
  4. 前記複数の位相切替判別処理は、異なる周波数帯域ごとにアタック部の有無を判別するものであり、
    前記位相演算処理ステップでは、前記複数の位相切替判別処理の判別により前記アタック部「有」と判別された場合、前記位相リセット処理を行い、前記アタック部「無」と判別された場合、前記位相連続処理を行うことを特徴とする請求項3に記載のタイムスケーリング方法。
  5. 前記位相演算処理ステップによる位相演算処理後の各周波数成分を、デジタルオーディオデータに変換する周波数逆変換ステップと、
    前記周波数逆変換ステップによる周波数逆変換処理時に、時間伸縮率に比例して周波数逆変換後のデジタルオーディオデータのデータ数を増減させる時間伸縮演算ステップと、をさらに実行することを特徴とする請求項3または4に記載のタイムスケーリング方法。
  6. 請求項1ないし5のいずれか1項に記載のタイムスケーリング方法における各ステップと、
    前記デジタルオーディオデータのサンプリング周波数を変更することで、時間伸縮および音高変更を行うサンプリングレート変換演算ステップと、を実行し、
    前記タイムスケーリング方法の各ステップによる時間伸縮長と、前記サンプリングレート変換演算ステップによる時間伸縮長とが相殺され、音高のみが変更されることを特徴とするピッチシフト方法。
  7. デジタルオーディオデータを、周波数成分ごとの振幅と位相に変換する第1の周波数変換手段と、
    前記デジタルオーディオデータを、前記第1の周波数変換手段の実行タイミングから時間伸縮長だけ異なる実行タイミングで、周波数成分ごとの振幅と位相に変換する第2の周波数変換手段と、
    前記第1の周波数変換手段で得られた位相と、前記第2の周波数変換手段で得られた位相の差分値を、位相変化量とし、時間伸縮後の位相を推定する位相推定手段と、を備えたことを特徴とするオーディオデータ処理装置。
  8. コンピューターに、請求項1ないし5のいずれか1項に記載のタイムスケーリング方法における各ステップを実行させるためのプログラム。
  9. コンピューターに、請求項6に記載のピッチシフト方法における各ステップを実行させるためのプログラム。
JP2012183083A 2012-08-22 2012-08-22 タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム Pending JP2014041240A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012183083A JP2014041240A (ja) 2012-08-22 2012-08-22 タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012183083A JP2014041240A (ja) 2012-08-22 2012-08-22 タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2014041240A true JP2014041240A (ja) 2014-03-06

Family

ID=50393542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012183083A Pending JP2014041240A (ja) 2012-08-22 2012-08-22 タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム

Country Status (1)

Country Link
JP (1) JP2014041240A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950293A (ja) * 1995-08-07 1997-02-18 Fujitsu Ltd 音声信号変換装置および超音波診断装置
WO2006070768A1 (ja) * 2004-12-27 2006-07-06 P Softhouse Co., Ltd. オーディオ波形処理装置、方式およびプログラム
JP2009237589A (ja) * 2003-12-25 2009-10-15 Casio Comput Co Ltd 音声分析合成装置、及びプログラム
WO2011048792A1 (ja) * 2009-10-21 2011-04-28 パナソニック株式会社 音響信号処理装置、音響符号化装置および音響復号装置
WO2011089029A1 (en) * 2010-01-19 2011-07-28 Dolby International Ab Improved subband block based harmonic transposition
JP2012002858A (ja) * 2010-06-14 2012-01-05 Pioneer Electronic Corp タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950293A (ja) * 1995-08-07 1997-02-18 Fujitsu Ltd 音声信号変換装置および超音波診断装置
JP2009237589A (ja) * 2003-12-25 2009-10-15 Casio Comput Co Ltd 音声分析合成装置、及びプログラム
WO2006070768A1 (ja) * 2004-12-27 2006-07-06 P Softhouse Co., Ltd. オーディオ波形処理装置、方式およびプログラム
WO2011048792A1 (ja) * 2009-10-21 2011-04-28 パナソニック株式会社 音響信号処理装置、音響符号化装置および音響復号装置
WO2011089029A1 (en) * 2010-01-19 2011-07-28 Dolby International Ab Improved subband block based harmonic transposition
JP2012002858A (ja) * 2010-06-14 2012-01-05 Pioneer Electronic Corp タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016034533; Robert Bristow-JOHNSON, et al.: 'Intraframe Time-Scaling of Nonstationary Sinusoids within the Phase Vocoder' Proc. 2001 IEEE Workshop on the Applications of Signal Processing to Audio and Acoustics , 20011024, pp.215-218, IEEE *

Similar Documents

Publication Publication Date Title
JP4823804B2 (ja) コード名検出装置及びコード名検出用プログラム
JP4767691B2 (ja) テンポ検出装置、コード名検出装置及びプログラム
JP4672613B2 (ja) テンポ検出装置及びテンポ検出用コンピュータプログラム
US8392006B2 (en) Detecting if an audio stream is monophonic or polyphonic
US8153882B2 (en) Time compression/expansion of selected audio segments in an audio file
US8198525B2 (en) Collectively adjusting tracks using a digital audio workstation
US20110011244A1 (en) Adjusting a variable tempo of an audio file independent of a global tempo using a digital audio workstation
WO2007010637A1 (ja) テンポ検出装置、コード名検出装置及びプログラム
US20110015767A1 (en) Doubling or replacing a recorded sound using a digital audio workstation
Ryynanen et al. Accompaniment separation and karaoke application based on automatic melody transcription
JP2017090671A (ja) 調律推定装置、評価装置およびデータ処理装置
JP6118522B2 (ja) タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム
JP2012002858A (ja) タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム
JP5229998B2 (ja) コード名検出装置及びコード名検出用プログラム
JP4645241B2 (ja) 音声処理装置およびプログラム
JP2005292207A (ja) 音楽分析の方法
JP6263383B2 (ja) 音声信号処理装置、音声信号処理装置の制御方法、プログラム
WO2019043797A1 (ja) 楽曲解析装置および楽曲解析プログラム
JP6281211B2 (ja) 音響信号のアライメント装置、アライメント方法及びコンピュータプログラム
JP6235198B2 (ja) 音声信号処理方法、音声信号処理装置およびプログラム
JP5005445B2 (ja) コード名検出装置及びコード名検出用プログラム
JP4932614B2 (ja) コード名検出装置及びコード名検出用プログラム
JP6263382B2 (ja) 音声信号処理装置、音声信号処理装置の制御方法、プログラム
JP2014041240A (ja) タイムスケーリング方法、ピッチシフト方法、オーディオデータ処理装置およびプログラム
WO2010146624A1 (ja) 音声信号処理装置のタイムスケーリング方法、音声信号処理装置のピッチシフト方法、音声信号処理装置およびプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150219

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150722

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20151127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170307