JP4179268B2 - データ合成装置およびデータ合成処理のプログラム - Google Patents

データ合成装置およびデータ合成処理のプログラム Download PDF

Info

Publication number
JP4179268B2
JP4179268B2 JP2004339752A JP2004339752A JP4179268B2 JP 4179268 B2 JP4179268 B2 JP 4179268B2 JP 2004339752 A JP2004339752 A JP 2004339752A JP 2004339752 A JP2004339752 A JP 2004339752A JP 4179268 B2 JP4179268 B2 JP 4179268B2
Authority
JP
Japan
Prior art keywords
waveform data
voice
data
voice waveform
value
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.)
Active
Application number
JP2004339752A
Other languages
English (en)
Other versions
JP2006146095A (ja
Inventor
吾朗 坂田
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2004339752A priority Critical patent/JP4179268B2/ja
Priority to US11/285,601 priority patent/US7523037B2/en
Publication of JP2006146095A publication Critical patent/JP2006146095A/ja
Application granted granted Critical
Publication of JP4179268B2 publication Critical patent/JP4179268B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L13/00Speech synthesis; Text to speech systems
    • G10L13/02Methods for producing synthetic speech; Speech synthesisers
    • G10L13/033Voice editing, e.g. manipulating the voice of the synthesiser
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/131Mathematical functions for musical analysis, processing, synthesis or composition
    • G10H2250/261Window, i.e. apodization function or tapering function amounting to the selection and appropriate weighting of a group of samples in a digital signal within some chosen time interval, outside of which it is zero valued
    • G10H2250/285Hann or Hanning window
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/471General musical sound synthesis principles, i.e. sound category-independent synthesis methods
    • G10H2250/481Formant synthesis, i.e. simulating the human speech production mechanism by exciting formant resonators, e.g. mimicking vocal tract filtering as in LPC synthesis vocoders, wherein musical instruments may be used as excitation signal to the time-varying filter estimated from a singer's speech
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/90Pitch determination of speech signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

本発明は、データ合成装置およびデータ合成処理のプログラムに関し、特に、人間の声の特徴であるフォルマントを持つ音声波形データと、楽器の演奏などによって発生される楽音波形データとを合成するデータ合成装置およびデータ合成処理のプログラムに関するものである。
従来、人間の声の高さを鍵盤楽器から出力された音のピッチ(音高)に変換する装置としてボコーダが知られている。ボコーダにおいては、入力された人間の声の音声波形データを複数の周波数成分に分けるとともに、鍵盤楽器から出力される楽音波形データを分析して、音声波形データと楽音波形データとを合成する。その結果、人間の声の音色を楽器の音の音高で発音することができる。
このようなデータ合成によって、人間の発生する音声による歌詞を楽音として演奏する電子楽器の特許がある。
この特許によれば、音高指定情報を発生する鍵盤などの音高指定情報発生手段と、人間の声の発音を特徴付ける複数のフォルマントのそれぞれの時系列情報を記憶したROMなどのフォルマント情報記憶手段と、音高指定情報発生手段からの音高指定情報の発生に応答して、所定のシーケンスで時系列情報を順次読み出す読み出し手段であって、音高指定情報が所定の時間内に連続して発生した場合にはその連続した最初の音高指定情報による以外ではシーケンスを進めないものと、音高指定情報発生手段から発生される各音高指定情報ごとに、音高指定情報と読み出し手段で読み出される順次のフォルマント情報とに基づく音声を形成するフォルマント形成音源であって、複数の音声を並列的に形成可能なものとを具備している。
フォルマントとは、人間の声のスペクトル分布であり、声を特徴づけるものである。人の声の周波数分析をすると、発音の違いで特定のスペクトルを示すことが分かる。例えば、「あ」と発声すると、誰が発声しても声の性質に関係なく「あ」と聴こえる。これは、「あ」のスペクトルが、誰の声であっても同じスペクトル分布を示すからである。
図1のROM15で構成されたフォルマント情報記憶手段は、音節データ用シーケンステーブルで構成されている。この音節データ用シーケンステーブルは、図2に示すように、周波数シーケンサとレベルシーケンサとからなり、それぞれ人間の音声の各音節(50音、各濁音、半濁音等)ごとにそれらを特徴付ける主な4つのフォルマントの周波数F1〜F4およびレベル(振幅)L1〜L4を時系列的に記憶している。
したがって、音高指定情報発生手段により指定された音高の人間の音声を合成することができる。また、複数音高、同一音声の同時発音、すなわちコーラス歌唱が可能となる。(特許文献1参照)
この場合のフォルマント形成音源としては、他の特許公開公報におけるフォルマント合成装置が用いられる。このフォルマント合成装置は、この特許公開公報の第1図に示されており、パルス発生回路1、搬送波発生回路2、変調波形発生回路3、加算器4,5、対数/真数変換テーブル6、D/A変換器7で構成されている。そして、与えられるフォルマント中心周波数情報値Ff、フォルマント基本周波数情報値Fo、フォルマント形状パラメータ(バンド幅値ka,kb、シフト値na,nb)、およびフォルマント音の振幅(エンベロープ)波形データ等に基づいてフォルマント音を合成する。すなわち、パルス発生回路1における位相アキュムレータ11は、所定のクロックパルスφに同期してフォルマント基本周波数情報値Foを累算する。また、搬送波発生回路2においては、位相アキュムレータ21は、クロックパルスφに同期してフォルマント中心周波数情報値Ffを累算し、その累算値qFfを正弦波メモリ22の読み出しアドレス信号として順次出力する。(特許文献2参照)
特許2800465号公報 特開平2−262698号公報
しかしながら、上記特許文献1のように、人間の音声の各音節(50音、各濁音、半濁音等)ごとにそれらを特徴付ける主な4つのフォルマントの周波数F1〜F4およびレベル(振幅)L1〜L4を時系列的にROMに記憶している場合には、人間の音声の波形データがすでに分析されて記憶されている。すなわち、上記特許文献1のフォルマント形成音源を構成する上記特許文献2のフォルマント合成装置では、フォルマント中心周波数情報値Ff、フォルマント基本周波数情報値Fo、フォルマント形状パラメータ(バンド幅値ka,kb、シフト値na,nb)、およびフォルマント音の振幅(エンベロープ)波形データ等を外部から入力して、所定のクロックパルスφに同期してフォルマント基本周波数情報値Foを累算するとともに、、クロックパルスφに同期してフォルマント中心周波数情報値Ffを累算し、その累算値qFfを正弦波メモリ22の読み出しアドレス信号として順次出力する構成になっている。
したがって、ROMの音声波形データと鍵盤からの楽音波形データとの合成は容易であるが、例えば、マイクから人間の音声が入力された場合や、マイクから入力された音声を記録したメモリから読み出す場合には、その音声波形データの周期が分からないため位相ずれが生じて正常なデータ合成ができない。また、音声に含まれている倍音を基音と誤って検出してデータ合成を行う可能性があるので、出力される音声に歪みが発生するおそれがある。
本発明は、このような従来の課題を解決するためのものであり、マイクから得られる音声波形データや、マイクから入力された音声を記録したメモリから読み出した音声波形データであっても、音声波形データの基音に基づいて、演奏波形データと位相ずれのないデータ合成を行うことにより、人間の声の特徴であるフォルマントを有する合成波形データを歪みのない状態で出力することを目的とする。
請求項1に記載のデータ合成装置は、音声波形データの正のピークホールドおよび負のピークホールドを生成し、当該生成された正のピークホールドが前記音声波形データの正のピークから一定時間が経過した後から所定の減衰係数で減衰した値と当該音声波形データの振幅とが交差する第1のポイント、前記生成された負のピークホールドが前記音声波形データの負のピークから前記一定時間が経過した後から前記所定の減衰係数で減衰した値と当該音声波形データの振幅とが交差する第2のポイント、および前記音声波形データが負から正に変化するゼロクロスポイントを順次検出して、当該音声波形データの周期の始期を検出する周期検出手段と、前記周期検出手段によって検出された周期の始期から、当該音声波形データを第1の記憶手段に記憶する第1の記憶制御手段と、特定の周期のパルス波形データを第2の記憶手段に記憶する第2の記憶制御手段と、前記第1の記憶手段に記憶された音声波形データと前記第2の記憶手段に記憶されたパルス波形データとを畳み込み演算して、前記第2の記憶手段に記憶された特定の周期に同期した合成波形データを出力する畳込演算手段と、を備えた構成になっている。
請求項に記載のデータ合成処理のプログラムは、音声波形データの正のピークホールドおよび当該音声波形データの負のピークホールドを生成し、当該生成された正のピークホールドが前記音声波形データの正のピークから一定時間が経過した後から所定の減衰係数で減衰した値と前記音声波形データの振幅とが交差する第1のポイント、前記生成された負のピークホールドが前記音声波形データの負のピークから前記一定時間が経過した後から前記所定の減衰係数で減衰した値と前記音声波形データの振幅とが交差する第2のポイント、および当該音声波形データが負から正に変化するゼロクロスポイントを順次検出して、当該音声波形データの周期の始期を検出する第1のステップと、前記第1のステップによって検出された周期の始期から、当該音声波形データを第1の記憶手段に記憶する第2のステップと、特定の周期のパルス波形データを第2の記憶手段に記憶する第3のステップと、前記第1の記憶手段に記憶された音声波形データと前記第2の記憶手段に記憶されたパルス波形データとを畳み込み演算して、前記第2の記憶手段に記憶された特定の周期に同期した合成波形データを出力する第4のステップと、をコンピュータに実行させる。
本発明のデータ合成装置およびデータ合成処理のプログラムによれば、マイクから得られる音声波形データや、マイクから入力された音声を記録したメモリから読み出した音声波形データであっても、音声波形データの基音に基づいて、演奏波形データと位相ずれのないデータ合成を行うことにより、人間の声の特徴であるフォルマントを有する合成波形データを歪みのない状態で出力することができるという効果が得られる。
以下、本発明によるデータ合成装置の第1実施形態、第2実施形態、および、これらの変形例について、電子鍵盤楽器を例に採って説明する。
図1は、第1実施形態における電子鍵盤楽器の構成を示すブロック図である。CPU1は、システムバスを介して、鍵盤2、スイッチ部3、ROM4、RAM5、表示部6、A/D変換器8、楽音生成部9に接続されており、これら各部との間で指令およびデータを授受して、この電子鍵盤楽器全体を制御する。さらに、A/D変換器8には、音声を入力するマイク7が接続されている。また、楽音生成部9には、D/A変換器10が接続され、D/A変換器10には増幅器やスピーカ(図示せず)を有するサウンドシステム11が接続されている。
鍵盤2は、押鍵に応じてその鍵に対応する音高、押鍵の強弱に応じたベロシティなどをCPU1に入力する。スイッチ部3は、スタートスイッチやデータ合成スイッチなどの複数のスイッチで構成されている。ROM4には、CPU1によって実行されるデータ合成処理のプログラム、種々の変数の初期値などがあらかじめ記憶されている。RAM5は、CPU1のワークエリアであり、データ合成処理の対象となるデータを一時的に記憶するエリア、データ合成処理の実行に必要なレジスタ、フラグ、および変数のエリアが設けられている。表示部6は、データ合成のメッセージなどを表示する。A/D変換器8は、マイク7から入力された音声信号をディジタルの音声波形データに変換してCPU1に入力する。楽音生成部9は、CPU1から入力された波形データに応じて楽音信号を生成してD/A変換器10に入力する。D/A変換器10は、楽音生成部9から入力された楽音信号をディジタルからアナログに変換してサウンドシステム11に出力して発音させる。
図2は、第1実施形態におけるデータ合成処理機能を示すブロック図である。A/D変換器8は、マイク7から入力された人間の声のアナログの音声信号を所定のサンプリング周波数(例えば、44.1kHz)でサンプリングして、所定のビットからなるサンプル(例えば、16ビット/サンプル)ごとのディジタル化された音声波形データを音声波形メモリ21に書き込むために出力する。音声波形データには、人間の声の高さに対応したレベルの山が周期ごとに繰り返される。すなわち、音声波形データには周期情報が含まれている。
音声波形データの書込みの際には、周期検出部22は、音声波形データの周期を検出して、周期パルスを発生して書込制御部23に入力する。書込制御部23は、その周期パルスに基づいて、音声波形メモリ21に対する書き込み制御を行う。その他、パルスジェネレータ24、演奏波形メモリ25、畳込演算部26、窓関数テーブル27が設けられている。なお、図2のデータ合成処理機能の各要素において、音声波形メモリ21および演奏波形メモリ25は図1のRAM5によって構成され、パルスジェネレータ24、周期検出部22、書込制御部23、および畳込演算部26は、図1のCPU1の制御処理によって構成され、窓関数テーブル27は図1のROM4によって構成される。
図3は、周期検出部22によって周期を検出して周期パルスを発生する信号処理を示す図である。音声波形データは基音の他に倍音を含んでいる。正の山および負の山の振幅を取得するピークホールドの値は、山のピークが過ぎると所定の減衰係数で減衰し、音声波形データと交差すると音声波形データとともに増加し、次の山のピークが過ぎると再び減衰する動作を繰り返す。
すなわち、周期検出部22は、図3の点線の矢印で示すように、正のエンベロープのピークホールドの値が減衰して音声波形データの振幅と交差するa点を検出した後、負のエンベロープのピークホールドの値が減衰して音声波形データの振幅と交差するb点を検出すると、次に音声波形データが負から正に変化するゼロクロスポイントc点を検出する。そして、ゼロクロスポイントのタイミングで周期パルスを発生する。倍音の振幅は基音の振幅よりも小さいので、正のエンベロープのピークホールドの値が減衰して音声波形データの振幅と交差するa点を検出した後、倍音の音声波形データの振幅と交差するa’点を検出しても、負のエンベロープのピークホールドの値が減衰して音声波形データの振幅と交差するb点を検出するまでは、ゼロクロスポイントであるc点の検出は行わない。したがって、図3に示すように、基音の一定の周期Prdで周期パルスを発生して書込制御部23に入力する。
書込制御部23は、この周期パルスを音声波形データの周期の始期として、音声波形メモリ21に書き込み、インパルス応答として記憶する。したがって、音声波形メモリ21は、音声波形データの少なくとも1周期以上のメモリサイズ(WaveSize)が必要である。図4は、音声波形メモリ21のメモリサイズWaveSizeと、音声波形データの周期Prdとの関係を示す図である。図4(A)は、Prd≦WaveSize<2Prdの場合であり、音声波形メモリ21のメモリサイズが音声波形データの1周期以上で2周期未満の場合である。図4(B)は、2Prd≦WaveSize<3Prdの場合であり、音声波形メモリ21のメモリサイズが音声波形データの2周期以上で3周期未満の場合である。
図2のパルスジェネレータ24は、鍵盤2から入力される演奏データに含まれている音高すなわちピッチに応じてパルス波形を発生して演奏波形メモリ25に書き込む。図5は、パルスジェネレータ24の内部構成を示す図である。鍵盤2からは異なる鍵の同時押鍵による和音のピッチもあり、ある鍵が押鍵された後、離鍵される前に他の鍵が押鍵されて、異なるピッチが時間的に重なることもある。このような場合には、複数(これを「ポリ数」という)の演奏データが鍵盤2から入力される。このため、図5に示すように、複数の異なるピッチ1、ピッチ2、ピッチ3…ピッチmに対応して、複数のパルスジェネレータ24a、24b、24c…24mが設けられている。各パルスジェネレータは周期が異なるパルス波形を発生する。加算器24nは、その異なるパルス波形を合成して演奏メモリ25に書き込む。なお、押鍵のベロシティ等で音量を制御する場合には、パルス波形に音量値を乗算してもよい。
図2の窓関数テーブル27には、ハニング窓の窓関数のパラメータが記憶されている。図6は、変数をNとするハニング窓の窓関数wfを示す図である。この窓関数wfは下記の式で表わされる。
wf={1−cos(2π×wmp1/WaveSize)}/2
ここでwmp1は、音声波形メモリ21において、1サンプルの書き込みごとにインクリメントする書き込みポインタであり、音声波形メモリ21の先頭アドレスから0、1、…、WaveSize−1の値をとるものとする。
図7は、畳込演算部26による畳み込み演算の原理を示す図である。畳込演算部26は、音声波形メモリ21に順次記憶されるメモリサイズ(WaveSize)分の音声波形データ、演奏波形メモリ25に記憶された同じサイズ分のパルス波形、および窓関数テーブル27に記憶された同じサイズ分の窓関数のパラメータをそれぞれ読み出して、ピッチのポリ数に対応する複数の乗算器26aおよび各乗算器26aの出力を加算する加算器26bによって畳み込み演算を行って出力する。パルス波形にvビットの音量値を乗算する場合には、ポリ数をnとすると、演奏波形メモリ25のメモリサイズWaveSizeのビット数mは下記の式で表わされる。
m=v+log
図8は、図2に示したデータ合成処理機能の変形例を示す図である。図8においては、A/D変換器8から出力される音声波形データに対して、窓関数テーブル27に記憶されている窓関数のパラメータが乗算器28によって乗算された後に、音声波形メモリ21に書き込まれる。乗算器28は、CPU1の制御機能によって構成される。したがって、畳込演算部26は、窓関数のパラメータが乗算された後に、音声波形メモリ21に記憶された音声波形データ、および、演奏波形メモリ25に記憶されたパルス波形をそれぞれ読み出して、畳み込み演算を行って出力する。さらに、図8においては、周期検出部22の周期検出の動作が図3に示したものと異なっている。
図9は、図8の変形例における周期検出部22によって周期を検出して周期パルスを発生する信号処理を示す図である。図9においても、点線の矢印で示すように、正のエンベロープのピークホールドの値が減衰して音声波形データと交差するa点を検出した後、負のエンベロープのピークホールドの値が減衰して音声波形データと交差するb点を検出すると、次に音声波形データが負から正に変化するゼロクロスポイントc点を検出する。そして、基音の一定の周期Prdで周期パルスを発生して書込制御部23に入力する。ただし、ピークホールドの値が減衰するタイミングが、音声波形データのエンベロープのピークから一定時間(HldCnt)の減衰停止時間だけ遅れる。この一定時間HldCntは、周期パルスが取り得る範囲の半分程度に設定される。したがって、倍音で誤動作する確率が図3の場合よりも低くなる。さらに、この場合において、HldCntの時間を前回の周期パルスの半分程度を動的に設定すれば、より効果的である。
図10は、RAM5の複数のエリアにストアされる各種のデータを示す図である。図10(A)は、制御パラメータを示す図である。各制御パラメータの用途については後述する。図10(B)は、波形データをストアする波形メモリを示している。ここで、WaveMem1[]は、マイク7から入力された音声がA/D変換器8によってサンプリングされた音声波形データを書き込むためのエリアで、図2および図8の音声波形メモリ21に相当する。また、WaveMem2[]は、鍵盤2の演奏に応じてパルスジェネレータ24により発生されたパルス波形を含む演奏波形データを書き込むためのエリアで、図2および図8の演奏波形メモリ25に相当する。
次に、第1実施形態におけるデータ合成処理の動作について、図8および図9に示した変形例、並びに、図1のCPU1によって実行される制御プログラムのフローチャートを参照して説明する。
図11は、CPU1によって実行されるメインルーチンのフローチャートである。初期処理(ステップSA1)の後、スイッチ部3をサーチするスイッチ処理(ステップSA2)、鍵盤2をサーチする鍵盤処理(ステップSA3)、表示処理などのその他の処理(ステップSA4)を繰り返し実行する。なお、ステップSA1の初期設定においては、図10(A)に示した制御パラメータについて以下の初期設定を行う。
マイク7から入力された音声がA/D変換器8によってサンプリングされた音声波形データであるInputWave、および、1サンプリング前の音声波形データであるPreInputWaveをクリアする。位相検出段階を示すStageを0(図9におけるa点待ち)にセットする。音声波形データの正のエンベロープの値であるPlusEnv、および、音声波形データの負のエンベロープの値であるMinsEnvをクリアする。エンベロープ減衰係数であるEnv_gを0から1の間の所定値に設定する。正のエンベロープの値用のホールドカウンタであるPlusHldCnt、および、負のエンベロープの値用のホールドカウンタであるMinsHldCntをクリアする。ホールドカウンタ比較値であり、減衰停止時間であるHldCntに0をストアする。周期カウンタであるPrdCntをクリアする。過去NHST個分の周期カウンタの値を格納する配列であるPrdHst[]を全てクリアする。PrdHst[]の指定インデックスであるHstIdxを0にセットする。位相同期パルスの状態を表わすPhasePulseを0(位相同期ポイントでない)にリセットする。WaveSizeに音声波形メモリ21のメモリサイズをストアする。音声波形メモリ21の読み出しポインタであるrmp1、音声波形メモリ21の書き込みポインタであるwmp1、演奏波形メモリ25の読み出しポインタであるrmp2、および、演奏波形メモリ25の書き込みポインタであるwmp2を全て0にセットする。出力データであるOutputをクリアする。また、図10(B)に示したWaveMem1[]、および、WaveMem2[]をクリアする。
図12は、メインルーチンにおけるステップSA3の鍵盤処理のフローチャートである。鍵盤2をサーチして、各鍵の状態が押鍵であるか、離鍵であるか、又は変化なしであるかを検出する(ステップSB1)。任意の鍵が押鍵がされたときは、その押鍵に対応するピッチすなわち音高のパルス波形の発生を開始する(ステップSB2)。ステップSB1において、任意の鍵が離鍵されたときは、その離鍵に対応するピッチのパルス波形の発生を終了する(ステップSB3)。ステップSB2のパルス波形発生開始処理の後、ステップSB3のパルス波形発生終了の後、又は、ステップSB1において鍵盤2の状態に変化がない場合には、メインルーチンに戻る。
図13および図14は、A/D変換器8のサンプリングによる音声波形データの入力の割込みで実行する音声波形処理のフローチャートである。図13において、まず、A/D変換値をInputWaveにストアする(ステップSC1)。そして、InputWaveの振幅が正のエンベロープの値であるPlusEnvに減衰係数Env_gを乗算した値よりも大きいか否かを判別する(ステップSC2)。すなわち、図9においてa点を超えたか否かを判別する。InputWaveの正の値がPlusEnvにEnv_gを乗算した値よりも大きい場合、すなわち、InputWaveの正の値がa点を超えたときは、PlusEnvにInputWaveの正の値をストアする(ステップSC3)。したがって、その後はPlusEnvは、InputWaveの正の値がピークに達するまでは、InputWaveの正の値に追従して増加し、InputWaveの正の値がピークに達した後は、一定時間HldCntの時間だけピークの値を維持する。
次に、Stageが0であるか否かを判別する(ステップSC4)。Stageが0(a点待ち)である場合には、Stageを1(b点待ち)にセットし、PlusHldCntを0にクリアする(ステップSC5)。ステップSC2において、InputWaveの正の値がPlusEnvにEnv_gを乗算した値以下である場合、すなわち、InputWaveの正の値がa点を超えていない場合には、PlusHldCntのカウント値がHldCntの値を超えたか否かを判別する(ステップSC6)。PlusHldCntのカウント値がHldCntの値を超えたとき、すなわち、減衰停止時間が経過したときは、PlusEnvにEnv_gを乗算して、さらにPlusEnvを減衰する(ステップSC7)。
ステップSC5若しくはステップSC7の処理後、又は、ステップSC4においてStageが0でない場合、又は、ステップSC6においてPlusHldCntのカウント値がHldCntの値を超えない場合には、InputWaveの負の値であるMinsEnvに減衰係数Env_gを乗算した値よりも小さいか否かを判別する(ステップSC8)。すなわち、図9においてb点を超えたか否かを判別する。InputWaveの負の値がMinsEnvにEnv_gを乗算した値よりも小さい場合、すなわち、InputWaveの負の値がb点より小さくなったときは、MinsEnvにInputWaveの負の値をストアする(ステップSC9)。したがって、その後はMinsEnvは、InputWaveの負の値がピークに達するまでは、InputWaveの負の値に追従して減少し、InputWaveの負の値がピークに達した後は、一定時間HldCntの時間だけピークの値を維持する。
次に、Stageが1であるか否かを判別する(ステップSC10)。Stageが1(b点待ち)である場合には、Stageを2(c点待ち)にセットし、MinsHldCntを0にクリアする(ステップSC11)。ステップSC8において、InputWaveの負の値がMinsEnvにEnv_gを乗算した値以上である場合、すなわち、InputWaveの負の値がb点を超えていない場合には、MinsHldCntのカウント値がHldCntの値を超えたか否かを判別する(ステップSC12)。MinsHldCntのカウント値がHldCntの値を超えたとき、すなわち、減衰停止時間が経過したときは、MinsEnvにEnv_gを乗算して、さらにMinsEnvを減衰する(ステップSC13)。
ステップSC11若しくはステップSC13の処理後、又は、ステップSC10においてStageが1でない場合、又は、ステップSC12においてMinsHldCntのカウント値がHldCntの値を超えない場合には、PlusHldCntおよびMinsHldCntのカウント値をそれぞれインクリメントする(ステップSC14)。
次に、図14において、今回のサンプリングの音声波形データであるInputWaveが正の値、かつ、前回のサンプリングの音声波形データであるPreInputWaveが負の値、かつ、Stageが2(c点待ち)であるか否かを判別する(ステップSC15)。すなわち、1サンプリング前の音声波形データが負、今回のサンプリングの音声波形データが正、かつ、c点待ちである場合には、図9において、音声波形データの値が負から正に変化するc点のゼロクロスポイントを検出した場合である。一方、c点のゼロクロスポイントを検出しない場合には、PhasePulseを0(位相同期ポイントでない)にリセットし、PrdCntのカウント値をインクリメントする(ステップSC16)。ステップSC15において、c点のゼロクロスポイントを検出したときは、PrdCntの周期カウンタ値をPrdHst[HstIdx]にストアして、HstIdxの値を更新し、PrdHst[0]〜PrdHst[NHST−1]の平均値の半分をHldCntにストアして減衰停止時間を更新する。また、PhasePulseを1(位相同期ポイント)にセットし、Stageを0(a点待ち)にセットし、PrdCntを0にクリアする(ステップSC17)。ステップSC16の処理又はステップSC17の処理の後は、次の音声信号処理に備えて、今回のサンプリングの音声波形データInputWaveをPreInputWaveにストアする(ステップSC18)。そして、メインルーチンに戻る。
図15は、図8の書込制御部23による音声波形メモリ書き込み処理のフローチャートである。PhasePulseが1(位相同期ポイント)、かつ、wmp1がWaveSizeであるか否かを判別する(ステップSD1)。すなわち、周期検出部22から、音声波形データの周期の始期である図9の周期パルスが入力され、かつ、音声波形メモリ21の最終アドレスを超えたか否かを判別する。PhasePulseが1、かつ、wmp1がWaveSizeである場合には、wmp1を先頭のアドレスを表わす0にセットする(ステップSD2)。次に、wmp1がWaveSizeより小さいか否かを判別する(ステップSD3)。すなわち、書き込みポインタが最終アドレスを超えていないか否かを判別する。wmp1がWaveSizeより小さい場合には、窓関数テーブル27の窓関数パラメータを読み出して、下記の式によって窓関数の演算を行って、WaveMem1[wmp1]にストアする(ステップSD4)。
InputWave×{1−cos(2π×wmp1/WaveSize)}/2
そして、wmp1の値をインクリメントして(ステップSD5)、メインルーチンに戻る。
図16は、図1の鍵盤2の演奏に応じた割込み処理であり、図8のパルスジェネレータ24によって演奏波形メモリ25に書き込まれる演奏波形メモリ書き込み処理のフローチャートである。ピッチに応じて発生したパルス波形PulseWaveを書き込みポインタwmp2のエリアWaveMem2[wmp2]に書き込み、wmp2をインクリメントする(ステップSE1)。次に、書き込みポインタwmp2が演奏波形メモリ25の最終アドレスを超えたか否かを判別する(ステップSE2)。wmp2が最終アドレスを超えたときは、wmp2を演奏波形メモリ25の先頭のアドレスを表わす0にセットする(ステップSE3)。そして、メインルーチンに戻る。
図17は、図8の畳込演算部26による畳込演算処理のフローチャートである。まず、音声波形メモリ21の読み出しポインタrmp1を先頭のアドレスである0にセットし、演奏波形メモリ25の読み出しポインタrmp2を書き込みが終了した現在の書き込みポインタwmp2にセットし、Outputをクリアする(ステップSF1)。次に、音声波形メモリ21の読み出しポインタrmp1がWaveSizeより小さいか否かを判別する(ステップSF2)。すなわち、音声波形メモリ21に演算すべき音声波形データが残っているか否かを判別する。rmp1がWaveSizeより小さい場合、すなわち、演算すべき音声波形データがまだ残っている場合には、WaveMem2[rmp2]が0であるか否かを判別する(ステップSF3)。すなわち、演奏波形メモリ25において音声波形データと演算すべき読み出しポインタrmp2の演奏波形データであるパルス波形のデータが0か否かを判別する。
WaveMem2[rmp2]が0でない場合には、音声波形メモリ21の読み出しポインタrmp1の音声波形データWaveMem1[rmp1]と、演奏波形メモリ25の読み出しポインタrmp2の演奏波形データWaveMem2[rmp2]とを乗算して、その乗算結果である合成波形データをOutputにストアして累算する(ステップSF4)。この乗算処理の後、又は、ステップSF3においてWaveMem2[rmp2]が0である場合、すなわち、演奏波形メモリ25において音声波形データと演算すべき演奏波形データが0である場合には、音声波形メモリ21の読み出しポインタrmp1をインクリメントし、演奏波形メモリ25の読み出しポインタrmp2をデクリメントする(ステップSF5)。
この後、rmp2が負であるか否かを判別する(ステップSF6)。すなわち、演奏波形メモリ25の読み出しポインタが先頭の読み出しアドレスを過ぎてデクリメントされたか否かを判別する。rmp2が負でない場合には、ステップSF2に移行して上記演算処理のループを繰り返す。ステップSF6においてrmp2が負になった場合、すなわち、演奏波形メモリ25の読み出しポインタが先頭の読み出しアドレスを過ぎてデクリメントされた場合には、演奏波形メモリ25の最終の読み出しアドレスであるWaveSize−1をrmp2にセットして(ステップSF7)、ステップSF2に移行して上記演算処理のループを繰り返す。ステップSF2において、音声波形メモリ21の読み出しポインタrmp1がWaveSizeに達した場合、すなわち、音声波形メモリ21の全ての音声波形データを読み出して畳み込み演算が終了したときは、Outputの合成波形データを出力する(ステップSF8)。そして、メインルーチンに戻る。
以上のように、この第1実施形態によれば、CPU1は、図2又は図8の書込制御部23として、マイク7からの人間の音声に応じて、A/D変換器8から入力される周期情報を含む音声波形データを音声波形メモリ21に書き込み、鍵盤2の押鍵に応じて、パルスジェネレータ24で押鍵のピッチに対応する特定の周期のパルス波形を発生して演奏波形メモリ25に書き込み、畳込演算部26によって音声波形メモリ21の音声波形データと演奏波形メモリ25のパルス波形とを畳み込み演算して合成波形データを出力する。
したがって、マイク7から得られる音声波形データであっても、音声波形データの基音に基づいて、演奏波形データと位相ずれのないデータ合成を行うことにより、人間の声のフォルマントを有する任意の音高の合成波形データを歪みのない状態で出力することができる。
また音声波形データは常に、検出された始期から音声波形メモリ21に記憶するため、図7に示すように1つの音声波形メモリに音声波形データを上書きして書き込む場合でも、音声波形安定時は書き込みポインタのアドレスの前後での音声波形データの不連続性が小さく、したがって複数の音声波形メモリを用いることなく上述の動作を実現することができる。
この場合において、CPU1は、畳み込み演算する波形データに対して、図2又は図8に示したように、窓関数テーブル27に記憶されたハニング窓の窓関数のパラメータを乗算する。
したがって、より品質の高い合成波形データを生成することができる。
CPU1は、窓関数のパラメータを乗算する場合には、図8に示したように、周期情報を含む音声波形データに対して、窓関数テーブル27に記憶されたハニング窓の窓関数のパラメータを乗算し、乗算した音声波形データを音声波形メモリ21に記憶する。
あるいは、CPU1は、図2に示したように、音声波形データと演奏に応じて発生したパルス波形とを畳み込み演算する際に、窓関数テーブル27に記憶されたハニング窓の窓関数のパラメータを乗算する。
CPU1は、図2又は図8の周期検出部22として、音声波形データの周期の始期を検出して、その検出した周期の始期から音声波形データを音声波形メモリ21に記憶する。
したがって、人間の声の特徴であるフォルマントを有する音声波形データを演奏波形データに合成することができる。
CPU1は、図2又は図8の周期検出部22として、音声波形データの周期の始期を検出して、その検出した周期の始期から少なくとも1周期以上に亘って窓関数のパラメータを乗算する。
したがって、人間の声の特徴であるフォルマントを有する任意の音高の音声波形データに対して窓関数のパラメータを乗算することができる。
CPU1は、図2又は図8の周期検出部22として、図3および図9に示したように、音声波形データにおいて、音声波形データの正のエンベロープに対する正のピークホールドおよび音声波形データの負のエンベロープに対する負のピークホールドを生成し、正のピークホールドの値と音声波形データの値とが交差するa点、負のピークホールドの値と音声波形データの値とが交差するb点、および音声波形データが負から正に変化するゼロクロスポイントであるc点を順次検出して、音声波形データの周期の始期を検出する。
したがって、音声波形データに含まれている基音および倍音の中から基音の周期だけを検出することができる。
この場合において、CPU1は、図3および図9に示したように、周期情報を含む音声波形データの正のエンベロープに対するピークホールドが減衰係数Env_gで減衰した値と、音声波形データの値とが交差するa点、負のエンベロープに対するピークホールドが減衰係数Env_gで減衰した値と、音声波形データの値とが交差するb点を検出する。
したがって、図13のフローチャートに示したように、音声波形データに含まれている基音および倍音の中から基音の周期だけを簡単な音声波形処理によって検出することができる。
あるいはこの場合において、CPU1は、図9に示したように、周期情報を含む音声波形データの正のエンベロープに対するピークホールドが音声波形データの正のエンベロープのピークから一定時間HldCntが経過した後から、減衰係数Env_gで減衰した値と、音声波形データの値とが交差するa点、負のエンベロープに対するピークホールドが音声波形データの負のエンベロープのピークから一定時間HldCntが経過した後から、減衰係数Env_gで減衰した値と、音声波形データの値とが交差するb点を検出する。
したがって、音声波形データに含まれている倍音の振幅が比較的大きい場合でも、基音の周期だけを確実に検出することができる。
さらにこの場合に、CPU1は図14のステップSC17における処理に示したように、前回までに検出した周期の平均の半分を、ピークホールドの新たな一定時間HldCntとして動的に設定する。
したがって、マイク7から入力される音声の音高すなわちピッチの周期が流動的である場合でも、柔軟に追従してその周期を確実に検出することができる。
CPU1は、音声波形データが負から正に変化するゼロクロスポイントを周期の始期として検出する。
したがって、図4に示したように、音声波形データのゼロクロスポイントから音声波形メモリ21に書き込むことにより、周期の始期をより確実に特定して音声波形データを書き込むことができる。
次に、本発明の第2実施形態について、図18ないし図22を参照して説明する。第2実施形態における電子鍵盤楽器の構成は、一部を除き図1に示した第1実施形態の構成と同じである。
図18は、第2実施形態におけるデータ合成処理機能を示すブロック図である。図18には、アナログの音声信号をディジタル化して、音声波形データおよび周期データをあらかじめ記憶した音声・周期メモリ29が設けられている。この音声・周期メモリ29には、図19に示すように、音声波形データ(WaveMem3[])が記憶され、その最下位ビットには周期パルスデータが記憶されている。この記憶においては、図20に示すように、あらかじめ音声波形メモリ21のメモリサイズWaveSizeで音声波形データをインパルス応答として切り出しておき、それを連続して音声・周期メモリ29に配置・記憶することで周期情報を記憶するのを省略できる。したがって、図2および図8に示したデータ合成処理機能とは異なり、A/D変換器8および周期検出部22は必要ない。また、図10に示した第1実施形態のRAMの構成においても、周期を検出するためのレジスタは必要ない。他の構成については、図8に示したデータ合成処理機能と同じであるので、重複する説明は省略する。
次に、第2実施形態におけるデータ合成処理の動作について、CPU1によって実行される音声波形処理である図21のフローチャートを参照して説明する。なお、第2実施形態におけるCPU1のメインルーチン、鍵盤処理、音声波形メモリ書き込み処理、演奏波形メモリ書き込み処理、および、畳み込み演算処理は、それぞれ、図11、図12、図15、図16、および図17に示した第1実施形態のフローチャートの処理と同じである。
図21において、音声・周期メモリ29の読み出しポインタrmp3の音声波形データであるWaveMem3[rmp3]を図10に示したRAMのInputWaveにストアする(ステップSG1)。次に、InputWaveの最下位ビットをRAMのPhasePulseにセットして、InputWaveを1ビット右シフトする(ステップSG2)。すなわち、WaveMem3[rmp3]の周期パルスデータを消去して音声波形データだけにする。そして、rmp3をインクリメントする(ステップSG3)。この後、rmp3がWaveSizeであるか否かを判別する(ステップSG4)。すなわち、読み出しポインタrmp3が音声・周期メモリ29の最終アドレスを超えたか否かを判別する。rmp3がWaveSizeである場合には、rmp3に0すなわち先頭アドレスをセットする(ステップSG5)。rmp3に0をセットした後、又は、rmp3がWaveSizeでなく、最終アドレスを超えていない場合には、メインルーチンに戻る。
以上のように、この第2実施形態によれば、音声波形データの周期情報を記憶している音声・周期メモリ29を備えている。CPU1は、音声・周期メモリ29から読み出した少なくとも1周期の音声波形データを音声波形メモリ21に記憶する。
したがって、周期を検出する処理を行う必要がなくなり、データ合成処理の処理速度を速くできる。
また、この第2実施形態においては、CPU1は、音声・周期メモリ29から読み出した音声波形データに対して、窓関数のパラメータを乗算して音声波形メモリ21に記憶する。
また、図22に示すように、あらかじめ音声波形メモリ21のメモリサイズWaveSizeで切り出した音声波形データのインパルス応答に対して、窓関数のパラメータを乗算し、それを連続して音声・周期メモリ29に配置・記憶することで、図18の窓関数テーブル27を省略できる。さらに、様々な人の声や、音節、歌などをボコーダ用のサウンドとして複数種類、音声・周期メモリ29にあらかじめ記憶しておき、演奏者によって選択された所望のサウンドの音声波形データと、鍵盤2の演奏によって発生した演奏波形データとを合成することができる。
なお、上記第1実施形態および第2実施形態において、図17のフローチャートにおけるステップSF3からステップSF5までの処理に示したように、CPU1は、畳込演算部26として、音声波形メモリ21のアドレス(読み出しポインタrmp1)をインクリメントし、演奏波形メモリ25のアドレス(読み出しポインタrmp2)をデクリメントしながら順次アドレスを指定するとともに、演奏波形メモリ25の指定したアドレスにパルス波形が記憶されている場合にのみ、そのパルス波形と音声波形メモリ21の指定したアドレスの音声波形データとを畳み込み演算する。
また、上記第1実施形態および第2実施形態においては、音声波形データと畳み込み演算する対象として、鍵盤2の演奏によって生成した演奏波形データを例に採って本発明を説明したが、音声波形データと畳み込み演算する対象としては、実施形態の演奏波形データに限定されるものではない。あらかじめ曲メモリなどの記憶手段に記憶されている自動演奏用データを読み出して演奏波形データを生成し、音声波形データと畳み込み演算するような構成でもよい。あるいは、外部のMIDI機器から受信したMIDIデータに基づいて生成した演奏波形データと音声波形データとを畳み込み演算するような構成でもよい。すなわち、音高(ピッチ)に応じて生成されるパルス波形を含む演奏波形データと、音声波形データとを畳み込み演算するような構成であれば、本発明の実施形態と見なすことができる。
また、上記第1実施形態および第2実施形態においては、電子鍵盤楽器を例に採って本発明のデータ合成装置を説明したが、本発明のデータ合成装置は電子鍵盤楽器に限定されるものではない。例えば、電子管楽器、電子弦楽器、シンセサイザはもちろんのこと、電子的に楽音の音高を発生できるものであれば、ビブラホン、木琴、ハーモニカなどによっても本発明のデータ合成装置を構成することができる。
また、上記実施形態においては、ROM4にあらかじめ記憶された楽音制御処理のプログラムをCPU1が実行する装置の発明について説明したが、汎用のパソコン、電子鍵盤装置、および外部音源を組み合わせたシステムによって本発明を実現することも可能である。すなわち、フレキシブルディスク(FD)、CD、MDなどの記憶媒体に記録されている楽音制御処理のプログラムをパソコンのハードディスクなどの不揮発性メモリにインストールしたり、インターネットなどのネットワークからダウンロードした楽音制御処理のプログラムを不揮発性メモリにインストールして、そのプログラムをパソコンのCPUが実行することも可能である。この場合には、プログラムの発明やそのプログラムを記録した記録媒体の発明を実現できる。
すなわち、本発明によるプログラムは、
音声波形データの周期の始期を検出する第1のステップと、前記第1のステップによって検出された周期の始期から、当該音声波形データを第1の記憶手段に記憶する第2のステップと、特定の周期のパルス情報を含む楽音波形データを第2の記憶手段に記憶する第3のステップと、前記第1の記憶手段に記憶された音声波形データと前記第2の記憶手段に記憶された楽音波形データとを畳み込み演算して、前記第2の記憶手段に記憶された特定の周期に同期した合成波形データを出力する第4のステップと、を実行する。
前記第4のステップによって畳み込み演算される波形データに対して、第3の記憶手段に記憶された窓関数のパラメータを演算する第5のステップをさらに実行する。
前記第5のステップは、音声波形データに対して窓関数のパラメータを演算し、前記第2のステップは、前記第5のステップによって演算された音声波形データを前記第1の記憶手段に記憶する。
前記第5のステップは、前記第1のステップによって検出された音声波形データの周期の始期から少なくとも1周期以上に亘って窓関数のパラメータを演算する。
前記第1のステップは、音声波形データにおいて、当該音声波形データの正のピークホールドおよび当該音声波形データの負のピークホールドを生成し、当該正のピークホールドの値と当該音声波形データの振幅とが交差する第1のポイント、当該負のピークホールドの値と当該音声波形データの振幅とが交差する第2のポイント、および当該音声波形データが負から正に変化するゼロクロスポイントを順次検出して、当該音声波形データの周期の始期を検出する。
前記第1のステップは、音声波形データにおいて、正のピークホールドが所定の減衰係数で減衰した値と当該音声波形データの振幅とが交差する第1のポイント、負のピークホールドが前記所定の減衰係数で減衰した値と当該音声波形データの振幅とが交差する第2のポイントを検出する。
前記第1のステップは、音声波形データにおいて、正のピークホールドが音声波形データの正のピークから一定時間が経過した後から所定の減衰係数で減衰した値と、当該音声波形データの振幅とが交差する第1のポイント、負のピークホールドが音声波形データの負のピークから前記一定時間が経過した後から前記所定の減衰係数で減衰した値と、当該音声波形データの振幅とが交差する第2のポイントを検出する。
前記第1のステップは、音声波形データが負から正に変化するゼロクロスポイントを周期の始期として検出する。
周期の始期であるか否かを示す識別情報を含む音声波形データを記憶している第4の記憶手段をさらに備え、前記第2のステップは、当該第4の記憶手段から読み出した音声波形データに周期の始期であることを示す識別情報が含まれている場合には、当該識別情報を含んだ音声波形データから少なくとも1周期の音声波形データまでを前記第1の記憶手段に記憶する。
前記第5のステップは、前記第4の記憶手段から読み出した音声波形データに対して前記第3の記憶手段に記憶された窓関数のパラメータを演算し、前記第2のステップは、前記第5のステップによって演算された音声波形データを前記第1の記憶手段に記憶する。
前記第2のステップは、あらかじめ窓関数のパラメータが演算された音声波形データを前記第4の記憶手段から読み出して前記第1の記憶手段に記憶する。
前記第4のステップは、前記第1の記憶手段のアドレスをインクリメントし、前記第2の記憶手段のアドレスをデクリメントしながら順次アドレスを指定するとともに、前記第2の記憶手段の指定したアドレスに楽音波形データが記憶されている場合にのみ当該楽音波形データと前記第1の記憶手段の指定したアドレスの音声波形データとを畳み込み演算する。
本発明の第1実施形態における電子鍵盤楽器の構成を示すブロック図。 本発明の第1実施形態におけるデータ合成機能に関するブロック図。 図2の周期検出部によって周期を検出して周期パルスを発生する信号処理を示す図。 図2の音声波形メモリのメモリサイズと音声波形データの周期との関係を示す図。 図2のパルスジェネレータの内部構成を示す図。 図2の窓関数テーブルに記憶されているハニング窓の窓関数を示す図。 図2の畳込演算部による畳み込み演算の原理を示す図。 図2に示した第1実施形態におけるデータ合成機能の変形例を示す図。 図8の変形例における周期検出部によって周期を検出して周期パルスを発生する信号処理を示す図。 図1のRAMの複数のエリアにストアされる各種のデータを示す図。 図1のCPUによって実行されるメインルーチンのフローチャート。 図11のメインルーチンにおける鍵盤処理のフローチャート。 図1のA/D変換器のサンプリングによる音声波形データの入力の割込みで実行する音声波形処理のフローチャート。 図13に続く音声波形処理のフローチャート。 図8の書込制御部による音声波形メモリ書き込み処理のフローチャート。 図8のパルスジェネレータによる演奏波形メモリ書き込み処理のフローチャート。 図8の畳込演算部による畳込演算処理のフローチャート。 本発明の第2実施形態におけるデータ合成機能に関するブロック図。 図18の音声・周期メモリに記憶された音声波形データの構成を示す図。 図18の音声波形メモリのメモリサイズで切り出した音声波形データのインパルス応答の状態を示す図。 本発明の第2実施形態における音声波形処理のフローチャート。 図18の音声波形メモリのメモリサイズで切り出した音声波形データのインパルス応答に窓関数のパラメータを乗算した状態を示す図。
符号の説明
1 CPU
2 鍵盤
3 スイッチ部
4 ROM
5 RAM
6 表示部
7 マイク
8 A/D変換器
9 楽音生成部
10 D/A変換器
11 サウンドシステム
21 音声波形メモリ
22 周期検出部
23 書込制御部
24 パルスジェネレータ
25 演奏波形メモリ
26 畳込演算部
27 窓関数テーブル
28 乗算器
29 音声・周期メモリ

Claims (2)

  1. 音声波形データの正のピークホールドおよび負のピークホールドを生成し、当該生成された正のピークホールドが前記音声波形データの正のピークから一定時間が経過した後から所定の減衰係数で減衰した値と当該音声波形データの振幅とが交差する第1のポイント、前記生成された負のピークホールドが前記音声波形データの負のピークから前記一定時間が経過した後から前記所定の減衰係数で減衰した値と当該音声波形データの振幅とが交差する第2のポイント、および前記音声波形データが負から正に変化するゼロクロスポイントを順次検出して、当該音声波形データの周期の始期を検出する周期検出手段と、
    前記周期検出手段によって検出された周期の始期から、当該音声波形データを第1の記憶手段に記憶する第1の記憶制御手段と、
    特定の周期のパルス波形データを第2の記憶手段に記憶する第2の記憶制御手段と、
    前記第1の記憶手段に記憶された音声波形データと前記第2の記憶手段に記憶されたパルス波形データとを畳み込み演算して、前記第2の記憶手段に記憶された特定の周期に同期した合成波形データを出力する畳込演算手段と、
    を備えたデータ合成装置。
  2. 音声波形データの正のピークホールドおよび当該音声波形データの負のピークホールドを生成し、当該生成された正のピークホールドが前記音声波形データの正のピークから一定時間が経過した後から所定の減衰係数で減衰した値と前記音声波形データの振幅とが交差する第1のポイント、前記生成された負のピークホールドが前記音声波形データの負のピークから前記一定時間が経過した後から前記所定の減衰係数で減衰した値と前記音声波形データの振幅とが交差する第2のポイント、および当該音声波形データが負から正に変化するゼロクロスポイントを順次検出して、当該音声波形データの周期の始期を検出する第1のステップと、
    前記第1のステップによって検出された周期の始期から、当該音声波形データを第1の記憶手段に記憶する第2のステップと、
    特定の周期のパルス波形データを第2の記憶手段に記憶する第3のステップと、
    前記第1の記憶手段に記憶された音声波形データと前記第2の記憶手段に記憶されたパルス波形データとを畳み込み演算して、前記第2の記憶手段に記憶された特定の周期に同期した合成波形データを出力する第4のステップと、
    コンピュータに実行させるデータ合成処理のプログラム。
JP2004339752A 2004-11-25 2004-11-25 データ合成装置およびデータ合成処理のプログラム Active JP4179268B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004339752A JP4179268B2 (ja) 2004-11-25 2004-11-25 データ合成装置およびデータ合成処理のプログラム
US11/285,601 US7523037B2 (en) 2004-11-25 2005-11-21 Data synthesis apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004339752A JP4179268B2 (ja) 2004-11-25 2004-11-25 データ合成装置およびデータ合成処理のプログラム

Publications (2)

Publication Number Publication Date
JP2006146095A JP2006146095A (ja) 2006-06-08
JP4179268B2 true JP4179268B2 (ja) 2008-11-12

Family

ID=36461998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004339752A Active JP4179268B2 (ja) 2004-11-25 2004-11-25 データ合成装置およびデータ合成処理のプログラム

Country Status (2)

Country Link
US (1) US7523037B2 (ja)
JP (1) JP4179268B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4972742B2 (ja) * 2006-10-17 2012-07-11 国立大学法人九州工業大学 高域信号補間方法及び高域信号補間装置
JP5080944B2 (ja) * 2007-11-08 2012-11-21 興和株式会社 パノラマ眼底画像合成装置及び方法
KR101488257B1 (ko) * 2008-09-01 2015-01-30 삼성전자주식회사 휴대단말기의 터치스크린을 이용한 작곡 방법 및 장치
JP5481958B2 (ja) * 2009-06-17 2014-04-23 大日本印刷株式会社 音素符号変換装置および音声合成装置
JP5481957B2 (ja) * 2009-06-17 2014-04-23 大日本印刷株式会社 音声合成装置
JP5471138B2 (ja) * 2009-08-06 2014-04-16 大日本印刷株式会社 音素符号変換装置および音声合成装置
JP5360489B2 (ja) * 2009-10-23 2013-12-04 大日本印刷株式会社 音素符号変換装置および音声合成装置
ES2374008B1 (es) 2009-12-21 2012-12-28 Telefónica, S.A. Codificación, modificación y síntesis de segmentos de voz.
CN102779125A (zh) * 2011-05-10 2012-11-14 北京必可测科技有限公司 一种离散采样振动监测仪表存储数据的方法
EP2634769B1 (en) * 2012-03-02 2018-11-07 Yamaha Corporation Sound synthesizing apparatus and sound synthesizing method
JP6610714B1 (ja) 2018-06-21 2019-11-27 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP6610715B1 (ja) * 2018-06-21 2019-11-27 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP6547878B1 (ja) 2018-06-21 2019-07-24 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP6806120B2 (ja) * 2018-10-04 2021-01-06 カシオ計算機株式会社 電子楽器、楽音発生方法及びプログラム
JP7059972B2 (ja) 2019-03-14 2022-04-26 カシオ計算機株式会社 電子楽器、鍵盤楽器、方法、プログラム
JP6835182B2 (ja) * 2019-10-30 2021-02-24 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1334177A (en) * 1971-06-10 1973-10-17 Standard Telephones Cables Ltd Vocoder excitation system
US4177707A (en) * 1975-08-04 1979-12-11 Boucher Gary R Electronic music synthesizer
JP2734521B2 (ja) * 1988-03-31 1998-03-30 カシオ計算機株式会社 楽音制御装置
JP2819533B2 (ja) 1988-05-10 1998-10-30 ヤマハ株式会社 楽音信号発生装置
JP2504173B2 (ja) 1989-04-03 1996-06-05 ヤマハ株式会社 フォルマント音合成装置
JP2687698B2 (ja) 1990-08-07 1997-12-08 ヤマハ株式会社 電子楽器の楽音制御装置
JP2800465B2 (ja) 1991-05-27 1998-09-21 ヤマハ株式会社 電子楽器
US5463691A (en) * 1992-10-11 1995-10-31 Casio Computer Co., Ltd. Effect imparting apparatus having storage units for storing programs corresponding to form and effect to be imparted to an input signal and for storing output form programs to determine form of output signal with imparted effect
JP3283163B2 (ja) 1995-10-04 2002-05-20 松下電器産業株式会社 Dspによるメロディ発生装置
EP0913808B1 (en) * 1997-10-31 2004-09-29 Yamaha Corporation Audio signal processor with pitch and effect control
JP3430985B2 (ja) * 1999-08-05 2003-07-28 ヤマハ株式会社 合成音生成装置
JP2001265400A (ja) 2000-03-16 2001-09-28 Casio Comput Co Ltd ピッチ変換装置及びピッチ変換方法

Also Published As

Publication number Publication date
US20060111908A1 (en) 2006-05-25
JP2006146095A (ja) 2006-06-08
US7523037B2 (en) 2009-04-21

Similar Documents

Publication Publication Date Title
US7523037B2 (en) Data synthesis apparatus and program
Cook Real sound synthesis for interactive applications
JP6540681B2 (ja) 楽音生成装置および方法、電子楽器
EP3882905A1 (en) Electronic musical instrument, electronic keyboard musical instrument, and method of generating musical sound
US20060217984A1 (en) Critical band additive synthesis of tonal audio signals
JPS6097397A (ja) 音響解析装置
JP7359164B2 (ja) 音信号合成方法およびニューラルネットワークの訓練方法
JP2000261322A (ja) 音響信号の符号化方法およびプログラム記録媒体
KR100190484B1 (ko) 악음 발생 장치(Sound generating appratus)
Pertusa et al. Recognition of note onsets in digital music using semitone bands
JP2989423B2 (ja) 電子楽器
JP2670306B2 (ja) 楽音合成装置及び楽音合成方法
Wiggins et al. A differentiable acoustic guitar model for string-specific polyphonic synthesis
Pekonen Computationally efficient music synthesis–methods and sound design
JPH1031496A (ja) 楽音発生装置
JP3706232B2 (ja) 楽音生成装置及び楽音生成方法
JP2784399B2 (ja) 楽音発生装置
JP2000194361A (ja) 電子音響装置のゆらぎ付加装置及びゆらぎ付加方法
Van Oudtshoorn Investigating the feasibility of near real-time music transcription on mobile devices
JP4059581B2 (ja) 電子音響装置のゆらぎ付加装置及びゆらぎ付加方法
JP3684052B2 (ja) 楽音生成装置及び楽音生成方法
JP2007187949A (ja) 楽音発生装置および楽音発生処理のプログラム
Jansson Violin timbre and the picket fence—Part III
Mitchell Basicsynth
Thompson Note Detection and Multiple Fundamental Frequency Estimation in Piano Recordings

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060314

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080516

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080818

R150 Certificate of patent or registration of utility model

Ref document number: 4179268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110905

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120905

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130905

Year of fee payment: 5