信号処理装置
【課題】元の音声信号のピッチを変更して出力する信号処理装置において、音声の不自然さを解消できる信号処理装置を提供する。
【解決手段】波形メモリと、この2以上の読み出しタップと、読出アドレス制御部24と、読み出しタップの複数の出力信号を互いに合成してクロスフェードを行うクロスフェード合成部26と、クロスフェードゲイン計算部25と、波高の高いアタック区間を検出するアタック検出部を備える。クロスフェードゲイン計算部25、読出アドレス制御部は、クロスフェード時間を基本周期の整数倍になるように調整する。読出アドレス制御部は、アタックを検出した時間帯では、前記クロスフェードを停止して(クロスフェード停止区間43)、1つのみの前記バッファ読出手段から出力されるバッファ出力信号を出力するよう調整する。
【解決手段】波形メモリと、この2以上の読み出しタップと、読出アドレス制御部24と、読み出しタップの複数の出力信号を互いに合成してクロスフェードを行うクロスフェード合成部26と、クロスフェードゲイン計算部25と、波高の高いアタック区間を検出するアタック検出部を備える。クロスフェードゲイン計算部25、読出アドレス制御部は、クロスフェード時間を基本周期の整数倍になるように調整する。読出アドレス制御部は、アタックを検出した時間帯では、前記クロスフェードを停止して(クロスフェード停止区間43)、1つのみの前記バッファ読出手段から出力されるバッファ出力信号を出力するよう調整する。
【発明の詳細な説明】
【技術分野】
【0001】
音声信号のテンポを変えずにピッチを変換する信号処理装置に関する。
【背景技術】
【0002】
従来、時間軸の圧縮、伸張とクロスフェード処理の組み合わせにより、音声信号のテンポを変えずにピッチを変換する装置が開示されており、その手段としてディレイモジュレーション方式が広く利用されている(例えば、特許文献1参照。)。
【0003】
ディレイモジュレーション方式の概略は以下の通りである。即ち、このピッチを変更することは、音声信号のリングバッファへの書込速度と読出速度を異なる値にすることにより実現できる。ここで、このリングバッファには、特定の区間のデータ記憶領域の読出アドレスと書込アドレスをそれぞれリング状に巡回しながら、音声信号の書き込み、読み出しを行う。単にこれら方法により読み出しを行なっただけでは、ピッチと共にテンポも変化してしまうから、バッファ信号をブロック毎に読み出して、複数系統のブロックを交互にクロスフェード処理して重ね合わせ、テンポが変化しないようにする。ここで、このクロスフェードとは、接続される音声信号のブロックをフェードアウトすると共に、接続する音声信号のブロックをフェードインし、バッファ出力信号を継ぎ目なく出力する技術である(後述、図2参照。)。前述のリングバッファの読出アドレスポイント(以下、「読み出しタップ」という。)を複数設けることにより、音声入力系を複数用意して、この音声入力系のサンプリングデータをクロスフェードすることが行なわれている。
【0004】
特許文献1では、このフェードアウト、フェードインを行う信号の合成がうまく動作せず、リズム音楽において2度打ちまたはトレモロのように聞こえることを解消するため、合成する両者の音声の基音成分を低域通過フィルタを用いて取り出して、この基音成分の周期に基づいてクロスフェードを行う信号の位相差を補正する手段が開示されている。
【特許文献1】特開2002−169556号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1の装置では、基音成分の抽出等については詳述されているものの、位相差を補正する方法については、ほとんど記載されていない。しかしながら、クロスフェードは繰り返し行なわれるから、それぞれのクロスフェード時間について、単に位相差を合わせるだけでは、その区間が基音成分の周期からずれていくので、2度打ちまたはトレモロ感を解消するには十分でなかった。また、短い時間で鋭く立ち上がるアタック信号を有する信号に対しては、2度打ちまたはトレモロ感を解消するには十分でなかった。
【0006】
そこで、本発明は、このような問題に鑑み、元の音声信号のピッチを変更して出力する信号処理装置において、音声の不自然さを解消できる信号処理装置の提供を目的とする。
【課題を解決するための手段】
【0007】
本発明は、上述の課題を解決するための手段を以下のように構成している。
【0008】
(1)本発明は、
入力された音声入力信号が順次書き込まれるバッファと、
前記バッファに書き込まれている音声信号の基本周期を検出する基本周期検出手段と、
前記バッファから、並行して前記音声信号を読み出す2系統の読出手段と、
前記読出手段の読出アドレスを前記バッファへの書込速度と異なる速度に設定された読出速度で移動させ、この移動で読出アドレスが所定アドレス移動する毎に、前記読出速度によるアドレス進度の前記書込速度によるアドレス進度に対する差であるアドレス進度差を解消する方向に、前記読出アドレスをジャンプさせる読出アドレス制御手段であって、前記2系統の読出手段の読出アドレスのジャンプ点を前記基本周期における同じ位相のアドレスに制御するものと、
前記読出手段が読み出した音声信号を、前記読出アドレスがジャンプした点を開始点として前記基本周期の整数倍のアドレス長でフェードインし、前記読出アドレスがジャンプした点を終点として前記基本周期の整数倍のアドレス長でフェードアウトする手段であって、一方の読出手段が読み出した音声信号のフェードイン区間と他方の読出手段が読み出した音声信号のフェードアウト区間が重なるように合成して出力する信号合成手段と、
を備えた。
【0009】
本発明では、読出アドレス制御手段が、読出手段の読出アドレスを前記バッファへの書込速度と異なる速度に設定された読出速度で移動させているので前記読出手段で出力される音声信号のピッチを変更することができる。
【0010】
また、読出アドレス制御手段が「この移動で読出アドレスが所定アドレス移動する毎に、前記読出速度によるアドレス進度の前記書込速度によるアドレス進度に対する差であるアドレス進度差を解消する方向に、前記読出アドレスをジャンプさせ」ているので、テンポを一定に保つことができる。また、読出アドレス制御手段が「前記2系統の読出手段の読出アドレスのジャンプ点を前記基本周期における同じ位相のアドレスに制御」しているから、ジャンプしてから、次にジャンプするまでは、基本周期の整数倍となる。
【0011】
信号合成手段は、「前記基本周期の整数倍のアドレス長でフェードインし、前記読出アドレスがジャンプした点を終点として前記基本周期の整数倍のアドレス長でフェードアウトする」から、2系統の読出手段のうちジャンプした方は、ジャンプした時点でゲインが0になるから、ジャンプによるノイズを抑えることができる。また、「前記基本周期の整数倍のアドレス長で」フェードイン、フェードアウトするから、フェードインする区間とフェードアウトする区間をすべて基本周期の整数倍とすることができる。
また、この信号合成手段は、「一方の読出手段が読み出した音声信号のフェードイン区間と他方の読出手段が読み出した音声信号のフェードアウト区間が重なるように合成して出力する」からこの重なった区間でクロスフェードが行なわれ、その区間を基本周期の整数倍にすることができる。このように、読出アドレス制御手段が「前記2系統の読出のジャンプ点を前記基本周期における同じ位相のアドレスに制御」しているから、クロスフェード時間でフェードインする音声信号とフェードアウトする音声信号の位相を合わせることができ、滑らかにクロスフェードすることができる。また、信号合成手段がクロスフェードの区間を基本周期の整数倍にしているから、この位相がずれていかないから、この滑らかにクロスフェードすることができる効果を持続することができる。
【0012】
(2)本発明は、
前記バッファに書き込まれた音声信号から、振幅が大きいまたは振幅上昇が急激な信号の区間であるアタック部を検出するアタック検出手段を備え、
前記読出アドレス制御手段は、前記アタック部で前記読出アドレスをジャンプさせないように制御し、
前記信号合成手段は、前記読出手段が前記アタック部を読出している区間は、前記フェードイン、フェードアウトを停止して、一方の読出手段が読み出したアタック部の音声信号のみ出力する。
【0013】
本発明では、2以上のバッファ読出手段を設けてクロスフェード部で互いにクロスフェードして合成し、前記ジャンプによるノイズを目立たなくなるようにしているが、入力された音声信号のアタック部分では、このクロスフェードを行なった場合に、2度打ちやトレモロのように聞こえる可能性が高い。そこで、前記読出アドレス制御手段は、前記アタック部で前記読出アドレスをジャンプさせないように制御している。
【0014】
本発明は、クロスフェード調整機能、アタック部分を検出して、この部分だけクロスフェードを停止するようにして、1つのみの前記バッファ読出手段から出力されるバッファ出力信号を出力するよう調整している。したがって、トレモロのように聞こえる恐れがすくなく、音声の不自然さを解消できる。
【0015】
(3)本発明は、
前記読出アドレス制御手段は、読出アドレスが前記アタック部を通過した後、前記読出アドレスをジャンプさせるアドレス長を増加させ、前記アタック部で読出アドレスをジャンプさせなかったことによって増加した前記アドレス進度差を複数のジャンプで解消する。
【0016】
本発明では、アタックがない場合には、所定アドレス移動する毎にアドレス進度差を解消する方向にジャンプして、書込アドレスと読出アドレスとの差を一定範囲内にしている。しかし、アタックを検出した場合には、前記読出アドレス制御手段が前記アタック部で前記読出アドレスをジャンプさせないように制御しているから、アドレスの位置が大きくずれてしまい、その後の前記バッファに書き込むアドレス位置と前記バッファ出力信号の読出位置とのアドレスとの差がアタック毎にずれていく。バッファの容量は有限であるから、読出手段が1周期前のアドレスを読んでしまう恐れがある。本発明は、前記読出アドレスをジャンプさせるアドレス長を増加させることにより、アタックが生じる前の元の書込アドレスと読出アドレスとの差に戻すことができる。前記アドレス進度差を1度のジャンプではなく複数のジャンプで解消するから、アタック後の音質の劣化を目立たなくすることができる。
【0017】
(4)本発明は、
前記読出アドレス制御手段は、前記読出アドレスをジャンプさせるアドレス長を、前記基本周期の整数倍とする。
【0018】
(1)の構成において、基本周期検出手段は、低域部の基本周期を検出しており、前記読出アドレス調整手段は、前記クロスフェードを行う時間を前記基本周期の整数倍に調整しているが、前記ジャンプするアドレス量は、必ずしも前記基本周期の整数倍とは限らない場合がある。ジャンプするアドレス量が基本周期の整数倍にならない場合には、2系統の読出手段で読み出した音声信号をクロスフェードするときに、このジャンプしたことにより、互いに基本周期の位相がずれる恐れがある。
そこで、本発明では、前記読出アドレス制御制御は、このジャンプ時に、基本周期の整数倍の位置にジャンプするよう制御しているのでクロスフェードする音声信号の互いの位相を合わせることができるから、音声信号をクロスフェードで滑らかに接続することができ、音声の不自然さを解消できる。
【0019】
例を示して説明する。例えば、バッファへの書き込み速度より20%速く読み出した場合、読出信号を入力信号と同等のテンポとするために、所定アドレス移動する毎に、アドレス進度差を解消する方向に、前記読出アドレスをジャンプさせる。このとき、この20%分のアドレスのジャンプを行なってアドレスを後退させる。その場合に、この20%速く読み出している間に、例えば基本周期の8波長、読み出したとすると、20%戻れば、アドレスは、
8×(0.2/(1+0.2))=4/3波長ジャンプすることになり、基本周期の整数倍とならない。そこで、波長の小数点部分を切り上げて2波長とするか、切り下げて1波長とする。
【発明の効果】
【0020】
本発明によれば、クロスフェード部分において、クロスフェードする信号の位相を合わせているので、精度良く信号を合成することができ、音声の不自然さを解消できる。
【0021】
また、アタック部分を検出して、その部分のデータを読み出すときには、クロスフェードを停止して1つの音声信号のみを取り出すようにしているから、2度打ちやトレモロのように聞こえることを防止できる。
【発明を実施するための最良の形態】
【0022】
<本実施形態の信号処理装置の概略>
図3、図4を用いて、本実施形態の信号処理装置の概略を説明する(図3、図4の詳細は後述する。)。図3は、波形メモリ、読出アドレス制御部の動作の一部を説明するための概念図であり、図4は、後述するクロスフェードゲイン計算部の動作概念図である。本実施形態の信号処理装置は、音声信号のピッチを変更する機能を含んでいる。本実施形態の装置は、特定の区間のデータ記憶領域をリング状に巡回しながら、書き込み、読み出しを行うリングバッファ17を備え、このピッチの変更は、リングバッファからディジタル音声信号の読み出しの際に、読み出す速度を書込速度(図3の書込アドレスの時間変化1740参照。)より速くしたり、または遅くすることで実現する(図3の直線178参照。)。テンポを変えないよう、平均的な読出速度を書込速度と同等にするため、図3下に示すように、のこぎり刃状に、書込アドレス1740の時間変化と平行である基準線175にアドレスを戻す。また、ジャンプ時の音声信号のノイズを目立たないようにするため、図4右上に示すように互いに段差部分をずらせて出力した、2系統のリングバッファの読み出しタップ241A、B(図4左参照。)を設けて、これらの出力をクロスフェードして合成する(図4右下参照。)。ここで、クロスフェードは、2つの信号のうち1つをフェードアウトし、他方をフェードインして継ぎ目なく信号を接続する技術である。このアドレスのジャンプの時はこれに対応する音声信号の出力を0にすると共に、他方の系統から音声を出力する。
【0023】
<本実施形態の信号処理装置の内部構成>
図1を用いて、本実施形態の信号処理装置の内部構成について説明する。図1は、この信号処理装置の内部構成図である。図1に示すように、信号処理装置1は、カラオケ装置等の音響装置、またはサウンドボードを備えた汎用コンピュータ等の一部で構成され、以下の構成を備えている。即ち、CPU10とROM11とRAM12と外部記憶装置13と通信I/F14と表示回路15と入力装置16と波形メモリ17とDSP2とD/A変換器3とを備えており、これらはデータ/アドレスバス18で接続されている。以下、それぞれを説明する。
【0024】
図1のCPU10は、汎用のコンピュータのCPUまたはそれ以外の動作を含む中央集積回路で構成され、ROM11、RAM12のデータを用いて種々の計算や各部への指示を行う。
ROM11は、固定メモリであって、恒常的に用いるプログラムデータや、種々のBIOS等のデータを格納している。
RAM12は、外部記憶装置13内にあるデータを読み込んで一時的に格納する読み書き可能なメモリであって、プログラムや計算用データを格納している。
外部記憶装置13は、ハードディスク、CD−ROM等の光ディスクで構成され、大量のデータを記憶する記憶装置である。
通信I/F14は、通信回線で結ばれたホストコンピュータ、例えばカラオケ装置の管理室のサーバや、インターネット上にあるデータを入力するインターフェースであり、曲データ101を受信できる。
表示回路15は、カラオケ装置であれば、この画面に出力する画像データや設定画面OSD(オンスクリーンディスプレイ)を表示するための回路であり、また汎用コンピュータであれば、ビデオカードがこれに相当する。
入力装置16は、カラオケ装置であれば、リモコンや装置本体付属の操作子の集合からなる操作入力装置であり、汎用コンピュータであれば、キーボードやマウスがこれに相当する。
波形メモリ17は、通信I/F14を介して取得した音楽データ、図示しないマイクで収音した音声信号をA/D変換したデータ、または外部記憶装置13にある曲データ101を時系列的に書き込み、読み出しするバッファである。波形メモリ17は、音声信号のビットデータをサンプリングタイムで入出力する速度に対応できるものが必要である。この書込速度と読出速度を変えることで、時間軸圧伸が可能となる。
【0025】
DSP2は、後述するピッチ変更や時間軸圧伸等のディジタル音声信号処理を行う。
D/A変換器3は、ディジタル信号をアナログ信号に変換し、アナログの出力信号102を取り出す。この出力信号102は、増幅器を介してスピーカへ出力する。
【0026】
図1に示す信号処理装置1は、以上の通り、ピッチ変更や時間軸圧伸等のディジタル音声信号処理を行うDSP2のほかに、汎用のコンピュータと同様な構成を備えている。これにより、信号処理装置1は、さらに画面表示や音声信号処理を行うDSP2を制御する種々のプログラムを実行する。
【0027】
次に、図2を用いて、波形メモリ17とDSP2の構成をさらに詳しく説明する。図2は、図1で示した波形メモリ17、DSP2の内部構成を表すブロック図である。図2に示すように、DSP2は、波形解析部21と、この波形解析部21の結果に基づいて読出位置を算出して、波形メモリ17の読出アドレスを指示する読出アドレス制御部24を備える。また、波形メモリ17から読み出した出力であるバッファ出力信号17A、17Bの出力をフェードイン、フェードアウトを行なってクロスフェード合成するクロスフェード合成部26と、このクロスフェードのゲインカーブを計算するクロスフェードゲイン計算部25を備える。また、これらの動作を制御する制御部22を備えている。以下、それぞれの構成を説明する。
【0028】
図2の波形解析部21は、音声入力信号100の波形を解析するものであり、LPF211と基本周期検出部212とアタック検出部213を備えている。
【0029】
図2のLPF211は、低周波のみを取り出すためのフィルタであり、これを通すことにより高周波をカットして、基本周期の検出を容易にすることができる。
基本周期検出部212は、LPF211を通した音声入力信号100から周期性を検出して制御部22にその情報を送る。基本周期検出部212の基本周期信号検出の方法としては、例えばFFT変換により信号の周波数成分を検出することにより行う。
【0030】
図2のアタック検出部213は、音声入力信号100からアタックを検出する。ここで、アタックとは、平均的な音声の波高レベルより極端に高い部分または振幅上昇が急激な信号の区間である。アタック検出部213は、所定の時間間隔毎に切り出した音声入力信号100のエネルギー和をそれぞれ計算する。アタック検出部213は、特定の区間が平均的な音声の波高レベルより極端に高い場合またはエネルギーの増加が急激な場合に、この区間が音声のアタックの位置であると検出する(後述、図9、図11でその手段を詳述する。)。このアタック検出部213は、アタックを検出すると、制御部にアタックを検出した旨の信号を出力する。
図2の波形メモリ17は、前述の通り、音声入力信号100を一時的に蓄えるバッファであり、後述の図3で示すように、リング状に書き込み、読み出しを行うリングバッファである。読出速度と書込速度を異なる値にすることで、バッファ出力信号17A、17Bの時間軸圧伸を行うことができる。
なお、読出速度を速めたり、遅くしたりしてバッファ出力信号の時間軸圧伸を行う場合には、所望のピッチ変更率29に正確に対応する圧伸を行おうとすると読出アドレスは少数点以下を含むこととなる。そこで、波形メモリ17の出力を合成する加算部(不図示)を設け、小数点部分については、小数点をはさんで整数値の両側のアドレスに書き込まれたデータについて比例配分を行い、データを加算する。
図2の制御部22は、波形解析部21の解析結果に基づいて、読出アドレス制御部24やクロスフェードゲイン計算部25に指示を送る。例えば、基本周期検出部212の検出した周期に基づいてクロスフェード時に合成するバッファ出力信号17A、Bの基本周期の位相が合うように、クロスフェード開始時、終了時を調整する指示を送る。また、急峻に音量が上下するアタックの場合には、アタックの部分は急激な音量変化を伴うため、波形の接続により2度打ちが生じやすいことから、クロスフェード合成部26の動作をとめて、バッファ出力信号17A、Bのいずれかの出力をそのまま出すように、クロスフェードゲイン計算部25に指示を送る。
【0031】
読出アドレス制御部24は、バッファからの読出アドレスを制御する。
クロスフェード合成部26は、前述の通り、バッファ出力信号17A、Bを互いにフェードイン、フェードアウトして合成するものである。後述の通り、一定区間毎に読出アドレスをジャンプさせることによるノイズの発生を目立たなくさせるためバッファ出力信号17A、Bを用いて合成する。
【0032】
なお、図1では、汎用のコンピュータでも使用できるような構成としたが、本実施形態の装置で入力信号のピッチを変更する最小限の構成としては、DSP2と、波形メモリ17と、この波形メモリ17に音声入力信号100を供給する構成があれば十分である。
【0033】
<波形メモリの読み出し>
次に、図3を用いて、波形メモリ17の動作および読出アドレス制御部24の動作についてさらに詳しく説明する。図3は、波形メモリ17、読出アドレス制御部24の動作の一部を説明するための概念図である。図3は、波形メモリ17から出力される信号であるバッファ出力信号17A、Bのうち、17Aのみを表している。書き込み/読み出しは、同一の方向(書込方向174、読出方向171A)に沿って順次行う。その際、波形メモリ17のデータ容量(アドレス区画173の数)は有限であるから、書き込み/読み出し経路172に沿って、リング状に書き込み/読み出しを行う。これによりデータ容量の制限に対応することができる。バッファ出力信号17Aは、読出アドレスの指示241Aに従って波形メモリ17から読み出され、クロスフェード合成部26に送られる。
【0034】
図3に示す読出アドレス制御部24の動作について説明する。図3下のグラフは、書込アドレス1740と、読出アドレス176、177を示している。ここで、横軸が時刻[m秒]、縦軸がアドレスである。図3に示す波形メモリ17は、音声入力信号100の書込速度と異なるサンプリング周波数で(同じサンプリング周波数でアドレス進度が異なる場合を含む。)、バッファ出力信号17Aの読み出しをする。
【0035】
図3に示すように、書込アドレス1740は、一定速度(即ち、基準のサンプリング周波数)で書き込みを行う。信号処理装置1が音声入力信号100のピッチを上げた音声を出力する場合には、読出アドレス176(実線で図示)に沿って波形メモリ17からサンプリングデータを読み出す。読出アドレス176は、この速読み区間1761とジャンプ区間1762を1つのサイクル179としてアドレスの移動を繰り返す。速読み区間1761では書込アドレス1740の移動速度よりも大きい読出速度(直線178参照)でサンプリングデータを読み出す。これにより波形メモリ17から読み出した音声のピッチが高くなる。しかし、直線178にそってこのまま読み出していくと、音声のテンポが早くなってしまうだけでなく、書込アドレス1740と、直線178が交差して追い抜いてしまい、バッファ出力信号17Aがリングバッファの1周期前の信号を読み出す恐れがある。そこで、書込アドレス1740と同等の速度で読み出すために、各サイクル179の最後では、書込速度と等しい速度でアドレスが進む基準線175(中心線で図示)に戻すようにする。
【0036】
一方、図3で示す読出アドレス制御部24の動作に示すように、信号処理装置1が音声入力信号100のピッチを下げた音声を出力する場合には、読出アドレス176は、この遅読み区間1771とジャンプ区間1772を1つのサイクル179としてアドレスの移動を繰り返す。遅読み区間1771では書込アドレス1740の移動速度よりも小さい移動速度でサンプリングデータを読み出す。これにより、波形メモリ17から読み出した音声のピッチが低くなる。ピッチを上げる場合と同様、書込アドレス1740と同等の速度で読み出すために、各サイクル179の最後に書込アドレスの時間変化1740と速度の等しい基準線175に戻すようにする。
【0037】
図3に示すようにして読出アドレス176を基準線175に戻すときには、アドレスをジャンプすることになるから、ノイズが生じる。このアドレスのジャンプを目立たなくするために、本実施形態の装置ではクロスフェード合成部26を設けている。
【0038】
<読出アドレス制御部、クロスフェードゲイン計算部の動作>
次に、図4を用いて、読出アドレス制御部24、クロスフェードゲイン計算部25の動作についてさらに詳しく説明する。図4は、この動作の概念図である。ここで、クロスフェードは、2つの信号のうち1つをフェードアウトし、他方をフェードインして継ぎ目なく信号を接続する技術である。図3ではバッファ出力信号17Bを省略していたが、このクロスフェードを行うため、2系統のバッファ出力信号17A、17Bを取り出す。図3と同様の部分は、同様の符号を付して説明を準用する(符号がAの代わりにBとなっているものについても同様である。)。
【0039】
読出アドレス制御部24について説明する。図4右上の図は、速読み時の読出アドレス制御部24の動作を表しており、この2系統のバッファ出力信号17A、Bの読出アドレス24A、24Bの時間変化を表している。このグラフは、横軸は時刻[m秒]、縦軸は書込アドレス1740に対する読出アドレス176のアドレス差を表しており、横軸が時刻を表している。図4の横軸、基準線175Aは、それぞれ、図3の書込アドレス1740、基準線175を水平にしたものに相当する(図9、図10も同様である。)。図4に示すように、読出アドレス24A、24Bのジャンプ区間1762、1763では、読出アドレス制御部24は、このジャンプを発生させる時刻を異ならせている。これにより、アドレスのジャンプが同時に音声として出力されないから、アドレスのジャンプによるノイズを軽減できる。
【0040】
なお、ピッチを下げる場合は、後述、図10の左側に示すように、ピッチを下げる場合24A、24Bのグラフは基準線175Aに関して反転した形状となる。
【0041】
クロスフェードゲイン計算部25について説明する。図4左に示すバッファ出力信号17A、Bは、ゲイン調整部261、262でそれぞれゲインを調整し、加算部263で合成して、加算部263の出力信号をD/A変換器3に出力する。クロスフェードゲイン計算部25は、ゲイン調整部261、262にゲインの指示251をして、ゲイン調整部261、262はこの指示に基づいて、各ゲインの調整を行う。
【0042】
図4右下の枠内のグラフは、クロスフェードゲイン計算部25の動作を示しており、ゲイン調整部261、262に指示するゲインの値の時間変化を表している。ここで、横軸が時刻[m秒]、縦軸がゲイン比率[%]である。実線で示すゲイン比率25Aと点線で示すゲイン比率25Bに示すように、ゲイン比率25Aがフェードアウトしてゲインが0%となる部分253は、ゲイン比率25Bがフェードインしてゲインが100%となる部分254とする。また、ゲイン比率25Bがフェードアウトしてゲインが0%となる部分255は、ゲイン比率25Bがフェードインしてゲインが100%となる部分256とする。これにより、加算部263で加算した音量が略一定となるようにして、クロスフェードを行う。
【0043】
また、クロスフェードゲイン計算部25は、図4右上、右下の枠をつなぐ2点鎖線で示すように、読出アドレス24A、24Bのジャンプ区間1762、1763では、ジャンプする側のバッファ出力信号のゲインを0%に調整して、他方の出力を100%にする。これによりアドレスをジャンプする側のバッファ出力信号について、このジャンプによるノイズを軽減できる。
【0044】
また、クロスフェードゲイン計算部25は、ゲイン一定の区間がなく連続的に小刻みにクロスフェードを行なうようゲイン調整しているので、ジャンプ区間1762でジャンプするアドレス量が小さくなり、音色のずれを小さくすることができる。このように連続的にクロスフェードさせる場合には、いずれのクロスフェード時間においてもクロスフェードする信号の基本周期の位相をそろえた方が滑らかにクロスフェードさせることができる。
【0045】
そこで、クロスフェード時の基本周期の位相をそろえるため、図1で説明した基本周期検出部212は、基本周期を求めている。制御部22は、この基本周期をクロスフェードゲイン計算部25に指示する。クロスフェードゲイン計算部25は、この基本周期の位相をそろえるため、バッファ出力信号17Aのゲインをフェードアウトさせるとき(ゲイン比率25Aのゲインが100%〜0%になるまで)、フェードアウト区間長をこの基本周期の整数倍とする。また、クロスフェードゲイン計算部25は、これに合わせてバッファ出力信号17Bのゲインをフェードインさせるとき(ゲイン比率25Bが0%〜100%になるまで)、フェードイン区間長をこの基本周期の整数倍とする。17Aのゲインをフェードインさせるときも同様である。
【0046】
このように連続的にクロスフェードすると、17Bの読出アドレスの24Bの1つのサイクル179では、2つのクロスフェード時間を含むから、必然的に基本周期の偶数倍の波長252Bとなる。17Aの読出アドレスの24Bについても、同様に基本周期の偶数倍の波長252Aとなる(図4では、説明の容易のため基本周期の偶数倍である6波長分を例示している。)。
【0047】
次に、クロスフェードゲイン計算部25のクロスフェード方法について、図5、図6を用いて具体的に説明する。図5、図6は、クロスフェード方法の概念を表す図であり、図5は、ゲインレベル一定で合成する場合を示しており、図6はエネルギー和(波高値の2乗の時間積分で計算できる)が一定である場合を示している。いずれも、横軸が時刻[m秒]、縦軸がゲイン比率[%]である。
【0048】
図5(A)で示すように、フェードアウトする信号のゲインを、時間と共に直線的に減衰させ、図5(B)で示すように、フェードインする信号のゲインを、時間と共に直線的に増大させる。このようにして、フェードアウトする信号とフェードインする信号を加えると、音量和のレベルが一定となるようにすることができる。この合成方法は、一般に入力信号に周期性がある場合に滑らかに接続できるメリットがある。このように滑らかに接続するためには、フェードアウトする信号とフェードインする信号の位相を合わせる必要がある。図4の右に示すように、連続的にクロスフェードをする場合には、いずれのクロスフェード時間についても、周期的信号の位相を合わせる必要があるから、クロスフェード時間長を各々基本周期の整数倍にする。
【0049】
なお、図5では、図示の容易等のため、基本周期を8つ含むとしているが実際には、もっと多い周期でクロスフェードするのが通常である。)
一方、図6は、エネルギー和(波高値の2乗の時間積分で計算できる)が一定である場合を示しており、このようにクロスフェードのゲインを設定する場合には、結果としてフェードアウトする信号のエンベロープレベルの時間変化は図6(A)で示すような余弦関数の曲線になり、フェードインする信号のエンベロープレベルの時間変化は図6(B)で示すような正弦関数の曲線になる(なお、ゲインの2乗和が一定となる関数であれば、他の関数でも良い。)。この合成方法は、一般に入力信号に周期性がある場合には、加算部263で合成後のゲインレベルが変動するデメリットがあるが、周期性がなくとも滑らかに接続できるメリットがある。図6に示した方法においても、クロスフェード合成部26で滑らかに接続するためには、フェードアウトする信号とフェードインする信号の位相を合わせる。図4に示すように、連続的にクロスフェードをする場合には、位相を合わせるためクロスフェード時間を基本周期の整数倍にすることが望ましい(図6では、説明の容易等のため、基本周期を8つ含むとしている。)。本実施形態の装置1のクロスフェードゲイン計算部25は、図5、図6で説明したいずれかの方法でクロスフェードゲインを計算する。
【0050】
<ジャンプ区間におけるアドレスのジャンプ量を求める方法およびその修正方法>
以下、図7,8を用いてジャンプ区間1762におけるアドレスのジャンプ量を求める方法およびその修正方法について説明する。
【0051】
図7を用いて、ピッチを高くする場合に、読出アドレス制御部24がジャンプ区間1762のアドレスのジャンプ量を求める方法およびその修正について説明する。図7は、ピッチを高くする場合の速読み区間1761とジャンプ区間1762の1サイクルを拡大した図であり、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図である。
【0052】
まず、図7を用いて、ピッチを高くする場合のジャンプ区間1762のアドレスのジャンプ量を求める方法について説明する。前述の図3、4で説明したように、音声入力信号100のテンポとバッファ出力信号17A、Bのテンポを同等に保つため、ジャンプ区間1762では、書込アドレス1740の時間変化に平行である基準線175にアドレスを戻す。速読み区間1761において、読み出す速度を音声入力信号100の書込速度より25%速くしたとすると、サイクル179においてアドレスの標準移動量1767より25%多く進むことになる。したがって、ジャンプ区間1762のアドレスのジャンプ量は、原則として、
音声入力信号100のサンプリング周波数[1/秒]
×(179に示す)サイクル[m秒]/1000
×ピッチ増量率[%]/100
の計算により求めることができる。速読み区間1761でのアドレス進度に含まれる基本周期の数を基準にすると、ジャンプ区間1762に含まれる基本周期の数は、
速読み区間1761に含まれる基本周期の数
×ピッチ増量率[%]/(100+ピッチ増量率[%])
となる。図7の例では、速読み区間1761で、基本周期を偶数含む6波長進んで、この6波長×25%/(100%+25%)=1.2波長ジャンプして、ジャンプ先アドレスは1764となる。
【0053】
次に、図7を用いて、ピッチを高くする場合に、アドレスのジャンプ量を修正する方法について説明する。ここで、クロスフェード合成部26が滑らかに信号を接続するには、互いに合成する音声信号の基本周期の位相をそろえる方が好ましい。そのため、クロスフェード時間を基本周期の整数倍とする。そうすると1つのサイクル179は、2つのクロスフェード時間を含むから(図4参照)、1つのサイクル179を基本周期の偶数倍とするのが好ましい。この位置が図7の1765である。しかし、必ずしも、ジャンプしたアドレス量が基本周期の整数倍にならないことがある。図7の例ではアドレス1764のときの点1769に示すように、1.2波長ジャンプするので、ジャンプしたアドレス量は、基本周期の整数倍にならない。そこで、図7に示すように、ジャンプするアドレス量を、基本周期の整数倍となるアドレス位置であるアドレス1765にジャンプするように修正する。その後点線で示すアドレス1766に沿って、アドレスを移動させる。
【0054】
音声入力信号100の書込アドレス1740とテンポを合わせる観点から、この修正量は最小であることが好ましく、原則として調整前のジャンプ先アドレス1764から、基本周期の整数倍の位置のうち、書込アドレス1740に平行である基準線175に最も近い位置に戻す。しかし、周期が常時一定である場合には、例えばサイクル179で毎回ジャンプ区間1762の修正量が常時プラスとなって、テンポが狂う恐れがあるので、適宜修正量をプラスとマイナスを切り替える必要がある。この場合でも、調整前のジャンプ先アドレス1764の修正する方向(即ち、アドレスのプラスまたはマイナスの方向のいずれか)に沿って、基本周期の整数倍の位置のうち最も近い位置に戻す。後述、図8の例も同様である。
次に、図8を用いてピッチを下げる場合に、読出アドレス制御部24がジャンプ区間1772のアドレスのジャンプ量を求める方法およびその修正方法について説明する。図8は、ピッチを低くする場合の遅読み区間1771と、ジャンプ区間1772との1サイクルを拡大した図であり、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図である。
【0055】
図8を用いて、ピッチを下げる場合のアドレスのジャンプ量を求める方法について説明する。前述の図3、4で説明したように、音声入力信号100と、バッファ出力信号17A、Bのテンポを同等に保つため、ジャンプ区間1772では、書込アドレス1740に平行である基準線175に沿った位置にアドレスを戻すようにしている。したがって、ジャンプ区間1772のアドレスのジャンプ量は、原則として、
音声入力信号100のサンプリング周波数[1/秒]
×179に示すサイクル[m秒]/1000
×ピッチ減少率
の計算により求めることができる。遅読み区間1771でのアドレス進度に含まれる基本周期の数を基準にすると、ジャンプ区間1772に含まれる基本周期の数は、
遅読み区間1771に含まれる基本周期の数
×ピッチ減少率[%]/(100−ピッチ減少率[%])
となる。
【0056】
図8の例では、サイクル179で、基本周期4波長分進んだ後、基本周期4波長×25/(100−25)=4/3波長ジャンプする。調整前のジャンプ先アドレスは1774の位置となる。
【0057】
次に、図8を用いて、ピッチを下げる場合のアドレスのジャンプ量を修正する方法について説明する。図7で示した場合と同様、クロスフェード時間は、基本周期の整数倍とするのが好ましく、この実施形態では1つのサイクル179は2つのクロスフェード時間を含むから(図4参照)、1つのサイクル179では基本周期の偶数倍とするのが好ましい。しかし、図8の例のように、必ずしもジャンプ区間1772でジャンプするアドレス量(4/3波長)は、基本周期の整数倍とはならないので(図8のアドレス1774のときの点1779)、次のクロスフェードにおいて、互いに基本周期の位相がずれる恐れがある。そこで、図8に示すように、ジャンプしたアドレス量が基本周期の整数倍の位置のアドレスであるアドレス1775に戻すように修正する。音声入力信号100の書込アドレス1740とテンポを合わせる観点から、この1740に平行である基準線175を考慮すれば、この修正量は最小であることが好ましく、アドレス1774から、基本周期の整数倍の位置のうち最も近い位置に戻す。その後、図8の点線で示す1776に沿って、アドレスを移動させる。
【0058】
なお、本実施形態の信号処理装置を実装する場合には、サイクル179の中に、図7、図8で示した例よりも多くの基本周期の基本周期を含むことも可能である。
【0059】
<アタックの検出方法とアタックを検出した場合の処理>
以下、図9、図10を用いて、図2で示したアタックがあった場合の処理について詳細に説明する。
【0060】
図9を用い、図2を補助的に参照して、ピッチを上げる場合におけるアタックがあったときの処理について説明する。図9は、この処理についての概念図である。アタックとは、図9のアタック区間45に示すように、音声入力信号100のうち波高値の高い部分または振幅上昇が急激な信号の区間である。なお、ここでは、図示を容易にするためアタックを1周期の波形で表しているが、実際には数周期に渡るのが通常である(後述図10も同じ。)。
【0061】
前述、図4で説明したように、ジャンプ区間1762を目立たなくするため、クロスフェード合成部26は、バッファ出力信号17A、Bを合成している。しかし、アタック部は瞬発的に立ち上がるため、クロスフェードした場合に、2度打ちやトレモロのように聞こえる場合がある。そこで、この2度打ちやトレモロを防止するため、本実施形態の装置では、図2のアタック検出部213がアタックを検出した場合にはその旨の信号が制御部22に伝えられ、制御部22は、アタック区間45を含む区間で、クロスフェード停止区間43を設けるように各部を制御する。
以下、アタックの検出方法について説明し、その後、制御部22を受けたクロスフェードゲイン計算部25、読出アドレス制御部24の処理、アタック区間45以後の後処理について説明する。
【0062】
区間41の切り出し方法について説明する。音声入力信号100から、区間41の切り出す上で、この区間41のうちの1つの区間にアタックの部分の全体が含まれるように調整する方がこのアタックを処理する上で正確なアタックの位置を測ることができる。したがって音声入力信号100がマイナスからプラス方向へ0点をクロスするゼロクロス位置またはプラスからマイナス方向へ0点をクロスするゼロクロス位置のいずれかを基準に区間41を区切るようにする。また、図2の基本周期検出部212で検出した音声信号の基本周期から求まる周期を基準にして、このゼロクロス位置に丸め込んで、区間41を区切るようにしてもよい。
そして、この切り出した区間を所定の個数分用意して、それぞれの区間41の波高値の2乗平均値Piを求める。または、波高値の2乗平均値をFFT解析により求めた特定周波数毎のゲインの2乗の足し算で代用しても良い。また、所定の個数の区間41を合わせて波高値の時間平均Pavgを求める。
アタック検出部213は、このような区間毎の時間平均の波高値の2乗と、計算する全区間の移動平均を求め、閾値を設けて
Pi/Pavg>(閾値)
が成立する場合には、アタック検出部213は、アタックが成立すると判断する。
【0063】
図2の制御部22は、アタック検出部213からのアタックが成立した旨の信号を受けて、読出アドレス制御部24、クロスフェードゲイン計算部25に対して、クロスフェード停止区間43の前のクロスフェード調整区間42からアタックの処理を行うように制御する。
【0064】
アタックを検出した場合のクロスフェードゲイン計算部の動作250について説明する。アタックを検出した場合、クロスフェードを停止するため、アタックを含むクロスフェード停止区間43を設けて、この区間では、クロスフェードゲイン計算部25は、図4のゲイン調整部261、262のいずれかの片方のゲイン調整を100%、他方を0%とする。図9の例では、アタック区間45の開始前にフェードインしているバッファ出力信号17Bについて、ゲイン比率25Bを100%として、他方のバッファ出力信号17Aのゲイン比率25Aを0%としている。
【0065】
同じく図9を用いて、読出アドレス制御部の動作240について説明する。クロスフェード停止区間43の間は、読出アドレス制御部24は、100%のゲイン比率25Bに対応する読出アドレス24Bについてアドレスのジャンプをせず、クロスフェード調整区間42からクロスフェード停止区間43、サイクル179の半分の時間46が終わるまで、そのまま連続してアドレスを読み出す。この間では書込アドレスに対する読出アドレスが接近し続ける。また、この間では、他方の読出アドレス24Aの読み出しを停止する(または、停止しなくとも良いが、図9中央のクロスフェードゲイン計算部の動作250に示すように、この読出アドレス24Aの出力を図4に示すゲイン調整部261によりゲインを0とする。)
アタックを検出した場合には、クロスフェード調整区間42を基本周期の整数倍にするため、図9に示すようなクロスフェード調整区間42の長さを基本周期の波長刻みで修正する。また、この修正では、アタック45を含むクロスフェード停止区間43が最小になるように、クロスフェード調整区間42でフェードインする時刻を決定する。
【0066】
同じく図9を用いて、クロスフェード停止区間43以後の後処理について説明する。まず、ジャンプして戻る基準の読出アドレスは、アタック前では基準線175Aである。そして、アタックを検出したときは、アドレスのジャンプをせず、そのまま連続してアドレスを読み出すから、クロスフェード停止区間43が終了したときには、読出アドレス24Bは、基準の読出アドレスが書込アドレスへ近接するずれ242が生じている。このままアタックが以後生じない場合にはなんら問題がないが、さらにアタックが生じた場合には、読出アドレス24A、Bがさらに書込アドレスに近づき、場合によっては追い越してしまうおそれがある。そこで、位相ずれの調整区間44を設けて、読出アドレスのずれ242をなくすように、バッファ出力信号17A、Bの読出アドレスを複数回のジャンプに分けて修正していく。具体的には、図2で示したジャンプ区間1762を通常より長くして、アタック前の書込アドレスに対する読出アドレスの差を示す基準線175Aに戻していくようにする。
【0067】
次に、図10を用いて、ピッチを下げる場合におけるアタックがあったときの処理について説明する。図10は、この処理の概念図である。概念的には、図9の説明と重複するので、アタックの検出方法、アタックを求めるための区間41の切り出し、読出アドレス制御部24、クロスフェードゲイン計算部25の動作は図9で説明したことと同様であり、同様の符号を用いて説明を省略する。以下、重要点、相違点だけを説明する。
【0068】
図10中央のクロスフェードゲイン計算部の動作250に示すように、図9と同様、アタック区間45を含むクロスフェード停止区間43では、クロスフェードを停止する。即ち、ゲイン比率25Aに示すように、ゲイン調整部261(図4参照)のゲインは0%として、ゲイン比率25Bに示すようにゲイン調整部262のゲインを100%とする。
【0069】
また、図10下の枠内に示すように、読出アドレス制御部の動作240では、アタックが生じる前の遅読み区間1771(図3参照)では、書込アドレスに対する読出アドレスの差は時間と共に増加し(なお、図10では、書込アドレス1740からのずれ量をマイナスで表しているのでこの増加量は絶対値となる。)、ジャンプ区間1772では書込アドレスに近づくようにジャンプする。
【0070】
アタック検出部213がアタックを検出した場合には、図10の読出アドレス24Bに示すように、クロスフェード調整区間42からクロスフェード停止区間43、サイクル179の半分の時間46が終わるまで、そのまま連続してアドレスを読み出す。この間では書込アドレスに対する読出アドレスが後退し続ける。
【0071】
図10に示すように、アタック前の基準の読出アドレスは基準線175Aであり、アタック区間45が終了した後は、基準の読出アドレスが、書込アドレスから遠ざかるずれ242が生じている。このずれ242は、今後アタックが生じない場合にはこのままずれを維持していても問題がないが、アタックが何度も生じる場合には、リング状に入出力を行なっているうちに、このリング上で1周期遅れてしまい、読出アドレスを書込アドレスが追い抜いてしまう恐れがある。そこで、位相ずれの調整区間44を設けて、アタック前の書込アドレスに対する読出アドレスの差を示す基準線175Aへ近づくように徐々にアドレスを戻していく。具体的には、位相ずれの調整区間44の間、図3で示したジャンプ区間1772を、それぞれアタック前の値より増加させるようにする。
【0072】
次に、図11を用いて、図9で説明したアタックの判定処理についてのフローを説明する。図11は、この処理のフロー図である。この処理はアタック検出部213が行う。
ST1において、音声入力信号100がマイナスからプラス方向へ0点をクロスするゼロクロス位置またはプラスからマイナス方向へ0点をクロスするゼロクロス位置のいずれかを基準にして音声入力信号100を区間41毎に区切るようにする。また、この区間41の切り出しは、図2の基本周期検出部212で検出した音声信号の基本周期から求まる周期を基準にして、このゼロクロスの位置に丸め込んで、区間41を区切るようにしてもよい。
ST2において、この切り出した区間を特定の個数を用意して、特定区間の波高値のパワーと移動平均値との比率を計算する。このパワーは、それぞれの区間41の波高値の2乗平均値Piを求めることに相当する。この計算が容易でなければ、波高値の2乗平均値をFFT解析により求めた特定周波数毎のゲインの2乗の足し算で代用しても良い。また、移動平均値として、この過去の特定の個数の区間41全体について時間平均Pavgを求める。
【0073】
ST3において、閾値を設けて、
Pi/Pavg>(閾値)
が成立する場合には、ST3の判断はYとなり、アタック検出部213は、ST4でアタックが成立すると判断する。この不等式が成立しない場合には、ST1〜3を繰り返す。即ち、ST3の判断はNとなり、S1に戻り、S3でNとなる限り、S1で新たに区間を切り出し、その新たに切り出した特定の区間S2でアタックがないか判断する。
なお、特定の区間は、音声入力信号100の頭のデータを入力するときは、移動平均値を求めるために、アタックの判定処理に先立って所定長の区間について前述の波高値の時間平均Pavgを計算しておく必要がある。
S5において、ST4でアタックがあった区間のIDを図2の制御部22に出力して、制御部22に伝達する。
【0074】
なお、以上の説明では、図4に示したようにバッファ出力信号17A、Bのみ出力して合成したが、3以上の出力タップを設けても良い。
【図面の簡単な説明】
【0075】
【図1】本実施形態の信号処理装置の内部構成を示す図
【図2】DSP2の内部構成を表すブロック図
【図3】波形メモリ、読出アドレス制御部の動作の一部を説明するための概念図
【図4】読出アドレス制御部、クロスフェードゲイン計算部の動作の概念図
【図5】クロスフェード方法の1つとしてゲインレベル一定で合成する方法の概念図
【図6】クロスフェード方法の1つとしてエネルギー和一定で合成する方法の概念図
【図7】ピッチを高くする場合の速読み区間と、ジャンプ区間との1サイクルを拡大した図であって、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図
【図8】ピッチを低くする場合の遅読み区間と、ジャンプ区間との1サイクルを拡大した図であって、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図
【図9】ピッチを高くする場合におけるアタックがあったときの処理についての概念図
【図10】ピッチを低くする場合におけるアタックがあったときの処理についての概念図
【図11】図9で説明したアタックを判定する処理についてのフロー図
【符号の説明】
【0076】
1−信号処理装置、 100−音声入力信号、 101−曲データ
172−書込/読出経路、 173−アドレス区画
174−書込方向、 1740−書込アドレス、 175−基準線
176−読出アドレス、 1761−速読み区間、 1762−ジャンプ区間
177−読出アドレス、 1771−遅読み区間、 1772−ジャンプ区間
178−直線、 179−サイクル、 18−データ/アドレスバス
212−基本周期検出部、 213−アタック検出部、 22−制御部
24−読出アドレス制御部、25−クロスフェードゲイン計算部
26−クロスフェード合成部、 261−ゲイン調整部、 262−ゲイン調整部
263−加算部、 29−ピッチ変更率、 3−D/A変換器
41−区間、 42−クロスフェード調整区間、 43−クロスフェード停止区間
【技術分野】
【0001】
音声信号のテンポを変えずにピッチを変換する信号処理装置に関する。
【背景技術】
【0002】
従来、時間軸の圧縮、伸張とクロスフェード処理の組み合わせにより、音声信号のテンポを変えずにピッチを変換する装置が開示されており、その手段としてディレイモジュレーション方式が広く利用されている(例えば、特許文献1参照。)。
【0003】
ディレイモジュレーション方式の概略は以下の通りである。即ち、このピッチを変更することは、音声信号のリングバッファへの書込速度と読出速度を異なる値にすることにより実現できる。ここで、このリングバッファには、特定の区間のデータ記憶領域の読出アドレスと書込アドレスをそれぞれリング状に巡回しながら、音声信号の書き込み、読み出しを行う。単にこれら方法により読み出しを行なっただけでは、ピッチと共にテンポも変化してしまうから、バッファ信号をブロック毎に読み出して、複数系統のブロックを交互にクロスフェード処理して重ね合わせ、テンポが変化しないようにする。ここで、このクロスフェードとは、接続される音声信号のブロックをフェードアウトすると共に、接続する音声信号のブロックをフェードインし、バッファ出力信号を継ぎ目なく出力する技術である(後述、図2参照。)。前述のリングバッファの読出アドレスポイント(以下、「読み出しタップ」という。)を複数設けることにより、音声入力系を複数用意して、この音声入力系のサンプリングデータをクロスフェードすることが行なわれている。
【0004】
特許文献1では、このフェードアウト、フェードインを行う信号の合成がうまく動作せず、リズム音楽において2度打ちまたはトレモロのように聞こえることを解消するため、合成する両者の音声の基音成分を低域通過フィルタを用いて取り出して、この基音成分の周期に基づいてクロスフェードを行う信号の位相差を補正する手段が開示されている。
【特許文献1】特開2002−169556号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1の装置では、基音成分の抽出等については詳述されているものの、位相差を補正する方法については、ほとんど記載されていない。しかしながら、クロスフェードは繰り返し行なわれるから、それぞれのクロスフェード時間について、単に位相差を合わせるだけでは、その区間が基音成分の周期からずれていくので、2度打ちまたはトレモロ感を解消するには十分でなかった。また、短い時間で鋭く立ち上がるアタック信号を有する信号に対しては、2度打ちまたはトレモロ感を解消するには十分でなかった。
【0006】
そこで、本発明は、このような問題に鑑み、元の音声信号のピッチを変更して出力する信号処理装置において、音声の不自然さを解消できる信号処理装置の提供を目的とする。
【課題を解決するための手段】
【0007】
本発明は、上述の課題を解決するための手段を以下のように構成している。
【0008】
(1)本発明は、
入力された音声入力信号が順次書き込まれるバッファと、
前記バッファに書き込まれている音声信号の基本周期を検出する基本周期検出手段と、
前記バッファから、並行して前記音声信号を読み出す2系統の読出手段と、
前記読出手段の読出アドレスを前記バッファへの書込速度と異なる速度に設定された読出速度で移動させ、この移動で読出アドレスが所定アドレス移動する毎に、前記読出速度によるアドレス進度の前記書込速度によるアドレス進度に対する差であるアドレス進度差を解消する方向に、前記読出アドレスをジャンプさせる読出アドレス制御手段であって、前記2系統の読出手段の読出アドレスのジャンプ点を前記基本周期における同じ位相のアドレスに制御するものと、
前記読出手段が読み出した音声信号を、前記読出アドレスがジャンプした点を開始点として前記基本周期の整数倍のアドレス長でフェードインし、前記読出アドレスがジャンプした点を終点として前記基本周期の整数倍のアドレス長でフェードアウトする手段であって、一方の読出手段が読み出した音声信号のフェードイン区間と他方の読出手段が読み出した音声信号のフェードアウト区間が重なるように合成して出力する信号合成手段と、
を備えた。
【0009】
本発明では、読出アドレス制御手段が、読出手段の読出アドレスを前記バッファへの書込速度と異なる速度に設定された読出速度で移動させているので前記読出手段で出力される音声信号のピッチを変更することができる。
【0010】
また、読出アドレス制御手段が「この移動で読出アドレスが所定アドレス移動する毎に、前記読出速度によるアドレス進度の前記書込速度によるアドレス進度に対する差であるアドレス進度差を解消する方向に、前記読出アドレスをジャンプさせ」ているので、テンポを一定に保つことができる。また、読出アドレス制御手段が「前記2系統の読出手段の読出アドレスのジャンプ点を前記基本周期における同じ位相のアドレスに制御」しているから、ジャンプしてから、次にジャンプするまでは、基本周期の整数倍となる。
【0011】
信号合成手段は、「前記基本周期の整数倍のアドレス長でフェードインし、前記読出アドレスがジャンプした点を終点として前記基本周期の整数倍のアドレス長でフェードアウトする」から、2系統の読出手段のうちジャンプした方は、ジャンプした時点でゲインが0になるから、ジャンプによるノイズを抑えることができる。また、「前記基本周期の整数倍のアドレス長で」フェードイン、フェードアウトするから、フェードインする区間とフェードアウトする区間をすべて基本周期の整数倍とすることができる。
また、この信号合成手段は、「一方の読出手段が読み出した音声信号のフェードイン区間と他方の読出手段が読み出した音声信号のフェードアウト区間が重なるように合成して出力する」からこの重なった区間でクロスフェードが行なわれ、その区間を基本周期の整数倍にすることができる。このように、読出アドレス制御手段が「前記2系統の読出のジャンプ点を前記基本周期における同じ位相のアドレスに制御」しているから、クロスフェード時間でフェードインする音声信号とフェードアウトする音声信号の位相を合わせることができ、滑らかにクロスフェードすることができる。また、信号合成手段がクロスフェードの区間を基本周期の整数倍にしているから、この位相がずれていかないから、この滑らかにクロスフェードすることができる効果を持続することができる。
【0012】
(2)本発明は、
前記バッファに書き込まれた音声信号から、振幅が大きいまたは振幅上昇が急激な信号の区間であるアタック部を検出するアタック検出手段を備え、
前記読出アドレス制御手段は、前記アタック部で前記読出アドレスをジャンプさせないように制御し、
前記信号合成手段は、前記読出手段が前記アタック部を読出している区間は、前記フェードイン、フェードアウトを停止して、一方の読出手段が読み出したアタック部の音声信号のみ出力する。
【0013】
本発明では、2以上のバッファ読出手段を設けてクロスフェード部で互いにクロスフェードして合成し、前記ジャンプによるノイズを目立たなくなるようにしているが、入力された音声信号のアタック部分では、このクロスフェードを行なった場合に、2度打ちやトレモロのように聞こえる可能性が高い。そこで、前記読出アドレス制御手段は、前記アタック部で前記読出アドレスをジャンプさせないように制御している。
【0014】
本発明は、クロスフェード調整機能、アタック部分を検出して、この部分だけクロスフェードを停止するようにして、1つのみの前記バッファ読出手段から出力されるバッファ出力信号を出力するよう調整している。したがって、トレモロのように聞こえる恐れがすくなく、音声の不自然さを解消できる。
【0015】
(3)本発明は、
前記読出アドレス制御手段は、読出アドレスが前記アタック部を通過した後、前記読出アドレスをジャンプさせるアドレス長を増加させ、前記アタック部で読出アドレスをジャンプさせなかったことによって増加した前記アドレス進度差を複数のジャンプで解消する。
【0016】
本発明では、アタックがない場合には、所定アドレス移動する毎にアドレス進度差を解消する方向にジャンプして、書込アドレスと読出アドレスとの差を一定範囲内にしている。しかし、アタックを検出した場合には、前記読出アドレス制御手段が前記アタック部で前記読出アドレスをジャンプさせないように制御しているから、アドレスの位置が大きくずれてしまい、その後の前記バッファに書き込むアドレス位置と前記バッファ出力信号の読出位置とのアドレスとの差がアタック毎にずれていく。バッファの容量は有限であるから、読出手段が1周期前のアドレスを読んでしまう恐れがある。本発明は、前記読出アドレスをジャンプさせるアドレス長を増加させることにより、アタックが生じる前の元の書込アドレスと読出アドレスとの差に戻すことができる。前記アドレス進度差を1度のジャンプではなく複数のジャンプで解消するから、アタック後の音質の劣化を目立たなくすることができる。
【0017】
(4)本発明は、
前記読出アドレス制御手段は、前記読出アドレスをジャンプさせるアドレス長を、前記基本周期の整数倍とする。
【0018】
(1)の構成において、基本周期検出手段は、低域部の基本周期を検出しており、前記読出アドレス調整手段は、前記クロスフェードを行う時間を前記基本周期の整数倍に調整しているが、前記ジャンプするアドレス量は、必ずしも前記基本周期の整数倍とは限らない場合がある。ジャンプするアドレス量が基本周期の整数倍にならない場合には、2系統の読出手段で読み出した音声信号をクロスフェードするときに、このジャンプしたことにより、互いに基本周期の位相がずれる恐れがある。
そこで、本発明では、前記読出アドレス制御制御は、このジャンプ時に、基本周期の整数倍の位置にジャンプするよう制御しているのでクロスフェードする音声信号の互いの位相を合わせることができるから、音声信号をクロスフェードで滑らかに接続することができ、音声の不自然さを解消できる。
【0019】
例を示して説明する。例えば、バッファへの書き込み速度より20%速く読み出した場合、読出信号を入力信号と同等のテンポとするために、所定アドレス移動する毎に、アドレス進度差を解消する方向に、前記読出アドレスをジャンプさせる。このとき、この20%分のアドレスのジャンプを行なってアドレスを後退させる。その場合に、この20%速く読み出している間に、例えば基本周期の8波長、読み出したとすると、20%戻れば、アドレスは、
8×(0.2/(1+0.2))=4/3波長ジャンプすることになり、基本周期の整数倍とならない。そこで、波長の小数点部分を切り上げて2波長とするか、切り下げて1波長とする。
【発明の効果】
【0020】
本発明によれば、クロスフェード部分において、クロスフェードする信号の位相を合わせているので、精度良く信号を合成することができ、音声の不自然さを解消できる。
【0021】
また、アタック部分を検出して、その部分のデータを読み出すときには、クロスフェードを停止して1つの音声信号のみを取り出すようにしているから、2度打ちやトレモロのように聞こえることを防止できる。
【発明を実施するための最良の形態】
【0022】
<本実施形態の信号処理装置の概略>
図3、図4を用いて、本実施形態の信号処理装置の概略を説明する(図3、図4の詳細は後述する。)。図3は、波形メモリ、読出アドレス制御部の動作の一部を説明するための概念図であり、図4は、後述するクロスフェードゲイン計算部の動作概念図である。本実施形態の信号処理装置は、音声信号のピッチを変更する機能を含んでいる。本実施形態の装置は、特定の区間のデータ記憶領域をリング状に巡回しながら、書き込み、読み出しを行うリングバッファ17を備え、このピッチの変更は、リングバッファからディジタル音声信号の読み出しの際に、読み出す速度を書込速度(図3の書込アドレスの時間変化1740参照。)より速くしたり、または遅くすることで実現する(図3の直線178参照。)。テンポを変えないよう、平均的な読出速度を書込速度と同等にするため、図3下に示すように、のこぎり刃状に、書込アドレス1740の時間変化と平行である基準線175にアドレスを戻す。また、ジャンプ時の音声信号のノイズを目立たないようにするため、図4右上に示すように互いに段差部分をずらせて出力した、2系統のリングバッファの読み出しタップ241A、B(図4左参照。)を設けて、これらの出力をクロスフェードして合成する(図4右下参照。)。ここで、クロスフェードは、2つの信号のうち1つをフェードアウトし、他方をフェードインして継ぎ目なく信号を接続する技術である。このアドレスのジャンプの時はこれに対応する音声信号の出力を0にすると共に、他方の系統から音声を出力する。
【0023】
<本実施形態の信号処理装置の内部構成>
図1を用いて、本実施形態の信号処理装置の内部構成について説明する。図1は、この信号処理装置の内部構成図である。図1に示すように、信号処理装置1は、カラオケ装置等の音響装置、またはサウンドボードを備えた汎用コンピュータ等の一部で構成され、以下の構成を備えている。即ち、CPU10とROM11とRAM12と外部記憶装置13と通信I/F14と表示回路15と入力装置16と波形メモリ17とDSP2とD/A変換器3とを備えており、これらはデータ/アドレスバス18で接続されている。以下、それぞれを説明する。
【0024】
図1のCPU10は、汎用のコンピュータのCPUまたはそれ以外の動作を含む中央集積回路で構成され、ROM11、RAM12のデータを用いて種々の計算や各部への指示を行う。
ROM11は、固定メモリであって、恒常的に用いるプログラムデータや、種々のBIOS等のデータを格納している。
RAM12は、外部記憶装置13内にあるデータを読み込んで一時的に格納する読み書き可能なメモリであって、プログラムや計算用データを格納している。
外部記憶装置13は、ハードディスク、CD−ROM等の光ディスクで構成され、大量のデータを記憶する記憶装置である。
通信I/F14は、通信回線で結ばれたホストコンピュータ、例えばカラオケ装置の管理室のサーバや、インターネット上にあるデータを入力するインターフェースであり、曲データ101を受信できる。
表示回路15は、カラオケ装置であれば、この画面に出力する画像データや設定画面OSD(オンスクリーンディスプレイ)を表示するための回路であり、また汎用コンピュータであれば、ビデオカードがこれに相当する。
入力装置16は、カラオケ装置であれば、リモコンや装置本体付属の操作子の集合からなる操作入力装置であり、汎用コンピュータであれば、キーボードやマウスがこれに相当する。
波形メモリ17は、通信I/F14を介して取得した音楽データ、図示しないマイクで収音した音声信号をA/D変換したデータ、または外部記憶装置13にある曲データ101を時系列的に書き込み、読み出しするバッファである。波形メモリ17は、音声信号のビットデータをサンプリングタイムで入出力する速度に対応できるものが必要である。この書込速度と読出速度を変えることで、時間軸圧伸が可能となる。
【0025】
DSP2は、後述するピッチ変更や時間軸圧伸等のディジタル音声信号処理を行う。
D/A変換器3は、ディジタル信号をアナログ信号に変換し、アナログの出力信号102を取り出す。この出力信号102は、増幅器を介してスピーカへ出力する。
【0026】
図1に示す信号処理装置1は、以上の通り、ピッチ変更や時間軸圧伸等のディジタル音声信号処理を行うDSP2のほかに、汎用のコンピュータと同様な構成を備えている。これにより、信号処理装置1は、さらに画面表示や音声信号処理を行うDSP2を制御する種々のプログラムを実行する。
【0027】
次に、図2を用いて、波形メモリ17とDSP2の構成をさらに詳しく説明する。図2は、図1で示した波形メモリ17、DSP2の内部構成を表すブロック図である。図2に示すように、DSP2は、波形解析部21と、この波形解析部21の結果に基づいて読出位置を算出して、波形メモリ17の読出アドレスを指示する読出アドレス制御部24を備える。また、波形メモリ17から読み出した出力であるバッファ出力信号17A、17Bの出力をフェードイン、フェードアウトを行なってクロスフェード合成するクロスフェード合成部26と、このクロスフェードのゲインカーブを計算するクロスフェードゲイン計算部25を備える。また、これらの動作を制御する制御部22を備えている。以下、それぞれの構成を説明する。
【0028】
図2の波形解析部21は、音声入力信号100の波形を解析するものであり、LPF211と基本周期検出部212とアタック検出部213を備えている。
【0029】
図2のLPF211は、低周波のみを取り出すためのフィルタであり、これを通すことにより高周波をカットして、基本周期の検出を容易にすることができる。
基本周期検出部212は、LPF211を通した音声入力信号100から周期性を検出して制御部22にその情報を送る。基本周期検出部212の基本周期信号検出の方法としては、例えばFFT変換により信号の周波数成分を検出することにより行う。
【0030】
図2のアタック検出部213は、音声入力信号100からアタックを検出する。ここで、アタックとは、平均的な音声の波高レベルより極端に高い部分または振幅上昇が急激な信号の区間である。アタック検出部213は、所定の時間間隔毎に切り出した音声入力信号100のエネルギー和をそれぞれ計算する。アタック検出部213は、特定の区間が平均的な音声の波高レベルより極端に高い場合またはエネルギーの増加が急激な場合に、この区間が音声のアタックの位置であると検出する(後述、図9、図11でその手段を詳述する。)。このアタック検出部213は、アタックを検出すると、制御部にアタックを検出した旨の信号を出力する。
図2の波形メモリ17は、前述の通り、音声入力信号100を一時的に蓄えるバッファであり、後述の図3で示すように、リング状に書き込み、読み出しを行うリングバッファである。読出速度と書込速度を異なる値にすることで、バッファ出力信号17A、17Bの時間軸圧伸を行うことができる。
なお、読出速度を速めたり、遅くしたりしてバッファ出力信号の時間軸圧伸を行う場合には、所望のピッチ変更率29に正確に対応する圧伸を行おうとすると読出アドレスは少数点以下を含むこととなる。そこで、波形メモリ17の出力を合成する加算部(不図示)を設け、小数点部分については、小数点をはさんで整数値の両側のアドレスに書き込まれたデータについて比例配分を行い、データを加算する。
図2の制御部22は、波形解析部21の解析結果に基づいて、読出アドレス制御部24やクロスフェードゲイン計算部25に指示を送る。例えば、基本周期検出部212の検出した周期に基づいてクロスフェード時に合成するバッファ出力信号17A、Bの基本周期の位相が合うように、クロスフェード開始時、終了時を調整する指示を送る。また、急峻に音量が上下するアタックの場合には、アタックの部分は急激な音量変化を伴うため、波形の接続により2度打ちが生じやすいことから、クロスフェード合成部26の動作をとめて、バッファ出力信号17A、Bのいずれかの出力をそのまま出すように、クロスフェードゲイン計算部25に指示を送る。
【0031】
読出アドレス制御部24は、バッファからの読出アドレスを制御する。
クロスフェード合成部26は、前述の通り、バッファ出力信号17A、Bを互いにフェードイン、フェードアウトして合成するものである。後述の通り、一定区間毎に読出アドレスをジャンプさせることによるノイズの発生を目立たなくさせるためバッファ出力信号17A、Bを用いて合成する。
【0032】
なお、図1では、汎用のコンピュータでも使用できるような構成としたが、本実施形態の装置で入力信号のピッチを変更する最小限の構成としては、DSP2と、波形メモリ17と、この波形メモリ17に音声入力信号100を供給する構成があれば十分である。
【0033】
<波形メモリの読み出し>
次に、図3を用いて、波形メモリ17の動作および読出アドレス制御部24の動作についてさらに詳しく説明する。図3は、波形メモリ17、読出アドレス制御部24の動作の一部を説明するための概念図である。図3は、波形メモリ17から出力される信号であるバッファ出力信号17A、Bのうち、17Aのみを表している。書き込み/読み出しは、同一の方向(書込方向174、読出方向171A)に沿って順次行う。その際、波形メモリ17のデータ容量(アドレス区画173の数)は有限であるから、書き込み/読み出し経路172に沿って、リング状に書き込み/読み出しを行う。これによりデータ容量の制限に対応することができる。バッファ出力信号17Aは、読出アドレスの指示241Aに従って波形メモリ17から読み出され、クロスフェード合成部26に送られる。
【0034】
図3に示す読出アドレス制御部24の動作について説明する。図3下のグラフは、書込アドレス1740と、読出アドレス176、177を示している。ここで、横軸が時刻[m秒]、縦軸がアドレスである。図3に示す波形メモリ17は、音声入力信号100の書込速度と異なるサンプリング周波数で(同じサンプリング周波数でアドレス進度が異なる場合を含む。)、バッファ出力信号17Aの読み出しをする。
【0035】
図3に示すように、書込アドレス1740は、一定速度(即ち、基準のサンプリング周波数)で書き込みを行う。信号処理装置1が音声入力信号100のピッチを上げた音声を出力する場合には、読出アドレス176(実線で図示)に沿って波形メモリ17からサンプリングデータを読み出す。読出アドレス176は、この速読み区間1761とジャンプ区間1762を1つのサイクル179としてアドレスの移動を繰り返す。速読み区間1761では書込アドレス1740の移動速度よりも大きい読出速度(直線178参照)でサンプリングデータを読み出す。これにより波形メモリ17から読み出した音声のピッチが高くなる。しかし、直線178にそってこのまま読み出していくと、音声のテンポが早くなってしまうだけでなく、書込アドレス1740と、直線178が交差して追い抜いてしまい、バッファ出力信号17Aがリングバッファの1周期前の信号を読み出す恐れがある。そこで、書込アドレス1740と同等の速度で読み出すために、各サイクル179の最後では、書込速度と等しい速度でアドレスが進む基準線175(中心線で図示)に戻すようにする。
【0036】
一方、図3で示す読出アドレス制御部24の動作に示すように、信号処理装置1が音声入力信号100のピッチを下げた音声を出力する場合には、読出アドレス176は、この遅読み区間1771とジャンプ区間1772を1つのサイクル179としてアドレスの移動を繰り返す。遅読み区間1771では書込アドレス1740の移動速度よりも小さい移動速度でサンプリングデータを読み出す。これにより、波形メモリ17から読み出した音声のピッチが低くなる。ピッチを上げる場合と同様、書込アドレス1740と同等の速度で読み出すために、各サイクル179の最後に書込アドレスの時間変化1740と速度の等しい基準線175に戻すようにする。
【0037】
図3に示すようにして読出アドレス176を基準線175に戻すときには、アドレスをジャンプすることになるから、ノイズが生じる。このアドレスのジャンプを目立たなくするために、本実施形態の装置ではクロスフェード合成部26を設けている。
【0038】
<読出アドレス制御部、クロスフェードゲイン計算部の動作>
次に、図4を用いて、読出アドレス制御部24、クロスフェードゲイン計算部25の動作についてさらに詳しく説明する。図4は、この動作の概念図である。ここで、クロスフェードは、2つの信号のうち1つをフェードアウトし、他方をフェードインして継ぎ目なく信号を接続する技術である。図3ではバッファ出力信号17Bを省略していたが、このクロスフェードを行うため、2系統のバッファ出力信号17A、17Bを取り出す。図3と同様の部分は、同様の符号を付して説明を準用する(符号がAの代わりにBとなっているものについても同様である。)。
【0039】
読出アドレス制御部24について説明する。図4右上の図は、速読み時の読出アドレス制御部24の動作を表しており、この2系統のバッファ出力信号17A、Bの読出アドレス24A、24Bの時間変化を表している。このグラフは、横軸は時刻[m秒]、縦軸は書込アドレス1740に対する読出アドレス176のアドレス差を表しており、横軸が時刻を表している。図4の横軸、基準線175Aは、それぞれ、図3の書込アドレス1740、基準線175を水平にしたものに相当する(図9、図10も同様である。)。図4に示すように、読出アドレス24A、24Bのジャンプ区間1762、1763では、読出アドレス制御部24は、このジャンプを発生させる時刻を異ならせている。これにより、アドレスのジャンプが同時に音声として出力されないから、アドレスのジャンプによるノイズを軽減できる。
【0040】
なお、ピッチを下げる場合は、後述、図10の左側に示すように、ピッチを下げる場合24A、24Bのグラフは基準線175Aに関して反転した形状となる。
【0041】
クロスフェードゲイン計算部25について説明する。図4左に示すバッファ出力信号17A、Bは、ゲイン調整部261、262でそれぞれゲインを調整し、加算部263で合成して、加算部263の出力信号をD/A変換器3に出力する。クロスフェードゲイン計算部25は、ゲイン調整部261、262にゲインの指示251をして、ゲイン調整部261、262はこの指示に基づいて、各ゲインの調整を行う。
【0042】
図4右下の枠内のグラフは、クロスフェードゲイン計算部25の動作を示しており、ゲイン調整部261、262に指示するゲインの値の時間変化を表している。ここで、横軸が時刻[m秒]、縦軸がゲイン比率[%]である。実線で示すゲイン比率25Aと点線で示すゲイン比率25Bに示すように、ゲイン比率25Aがフェードアウトしてゲインが0%となる部分253は、ゲイン比率25Bがフェードインしてゲインが100%となる部分254とする。また、ゲイン比率25Bがフェードアウトしてゲインが0%となる部分255は、ゲイン比率25Bがフェードインしてゲインが100%となる部分256とする。これにより、加算部263で加算した音量が略一定となるようにして、クロスフェードを行う。
【0043】
また、クロスフェードゲイン計算部25は、図4右上、右下の枠をつなぐ2点鎖線で示すように、読出アドレス24A、24Bのジャンプ区間1762、1763では、ジャンプする側のバッファ出力信号のゲインを0%に調整して、他方の出力を100%にする。これによりアドレスをジャンプする側のバッファ出力信号について、このジャンプによるノイズを軽減できる。
【0044】
また、クロスフェードゲイン計算部25は、ゲイン一定の区間がなく連続的に小刻みにクロスフェードを行なうようゲイン調整しているので、ジャンプ区間1762でジャンプするアドレス量が小さくなり、音色のずれを小さくすることができる。このように連続的にクロスフェードさせる場合には、いずれのクロスフェード時間においてもクロスフェードする信号の基本周期の位相をそろえた方が滑らかにクロスフェードさせることができる。
【0045】
そこで、クロスフェード時の基本周期の位相をそろえるため、図1で説明した基本周期検出部212は、基本周期を求めている。制御部22は、この基本周期をクロスフェードゲイン計算部25に指示する。クロスフェードゲイン計算部25は、この基本周期の位相をそろえるため、バッファ出力信号17Aのゲインをフェードアウトさせるとき(ゲイン比率25Aのゲインが100%〜0%になるまで)、フェードアウト区間長をこの基本周期の整数倍とする。また、クロスフェードゲイン計算部25は、これに合わせてバッファ出力信号17Bのゲインをフェードインさせるとき(ゲイン比率25Bが0%〜100%になるまで)、フェードイン区間長をこの基本周期の整数倍とする。17Aのゲインをフェードインさせるときも同様である。
【0046】
このように連続的にクロスフェードすると、17Bの読出アドレスの24Bの1つのサイクル179では、2つのクロスフェード時間を含むから、必然的に基本周期の偶数倍の波長252Bとなる。17Aの読出アドレスの24Bについても、同様に基本周期の偶数倍の波長252Aとなる(図4では、説明の容易のため基本周期の偶数倍である6波長分を例示している。)。
【0047】
次に、クロスフェードゲイン計算部25のクロスフェード方法について、図5、図6を用いて具体的に説明する。図5、図6は、クロスフェード方法の概念を表す図であり、図5は、ゲインレベル一定で合成する場合を示しており、図6はエネルギー和(波高値の2乗の時間積分で計算できる)が一定である場合を示している。いずれも、横軸が時刻[m秒]、縦軸がゲイン比率[%]である。
【0048】
図5(A)で示すように、フェードアウトする信号のゲインを、時間と共に直線的に減衰させ、図5(B)で示すように、フェードインする信号のゲインを、時間と共に直線的に増大させる。このようにして、フェードアウトする信号とフェードインする信号を加えると、音量和のレベルが一定となるようにすることができる。この合成方法は、一般に入力信号に周期性がある場合に滑らかに接続できるメリットがある。このように滑らかに接続するためには、フェードアウトする信号とフェードインする信号の位相を合わせる必要がある。図4の右に示すように、連続的にクロスフェードをする場合には、いずれのクロスフェード時間についても、周期的信号の位相を合わせる必要があるから、クロスフェード時間長を各々基本周期の整数倍にする。
【0049】
なお、図5では、図示の容易等のため、基本周期を8つ含むとしているが実際には、もっと多い周期でクロスフェードするのが通常である。)
一方、図6は、エネルギー和(波高値の2乗の時間積分で計算できる)が一定である場合を示しており、このようにクロスフェードのゲインを設定する場合には、結果としてフェードアウトする信号のエンベロープレベルの時間変化は図6(A)で示すような余弦関数の曲線になり、フェードインする信号のエンベロープレベルの時間変化は図6(B)で示すような正弦関数の曲線になる(なお、ゲインの2乗和が一定となる関数であれば、他の関数でも良い。)。この合成方法は、一般に入力信号に周期性がある場合には、加算部263で合成後のゲインレベルが変動するデメリットがあるが、周期性がなくとも滑らかに接続できるメリットがある。図6に示した方法においても、クロスフェード合成部26で滑らかに接続するためには、フェードアウトする信号とフェードインする信号の位相を合わせる。図4に示すように、連続的にクロスフェードをする場合には、位相を合わせるためクロスフェード時間を基本周期の整数倍にすることが望ましい(図6では、説明の容易等のため、基本周期を8つ含むとしている。)。本実施形態の装置1のクロスフェードゲイン計算部25は、図5、図6で説明したいずれかの方法でクロスフェードゲインを計算する。
【0050】
<ジャンプ区間におけるアドレスのジャンプ量を求める方法およびその修正方法>
以下、図7,8を用いてジャンプ区間1762におけるアドレスのジャンプ量を求める方法およびその修正方法について説明する。
【0051】
図7を用いて、ピッチを高くする場合に、読出アドレス制御部24がジャンプ区間1762のアドレスのジャンプ量を求める方法およびその修正について説明する。図7は、ピッチを高くする場合の速読み区間1761とジャンプ区間1762の1サイクルを拡大した図であり、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図である。
【0052】
まず、図7を用いて、ピッチを高くする場合のジャンプ区間1762のアドレスのジャンプ量を求める方法について説明する。前述の図3、4で説明したように、音声入力信号100のテンポとバッファ出力信号17A、Bのテンポを同等に保つため、ジャンプ区間1762では、書込アドレス1740の時間変化に平行である基準線175にアドレスを戻す。速読み区間1761において、読み出す速度を音声入力信号100の書込速度より25%速くしたとすると、サイクル179においてアドレスの標準移動量1767より25%多く進むことになる。したがって、ジャンプ区間1762のアドレスのジャンプ量は、原則として、
音声入力信号100のサンプリング周波数[1/秒]
×(179に示す)サイクル[m秒]/1000
×ピッチ増量率[%]/100
の計算により求めることができる。速読み区間1761でのアドレス進度に含まれる基本周期の数を基準にすると、ジャンプ区間1762に含まれる基本周期の数は、
速読み区間1761に含まれる基本周期の数
×ピッチ増量率[%]/(100+ピッチ増量率[%])
となる。図7の例では、速読み区間1761で、基本周期を偶数含む6波長進んで、この6波長×25%/(100%+25%)=1.2波長ジャンプして、ジャンプ先アドレスは1764となる。
【0053】
次に、図7を用いて、ピッチを高くする場合に、アドレスのジャンプ量を修正する方法について説明する。ここで、クロスフェード合成部26が滑らかに信号を接続するには、互いに合成する音声信号の基本周期の位相をそろえる方が好ましい。そのため、クロスフェード時間を基本周期の整数倍とする。そうすると1つのサイクル179は、2つのクロスフェード時間を含むから(図4参照)、1つのサイクル179を基本周期の偶数倍とするのが好ましい。この位置が図7の1765である。しかし、必ずしも、ジャンプしたアドレス量が基本周期の整数倍にならないことがある。図7の例ではアドレス1764のときの点1769に示すように、1.2波長ジャンプするので、ジャンプしたアドレス量は、基本周期の整数倍にならない。そこで、図7に示すように、ジャンプするアドレス量を、基本周期の整数倍となるアドレス位置であるアドレス1765にジャンプするように修正する。その後点線で示すアドレス1766に沿って、アドレスを移動させる。
【0054】
音声入力信号100の書込アドレス1740とテンポを合わせる観点から、この修正量は最小であることが好ましく、原則として調整前のジャンプ先アドレス1764から、基本周期の整数倍の位置のうち、書込アドレス1740に平行である基準線175に最も近い位置に戻す。しかし、周期が常時一定である場合には、例えばサイクル179で毎回ジャンプ区間1762の修正量が常時プラスとなって、テンポが狂う恐れがあるので、適宜修正量をプラスとマイナスを切り替える必要がある。この場合でも、調整前のジャンプ先アドレス1764の修正する方向(即ち、アドレスのプラスまたはマイナスの方向のいずれか)に沿って、基本周期の整数倍の位置のうち最も近い位置に戻す。後述、図8の例も同様である。
次に、図8を用いてピッチを下げる場合に、読出アドレス制御部24がジャンプ区間1772のアドレスのジャンプ量を求める方法およびその修正方法について説明する。図8は、ピッチを低くする場合の遅読み区間1771と、ジャンプ区間1772との1サイクルを拡大した図であり、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図である。
【0055】
図8を用いて、ピッチを下げる場合のアドレスのジャンプ量を求める方法について説明する。前述の図3、4で説明したように、音声入力信号100と、バッファ出力信号17A、Bのテンポを同等に保つため、ジャンプ区間1772では、書込アドレス1740に平行である基準線175に沿った位置にアドレスを戻すようにしている。したがって、ジャンプ区間1772のアドレスのジャンプ量は、原則として、
音声入力信号100のサンプリング周波数[1/秒]
×179に示すサイクル[m秒]/1000
×ピッチ減少率
の計算により求めることができる。遅読み区間1771でのアドレス進度に含まれる基本周期の数を基準にすると、ジャンプ区間1772に含まれる基本周期の数は、
遅読み区間1771に含まれる基本周期の数
×ピッチ減少率[%]/(100−ピッチ減少率[%])
となる。
【0056】
図8の例では、サイクル179で、基本周期4波長分進んだ後、基本周期4波長×25/(100−25)=4/3波長ジャンプする。調整前のジャンプ先アドレスは1774の位置となる。
【0057】
次に、図8を用いて、ピッチを下げる場合のアドレスのジャンプ量を修正する方法について説明する。図7で示した場合と同様、クロスフェード時間は、基本周期の整数倍とするのが好ましく、この実施形態では1つのサイクル179は2つのクロスフェード時間を含むから(図4参照)、1つのサイクル179では基本周期の偶数倍とするのが好ましい。しかし、図8の例のように、必ずしもジャンプ区間1772でジャンプするアドレス量(4/3波長)は、基本周期の整数倍とはならないので(図8のアドレス1774のときの点1779)、次のクロスフェードにおいて、互いに基本周期の位相がずれる恐れがある。そこで、図8に示すように、ジャンプしたアドレス量が基本周期の整数倍の位置のアドレスであるアドレス1775に戻すように修正する。音声入力信号100の書込アドレス1740とテンポを合わせる観点から、この1740に平行である基準線175を考慮すれば、この修正量は最小であることが好ましく、アドレス1774から、基本周期の整数倍の位置のうち最も近い位置に戻す。その後、図8の点線で示す1776に沿って、アドレスを移動させる。
【0058】
なお、本実施形態の信号処理装置を実装する場合には、サイクル179の中に、図7、図8で示した例よりも多くの基本周期の基本周期を含むことも可能である。
【0059】
<アタックの検出方法とアタックを検出した場合の処理>
以下、図9、図10を用いて、図2で示したアタックがあった場合の処理について詳細に説明する。
【0060】
図9を用い、図2を補助的に参照して、ピッチを上げる場合におけるアタックがあったときの処理について説明する。図9は、この処理についての概念図である。アタックとは、図9のアタック区間45に示すように、音声入力信号100のうち波高値の高い部分または振幅上昇が急激な信号の区間である。なお、ここでは、図示を容易にするためアタックを1周期の波形で表しているが、実際には数周期に渡るのが通常である(後述図10も同じ。)。
【0061】
前述、図4で説明したように、ジャンプ区間1762を目立たなくするため、クロスフェード合成部26は、バッファ出力信号17A、Bを合成している。しかし、アタック部は瞬発的に立ち上がるため、クロスフェードした場合に、2度打ちやトレモロのように聞こえる場合がある。そこで、この2度打ちやトレモロを防止するため、本実施形態の装置では、図2のアタック検出部213がアタックを検出した場合にはその旨の信号が制御部22に伝えられ、制御部22は、アタック区間45を含む区間で、クロスフェード停止区間43を設けるように各部を制御する。
以下、アタックの検出方法について説明し、その後、制御部22を受けたクロスフェードゲイン計算部25、読出アドレス制御部24の処理、アタック区間45以後の後処理について説明する。
【0062】
区間41の切り出し方法について説明する。音声入力信号100から、区間41の切り出す上で、この区間41のうちの1つの区間にアタックの部分の全体が含まれるように調整する方がこのアタックを処理する上で正確なアタックの位置を測ることができる。したがって音声入力信号100がマイナスからプラス方向へ0点をクロスするゼロクロス位置またはプラスからマイナス方向へ0点をクロスするゼロクロス位置のいずれかを基準に区間41を区切るようにする。また、図2の基本周期検出部212で検出した音声信号の基本周期から求まる周期を基準にして、このゼロクロス位置に丸め込んで、区間41を区切るようにしてもよい。
そして、この切り出した区間を所定の個数分用意して、それぞれの区間41の波高値の2乗平均値Piを求める。または、波高値の2乗平均値をFFT解析により求めた特定周波数毎のゲインの2乗の足し算で代用しても良い。また、所定の個数の区間41を合わせて波高値の時間平均Pavgを求める。
アタック検出部213は、このような区間毎の時間平均の波高値の2乗と、計算する全区間の移動平均を求め、閾値を設けて
Pi/Pavg>(閾値)
が成立する場合には、アタック検出部213は、アタックが成立すると判断する。
【0063】
図2の制御部22は、アタック検出部213からのアタックが成立した旨の信号を受けて、読出アドレス制御部24、クロスフェードゲイン計算部25に対して、クロスフェード停止区間43の前のクロスフェード調整区間42からアタックの処理を行うように制御する。
【0064】
アタックを検出した場合のクロスフェードゲイン計算部の動作250について説明する。アタックを検出した場合、クロスフェードを停止するため、アタックを含むクロスフェード停止区間43を設けて、この区間では、クロスフェードゲイン計算部25は、図4のゲイン調整部261、262のいずれかの片方のゲイン調整を100%、他方を0%とする。図9の例では、アタック区間45の開始前にフェードインしているバッファ出力信号17Bについて、ゲイン比率25Bを100%として、他方のバッファ出力信号17Aのゲイン比率25Aを0%としている。
【0065】
同じく図9を用いて、読出アドレス制御部の動作240について説明する。クロスフェード停止区間43の間は、読出アドレス制御部24は、100%のゲイン比率25Bに対応する読出アドレス24Bについてアドレスのジャンプをせず、クロスフェード調整区間42からクロスフェード停止区間43、サイクル179の半分の時間46が終わるまで、そのまま連続してアドレスを読み出す。この間では書込アドレスに対する読出アドレスが接近し続ける。また、この間では、他方の読出アドレス24Aの読み出しを停止する(または、停止しなくとも良いが、図9中央のクロスフェードゲイン計算部の動作250に示すように、この読出アドレス24Aの出力を図4に示すゲイン調整部261によりゲインを0とする。)
アタックを検出した場合には、クロスフェード調整区間42を基本周期の整数倍にするため、図9に示すようなクロスフェード調整区間42の長さを基本周期の波長刻みで修正する。また、この修正では、アタック45を含むクロスフェード停止区間43が最小になるように、クロスフェード調整区間42でフェードインする時刻を決定する。
【0066】
同じく図9を用いて、クロスフェード停止区間43以後の後処理について説明する。まず、ジャンプして戻る基準の読出アドレスは、アタック前では基準線175Aである。そして、アタックを検出したときは、アドレスのジャンプをせず、そのまま連続してアドレスを読み出すから、クロスフェード停止区間43が終了したときには、読出アドレス24Bは、基準の読出アドレスが書込アドレスへ近接するずれ242が生じている。このままアタックが以後生じない場合にはなんら問題がないが、さらにアタックが生じた場合には、読出アドレス24A、Bがさらに書込アドレスに近づき、場合によっては追い越してしまうおそれがある。そこで、位相ずれの調整区間44を設けて、読出アドレスのずれ242をなくすように、バッファ出力信号17A、Bの読出アドレスを複数回のジャンプに分けて修正していく。具体的には、図2で示したジャンプ区間1762を通常より長くして、アタック前の書込アドレスに対する読出アドレスの差を示す基準線175Aに戻していくようにする。
【0067】
次に、図10を用いて、ピッチを下げる場合におけるアタックがあったときの処理について説明する。図10は、この処理の概念図である。概念的には、図9の説明と重複するので、アタックの検出方法、アタックを求めるための区間41の切り出し、読出アドレス制御部24、クロスフェードゲイン計算部25の動作は図9で説明したことと同様であり、同様の符号を用いて説明を省略する。以下、重要点、相違点だけを説明する。
【0068】
図10中央のクロスフェードゲイン計算部の動作250に示すように、図9と同様、アタック区間45を含むクロスフェード停止区間43では、クロスフェードを停止する。即ち、ゲイン比率25Aに示すように、ゲイン調整部261(図4参照)のゲインは0%として、ゲイン比率25Bに示すようにゲイン調整部262のゲインを100%とする。
【0069】
また、図10下の枠内に示すように、読出アドレス制御部の動作240では、アタックが生じる前の遅読み区間1771(図3参照)では、書込アドレスに対する読出アドレスの差は時間と共に増加し(なお、図10では、書込アドレス1740からのずれ量をマイナスで表しているのでこの増加量は絶対値となる。)、ジャンプ区間1772では書込アドレスに近づくようにジャンプする。
【0070】
アタック検出部213がアタックを検出した場合には、図10の読出アドレス24Bに示すように、クロスフェード調整区間42からクロスフェード停止区間43、サイクル179の半分の時間46が終わるまで、そのまま連続してアドレスを読み出す。この間では書込アドレスに対する読出アドレスが後退し続ける。
【0071】
図10に示すように、アタック前の基準の読出アドレスは基準線175Aであり、アタック区間45が終了した後は、基準の読出アドレスが、書込アドレスから遠ざかるずれ242が生じている。このずれ242は、今後アタックが生じない場合にはこのままずれを維持していても問題がないが、アタックが何度も生じる場合には、リング状に入出力を行なっているうちに、このリング上で1周期遅れてしまい、読出アドレスを書込アドレスが追い抜いてしまう恐れがある。そこで、位相ずれの調整区間44を設けて、アタック前の書込アドレスに対する読出アドレスの差を示す基準線175Aへ近づくように徐々にアドレスを戻していく。具体的には、位相ずれの調整区間44の間、図3で示したジャンプ区間1772を、それぞれアタック前の値より増加させるようにする。
【0072】
次に、図11を用いて、図9で説明したアタックの判定処理についてのフローを説明する。図11は、この処理のフロー図である。この処理はアタック検出部213が行う。
ST1において、音声入力信号100がマイナスからプラス方向へ0点をクロスするゼロクロス位置またはプラスからマイナス方向へ0点をクロスするゼロクロス位置のいずれかを基準にして音声入力信号100を区間41毎に区切るようにする。また、この区間41の切り出しは、図2の基本周期検出部212で検出した音声信号の基本周期から求まる周期を基準にして、このゼロクロスの位置に丸め込んで、区間41を区切るようにしてもよい。
ST2において、この切り出した区間を特定の個数を用意して、特定区間の波高値のパワーと移動平均値との比率を計算する。このパワーは、それぞれの区間41の波高値の2乗平均値Piを求めることに相当する。この計算が容易でなければ、波高値の2乗平均値をFFT解析により求めた特定周波数毎のゲインの2乗の足し算で代用しても良い。また、移動平均値として、この過去の特定の個数の区間41全体について時間平均Pavgを求める。
【0073】
ST3において、閾値を設けて、
Pi/Pavg>(閾値)
が成立する場合には、ST3の判断はYとなり、アタック検出部213は、ST4でアタックが成立すると判断する。この不等式が成立しない場合には、ST1〜3を繰り返す。即ち、ST3の判断はNとなり、S1に戻り、S3でNとなる限り、S1で新たに区間を切り出し、その新たに切り出した特定の区間S2でアタックがないか判断する。
なお、特定の区間は、音声入力信号100の頭のデータを入力するときは、移動平均値を求めるために、アタックの判定処理に先立って所定長の区間について前述の波高値の時間平均Pavgを計算しておく必要がある。
S5において、ST4でアタックがあった区間のIDを図2の制御部22に出力して、制御部22に伝達する。
【0074】
なお、以上の説明では、図4に示したようにバッファ出力信号17A、Bのみ出力して合成したが、3以上の出力タップを設けても良い。
【図面の簡単な説明】
【0075】
【図1】本実施形態の信号処理装置の内部構成を示す図
【図2】DSP2の内部構成を表すブロック図
【図3】波形メモリ、読出アドレス制御部の動作の一部を説明するための概念図
【図4】読出アドレス制御部、クロスフェードゲイン計算部の動作の概念図
【図5】クロスフェード方法の1つとしてゲインレベル一定で合成する方法の概念図
【図6】クロスフェード方法の1つとしてエネルギー和一定で合成する方法の概念図
【図7】ピッチを高くする場合の速読み区間と、ジャンプ区間との1サイクルを拡大した図であって、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図
【図8】ピッチを低くする場合の遅読み区間と、ジャンプ区間との1サイクルを拡大した図であって、アドレスのジャンプ量を計算する方法と、このジャンプ量を修正する方法を表す概念図
【図9】ピッチを高くする場合におけるアタックがあったときの処理についての概念図
【図10】ピッチを低くする場合におけるアタックがあったときの処理についての概念図
【図11】図9で説明したアタックを判定する処理についてのフロー図
【符号の説明】
【0076】
1−信号処理装置、 100−音声入力信号、 101−曲データ
172−書込/読出経路、 173−アドレス区画
174−書込方向、 1740−書込アドレス、 175−基準線
176−読出アドレス、 1761−速読み区間、 1762−ジャンプ区間
177−読出アドレス、 1771−遅読み区間、 1772−ジャンプ区間
178−直線、 179−サイクル、 18−データ/アドレスバス
212−基本周期検出部、 213−アタック検出部、 22−制御部
24−読出アドレス制御部、25−クロスフェードゲイン計算部
26−クロスフェード合成部、 261−ゲイン調整部、 262−ゲイン調整部
263−加算部、 29−ピッチ変更率、 3−D/A変換器
41−区間、 42−クロスフェード調整区間、 43−クロスフェード停止区間
【特許請求の範囲】
【請求項1】
入力された音声入力信号が順次書き込まれるバッファと、
前記バッファに書き込まれている音声信号の基本周期を検出する基本周期検出手段と、
前記バッファから、並行して前記音声信号を読み出す2系統の読出手段と、
前記読出手段の読出アドレスを前記バッファへの書込速度と異なる速度に設定された読出速度で移動させ、この移動で読出アドレスが所定アドレス移動する毎に、前記読出速度によるアドレス進度の前記書込速度によるアドレス進度に対する差であるアドレス進度差を解消する方向に、前記読出アドレスをジャンプさせる読出アドレス制御手段であって、前記2系統の読出手段の読出アドレスのジャンプ点を前記基本周期における同じ位相のアドレスに制御するものと、
前記読出手段が読み出した音声信号を、前記読出アドレスがジャンプした点を開始点として前記基本周期の整数倍のアドレス長でフェードインし、前記読出アドレスがジャンプした点を終点として前記基本周期の整数倍のアドレス長でフェードアウトする手段であって、一方の読出手段が読み出した音声信号のフェードイン区間と他方の読出手段が読み出した音声信号のフェードアウト区間が重なるように合成して出力する信号合成手段と、
を備えた信号処理装置。
【請求項2】
前記バッファに書き込まれた音声信号から、振幅が大きいまたは振幅上昇が急激な信号の区間であるアタック部を検出するアタック検出手段を備え、
前記読出アドレス制御手段は、前記アタック部で前記読出アドレスをジャンプさせないように制御し、
前記信号合成手段は、前記読出手段が前記アタック部を読出している区間は、前記フェードイン、フェードアウトを停止して、一方の読出手段が読み出したアタック部の音声信号のみ出力する請求項1に記載の信号処理装置。
【請求項3】
前記読出アドレス制御手段は、読出アドレスが前記アタック部を通過した後、前記読出アドレスをジャンプさせるアドレス長を増加させ、前記アタック部で読出アドレスをジャンプさせなかったことによって増加した前記アドレス進度差を複数のジャンプで解消する請求項2に記載の信号処理装置。
【請求項4】
前記読出アドレス制御手段は、前記読出アドレスをジャンプさせるアドレス長を、前記基本周期の整数倍とする請求項1、請求項2、請求項3のいずれかに記載の信号処理装置。
【請求項1】
入力された音声入力信号が順次書き込まれるバッファと、
前記バッファに書き込まれている音声信号の基本周期を検出する基本周期検出手段と、
前記バッファから、並行して前記音声信号を読み出す2系統の読出手段と、
前記読出手段の読出アドレスを前記バッファへの書込速度と異なる速度に設定された読出速度で移動させ、この移動で読出アドレスが所定アドレス移動する毎に、前記読出速度によるアドレス進度の前記書込速度によるアドレス進度に対する差であるアドレス進度差を解消する方向に、前記読出アドレスをジャンプさせる読出アドレス制御手段であって、前記2系統の読出手段の読出アドレスのジャンプ点を前記基本周期における同じ位相のアドレスに制御するものと、
前記読出手段が読み出した音声信号を、前記読出アドレスがジャンプした点を開始点として前記基本周期の整数倍のアドレス長でフェードインし、前記読出アドレスがジャンプした点を終点として前記基本周期の整数倍のアドレス長でフェードアウトする手段であって、一方の読出手段が読み出した音声信号のフェードイン区間と他方の読出手段が読み出した音声信号のフェードアウト区間が重なるように合成して出力する信号合成手段と、
を備えた信号処理装置。
【請求項2】
前記バッファに書き込まれた音声信号から、振幅が大きいまたは振幅上昇が急激な信号の区間であるアタック部を検出するアタック検出手段を備え、
前記読出アドレス制御手段は、前記アタック部で前記読出アドレスをジャンプさせないように制御し、
前記信号合成手段は、前記読出手段が前記アタック部を読出している区間は、前記フェードイン、フェードアウトを停止して、一方の読出手段が読み出したアタック部の音声信号のみ出力する請求項1に記載の信号処理装置。
【請求項3】
前記読出アドレス制御手段は、読出アドレスが前記アタック部を通過した後、前記読出アドレスをジャンプさせるアドレス長を増加させ、前記アタック部で読出アドレスをジャンプさせなかったことによって増加した前記アドレス進度差を複数のジャンプで解消する請求項2に記載の信号処理装置。
【請求項4】
前記読出アドレス制御手段は、前記読出アドレスをジャンプさせるアドレス長を、前記基本周期の整数倍とする請求項1、請求項2、請求項3のいずれかに記載の信号処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2007−264280(P2007−264280A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−88831(P2006−88831)
【出願日】平成18年3月28日(2006.3.28)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願日】平成18年3月28日(2006.3.28)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
[ Back to top ]