WO2022054496A1 - 電子楽器、電子楽器の制御方法、及びプログラム - Google Patents

電子楽器、電子楽器の制御方法、及びプログラム Download PDF

Info

Publication number
WO2022054496A1
WO2022054496A1 PCT/JP2021/029833 JP2021029833W WO2022054496A1 WO 2022054496 A1 WO2022054496 A1 WO 2022054496A1 JP 2021029833 W JP2021029833 W JP 2021029833W WO 2022054496 A1 WO2022054496 A1 WO 2022054496A1
Authority
WO
WIPO (PCT)
Prior art keywords
performance
data
time
playing
pitch
Prior art date
Application number
PCT/JP2021/029833
Other languages
English (en)
French (fr)
Inventor
広 岩瀬
Original Assignee
カシオ計算機株式会社
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 カシオ計算機株式会社 filed Critical カシオ計算機株式会社
Priority to CN202180062213.5A priority Critical patent/CN116057624A/zh
Priority to US18/044,922 priority patent/US20240021180A1/en
Priority to EP21866456.3A priority patent/EP4213143A1/en
Publication of WO2022054496A1 publication Critical patent/WO2022054496A1/ja

Links

Images

Classifications

    • 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/04Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
    • G10H1/053Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation during execution only
    • 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • 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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/361Recording/reproducing of accompaniment for use with an external source, e.g. karaoke systems
    • 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
    • G10L13/0335Pitch control
    • 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
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/375Tempo or beat alterations; Music timing control
    • 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/311Neural networks for electrophonic musical instruments or musical processing, e.g. for musical recognition or control, automatic composition or improvisation
    • 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/315Sound category-dependent sound synthesis processes [Gensound] for musical use; Sound category-specific synthesis-controlling parameters or control means therefor
    • G10H2250/455Gensound singing voices, i.e. generation of human voices for musical applications, vocal singing sounds or intelligible words at a desired pitch or with desired vocal effects, e.g. by phoneme synthesis

Definitions

  • the present invention relates to an electronic musical instrument that drives a learned acoustic model in response to an operation of an operator such as a keyboard and outputs a sound, a control method for the electronic musical instrument, and a program.
  • the digital signal is used for the human vocalization mechanism and the sounding mechanism of acoustic musical instruments.
  • the acoustic model modeled by processing is trained by machine learning based on singing motion and playing motion, and the trained acoustic model is driven based on the actual playing operation to infer and output the voice waveform data of singing voice and musical sound.
  • Patent Document 1 Japanese Patent No. 6610714
  • the generated waveform often changes depending on the tempo played, the singing style of the phrase, and the playing style.
  • the length of the consonant part of the vocal voice, the length of the blow sound of the wind instrument, and the length of the noise component when starting to rub the strings of the rubbing instrument become longer in a slow performance with few notes.
  • the sound becomes expressive and vivid, and in a fast-paced performance with many notes, it is played in a short time with a crisp sound.
  • the sound source device when the user plays in real time on a keyboard or the like, there is no means for the sound source device to convey the performance speed between the notes that changes in response to the change in the staff division of each note or the difference in the playing phrase, so that the acoustic model Cannot infer an appropriate voice waveform according to the change in the playing speed between notes, for example, lacks expressiveness when playing slowly, or conversely, it is generated for playing at a fast tempo. There was a problem that the rise of the voice waveform to be played was delayed and it became difficult to play.
  • an object of the present invention is to make it possible to infer an appropriate voice waveform that matches a change in playing speed between notes that changes in real time.
  • An electronic musical instrument as an example of the embodiment has a pitch specification unit that outputs performance pitch data designated at the time of performance, a performance mode output unit that outputs performance mode data indicating the performance mode at the time of performance, and a performance mode output unit that outputs performance mode data at the time of performance.
  • Playing pitch data and playing form data are synthesized based on the acoustic model parameters inferred by inputting the playing tone data and playing form data into the trained acoustic model. It is equipped with a sounding model unit that outputs.
  • the electronic instrument of another example of the embodiment has a lyrics output unit that outputs performance lyrics data indicating the lyrics at the time of performance, and a pitch designation that outputs performance pitch data specified according to the output of the lyrics at the time of performance.
  • FIG. 1 is a diagram showing an external example of an embodiment of an electronic keyboard instrument.
  • FIG. 2 is a block diagram showing a hardware configuration example of an embodiment of a control system for an electronic keyboard instrument.
  • FIG. 3 is a block diagram showing a configuration example of a voice learning unit and a voice synthesis unit.
  • FIG. 4A is an explanatory diagram showing an example of staff division that is the basis of singing.
  • FIG. 4B is an explanatory diagram showing an example of staff division that is the basis of singing.
  • FIG. 5A is a diagram showing a waveform change of a singing voice caused by a difference in playing tempo.
  • FIG. 5B is a diagram showing a waveform change of a singing voice caused by a difference in playing tempo.
  • FIG. 5A is a diagram showing a waveform change of a singing voice caused by a difference in playing tempo.
  • FIG. 6 is a block diagram showing a configuration example of a lyrics output unit, a pitch designation unit, and a performance form output unit.
  • FIG. 7 is a diagram showing an example of data configuration of the present embodiment.
  • FIG. 8 is a main flowchart showing an example of control processing of an electronic musical instrument according to the present embodiment.
  • FIG. 9A is a flowchart showing a detailed example of the initialization process.
  • FIG. 9B is a flowchart showing a detailed example of the tempo change process.
  • FIG. 9C is a flowchart showing a detailed example of the song start process.
  • FIG. 10 is a flowchart showing a detailed example of switch processing.
  • FIG. 11 is a flowchart showing a detailed example of keyboard processing.
  • FIG. 12 is a flowchart showing a detailed example of the automatic performance interrupt processing.
  • FIG. 13 is a flowchart showing a detailed example of the song reproduction process.
  • FIG. 1 is a diagram showing an external example of an embodiment 100 of an electronic keyboard instrument.
  • the electronic keyboard instrument 100 includes a keyboard 101 composed of a plurality of keys as an operator, a volume specification, a song playback tempo setting described later, a performance tempo mode setting described later, a performance tempo adjustment setting described later, and a song described later.
  • a first switch panel 102 that instructs various settings such as playback start and accompaniment playback described later, a second switch panel 103 that selects a song or accompaniment song, a tone color, etc., and lyrics during song playback described later.
  • It is equipped with an LCD 104 (Liquid Keyboard Display) that displays musical scores and various setting information.
  • the electronic keyboard instrument 100 is provided with a speaker for emitting a musical sound generated by the performance on the back surface portion, the side surface portion, the back surface portion, or the like.
  • FIG. 2 is a diagram showing a hardware configuration example of an embodiment of the control system 200 of the electronic keyboard instrument 100 of FIG.
  • the control system 200 includes a CPU (central processing unit) 201, a ROM (read-only memory) 202, a RAM (random access memory) 203, a sound source LSI (large-scale integrated circuit) 204, a voice synthesis LSI 205, and FIG. Key scanner 101 to which the first switch panel 102 and the second switch panel 103 are connected, the LCD controller 208 to which the LCD 104 of FIG. 1 is connected, and a network for exchanging MIBI data with an external network.
  • Interfaces 219 are each connected to system bus 209.
  • a timer 210 for controlling the sequence of automatic performance is connected to the CPU 201. Further, the music sound data 218 and the singing voice data 217 output from the sound source LSI 204 and the voice synthesis LSI 205, respectively, are converted into an analog music sound output signal and an analog singing voice voice output signal by the D / A converters 211 and 212, respectively. The analog music output signal and the analog singing voice output signal are mixed by the mixer 213, and after the mixed signal is amplified by the amplifier 214, they are output from a speaker or an output terminal (not particularly shown).
  • the CPU 201 executes the control operation of the electronic keyboard instrument 100 of FIG. 1 by executing the control program loaded from the ROM 202 to the RAM 203 while using the RAM 203 as the work memory. Further, the ROM 202 (non-temporary recording medium) stores song data including lyrics data and accompaniment data in addition to the control program and various fixed data.
  • the timer 210 used in this embodiment is mounted on the CPU 201, and for example, the progress of automatic performance in the electronic keyboard instrument 100 is counted.
  • the sound source LSI 204 reads music sound type data from, for example, a waveform ROM (not shown in particular) according to the sound control data 216 from the CPU 201, and outputs the music sound data 218 to the D / A converter 211.
  • the sound source LSI 204 has the ability to produce up to 256 voices at the same time.
  • the voice synthesis LSI 205 includes text data of lyrics (playing lyrics data), data for designating each pitch corresponding to each lyrics (playing pitch data), and data on how to sing (playing form data). Is given as the singing voice data 215 at the time of performance, the singing voice data 217 corresponding to the singing voice data 217 is synthesized and output to the D / A converter 212.
  • the key scanner 206 constantly scans the key press / release state of the key 101 of FIG. 1, the switch operation state of the first switch panel 102, and the second switch panel 103, and interrupts the CPU 201. Communicate change.
  • the LCD controller 208 is an IC (integrated circuit) that controls the display state of the LCD 104.
  • FIG. 3 is a block diagram showing a configuration example of the voice synthesis unit and the voice learning unit in the present embodiment.
  • the voice synthesis unit 302 is built in the electronic keyboard instrument 100 as one function executed by the voice synthesis LSI 205 of FIG.
  • the voice synthesis unit 302 is a lyrics instructed by the CPU 201 via the key scanner 206 of FIG. 2 based on the key pressed on the keyboard 101 of FIG. 1 by the automatic reproduction of lyrics (hereinafter referred to as “song reproduction”) processing described later.
  • the singing voice data 215 is synthesized and output.
  • the processor of the voice synthesizing unit 302 associates the lyrics information generated by the CPU 201 in response to the operation on any of the plurality of keys (operators) on the keyboard 101 with the one of the keys.
  • the playing singing voice data 215 including the pitch information and the information about the singing method is input to the playing singing voice analysis unit 307, and the playing language feature quantity series 316 output from the input is stored in the acoustic model unit 306.
  • the singing voice data 217 that infers the singing voice of the singer is output based on the spectral information 318 and the sound source information 319 output by the acoustic model unit 306 as a result of inputting to the trained acoustic model. ..
  • the voice learning unit 301 may be implemented as a function executed by a server computer 300 existing outside the electronic keyboard instrument 100 of FIG. 1.
  • the voice learning unit 301 is built into the electronic keyboard instrument 100 as a function executed by the voice synthesis LSI 205 if the processing capacity of the voice synthesis LSI 205 in FIG. 2 is sufficient. May be good.
  • the speech learning unit 301 and the speech synthesis unit 302 of FIG. 2 are implemented based on, for example, the technique of "statistical speech synthesis based on deep learning" described in Non-Patent Document 1 below.
  • Non-Patent Document 1 Yoshi Hashimoto, Shinji Takagi, "Statistical Speech Synthesis Based on Deep Learning,” Journal of the Acoustical Society of Japan, Vol. 73, No. 1 (2017), pp. 55-62
  • the voice learning unit 301 of FIG. 2 which is a function executed by an external server computer 300, includes a learning singing voice analysis unit 303, a learning acoustic feature amount extraction unit 304, and a model learning unit 305. include.
  • the learning singing voice data 312 for example, a voice recorded by a singer singing a plurality of songs of an appropriate genre is used. Further, the learning singing voice data 311 includes text data of the lyrics of each song (learning lyrics data), data for designating each pitch corresponding to each lyrics (learning pitch data), and learning singing voice data. Data showing how to sing 312 (playing form data for learning) is prepared. As the learning performance mode data, the time interval in which the learning pitch data is sequentially designated is sequentially measured, and each data indicating the sequentially measured time interval is designated.
  • Learning singing voice data 311 including learning lyrics data, learning pitch data, and learning performance form data is input to the learning singing voice analysis unit 303, and the learning singing voice analysis unit 303 inputs the input data. To analyze. As a result, the learning singing voice analysis unit 303 estimates and outputs the learning language feature quantity series 313, which is a discrete numerical series expressing the phonemes, pitches, and singing styles corresponding to the learning singing voice data 311.
  • the learning acoustic feature amount extraction unit 304 a singer sings the lyrics corresponding to the learning singing voice data 311 in accordance with the input of the learning singing voice data 311, and the learning is collected via a microphone or the like.
  • the singing voice voice data 312 is input, and the learning acoustic feature amount extraction unit 304 analyzes the input data.
  • the learning acoustic feature amount extraction unit 304 extracts the learning acoustic feature amount series 314 representing the voice feature amount corresponding to the learning singing voice voice data 312, and outputs it as teacher data.
  • the language feature quantity series 313 for learning is represented by the following symbols.
  • the acoustic model is represented by the following symbols.
  • the learning acoustic feature series 314 is represented by the following symbols.
  • the probability that the learning acoustic feature sequence 314 is generated is represented by the following symbols.
  • the acoustic model that maximizes the probability that the learning acoustic feature sequence 314 is generated is represented by the following symbols.
  • the model learning unit 305 machine-learns an acoustic model that maximizes the probability that the learning acoustic feature sequence 314 is generated from the learning language feature sequence 314 and the acoustic model according to the following equation (1). Estimated by. That is, the relationship between the linguistic feature series, which is text, and the acoustic feature series, which is voice, is expressed by a statistical model called an acoustic model.
  • the model learning unit 305 outputs learning result data 315 representing an acoustic model calculated as a result of performing machine learning by the calculation shown in the equation (1).
  • the calculated acoustic model is represented by the following symbols.
  • the learning result data 315 is stored in the ROM 202 of the control system of the electronic keyboard instrument 100 of FIG. 2 at the time of shipment from the factory of the electronic keyboard instrument 100 of FIG. 1, and the power of the electronic keyboard instrument 100 is stored. When it is on, it may be loaded from the ROM 202 of FIG. 2 into the acoustic model unit 306 described later in the voice synthesis LSI 205.
  • the learning result data 315 can be obtained by operating the second switch panel 103 of the electronic keyboard instrument 100, so that the Internet or USB (Universal Serial Bus) cable (not particularly shown) is used. It may be downloaded from the network such as, etc.
  • USB Universal Serial Bus
  • the trained acoustic model may be made into hardware by FPGA (Field-Programmable Gate Array) or the like, and this may be used as the acoustic model unit.
  • FPGA Field-Programmable Gate Array
  • the voice synthesis unit 302 which is a function executed by the voice synthesis LSI 205, includes a performance singing voice analysis unit 307, an acoustic model unit 306, and a vocalization model unit 308.
  • the voice synthesis unit 302 sequentially synthesizes and outputs singing voice data 217 corresponding to the singing voice data 215 during performance, which is sequentially input at the time of performance, by predicting using a statistical model called an acoustic model set in the acoustic model unit 306. Perform statistical speech synthesis processing.
  • the performance singing voice analysis unit 307 As a result of the performer's performance in accordance with the automatic performance, the performance lyrics data (sound elements of the lyrics corresponding to the lyrics text) and the performance pitch data designated by the CPU 201 in FIG. And the playing singing voice data 215 including the information about the playing performance form data (singing style data) is input, and the playing singing voice analysis unit 307 analyzes the input data. As a result, the playing singing voice analysis unit 307 analyzes and outputs the phoneme, part of speech, word, pitch, and singing style of the playing language feature quantity series 316 corresponding to the playing singing voice data 215.
  • the acoustic model unit 306 estimates and outputs the playing acoustic feature sequence 317, which is the corresponding acoustic model parameter.
  • the playing language feature sequence 316 input from the playing singing voice analysis unit 307 is represented by the following symbols.
  • the acoustic model set as the learning result data 315 by machine learning in the model learning unit 305 is represented by the following symbols.
  • the acoustic feature series 317 during performance is represented by the following symbols.
  • the probability that the acoustic feature sequence 317 during performance is generated is represented by the following symbols.
  • the estimated value of the playing acoustic feature series 317 which is an acoustic model parameter that maximizes the probability that the playing acoustic feature series 317 is generated, is represented by the following symbols.
  • the acoustic model unit 306 is set as learning result data 315 by machine learning in the performance language feature quantity series 316 input from the performance singing voice analysis unit 307 and the model learning unit 305 according to the following equation (2). Based on the model, the estimated value of the playing acoustic feature series 317, which is an acoustic model parameter that maximizes the probability that the playing acoustic feature series 317 is generated, is estimated.
  • the vocalization model unit 308 synthesizes and outputs the singing voice data 217 corresponding to the singing voice data 215 during performance specified by the CPU 201 by inputting the acoustic feature amount series 317 during performance.
  • the singing voice data 217 is output from the D / A converter 212 of FIG. 2 via the mixer 213 and the amplifier 214, and is particularly emitted from a speaker (not shown).
  • the acoustic features represented by the learning acoustic feature series 314 and the playing acoustic feature series 317 include spectral information modeling the human vocal tract and sound source information modeling the human vocal cords.
  • spectrum information for example, a mer cepstrum, a line spectral pair (Line Spectral Pairs: LSP) or the like can be adopted.
  • sound source information a fundamental frequency (F0) indicating the pitch frequency of human voice and a power value can be adopted.
  • the vocalization model unit 308 includes a sound source generation unit 309 and a synthetic filter unit 310.
  • the sound source generation unit 309 is a portion that models a human voice band, and by sequentially inputting a series of sound source information 319 input from the acoustic model unit 306, for example, the basic frequency (F0) included in the sound source information 319.
  • a sound source consisting of pulse train data (in the case of voiced sound elements) that is periodically repeated by the power value, white noise data (in the case of unvoiced sound elements) having a power value included in the sound source information 319, or data in which they are mixed. Generate signal data.
  • the synthetic filter unit 310 is a portion that models the human voice path, forms a digital filter that models the voice path based on a series of spectral information 318 sequentially input from the acoustic model section 306, and forms a sound source generation unit.
  • the sound source signal data input from 309 is used as the excitation source signal data, and the singing voice audio data 321 which is the digital signal data is generated and output.
  • the sampling frequency for the learning singing voice data 312 and the singing voice data 217 is, for example, 16 KHz (kilohertz).
  • the update frame period is, for example, 5 msec (. Milliseconds).
  • the analysis window length is 25 msec
  • the window function is the Blackman window
  • the analysis order is 24th order.
  • the HMM A method using a Hidden Markov Model (Hidden Markov Model) or a method using a DNN (Deep Neural Network: Deep Neural Network) can be adopted. Since these specific embodiments are disclosed in Patent Document 1 described above, detailed description thereof will be omitted in this application.
  • the electronic keyboard instrument 100 that outputs the singing voice voice data 217 that a certain singer sings well is realized.
  • FIG. 4A and 4B are explanatory views showing an example of staff division which is the basis of singing.
  • FIG. 4A shows an example of a musical score of a fast passage lyrics melody
  • FIG. 4B shows an example of a musical score of a slow passage lyrics melody.
  • the pattern of pitch change is similar, but FIG. 4A shows a continuous division of sixteenth notes (note length is one-fourth of a quarter note), while FIG. 4B shows. It is a continuous division of quarter notes. Therefore, regarding the speed at which the pitch is changed, the staff division in FIG. 4A is four times as fast as the staff division in FIG. 4B.
  • the consonant part of the singing voice In a song with a fast passage, the consonant part of the singing voice must be shortened to sing (play) well. On the contrary, in a slow passage song, it is possible to sing (play) with high expressiveness by lengthening the consonant part of the singing voice.
  • the singing (performance) speed will differ due to the difference in the length of each note in the singing melody (quarter note, eighth note, sixteenth note, etc.).
  • the playing speed will differ if the tempo at the time of playing changes.
  • the time interval (pronunciation speed) between notes caused by the above two factors will be described as "performance tempo" in order to distinguish it from the tempo of a normal musical piece.
  • FIGS. 5A and 5B are diagrams showing waveform changes of singing voice voice caused by a difference in playing tempo as illustrated in FIGS. 4A and 4B.
  • the examples shown in FIGS. 5A and 5B show an example of the waveform of the singing voice when the voice of / ga / is pronounced.
  • the voice of / ga / is a voice in which the consonant / g / and the vowel / a / are combined.
  • the sound length (time length) of the consonant part is usually about several tens of milliseconds to 200 milliseconds.
  • FIG. 5A shows an example of a singing voice waveform when sung in a fast passage
  • FIG. 5B shows an example of a singing voice waveform when sung in a slow passage.
  • the difference between the waveforms of FIGS. 5A and 5B is that the length of the consonant / g / portion is different.
  • the pronunciation time of the consonant is short, as shown in FIG. 5A, and conversely, when sung in a slow passage, the consonant is shown in FIG. 5B.
  • the pronunciation time of the part is long.
  • the consonant is not sung clearly and the pronunciation start speed is prioritized, but in a slow passage, the consonant is often pronounced clearly for a long time to increase the intelligibility as a word.
  • the voice learning is performed in the statistical voice synthesis process including the voice learning unit 301 and the voice synthesis unit 302 exemplified in FIG. 3 in the present embodiment.
  • Learning performance form data indicating how to sing is added to the learning lyrics data indicating the lyrics and the learning pitch data indicating the pitch to the learning singing voice data 311 input in the unit 301, and this learning performance.
  • Information on the playing tempo is included in the morphological data.
  • the learning singing voice analysis unit 303 in the voice learning unit 301 generates a learning language feature quantity series 313 by analyzing such learning singing voice data 311. Then, the model learning unit 305 in the voice learning unit 301 performs machine learning using the learning language feature quantity series 313.
  • the model learning unit 305 can output the learned acoustic model including the performance tempo information as the learning result data 315 and store it in the acoustic model unit 306 in the speech synthesis unit 302 of the speech synthesis LSI 205.
  • the learning performance mode data the time interval in which the learning pitch data is sequentially designated is sequentially measured, and each performance tempo data indicating the sequentially measured time interval is designated.
  • the model learning unit 305 in the present embodiment can perform learning so as to derive a learned acoustic model in which the difference in performance tempo depending on the singing method is added.
  • the performance singing voice data 215 includes the performance lyrics data indicating the lyrics and the performance sound indicating the pitch. Performance data indicating how to sing is added to the high data, and the performance tempo information can be included in the performance data during performance.
  • the playing singing voice analysis unit 307 in the speech synthesis unit 302 analyzes the playing singing voice data 215 to generate the playing language feature sequence 316.
  • the acoustic model unit 306 in the speech synthesis unit 302 outputs the corresponding spectrum information 318 and the sound source information 319 by inputting the performance language feature quantity series 316 into the trained acoustic model, and each of them is a vocalization model unit. It is supplied to the synthesis filter unit 310 and the sound source generation unit 309 in the 308.
  • the vocalization model unit 308 can output singing voice data 217 that reflects changes in the length of consonants as illustrated in FIGS. 5A and 5B due to differences in performance tempo depending on the singing method. That is, it is possible to infer appropriate singing voice data 217 that matches the change in the playing speed between the notes that changes in real time.
  • FIG. 6 shows a lyrics output unit and a pitch designation unit realized by the CPU 201 of FIG. 2 as a control processing function exemplified by the flowcharts of FIGS. 8 to 11 described later for generating the above-mentioned performance singing voice data 215.
  • FIG. 6 shows a lyrics output unit and a pitch designation unit realized by the CPU 201 of FIG. 2 as a control processing function exemplified by the flowcharts of FIGS. 8 to 11 described later for generating the above-mentioned performance singing voice data 215.
  • a block diagram showing a configuration example of a performance mode output unit is exemplified by the flowcharts of FIGS. 8 to 11 described later for generating the above-mentioned performance singing voice data 215.
  • the lyrics output unit 601 includes each performance lyrics data 609 indicating the lyrics at the time of performance in each performance singing voice data 215 to be output to the voice synthesis LSI 205 of FIG. 2 and outputs the lyrics. Specifically, the lyrics output unit 601 sequentially reads each timing data 605 in the song data 604 of the song reproduction loaded in advance from the ROM 202 to the RAM 203 by the CPU 201 in FIG. 2, and according to the timing indicated by each timing data 605, each Each lyrics data (lyric text) 608 in each event data 606 stored as song data 604 in combination with the timing data 605 is sequentially read out, and each is used as each performance lyrics data 609.
  • the pitch designation unit 602 includes each performance pitch data 610 indicating each pitch designated according to the output of each lyrics at the time of performance in each performance singing voice data 215 output to the speech synthesis LSI 205 of FIG. No output. Specifically, the pitch designation unit 602 sequentially reads out each timing data 605 in the song data 604 for song reproduction loaded in the RAM 203, and the performer at the timing indicated by each timing data 605. If any key is pressed on the keyboard 101 and the pitch information of the pressed key is input via the key scanner 206, the pitch information is input to the playing pitch data 610. And. Further, when the performer does not press any key on the keyboard 101 of FIG. 1 at the timing indicated by each timing data 605, the pitch designation unit 602 sets the timing data 605 and the music data 604. The pitch data 607 in the event data 606 stored as is used as the playing pitch data 610.
  • the performance form output unit 603 includes the performance form data 611 indicating the singing method, which is the performance form at the time of performance, in each performance singing voice data 215 output to the voice synthesis LSI 205 of FIG. 2 and outputs the data.
  • the performance form output unit 603 is used by the performer at the time of performance.
  • the time interval in which the pitch is specified by pressing the key is sequentially measured, and each performance tempo data indicating the sequentially measured time interval is referred to as performance mode data 611 at the time of each performance.
  • the performance mode output unit 603 is the song loaded in the RAM 203 when the performer does not set the performance tempo mode to the free mode as described later on the first switch panel 102 of FIG.
  • Each performance tempo data corresponding to each time interval indicated by each timing data 605 sequentially read from the song data 604 for reproduction is referred to as performance mode data 611 at the time of each performance.
  • the performance mode output unit 603 plays the performance. Based on the value of the tempo adjust setting, the value of each performance tempo data sequentially obtained as described above is intentionally changed, and each performance tempo data after the change is set as the performance form data 611 at the time of performance.
  • a key press event is generated by the performer's key press operation or song playback.
  • the performance singing voice data 215 including the performance lyrics data 609, the performance pitch data 610, and the performance performance form data 611 is generated, and the singing voice data 215 is generated in the voice synthesis LSI 205 having the configuration of FIG. 2 or FIG. It can be issued to the voice synthesis unit 302 of.
  • FIG. 7 is a diagram showing a detailed data configuration example of song data read from ROM 202 to RAM 203 in FIG. 2 in the present embodiment.
  • This data structure example conforms to the standard MIDI file format, which is one of the MIDI (Musical Instrument Digital Interface) file formats.
  • This song data is composed of data blocks called chunks. Specifically, the song data consists of a header chunk at the beginning of the file, a track chunk 1 in which the lyrics data for the following lyrics part is stored, and a track chunk 2 in which the performance data for the accompaniment part is stored. It is composed.
  • the header chunk consists of four values: ChunkID, ChunkSize, FormatType, NumberOfTrack, and TimeDivision.
  • ChunkID is a 4-byte ASCII code "4D 54 68 64" (numbers are hexadecimal) corresponding to four single-byte characters "MThd” indicating that it is a header chunk.
  • the ChunkSize is 4-byte data indicating the data length of the FormatType, NumberOfTrack, and TimeDivision parts excluding the ChunkID and the ChunkSize in the header chunk, and the data length is 6 bytes: "00000006" (numbers are hexadecimal). It is fixed to.
  • the Format Type is 2-byte data “00 01” (numbers are hexadecimal numbers), which means format 1 using a plurality of tracks.
  • the NumberOfTrack is 2-byte data "00 02” (number is a hexadecimal number) indicating that two tracks corresponding to the lyrics part and the accompaniment part are used.
  • the Time Division is data indicating a time base value indicating a resolution per quarter note, and in the case of the present embodiment, it is 2-byte data "01E0" (number is a hexadecimal number) indicating 480 in decimal notation.
  • the track chunk 1 indicates a lyrics part, corresponds to the song data 604 of FIG. 6, and corresponds to the ChunkID, the ChunkSize, the DeltaTime_1 [i] corresponding to the timing data 605 of FIG. 6, and the Event_1 corresponding to the event data 606 of FIG. It consists of a performance data set (0 ⁇ i ⁇ L-1) consisting of [i].
  • the track chunk 2 corresponds to the accompaniment part, and is a performance data set (0 ⁇ ) consisting of a ChunkID, a ChunkSize, DeltaTime_2 [i] which is the timing data of the accompaniment part, and Event_2 [j] which is the event data of the accompaniment part. It consists of j ⁇ M-1).
  • Each Chunk ID in track chunks 1 and 2 is a 4-byte ASCII code "4D 54 72 6B" (numbers are hexadecimal numbers) corresponding to four half-width characters "MTrk” indicating that they are track chunks.
  • Each ChunkSize in the track chunks 1 and 2 is 4-byte data indicating the data length of the portion of each track chunk excluding the ChunkID and the ChunkSize.
  • DeltaTime_1 [i] which is the timing data 605 of FIG. 6, is a variable of 1 to 4 bytes indicating the waiting time (relative time) from the execution time of Event_1 [i-1], which is the event data 606 of FIG. 6 immediately before that. It is long data.
  • DeltaTime_2 [i] which is the timing data of the accompaniment part, is 1 to 4 bytes indicating the waiting time (relative time) from the execution time of Event_2 [i-1], which is the event data of the accompaniment part immediately before that. It is variable length data.
  • Event_1 [i] which is the event data 606 of FIG. 6, is a meta-event having two pieces of information, the vocalized text of the lyrics and the pitch, in the track chunk 1 / lyrics part of this embodiment.
  • the event_2 [i] which is the event data of the accompaniment part, is a MIDI event instructing the note-on or note-off of the accompaniment sound in the track chunk 2 / accompaniment part, or a meta event instructing the beat of the accompaniment sound.
  • FIG. 8 is a main flowchart showing an example of control processing of an electronic musical instrument according to the present embodiment.
  • This control process is, for example, an operation in which the CPU 201 of FIG. 2 executes a control process program loaded from the ROM 202 into the RAM 203.
  • the CPU 201 first executes the initialization process (step S801), and then repeatedly executes a series of processes from steps S802 to S808.
  • the CPU 201 first executes the switch process (step S802).
  • the CPU 201 executes a process corresponding to the switch operation of the first switch panel 102 or the second switch panel 103 of FIG. 1 based on the interrupt from the key scanner 206 of FIG. The details of the switch processing will be described later using the flowchart of FIG.
  • the CPU 201 executes a keyboard process for determining whether or not any key of the key 101 of FIG. 1 has been operated based on an interrupt from the key scanner 206 of FIG. 2 (step S803).
  • the CPU 201 outputs musical tone control data 216 instructing the sound source LSI 204 of FIG. 2 to start or stop the sound in response to the operation of pressing or releasing any key by the performer. ..
  • the CPU 201 executes a process of calculating the time interval from the immediately preceding key press to the current key press as performance tempo data. The details of the keyboard processing will be described later using the flowchart of FIG.
  • the CPU 201 processes the data to be displayed on the LCD 104 of FIG. 1, and executes the display process of displaying the data on the LCD 104 via the LCD controller 208 of FIG. 2 (step S804).
  • the data displayed on the LCD 104 includes, for example, lyrics corresponding to the singing voice data 217 to be played, melody and accompaniment score corresponding to the lyrics, and various setting information.
  • the CPU 201 executes the song playback process (step S805).
  • the CPU 201 generates performance singing voice data 215 including lyrics, vocal pitch, and performance tempo for operating the speech synthesis LSI 205 based on the song reproduction, and issues the speech synthesis LSI 205 to the speech synthesis LSI 205.
  • the details of the song reproduction process will be described later using the flowchart of FIG.
  • the CPU 201 executes sound source processing (step S806).
  • the CPU 201 executes control processing such as envelope control of the musical tone being sounded in the sound source LSI 204.
  • the CPU 201 executes the speech synthesis process (step S807).
  • the CPU 201 controls the execution of speech synthesis by the speech synthesis LSI 205.
  • the CPU 201 determines whether or not the performer has pressed a power-off switch (not shown) to power off (step S808). If the determination in step S808 is NO, the CPU 201 returns to the process of step S802. If the determination in step S808 is YES, the CPU 201 ends the control process shown in the flowchart of FIG. 8 and turns off the power of the electronic keyboard instrument 100.
  • 9A, 9B, and 9C show the initialization process of step S801 of FIG. 8, the tempo change process of step S1002 of FIG. 10, which will be described later in the switch process of step S802 of FIG. 8, and step S1006 of FIG. It is a flowchart which shows the detailed example of the song start processing of.
  • the CPU 201 executes the TickTime initialization process.
  • the progress of the lyrics and the automatic accompaniment proceed in units of time called TickTime.
  • the timebase value specified as the TimeDivision value in the header chunk of the song data exemplified in FIG. 7 indicates the resolution of the quarter note, and if this value is, for example, 480, the quarter note has the time length of 480TickTime. Have.
  • the value of the waiting time DeltaTime_1 [i] and the value of DeltaTime_2 [i] in each track chunk of the song data exemplified in FIG. 7 are also counted by the time unit of TickTime.
  • how many seconds 1 Tick Time actually becomes depends on the tempo specified for the song data.
  • the tempo value is Tempo [beat / minute] and the time base value is Time Division
  • the number of seconds of Tick Time is calculated by the following equation (3).
  • the CPU 201 first calculates TickTime [seconds] by the arithmetic processing corresponding to the above equation (10) (step S901).
  • a predetermined value for example, 60 [beats / second] is stored in the ROM 202 of FIG. 2 in the initial state.
  • the tempo value at the time of the previous end may be stored in the non-volatile memory.
  • the CPU 201 sets a timer interrupt by the TickTime [seconds] calculated in step S901 for the timer 210 in FIG. 2 (step S902).
  • an interrupt for song playback and automatic accompaniment hereinafter referred to as “automatic performance interrupt”. Therefore, in the automatic performance interrupt processing (FIG. 12 described later) executed by the CPU 201 based on this automatic performance interrupt, the control processing for advancing the song reproduction and the automatic accompaniment is executed for each TickTime.
  • the CPU 201 executes other initialization processing such as initialization of the RAM 203 of FIG. 2 (step S903). After that, the CPU 201 ends the initialization process of step S801 of FIG. 8 exemplified by the flowchart of FIG. 9A.
  • FIG. 10 is a flowchart showing a detailed example of the switch processing in step S802 of FIG.
  • the CPU 201 determines whether or not the tempo of the lyrics progression and the automatic accompaniment has been changed by the tempo change switch in the first switch panel 102 of FIG. 1 (step S1001). If the determination is YES, the CPU 201 executes the tempo change process (step S1002). Details of this process will be described later with reference to FIG. 9B. If the determination in step S1001 is NO, the CPU 201 skips the process in step S1002.
  • step S1003 the CPU 201 determines whether or not any song song has been selected in the second switch panel 103 of FIG. 1 (step S1003). If the determination is YES, the CPU 201 executes the song song reading process (step S1004). This process is a process of reading the song data having the data structure described with reference to FIG. 7 from the ROM 202 of FIG. 2 to the RAM 203. The song song reading process may be performed not during the performance or before the start of the performance. From then on, data access to track chunks 1 or 2 in the data structure illustrated in FIG. 7 is performed on the song data read into RAM 203. If the determination in step S1003 is NO, the CPU 201 skips the process in step S1004.
  • step S1005 determines whether or not the song start switch has been operated on the first switch panel 102 of FIG. 1. If the determination is YES, the CPU 201 executes the song start process (step S1006). Details of this process will be described later with reference to FIG. 9C. If the determination in step S1005 is NO, the CPU 201 skips the process in step S1006.
  • the CPU 201 determines whether or not the free mode switch has been operated in the first switch panel 102 of FIG. 1 (step S1007). If the determination is YES, the CPU 201 executes a free mode set process for changing the value of the variable FreeMode on the RAM 203 (step S1008).
  • the free mode switch is, for example, a toggle operation, and the value of the variable FreeMode is initially set to, for example, a value 1 in step S903 of FIG. 9A.
  • the free mode switch is pressed in that state, the value of the variable FreeMode becomes 0, when it is pressed again, the value becomes 1, and so on. Every time the free mode switch is pressed, the value of the variable FreeMode becomes 0 and 1. It can be switched alternately. When the value of the variable FreeMode is 1, the free mode is set, and when the value is 0, the free mode setting is canceled. If the determination in step S1007 is NO, the CPU 201 skips the process in step S1008.
  • the CPU 201 determines whether or not the performance tempo adjust switch has been operated on the first switch panel 102 of FIG. 1 (step S1009). If the determination is YES, the CPU 201 changes the value of the variable ShinAdjust on the RAM 203 to the value specified by the numerical key on the first switch panel 102 following the operation of the performance tempo adjust switch. The setting process is executed (step S1010). The value of the variable ShinAdjust is initially set to the value 0, for example, in step S903 of FIG. 9A. If the determination in step S1009 is NO, the CPU 201 skips the process in step S1010.
  • the CPU 201 determines whether or not other switches have been operated in the first switch panel 102 or the second switch panel 103 in FIG. 1, and executes a process corresponding to each switch operation (step S1011). .. After that, the CPU 201 ends the switch process of step S802 of FIG. 8 exemplified by the flowchart of FIG.
  • FIG. 9B is a flowchart showing a detailed example of the tempo change process in step S1002 of FIG. As mentioned above, when the tempo value is changed, the TickTime [seconds] is also changed. In the flowchart of FIG. 9B, the CPU 201 executes a control process relating to the change of the TickTime [seconds].
  • the CPU 201 calculates TickTime [seconds] by the arithmetic processing corresponding to the above-mentioned equation (3) in the same manner as in the case of step S901 of FIG. 9A executed in the initialization process of step S801 of FIG. (Step S911). It is assumed that the tempo value Tempo is stored in the RAM 203 or the like after being changed by the tempo change switch in the first switch panel 102 of FIG.
  • the CPU 201 is based on the TickTime [seconds] calculated in step S911 with respect to the timer 210 of FIG. 2 in the same manner as in the case of step S902 of FIG. 9A executed in the initialization process of step S801 of FIG. Set the timer interrupt (step S912). After that, the CPU 201 ends the tempo change process of step S1002 of FIG. 10 exemplified by the flowchart of FIG. 9B.
  • FIG. 9C is a flowchart showing a detailed example of the song start process of step S1006 of FIG.
  • the CPU 201 has timing data variables DeltaT_1 (track chunk 1) and DeltaT_2 (track chunk 2) on the RAM 203 for counting the relative time from the occurrence time of the immediately preceding event in TickTime as a unit. Initialize both values to 0.
  • the CPU 201 specifies the values of each of the performance data sets DeltaTime_1 [i] and Event_1 [i] (1 ⁇ i ⁇ L-1) in the track chunk 1 of the song data exemplified in FIG. 7.
  • the CPU 201 initially sets the value of the variable SongIndex on the RAM 203 that indicates the current song position to the Null value (step S922).
  • the Null value is usually defined as 0, but since the index number may be 0, the Null value is defined as -1 in this embodiment.
  • the CPU 201 determines whether or not the performer is set to reproduce the accompaniment in accordance with the reproduction of the lyrics by the first switch panel 102 of FIG. 1 (step S924).
  • step S924 determines whether the determination in step S924 is YES or whether the determination in step S924 is YES or whether the determination in step S924 is YES or whether the determination in step S924 is NO, the CPU 201 sets the value of the variable Bansou to 0 (no accompaniment) (step S926). After the process of step S925 or S926, the CPU 201 ends the song start process of step S1006 of FIG. 10 exemplified by the flowchart of FIG. 9C.
  • FIG. 11 is a flowchart showing a detailed example of the keyboard processing in step S803 of FIG.
  • the CPU 201 determines whether or not any key on the keyboard 101 of FIG. 1 has been operated via the key scanner 206 of FIG. 2 (step S1101).
  • step S1101 If the determination in step S1101 is NO, the CPU 201 directly ends the keyboard processing in step S803 of FIG. 8 exemplified by the flowchart of FIG.
  • step S1101 determines whether the key has been pressed or released (step S1102).
  • the CPU 201 instructs the voice synthesis LSI 205 to mute the utterance of the singing voice data 217 corresponding to the released pitch (or key number). (Step S1113). According to this instruction, the voice synthesis unit 302 in FIG. 3 in the voice synthesis LSI 205 stops uttering the corresponding singing voice data 217. After that, the CPU 201 ends the keyboard processing in step S803 of FIG. 8 exemplified by the flowchart of FIG.
  • step S1102 determines the value of the variable FreeMode on the RAM 203 (step S1103).
  • the value of this variable FreeMode is set in step S1008 of FIG. 10 described above.
  • the variable free mode is a value 1
  • the free mode is set, and when the value is 0, the free mode setting is canceled.
  • the CPU 201 uses the RAM 203 as described above in the description of the performance mode output unit 603 of FIG.
  • the predetermined coefficient is the Time Division value of the song data ⁇ 60 in this embodiment. That is, if the TimeDivision value is 480, the PlayTempo is 60 (corresponding to the normal tempo 60) when the DeltaTime_1 [AutoIndex_1] is 480. When DeltaTime_1 [AutoIndex_1] is 240, PlayTempo is 120 (corresponding to a normal tempo 120).
  • the performance tempo will be set in synchronization with the song playback timing information.
  • step S1104 the CPU 201 further determines whether or not the value of the variable NoteOnTime on the RAM 203 is a Null value (step S1104).
  • the value of the variable NoteOnTime is initially set to the Null value, and after the start of song playback, the current time of the timer 210 of FIG. 2 is sequentially set in step S1110 described later. To.
  • step S1104 determines whether the determination in step S1104 is YES at the start of song playback. If the determination in step S1104 is YES at the start of song playback, the performance tempo cannot be determined from the key press operation of the performer. Therefore, the CPU 201 uses the timing data 605 on the RAM 203, DeltaTime_1 [ AutoIndex_1] is used to set the value calculated by the arithmetic processing exemplified by the above-mentioned equation (4) in the variable PlayTempo on the RAM 203 (step S1109). In this way, at the start of song playback, the performance tempo is provisionally set in synchronization with the timing information of song playback.
  • step S1104 If the determination in step S1104 is NO after the start of song playback, the CPU 201 first determines the value of the variable NoteOnTime on the RAM 203 indicating the previous key press time from the current time indicated by the timer 210 in FIG. The difference time obtained by subtracting is set in the variable DeltaTime on the RAM 203 (step S1105).
  • the CPU 201 determines whether or not the value of the variable DeltaTime indicating the difference time from the previous key press to the current key press is smaller than the predetermined maximum time regarded as simultaneous key presses by chord performance (chord). (Step S1106).
  • step S1106 If the determination in step S1106 is YES and it is determined that the key pressed this time is a simultaneous key pressed by chord performance (chord), the CPU 201 does not execute the process for determining the performance tempo, and will be described later. The process proceeds to step S1110.
  • step S1106 determines whether or not the current key press is a simultaneous key press by chord performance (chord). If the determination in step S1106 is NO and it is determined that the current key press is not a simultaneous key press by chord performance (chord), the CPU 201 further determines the difference time from the previous key press to the current key press. It is determined whether or not the value of the indicated variable DeltaTime is larger than the minimum time for which the performance is considered to be interrupted (step S1107).
  • step S1107 If the determination in step S1107 is YES and it is determined that the key is pressed (beginning of the performance phrase) after the performance is interrupted for a while, the performance tempo of the performance phrase cannot be determined. Therefore, the CPU 201 uses the RAM 203.
  • the value calculated by the arithmetic processing exemplified by the above-mentioned equation (4) using the above timing data 605 DeltaTime_1 [AutoIndex_1] is set in the variable PlayTempo on the RAM 203 (step S1109). In this way, when the key is pressed (at the beginning of the performance phrase) after the performance is interrupted for a while, the performance tempo is provisionally set in synchronization with the timing information of the song reproduction.
  • step S1107 If the determination in step S1107 is NO and it is determined that the key pressed this time is neither a simultaneous key pressed by chord performance (chord) nor a key pressed at the beginning of a performance phrase, the CPU 201 is subjected to the following equation (5). As illustrated in, the value obtained by multiplying the inverse of the variable DeltaTime, which indicates the difference time from the previous key press to the current key press, by a predetermined coefficient corresponds to the performance form data 611 during performance in FIG. It is set in the variable PlayTempo on the RAM 203 indicating the playing tempo to be performed (step S1108).
  • step S1108 when the value of the variable DeltaTime indicating the time difference between the previous key press and the current key press is small, the value of PlayTempo, which is the playing tempo, becomes large (the playing tempo becomes faster), and the playing phrase. Is considered to be a fast passage, and in the voice synthesis unit 302 in the voice synthesis LSI 205, the voice waveform of the singing voice data 217 having a short time length of the consonant part is inferred as illustrated in FIG. 5A. On the other hand, when the value of the variable DeltaTime indicating the time difference is large, the value of the playing tempo becomes small (the playing tempo becomes slow), and the playing phrase is regarded as a slow passage. As illustrated in 5B, the voice waveform of the singing voice data 217 having a long time length of the consonant part is inferred.
  • step S1108 After the process of step S1108 described above, after the process of step S1109 described above, or after the determination of step S1106 described above becomes YES, the CPU 201 sets the variable NoteOnTime on the RAM 203 indicating the previous key press time to the figure. The current time indicated by the timer 210 of 2 is set (step S1110).
  • the CPU 201 determines the variable ShinAdjust (ShinAdjust) on the RAM 203 in which the performance tempo adjust value intentionally set by the performer is set in the value of the variable PlayTempo indicating the performance tempo determined in step S1108 or S1109.
  • the value obtained by adding the values in step S1010 in FIG. 10 is set as the value of the new variable PlayTempo (step S1111).
  • the CPU 201 ends the keyboard processing in step S803 of FIG. 8 exemplified by the flowchart of FIG.
  • the performer can intentionally adjust the time length of the consonant portion in the singing voice voice data 217 synthesized by the voice synthesis unit 302.
  • the performer may want to adjust the singing style according to the music and taste. For example, if you want to cut the sound short and play it crisply in a certain song, you want to shorten the consonants and pronounce the voice as if you sang it quickly. In some cases, you may want to pronounce a voice that allows you to clearly hear the breathing of consonants as if you were singing slowly. Therefore, in the present embodiment, the performer changes the value of the variable ShinAdjust by, for example, operating the performance tempo adjust switch on the first switch panel 102 of FIG.
  • the value of the variable PlayTempo is set.
  • the value of ShinAdjust can be finely controlled at any timing in the music by operating the pedal using the variable resistor connected to the electronic keyboard instrument 100 with the foot.
  • the performance tempo value set in the variable PlayTempo by the above keyboard processing is set as a part of the performance singing voice data 215 in the song reproduction processing described later (see step S1305 in FIG. 13 described later), and is set in the voice synthesis LSI 205. publish.
  • steps S1103 to S1109 and step S1111 corresponds to the function of the performance form output unit 603 of FIG.
  • FIG. 12 is a flowchart showing a detailed example of an automatic performance interrupt process executed based on an interrupt generated every TickTime [seconds] in the timer 210 of FIG. 2 (see step S902 of FIG. 9A or step S912 of FIG. 9B). Is. The following processing is executed for the performance data sets of the track chunks 1 and 2 of the song data exemplified in FIG. 7.
  • the CPU 201 executes a series of processes (steps S1201 to S1206) corresponding to the track chunk 1. First, the CPU 201 determines whether or not the SongStart value is 1 (see step S1006 in FIG. 10 and step S923 in FIG. 9C), that is, whether or not the progress of lyrics and accompaniment is instructed (step S1201).
  • step S1201 When it is determined that the progress of the lyrics and the accompaniment is not instructed (the determination in step S1201 is NO), the CPU 201 does not perform the progress of the lyrics and the accompaniment, and the automatic performance illustrated in the flowchart of FIG. 12 is performed. The interrupt processing is terminated as it is.
  • step S1201 When it is determined that the progress of the lyrics and the accompaniment is instructed (the determination in step S1201 is YES), the CPU 201 is on the RAM 203 indicating the relative time from the occurrence time of the previous event regarding the track chunk 1. Whether or not the value of the variable DeltaT_1 matches DeltaTime_1 [AutoIndex_1] on the RAM 203, which is the timing data 605 (FIG. 6) indicating the waiting time of the performance data set to be executed, which is indicated by the value of the variable AutoIndex_1 on the RAM 203. Is determined (step S1202).
  • step S1202 If the determination in step S1202 is NO, the CPU 201 increments the value of the variable DeltaT_1 indicating the relative time from the occurrence time of the previous event by +1 with respect to the track chuck 1, and the time is increased by 1 TickTime unit corresponding to the current interrupt. (Step S1203). After that, the CPU 201 proceeds to step S1207, which will be described later.
  • step S1202 When the determination in step S1202 becomes YES, the CPU 201 stores the value of the variable AutoIndex_1 indicating the position of the next song event to be executed in the track chunk 1 in the variable SongIndex on the RAM 203 (step S1204).
  • the CPU 201 increments the value of the variable AutoIndex_1 for referring to the performance data set in the track chunk 1 by +1 (step S1205).
  • the CPU 201 resets the variable DeltaT_1 value indicating the relative time from the occurrence time of the song event referred to this time with respect to the track chunk 1 to 0 (step S1206). After that, the CPU 201 shifts to the process of step S1207.
  • the CPU 201 executes a series of processes (steps S1207 to S1213) corresponding to the track chunk 2.
  • the CPU 201 has a variable DeltaT_2 value on the RAM 203 indicating a relative time from the occurrence time of the previous event regarding the track chunk 2 on the RAM 203 of the performance data set to be executed, which is indicated by the value of the variable AutoIndex_2 on the RAM 203. It is determined whether or not the timing data DeltaTime_2 [AutoIndex_2] is matched (step S1207).
  • step S1207 If the determination in step S1207 is NO, the CPU 201 increments the indicator variable DeltaT_2 value by +1 for the relative time from the occurrence time of the previous event with respect to the track chuck 2, and sets the time by 1 Tick Time unit corresponding to this interrupt. Proceed (step S1208). After that, the CPU 201 ends the automatic performance interrupt process exemplified in the flowchart of FIG.
  • step S1207 determines whether or not the value of the variable Bansou on the RAM 203 instructing accompaniment reproduction is 1 (with accompaniment) (without accompaniment) (step S1209) (FIG. 9C). See steps S924 to S926).
  • step S1209 the CPU 201 executes the process indicated by the event data Event_2 [AutoIndex_2] on the RAM 203 regarding the accompaniment of the track chuck 2 indicated by the variable AutoIndex_2 value (step S1210). If the process indicated by the event data Event_2 [AutoIndex_2] executed here is, for example, a note-on event, the key number and velocity specified by the note-on event can be used for accompaniment to the sound source LSI 204 of FIG. An instruction to pronounce a musical tone is issued.
  • Event_2 [AutoIndex_2] is, for example, a note-off event
  • the key number specified by the note-off event is used to mute the accompaniment musical sound being sounded with respect to the sound source LSI 204 of FIG. Instructions are issued.
  • step S1209 determines whether the determination in step S1209 is NO, the CPU 201 skips step S1210, so that the process indicated by the event data Event_2 [AutoIndex_2] relating to this accompaniment is not executed, and the progress is synchronized with the lyrics.
  • the process proceeds to the next step S1211, and only the control process for advancing the progress of the event is executed.
  • step S1210 the CPU 201 increments the value of the variable AutoIndex_2 for referencing the performance data set for the accompaniment data on the track chunk 2 by +1 (step S1211).
  • the CPU 201 resets the value of the variable DeltaT_2 indicating the relative time from the occurrence time of the event data executed this time with respect to the track chunk 2 to 0 (step S1212).
  • the CPU 201 determines whether or not the value of the timing data DeltaTime_2 [AutoIndex_2] on the RAM 203 of the performance data set on the track chunk 2 to be executed next, which is indicated by the value of the variable AutoIndex_2, is 0, that is, with this event. It is determined whether or not the events are executed at the same time (step S1213).
  • step S1213 If the determination in step S1213 is NO, the CPU 201 ends the current automatic performance interrupt process exemplified by the flowchart of FIG.
  • step S1213 If the determination in step S1213 is YES, the CPU 201 returns to the process of step S1209 and relates to the event data Event_2 [AutoIndex_2] on the RAM 203 of the performance data set to be executed next on the track chunk 2 indicated by the value of the variable AutoIndex_2. The control process is repeated.
  • the CPU 201 repeatedly executes the processes of steps S1209 to S1213 as many times as the number of times it is executed at the same time this time.
  • the above processing sequence is executed when a plurality of note-on events are sounded at the same timing, such as a chord.
  • FIG. 13 is a flowchart showing a detailed example of the song reproduction process of step S805 of FIG.
  • the CPU 201 determines in step S1204 in the automatic performance interrupt process of FIG. 12 whether or not a new value other than the Null value is set in the variable SongIndex on the RAM 203 and the song is in the playback state (step S1301).
  • the null value is initially set in the variable SongIndex in step S922 of FIG. 9C described above, and the determination of step S1202 described above in the automatic performance interrupt process of FIG. 12 is YES each time the reproduction timing of the singing voice arrives.
  • step S1204 a valid value of the variable AutoIndex_1 indicating the position of the next song event to be executed in the track chunk 1 is set, and the song reproduction process exemplified by the flowchart of FIG.
  • step S1301 When the determination in step S1301 becomes YES, that is, when the current time is the timing for playing the song, the CPU 201 detects a new key pressed by the performer on the keyboard 101 in FIG. 1 by the keyboard processing in step S803 in FIG. It is determined whether or not the keyboard is used (step S1302).
  • step S1302 If the determination in step S1302 is YES, the CPU 201 sets the pitch specified by the key press by the performer in a register (not particularly shown) or a variable on the RAM 203 as the vocal pitch (step S1303).
  • step S1301 determines whether the current time is the timing for playing the song, and the determination in step S1302 is NO, that is, it is determined that no new key press is detected at the present time.
  • the pitch data (corresponding to the pitch data 607 in the event data 606 of FIG. 6) is read from the song event data Event_1 [SongIndex] on the track chunk 1 of the song data on the RAM 203 indicated by the variable SongIndex on the RAM203, and this sound is read. High data is set as vocal pitch in a register (not shown) or a variable on RAM 203 (step S1304).
  • the CPU 201 inputs a lyrics character string (corresponding to the lyrics data 608 in the event data 606 of FIG. 6) from the song event Event_1 [SongIndex] on the track chunk 1 of the song data on the RAM 203 indicated by the variable SongIndex on the RAM 203. read out. Then, the CPU 201 includes the read lyrics character string (corresponding to the playing lyrics data 609 in FIG. 6), the vocal pitch acquired in step S1303 or S1304 (corresponding to the playing pitch data 610 in FIG. 6), and Singing voice data 215 during performance in which the performance tempo (corresponding to the performance form data 611 during performance in FIG. 6) obtained in the variable PlayTempo on the RAM 203 in step S1111 in FIG. 10 corresponding to step S803 in FIG. 8 described above is set. Is set in a register (not shown) or a variable on the RAM 203 (step S1305).
  • the CPU 201 issues the performance singing voice data 215 created in step S1305 to the voice synthesis unit 302 of FIG. 3 of the voice synthesis LSI 205 of FIG. 2 (step S1306).
  • the voice synthesis LSI 205 presses the lyrics specified by the playing singing voice data 215 on the keyboard 101 by the performer designated by the playing singing voice data 215.
  • the pitch is automatically specified as pitch data 607 (see FIG. 6) by playing the song, and the singing voice is appropriately sung at the playing tempo (singing style) specified by the singing voice data 215 during performance.
  • Data 217 is inferred, synthesized, and output.
  • the CPU 201 clears the value of the variable SongIndex to the Null value, and sets the timing after that to a state other than the timing of song playback (step S1307). After that, the CPU 201 ends the song reproduction process of step S805 of FIG. 8 exemplified by the flowchart of FIG.
  • steps S1302 to S1304 corresponds to the function of the pitch designation unit 602 of FIG.
  • the process of step S1305 corresponds to the function of the lyrics output unit 601 of FIG.
  • the pronunciation time of the consonant part of the vocal voice should be long and expressive and vivid in a slow passage with few notes.
  • a tone color change that matches the performance phrase, such as making the sound short and crisp.
  • the above-mentioned embodiment is an embodiment of an electronic musical instrument that generates singing voice data, but as another embodiment, an embodiment of an electronic musical instrument that generates a wind instrument sound or a stringed instrument sound is also possible.
  • the acoustic model unit corresponding to the acoustic model unit 306 of FIG. 3 is a learning sound showing the pitch data for learning that specifies the pitch and the sound of a certain sound source of a wind instrument or a string instrument corresponding to the pitch.
  • Acoustic model parameters corresponding to the input pitch data and performance form data that are machine-learned by the teacher data corresponding to the data and the learning play form data indicating the performance form (for example, performance tempo) of the learning acoustic data.
  • the pitch designation unit (corresponding to the pitch designation unit 602 in FIG. 6) outputs performance pitch data indicating the pitch designated by the performer's performance operation during performance.
  • the performance mode output unit (corresponding to the performance mode output unit 603 of FIG. 6) outputs the performance mode at the time of performance, for example, the performance mode data at the time of performance indicating the performance tempo.
  • the sounding model unit (corresponding to the vocal model unit 308 in FIG. 3) inputs the above-mentioned pitch data during performance and performance form data during performance into the trained acoustic model stored in the acoustic model unit at the time of performance.
  • the musical sound data that infers the sound of a certain sound source source is synthesized and output.
  • pitch data is inferred such that the blow sound at the beginning of blowing of a wind instrument or the speed at which the bow is applied at the moment when the string of a stringed instrument is rubbed with a bow is shortened. By combining them, a crisp performance becomes possible.
  • the pitch data is inferred and synthesized so that the blow sound at the beginning of blowing of the wind instrument and the sound of the bow hitting the string at the moment of rubbing with the bow are inferred and synthesized. Highly expressive performance is possible.
  • the speed of a performance phrase such as the first key press or the first key press of a performance phrase cannot be estimated, and if the player sings or plays strongly, the rising part of the consonant or sound is short.
  • the strength with which the key is played is calculated by taking advantage of the fact that when singing or playing weakly, the consonant or rising part of the sound tends to be long. It may be used as a basis for.
  • the speech synthesis method that can be adopted as the vocalization model unit 308 in FIG. 3 is not limited to the cepstrum speech synthesis method, and various speech synthesis methods including the LSP speech synthesis method can be adopted.
  • a speech synthesis method a machine such as a statistical speech synthesis process using an HMM acoustic model, a speech synthesis method based on a statistical speech synthesis process using a DNN acoustic model, and an acoustic model combining HMM and DNN. Any speech synthesis method may be adopted as long as it is a technique using statistical speech synthesis processing based on learning.
  • the lyrics data 609 at the time of performance is given as song data 604 stored in advance, but text data obtained by voice recognition of the content sung by the performer in real time is given in real time as lyrics information. You may.
  • a pitch specification unit that outputs the pitch data during performance that is specified during performance
  • a performance mode output unit that outputs performance mode data indicating the performance mode during performance
  • a performance mode output unit The playing pitch data and the playing playing form data are based on the acoustic model parameters inferred by inputting the playing pitch data and the playing playing form data into the trained acoustic model at the time of playing.
  • a sound model unit that synthesizes and outputs music sound data corresponding to Electronic musical instrument equipped with.
  • a lyrics output section that outputs lyrics data at the time of performance, which shows the lyrics at the time of performance
  • a pitch designation unit that outputs pitch data during performance, which is designated according to the output of the lyrics at the time of performance
  • a pitch designation unit that outputs pitch data during performance, which is designated according to the output of the lyrics at the time of performance
  • a performance mode output unit that outputs performance mode data indicating the performance mode during performance, and a performance mode output unit.
  • the performance lyrics data based on the acoustic model parameters inferred by inputting the performance lyrics data, the performance pitch data, and the performance performance form data into the trained acoustic model at the time of the performance.
  • a vocal model unit that synthesizes and outputs the singing voice data corresponding to the performance pitch data and the performance mode data during performance, and a vocal model unit.
  • the performance mode output unit sequentially measures the time interval in which the pitch is designated during the performance, and sequentially outputs the performance tempo data indicating the sequentially measured time interval as the performance mode data during the performance. Or the electronic musical instrument according to any one of 2.
  • the electronic musical instrument according to Appendix 4 The electronic musical instrument according to Appendix 3, wherein the performance form output unit includes a changing means for intentionally changing the performance tempo data obtained sequentially by the performer.
  • For the processor of electronic musical instruments Outputs the pitch data during performance specified during performance, Outputs the performance mode data at the time of performance, which indicates the performance mode at the time of performance.
  • the playing pitch data and the playing playing form data are based on the acoustic model parameters inferred by inputting the playing pitch data and the playing playing form data into the trained acoustic model at the time of playing. Synthesizes and outputs the music data corresponding to A method of controlling an electronic musical instrument that executes processing. (Appendix 6)
  • For the processor of electronic musical instruments Outputs the lyrics data at the time of performance, which shows the lyrics at the time of performance.
  • the pitch data at the time of performance specified according to the output of the lyrics is output.
  • the performance mode data at the time of performance which indicates the performance mode at the time of performance, is output.
  • the performance lyrics data based on the acoustic model parameters inferred by inputting the performance lyrics data, the performance pitch data, and the performance performance form data into the trained acoustic model at the time of the performance. Synthesizes and outputs the performance pitch data and the singing voice data corresponding to the performance mode data.
  • a method of controlling an electronic musical instrument that executes processing. (Appendix 7) For the processor of electronic musical instruments Outputs the pitch data during performance specified during performance, Outputs the performance mode data at the time of performance, which indicates the performance mode at the time of performance.
  • the playing pitch data and the playing playing form data are based on the acoustic model parameters inferred by inputting the playing pitch data and the playing playing form data into the trained acoustic model at the time of playing. Synthesizes and outputs the music data corresponding to A program for executing processing.
  • Appendix 8 For the processor of electronic musical instruments Outputs the lyrics data at the time of performance, which shows the lyrics at the time of performance. At the time of the performance, the pitch data at the time of performance specified according to the output of the lyrics is output. The performance mode data at the time of performance, which indicates the performance mode at the time of performance, is output.
  • the performance lyrics data based on the acoustic model parameters inferred by inputting the performance lyrics data, the performance pitch data, and the performance performance form data into the trained acoustic model at the time of the performance. Synthesizes and outputs the performance pitch data and the singing voice data corresponding to the performance mode data.

Landscapes

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

Abstract

鍵盤等の操作子の操作に応じて歌声を再生する電子楽器、電子楽器の制御方法、及びプログラムに関し、リアルタイムに変化する音符間の時間の変化に合った適切な音声波形を推論可能とする。電子楽器(100)は、演奏時に指定される演奏時音高データ(610)を出力する音高指定部(602)と、演奏時の演奏形態を示す演奏時演奏形態データ(611)を出力する演奏形態出力部(603)と、演奏時に、演奏時音高データ(610)及び演奏時演奏形態データ(611)を学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、演奏時音高データ(610)及び演奏時演奏形態データ(611)に対応する楽音データを合成し出力する発音モデル部(308)と、を備える。

Description

電子楽器、電子楽器の制御方法、及びプログラム
 本発明は、鍵盤等の操作子の操作に応じて学習済み音響モデルを駆動して音声を出力する電子楽器、電子楽器の制御方法、及びプログラムに関する。
 電子楽器において、従来のPCM(Pulse Code Modulation:パルス符号変調)方式の表現力の弱点である歌唱音声や生楽器の表現力を補うために、人間の発声機構やアコースティック楽器の発音機構をデジタル信号処理でモデル化した音響モデルを、歌唱動作や演奏動作に基づく機械学習により学習させ、その学習済み音響モデルを実際の演奏操作に基づいて駆動して歌声や楽音の音声波形データを推論して出力する技術が考案され実用化されつつある(例えば特許文献1)。
  特許文献1:日本国特許第6610714号公報
 機械学習により例えば歌声波形や楽音波形を作り出す場合、演奏されるテンポやフレーズの歌い方や演奏形態の変化によって生成波形が変化することが多い。例えば、ボーカル音声の子音部の発音時間長、管楽器音のブロー音の発音時間長、擦弦楽器の弦をこすり始めるときのノイズ成分の時間長が、音符の少ないゆっくりとした演奏では長い時間になって表情豊かな生々しい音になり、音符が多いテンポの速い演奏では短い時間になって歯切れのよい音で演奏される。
 しかし、ユーザが鍵盤等でリアルタイムに演奏する場合には、音源装置に各音符の譜割りの変化や演奏フレーズの違いに対応して変化する音符間の演奏速度を伝える手段がないため、音響モデルが音符間の演奏速度の変化に応じた適切な音声波形を推論することができず、例えば、ゆっくりとした演奏のときの表現力が不足したり、逆に、テンポの速い演奏に対して生成される音声波形の立上りが遅れて演奏しづらくなってしまう、といった問題があった。
 そこで、本発明の目的は、リアルタイムに変化する音符間の演奏速度の変化に合った適切な音声波形を推論可能とすることにある。
 態様の一例の電子楽器は、演奏時に指定される演奏時音高データを出力する音高指定部と、演奏時の演奏形態を示す演奏時演奏形態データを出力する演奏形態出力部と、演奏時に、演奏時音高データ及び演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、演奏時音高データ及び演奏時演奏形態データに対応する楽音データを合成し出力する発音モデル部と、を備える。
 態様の他の一例の電子楽器は、演奏時の歌詞を示す演奏時歌詞データを出力する歌詞出力部と、演奏時に歌詞の出力に合わせて指定される演奏時音高データを出力する音高指定部と、演奏時の演奏形態を示す演奏時演奏形態データを出力する演奏形態出力部と、演奏時に、演奏時歌詞データ、演奏時音高データ、及び演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、演奏時歌詞データ、演奏時音高データ、及び演奏時演奏形態データに対応する歌声音声データを合成し出力する発声モデル部と、を備える。
 本発明によれば、リアルタイムに変化する音符間の演奏速度の変化に合った適切な音声波形を推論することが可能となる。
図1は、電子鍵盤楽器の一実施形態の外観例を示す図である。 図2は、電子鍵盤楽器の制御システムの一実施形態のハードウェア構成例を示すブロック図である。 図3は、音声学習部及び音声合成部の構成例を示すブロック図である。 図4Aは、歌い方のもととなる譜割りの例を示す説明図である。 図4Bは、歌い方のもととなる譜割りの例を示す説明図である。 図5Aは、演奏テンポの差により生じる歌声音声の波形変化を示す図である。 図5Bは、演奏テンポの差により生じる歌声音声の波形変化を示す図である。 図6は、歌詞出力部、音高指定部、及び演奏形態出力部の構成例を示すブロック図である。 図7は、本実施形態のデータ構成例を示す図である。 図8は、本実施形態における電子楽器の制御処理例を示すメインフローチャートである。 図9Aは、初期化処理の詳細例を示すフローチャートである。 図9Bは、テンポ変更処理の詳細例を示すフローチャートである。 図9Cは、ソング開始処理の詳細例を示すフローチャートである。 図10は、スイッチ処理の詳細例を示すフローチャートである。 図11は、鍵盤処理の詳細例を示すフローチャートである。 図12は、自動演奏割込み処理の詳細例を示すフローチャートである。 図13は、ソング再生処理の詳細例を示すフローチャートである。
 以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
 図1は、電子鍵盤楽器の一実施形態100の外観例を示す図である。電子鍵盤楽器100は、操作子としての複数の鍵からなる鍵盤101と、音量の指定、後述するソング再生のテンポ設定、後述する演奏テンポモードの設定、後述する演奏テンポのアジャスト設定、後述するソング再生開始、後述する伴奏再生等の各種設定を指示する第1のスイッチパネル102と、ソングや伴奏の選曲や音色の選択等を行う第2のスイッチパネル103と、後述するソング再生時の歌詞、楽譜や各種設定情報を表示するLCD104(Liquid Crystal Display:液晶ディスプレイ)等を備える。また、電子鍵盤楽器100は、特には図示しないが、演奏により生成された楽音を放音するスピーカを裏面部、側面部、又は背面部等に備える。
 図2は、図1の電子鍵盤楽器100の制御システム200の一実施形態のハードウェア構成例を示す図である。図2において、制御システム200は、CPU(中央演算処理装置)201、ROM(リードオンリーメモリ)202、RAM(ランダムアクセスメモリ)203、音源LSI(大規模集積回路)204、音声合成LSI205、図1の鍵盤101、第1のスイッチパネル102、及び第2のスイッチパネル103が接続されるキースキャナ206、図1のLCD104が接続されるLCDコントローラ208、外部のネットワークとMIDIデータ等のやりとりを行うネットワークインタフェース219が、それぞれシステムバス209に接続されている。また、CPU201には、自動演奏のシーケンスを制御するためのタイマ210が接続される。更に、音源LSI204及び音声合成LSI205からそれぞれ出力される楽音データ218及び歌声音声データ217は、D/Aコンバータ211、212によりそれぞれアナログ楽音出力信号及びアナログ歌声音声出力信号に変換される。アナログ楽音出力信号及びアナログ歌声音声出力信号は、ミキサ213で混合され、その混合信号がアンプ214で増幅された後に、特には図示しないスピーカ又は出力端子から出力される。
 CPU201は、RAM203をワークメモリとして使用しながらROM202からRAM203にロードした制御プログラムを実行することにより、図1の電子鍵盤楽器100の制御動作を実行する。また、ROM202(非一時的な記録媒体)は、上記制御プログラム及び各種固定データのほか、歌詞データ及び伴奏データを含む曲データを記憶する。
 CPU201には、本実施形態で使用するタイマ210が実装されており、例えば電子鍵盤楽器100における自動演奏の進行をカウントする。
 音源LSI204は、CPU201からの発音制御データ216に従って、例えば特には図示しない波形ROMから楽音波形データを読み出し、楽音データ218としてD/Aコンバータ211に出力する。音源LSI204は、同時に最大256ボイスを発音させる能力を有する。
 音声合成LSI205は、CPU201から、歌詞のテキストデータ(演奏時歌詞データ)と各歌詞に対応する各音高を指定するデータ(演奏時音高データ)と歌い方に関するデータ(演奏時演奏形態データ)を演奏時歌声データ215として与えられると、それに対応する歌声音声データ217を合成し、D/Aコンバータ212に出力する。
 キースキャナ206は、図1の鍵盤101の押鍵/離鍵状態、第1のスイッチパネル102、及び第2のスイッチパネル103のスイッチ操作状態を定常的に走査し、CPU201に割り込みを掛けて状態変化を伝える。
 LCDコントローラ208は、LCD104の表示状態を制御するIC(集積回路)である。
 図3は、本実施形態における音声合成部及び音声学習部の構成例を示すブロック図である。ここで、音声合成部302は、図2の音声合成LSI205が実行する一機能として電子鍵盤楽器100に内蔵される。
 音声合成部302は、後述する歌詞の自動再生(以下「ソング再生」と記載)処理により図1の鍵盤101上の押鍵に基づいて図2のキースキャナ206を介してCPU201から指示される歌詞、音高、及び歌い方の情報を含む演奏時歌声データ215を入力することにより、歌声音声データ217を合成し出力する。このとき音声合成部302のプロセッサは、鍵盤101上の複数の鍵(操作子)のなかのいずれかの鍵への操作に応じてCPU201により生成された歌詞情報と、いずれかの鍵に対応付けられている音高情報と、歌い方に関する情報を含む演奏時歌声データ215を演奏時歌声解析部307に入力し、そこから出力される演奏時言語特徴量系列316を音響モデル部306に記憶されている学習済み音響モデルに入力し、その結果、音響モデル部306が出力したスペクトル情報318と音源情報319とに基づいて、歌い手の歌声を推論した歌声音声データ217を出力する発声処理を実行する。
 音声学習部301は例えば、図3に示されるように、図1の電子鍵盤楽器100とは別に外部に存在するサーバコンピュータ300が実行する一機能として実装されてよい。或いは、図3には図示していないが、音声学習部301は、図2の音声合成LSI205の処理能力に余裕があれば、音声合成LSI205が実行する一機能として電子鍵盤楽器100に内蔵されてもよい。
 図2の音声学習部301及び音声合成部302は、例えば下記非特許文献1に記載の「深層学習に基づく統計的音声合成」の技術に基づいて実装される。
(非特許文献1)
 橋本佳,高木信二「深層学習に基づく統計的音声合成」日本音響学会誌73巻1号(2017),pp.55-62
 図3に示されるように例えば外部のサーバコンピュータ300が実行する機能である図2の音声学習部301は、学習用歌声解析部303と学習用音響特徴量抽出部304とモデル学習部305とを含む。
 音声学習部301において、学習用歌声音声データ312としては、例えば適当なジャンルの複数の歌唱曲を或る歌い手が歌った音声を録音したものが使用される。また、学習用歌声データ311としては、各歌唱曲の歌詞のテキストデータ(学習用歌詞データ)と各歌詞に対応する各音高を指定するデータ(学習用音高データ)と学習用歌声音声データ312の歌い方を示すデータ(学習用演奏形態データ)とが用意される。学習用演奏形態データとしては、上記学習用音高データが順次指定される時間間隔が順次計測され、順次計測された時間間隔を示す各データが指定される。
 学習用歌声解析部303には、学習用歌詞データ、学習用音高データ、及び学習用演奏形態データを含む学習用歌声データ311が入力され、学習用歌声解析部303は、入力されたデータを解析する。この結果、学習用歌声解析部303は、学習用歌声データ311に対応する音素、音高、歌い方を表現する離散数値系列である学習用言語特徴量系列313を推定して出力する。
 学習用音響特徴量抽出部304には、上記学習用歌声データ311の入力に合わせてその学習用歌声データ311に対応する歌詞を或る歌い手が歌うことによりマイク等を介して集録された学習用歌声音声データ312が入力され、学習用音響特徴量抽出部304は、入力されたデータを分析する。この結果、学習用音響特徴量抽出部304は、学習用歌声音声データ312に対応する音声の特徴量を表す学習用音響特徴量系列314を抽出し、それを教師データとして出力する。
 学習用言語特徴量系列313を以下の記号で表す。
Figure JPOXMLDOC01-appb-M000001
音響モデルを以下の記号で表す。
Figure JPOXMLDOC01-appb-M000002
学習用音響特徴量系列314を以下の記号で表す。
Figure JPOXMLDOC01-appb-M000003
学習用音響特徴量系列314が生成される確率を以下の記号表す。
Figure JPOXMLDOC01-appb-M000004
学習用音響特徴量系列314が生成される確率を最大にするような音響モデルを以下の記号で表す。
Figure JPOXMLDOC01-appb-M000005
モデル学習部305は、下記(1)式に従って、学習用言語特徴量系列314と音響モデルとから、学習用音響特徴量系列314が生成される確率を最大にするような音響モデルを、機械学習により推定する。即ち、テキストである言語特徴量系列と音声である音響特徴量系列との関係が、音響モデルという統計モデルによって表現される。
Figure JPOXMLDOC01-appb-M000006
 ここで、以下の記号は、その右側に記載される関数に関して最大値を与える、その下側に記載されている引数を算出する演算を示す。
Figure JPOXMLDOC01-appb-M000007
 モデル学習部305は、(1)式に示される演算によって機械学習を行った結果算出される音響モデルを表現する学習結果データ315を出力する。算出される音響モデルを以下の記号で表す。
Figure JPOXMLDOC01-appb-M000008
 この学習結果データ315は例えば、図3に示されるように、図1の電子鍵盤楽器100の工場出荷時に、図2の電子鍵盤楽器100の制御システムのROM202に記憶され、電子鍵盤楽器100のパワーオン時に、図2のROM202から音声合成LSI205内の後述する音響モデル部306にロードされてよい。或いは、学習結果データ315は例えば、図3に示されるように、演奏者が電子鍵盤楽器100の第2のスイッチパネル103を操作することにより、特には図示しないインターネットやUSB(Universal Serial Bus)ケーブル等のネットワークからネットワークインタフェース219を介して、音声合成LSI205内の後述する音響モデル部306にダウンロードされてもよい。或いは、音声合成LSI205とは別に、学習済み音響モデルをFPGA(Field-Programmable Gate Array)等によりハードウェア化し、これをもって音響モデル部としてもよい。
 音声合成LSI205が実行する機能である音声合成部302は、演奏時歌声解析部307と音響モデル部306と発声モデル部308とを含む。音声合成部302は、演奏時に順次入力される演奏時歌声データ215に対応する歌声音声データ217を、音響モデル部306に設定された音響モデルという統計モデルを用いて予測することにより順次合成し出力する、統計的音声合成処理を実行する。
 演奏時歌声解析部307には、自動演奏に合わせた演奏者の演奏の結果として、図2のCPU201より指定される演奏時歌詞データ(歌詞テキストに対応する歌詞の音素)と演奏時音高データと演奏時演奏形態データ(歌い方データ)に関する情報を含む演奏時歌声データ215を入力され、演奏時歌声解析部307は入力されたデータを解析する。この結果、演奏時歌声解析部307は、演奏時歌声データ215に対応する音素、品詞、単語と音高と歌い方を表現する演奏時言語特徴量系列316を解析して出力する。
 音響モデル部306は、演奏時言語特徴量系列316が入力されることにより、それに対応する音響モデルパラメータである演奏時音響特徴量系列317を推定して出力する。演奏時歌声解析部307から入力される演奏時言語特徴量系列316を以下の記号で表す。
Figure JPOXMLDOC01-appb-M000009
モデル学習部305での機械学習により学習結果データ315として設定された音響モデルを以下の記号で表す。
Figure JPOXMLDOC01-appb-M000010
演奏時音響特徴量系列317を以下の記号で表す。
Figure JPOXMLDOC01-appb-M000011
演奏時音響特徴量系列317が生成される確率を以下の記号で表す。
Figure JPOXMLDOC01-appb-M000012
演奏時音響特徴量系列317が生成される確率を最大にするような音響モデルパラメータである演奏時音響特徴量系列317の推定値を以下の記号で表す。
Figure JPOXMLDOC01-appb-M000013
音響モデル部306は、下記(2)式に従って、演奏時歌声解析部307から入力される演奏時言語特徴量系列316と、モデル学習部305での機械学習により学習結果データ315として設定された音響モデルとに基づいて、演奏時音響特徴量系列317が生成される確率を最大にするような音響モデルパラメータである演奏時音響特徴量系列317の推定値を推定する。
Figure JPOXMLDOC01-appb-M000014
 発声モデル部308は、演奏時音響特徴量系列317が入力されることにより、CPU201より指定される演奏時歌声データ215に対応する歌声音声データ217を合成し出力する。この歌声音声データ217は、図2のD/Aコンバータ212からミキサ213及びアンプ214を介して出力され、特には図示しないスピーカから放音される。
 学習用音響特徴量系列314や演奏時音響特徴量系列317で表される音響特徴量は、人間の声道をモデル化したスペクトル情報と、人間の声帯をモデル化した音源情報とを含む。スペクトル情報(パラメータ)としては例えば、メルケプストラムや線スペクトル対(Line Spectral Pairs:LSP)等を採用できる。音源情報としては、人間の音声のピッチ周波数を示す基本周波数(F0)及びパワー値を採用できる。発声モデル部308は、音源生成部309と合成フィルタ部310とを含む。音源生成部309は、人間の声帯をモデル化した部分であり、音響モデル部306から入力する音源情報319の系列が順次入力されることにより、例えば、音源情報319に含まれる基本周波数(F0)及びパワー値で周期的に繰り返されるパルス列データ(有声音音素の場合)、又は音源情報319に含まれるパワー値を有するホワイトノイズデータ(無声音音素の場合)、或いはそれらが混合されたデータからなる音源信号データを生成する。合成フィルタ部310は、人間の声道をモデル化した部分であり、音響モデル部306から順次入力されるスペクトル情報318の系列に基づいて声道をモデル化するデジタルフィルタを形成し、音源生成部309から入力する音源信号データを励振源信号データとして、デジタル信号データである歌声音声データ321を生成し出力する。
 学習用歌声音声データ312及び歌声音声データ217に対するサンプリング周波数は、例えば16KHz(キロヘルツ)である。また、学習用音響特徴量系列314及び演奏時音響特徴量系列317に含まれるスペクトルパラメータとして、例えばメルケプストラム分析処理により得られるメルケプストラムパラメータが採用される場合、その更新フレーム周期は、例えば5msec(ミリ秒)である。更に、メルケプストラム分析処理の場合、分析窓長は25msec、窓関数はブラックマン窓、分析次数は24次である。
 図3の音声学習部301及び音声合成部302からなる統計的音声合成処理の具体的な処理としては例えば、音響モデル部306に設定される学習結果データ315によって表現される音響モデルとして、HMM(Hidden Markov Model:隠れマルコフモデル)を用いる方法や、DNN(Deep Neural Network:ディープニューラルネットワーク)を用いる方法を採用することができる。これらの具体的な実施形態については、前述した特許文献1に開示されているので、本出願では、その詳細な説明は省略する。
 図3に例示した音声学習部301及び音声合成部302からなる統計的音声合成処理により、或る歌手の歌声を学習した学習済み音響モデルを搭載した音響モデル部306に、ソング再生される歌詞と演奏者により押鍵指定される音高とを含む演奏時歌声データ215を順次入力させることにより、或る歌手が良好に歌う歌声音声データ217を出力する電子鍵盤楽器100が実現される。
 ここで、歌唱音声では、速いパッセージのメロディとゆっくりしたパッセージのメロディとでは、歌い方に差がでるのが通常である。図4A、図4Bは、歌い方のもととなる譜割りの例を示す説明図である。図4Aに速いパッセージの歌詞メロディの楽譜例、図4Bにゆっくりしたパッセージの歌詞メロディの楽譜例を示す。この例では、音高変化のパターンは同様であるが、図4Aは、16分音符(音符の長さが四分音符の4分の1)の連続の譜割りであるが、図4Bは、4分音符の連続の譜割りとなっている。従って、音高を変化させる速度については、図4Aの譜割りは図4Bの譜割りの4倍の速度となる。速いパッセージの曲では、歌唱音声の子音部は短くしないとうまく歌唱(演奏)できない。逆に、ゆっくりしたパッセージの曲では、歌唱音声の子音部を長くしたほうが、表現力の高い歌唱(演奏)ができる。上述のように、音高の変化パターンが同じでも、歌唱メロディの音符ひとつひとつの長さの違い(四分音符、八分音符、十六分音符等)により、歌唱(演奏)速度に差が生じるが、全く同じ楽譜が歌唱(演奏)されても、演奏時のテンポが変化すれば演奏速度に差が生じるのは言うまでもない。以下の説明では、上述の2つの要因により生じる音符間の時間間隔(発音速度)を通常の楽曲のテンポと区別して「演奏テンポ」と記載することにする。
 図5A、図5Bは、図4A、図4Bに例示したような演奏テンポの差により生じる歌声音声の波形変化を示す図である。図5A、図5Bに示される例は、/ga/の音声が発音された場合の歌声音声の波形例を示している。/ga/の音声は、子音の/g/と、母音の/a/が組み合わさった音声である。子音部の音長(時間長)は、通常は数10ミリ秒から200ミリ秒程度であることが多い。ここで、図5Aは速いパッセージで歌唱された場合の歌声音声波形の例、図5Bはゆっくりしたパッセージで歌唱された場合の歌声音声波形の例を示している。図5Aと図5Bの波形の違いは、子音/g/の部分の長さが異なることである。速いパッセージで歌唱された場合には、図5Aに示されるように、子音部の発音時間長が短く、逆に、ゆっくりしたパッセージで歌唱される場合には、図5Bに示されるように、子音部の発音時間長が長くなっていることがわかる。速いパッセージでの歌唱では子音をはっきり歌わず、発音開始速度を優先するが、ゆっくりしたパッセージでは、子音を長くはっきり発音させることで、言葉としての明瞭度を上げる発音になることが多い。
 上述したような、演奏テンポの差を歌声音声データの変化に反映させるために、本実施形態における図3に例示した音声学習部301及び音声合成部302からなる統計的音声合成処理において、音声学習部301において入力される学習用歌声データ311に、歌詞を示す学習用歌詞データと、音高を示す学習用音高データに、歌い方を示す学習用演奏形態データが追加され、この学習用演奏形態データに演奏テンポの情報が含ませられる。音声学習部301内の学習用歌声解析部303は、このような学習用歌声データ311を解析することにより、学習用言語特徴量系列313を生成する。そして、音声学習部301内のモデル学習部305が、この学習用言語特徴量系列313を用いて機械学習を行う。この結果、モデル学習部305が、演奏テンポの情報を含む学習済み音響モデルを学習結果データ315として出力し、音声合成LSI205の音声合成部302内の音響モデル部306に記憶させることができる。学習用演奏形態データとしては、上記学習用音高データが順次指定される時間間隔が順次計測され、順次計測された時間間隔を示す各演奏テンポデータが指定される。このように、本実施形態におけるモデル学習部305は、歌い方による演奏テンポの違いが加味された学習済み音響モデルを導きだせるような学習を行うことができる。
 一方、上述のような学習済み音響モデルがセットされた音響モデル部306を含む音声合成部302においては、演奏時歌声データ215に、歌詞を示す演奏時歌詞データと、音高を示す演奏時音高データに、歌い方を示す演奏時演奏形態データが追加され、この演奏時演奏形態データに演奏テンポの情報を含ませることができる。音声合成部302内の演奏時歌声解析部307は、このような演奏時歌声データ215を解析することにより、演奏時言語特徴量系列316を生成する。そして、音声合成部302内の音響モデル部306は、この演奏時言語特徴量系列316を学習済み音響モデルに入力させることにより、対応するスペクトル情報318及び音源情報319を出力し、それぞれ発声モデル部308内の合成フィルタ部310及び音源生成部309に供給する。この結果、発声モデル部308は、歌い方による演奏テンポの違いにより例えば図5A及び図5Bに例示したような子音の長さ等の変化が反映された歌声音声データ217を出力することができる。即ち、リアルタイムに変化する音符間の演奏速度の変化に合った、適切な歌声音声データ217を推論することが可能となる。
 図6は、上述した演奏時歌声データ215を生成するための、図2のCPU201が後述する図8から図11のフローチャートで例示される制御処理の機能として実現する歌詞出力部、音高指定部、及び演奏形態出力部の構成例を示すブロック図である。
 歌詞出力部601は、演奏時の歌詞を示す各演奏時歌詞データ609を、図2の音声合成LSI205に出力する各演奏時歌声データ215に含ませて出力する。具体的には、歌詞出力部601は、図2においてCPU201が予めROM202からRAM203にロードしたソング再生の曲データ604中の各タイミングデータ605を順次読み出しながら、各タイミングデータ605が示すタイミングに従って、各タイミングデータ605と組で曲データ604として記憶されている各イベントデータ606中の各歌詞データ(歌詞テキスト)608を順次読み出し、それぞれを各演奏時歌詞データ609とする。
 音高指定部602は、演奏時に各歌詞の出力に合わせて指定される各音高を示す各演奏時音高データ610を、図2の音声合成LSI205に出力する各演奏時歌声データ215に含ませて出力する。具体的には、音高指定部602は、RAM203にロードされた上記ソング再生用の曲データ604中の各タイミングデータ605を順次読み出しながら、各タイミングデータ605が示すタイミングにおいて、演奏者が図1の鍵盤101で何れかの鍵を押鍵操作してその押鍵された鍵の音高情報がキースキャナ206を介して入力されている場合には、その音高情報を演奏時音高データ610とする。また、音高指定部602は、各タイミングデータ605が示すタイミングにおいて、演奏者が図1の鍵盤101でどの鍵も押鍵操作していない場合には、そのタイミングデータ605と組で曲データ604として記憶されているイベントデータ606中の音高データ607を演奏時音高データ610とする。
 演奏形態出力部603は、演奏時の演奏形態である歌い方を示す演奏時演奏形態データ611を、図2の音声合成LSI205に出力する各演奏時歌声データ215に含ませて出力する。
 具体的には、演奏形態出力部603は、演奏者が図1の第1のスイッチパネル102上で、後述するように演奏テンポモードをフリーモードに設定している場合には、演奏時に演奏者の押鍵によって音高が指定される時間間隔を順次計測し、順次計測された時間間隔を示す各演奏テンポデータを、各演奏時演奏形態データ611とする。
 一方、演奏形態出力部603は、演奏者が図1の第1のスイッチパネル102上で、後述するように演奏テンポモードをフリーモードに設定していない場合には、RAM203にロードされた上記ソング再生用の曲データ604から順次読み出される各タイミングデータ605が示す各時間間隔に対応する各演奏テンポデータを、各演奏時演奏形態データ611とする。
 また、演奏形態出力部603は、演奏者が図1の第1のスイッチパネル102上で、後述するように演奏テンポモードを意図的に変更する演奏テンポアジャスト設定を行った場合には、その演奏テンポアジャスト設定の値に基づいて、上述のようにして順次得られる各演奏テンポデータの値を意図的に変更し、変更後の各演奏テンポデータを演奏時演奏形態データ611とする。
 以上のようにして、図2のCPU201が実行する歌詞出力部601、音高指定部602、及び演奏形態出力部603の各機能は、演奏者の押鍵操作又はソング再生による押鍵イベントが発生したタイミングで、演奏時歌詞データ609、演奏時音高データ610、及び演奏時演奏形態データ611を含む演奏時歌声データ215を生成し、それを図2又は図3の構成を有する音声合成LSI205内の音声合成部302に対して発行することができる。
 図3から図6で説明した統計的音声合成処理を利用した図1及び図2の電子鍵盤楽器100の実施形態の動作について、以下に詳細に説明する。図7は、本実施形態において、図2のROM202からRAM203に読み込まれる曲データの詳細なデータ構成例を示す図である。このデータ構成例は、MIDI(Musical Instrument Digital Interface)用ファイルフォーマットの一つであるスタンダードMIDIファイルのフォーマットに準拠している。この曲データは、チャンクと呼ばれるデータブロックから構成される。具体的には、曲データは、ファイルの先頭にあるヘッダチャンクと、それに続く歌詞パート用の歌詞データが格納されるトラックチャンク1と、伴奏パート用の演奏データが格納されるトラックチャンク2とから構成される。
 ヘッダチャンクは、ChunkID、ChunkSize、FormatType、NumberOfTrack、及びTimeDivisionの4つの値からなる。ChunkIDは、ヘッダチャンクであることを示す"MThd"という半角4文字に対応する4バイトのアスキーコード「4D 54 68 64」(数字は16進数)である。ChunkSizeは、ヘッダチャンクにおいて、ChunkIDとChunkSizeを除く、FormatType、NumberOfTrack、及びTimeDivisionの部分のデータ長を示す4バイトデータであり、データ長は6バイト:「00 00 00 06」(数字は16進数)に固定されている。FormatTypeは、本実施形態の場合、複数トラックを使用するフォーマット1を意味する2バイトのデータ「00 01」(数字は16進数)である。NumberOfTrackは、本実施形態の場合、歌詞パートと伴奏パートに対応する2トラックを使用することを示す2バイトのデータ「00 02」(数字は16進数)である。TimeDivisionは、4分音符あたりの分解能を示すタイムベース値を示すデータであり、本実施形態の場合、10進法で480を示す2バイトのデータ「01 E0」(数字は16進数)である。
 トラックチャンク1は、歌詞パートを示し、図6の曲データ604に対応し、ChunkIDと、ChunkSizeと、図6のタイミングデータ605に対応するDeltaTime_1[i]及び図6のイベントデータ606に対応するEvent_1[i]からなる演奏データ組(0≦i≦L-1)とからなる。また、トラックチャンク2は、伴奏パートに対応し、ChunkIDと、ChunkSizeと、伴奏パートのタイミングデータであるDeltaTime_2[i]及び伴奏パートのイベントデータであるEvent_2[j]からなる演奏データ組(0≦j≦M-1)とからなる。
 トラックチャンク1、2における各ChunkIDは、トラックチャンクであることを示す"MTrk"という半角4文字に対応する4バイトのアスキーコード「4D 54 72 6B」(数字は16進数)である。トラックチャンク1、2における各ChunkSizeは、各トラックチャンクにおいて、ChunkIDとChunkSizeを除く部分のデータ長を示す4バイトデータである。
 図6のタイミングデータ605であるDeltaTime_1[i]は、その直前の図6のイベントデータ606であるEvent_1[i-1]の実行時刻からの待ち時間(相対時間)を示す1~4バイトの可変長データである。同様に、伴奏パートのタイミングデータであるDeltaTime_2[i]は、その直前の伴奏パートのイベントデータであるEvent_2[i-1]の実行時刻からの待ち時間(相対時間)を示す1~4バイトの可変長データである。
 図6のイベントデータ606であるEvent_1[i]は、本実施例のトラックチャンク1/歌詞パートにおいては、歌詞の発声テキストと音高の2つの情報を持つメタイベントである。伴奏パートのイベントデータであるEvent_2[i]は、トラックチャンク2/伴奏パートにおいて、伴奏音のノートオン又はノートオフを指示するMIDIイベント、又は伴奏音の拍子を指示するメタイベントである。
 トラックチャンク1/歌詞パートの、各演奏データ組DeltaTime_1[i]及びEvent_1[i]において、その直前のイベントデータ606であるEvent_1[i-1]の実行時刻からタイミングデータ605であるDeltaTime_1[i]だけ待った上でイベントデータ606であるEvent_1[i]が実行されることにより、ソング再生の進行が実現される。一方、トラックチャンク2/伴奏パートの、各演奏データ組DeltaTime_2[i]及びEvent_2[i]において、その直前のイベントデータEvent_2[i-1]の実行時刻からタイミングデータDeltaTime_2[i]だけ待った上でイベントデータEvent_2[i]が実行されることにより、自動伴奏の進行が実現される。
 図8は、本実施形態における電子楽器の制御処理例を示すメインフローチャートである。この制御処理は例えば、図2のCPU201が、ROM202からRAM203にロードされた制御処理プログラムを実行する動作である。
 CPU201は、まず初期化処理を実行した後(ステップS801)、ステップS802からS808の一連の処理を繰り返し実行する。
 この繰返し処理において、CPU201はまず、スイッチ処理を実行する(ステップS802)。ここでは、CPU201は、図2のキースキャナ206からの割込みに基づいて、図1の第1のスイッチパネル102又は第2のスイッチパネル103のスイッチ操作に対応する処理を実行する。スイッチ処理の詳細は、図10のフローチャートを用いて後述する。
 次に、CPU201は、図2のキースキャナ206からの割込みに基づいて図1の鍵盤101の何れかの鍵が操作されたか否かを判定して処理する鍵盤処理を実行する(ステップS803)。鍵盤処理では、CPU201は、演奏者による何れかの鍵の押鍵又は離鍵の操作に応じて、図2の音源LSI204に対して、発音開始又は発音停止を指示する楽音制御データ216を出力する。また、鍵盤処理において、CPU201は、直前の押鍵から現在の押鍵までの時間間隔を演奏テンポデータとして算出する処理を実行する。鍵盤処理の詳細は、図11のフローチャートを用いて後述する。
 次に、CPU201は、図1のLCD104に表示すべきデータを処理し、そのデータを、図2のLCDコントローラ208を介してLCD104に表示する表示処理を実行する(ステップS804)。LCD104に表示されるデータとしては例えば、演奏される歌声音声データ217に対応する歌詞と、その歌詞に対応するメロディ及び伴奏の楽譜や、各種設定情報がある。
 次に、CPU201は、ソング再生処理を実行する(ステップS805)。ソング再生処理では、CPU201は、ソング再生に基づいて音声合成LSI205を動作させるための歌詞、発声音高、及び演奏テンポを含む演奏時歌声データ215を生成して音声合成LSI205に発行する。ソング再生処理の詳細は、図13のフローチャートを用いて後述する。
 続いて、CPU201は、音源処理を実行する(ステップS806)。音源処理において、CPU201は、音源LSI204における発音中の楽音のエンベロープ制御等の制御処理を実行する。
 続いて、CPU201は、音声合成処理を実行する(ステップS807)。音声合成処理において、CPU201は、音声合成LSI205による音声合成の実行を制御する。
 最後にCPU201は、演奏者が特には図示しないパワーオフスイッチを押してパワーオフしたか否かを判定する(ステップS808)。ステップS808の判定がNOならば、CPU201は、ステップS802の処理に戻る。ステップS808の判定がYESならば、CPU201は、図8のフローチャートで示される制御処理を終了し、電子鍵盤楽器100の電源を切る。
 図9A、図9B、及び図9Cはそれぞれ、図8のステップS801の初期化処理、図8のステップS802のスイッチ処理における後述する図10のステップS1002のテンポ変更処理、及び同じく図10のステップS1006のソング開始処理の詳細例を示すフローチャートである。
 まず、図8のステップS801の初期化処理の詳細例を示す図9Aにおいて、CPU201は、TickTimeの初期化処理を実行する。本実施形態において、歌詞の進行及び自動伴奏は、TickTimeという時間を単位として進行する。図7に例示される曲データのヘッダチャンク内のTimeDivision値として指定されるタイムベース値は4分音符の分解能を示しており、この値が例えば480ならば、4分音符は480TickTimeの時間長を有する。また、図7に例示される曲データの各トラックチャンク内の待ち時間DeltaTime_1[i]の値及びDeltaTime_2[i]の値も、TickTimeの時間単位によりカウントされる。ここで、1TickTimeが実際に何秒になるかは、曲データに対して指定されるテンポによって異なる。今、テンポ値をTempo[ビート/分]、上記タイムベース値をTimeDivisionとすれば、TickTimeの秒数は、下記(3)式により算出される。
Figure JPOXMLDOC01-appb-M000015
 そこで、図9Aのフローチャートで例示される初期化処理において、CPU201はまず、上記(10)式に対応する演算処理により、TickTime[秒]を算出する(ステップS901)。なお、テンポ値Tempoは、初期状態では図2のROM202に所定の値、例えば60[ビート/秒]が記憶されているとする。或いは、不揮発性メモリに、前回終了時のテンポ値が記憶されていてもよい。
 次に、CPU201は、図2のタイマ210に対して、ステップS901で算出したTickTime[秒]によるタイマ割込みを設定する(ステップS902)。この結果、タイマ210において上記TickTime[秒]が経過する毎に、CPU201に対してソング再生及び自動伴奏のための割込み(以下「自動演奏割込み」と記載)が発生する。従って、この自動演奏割込みに基づいてCPU201で実行される自動演奏割込み処理(後述する図12)では、1TickTime毎にソング再生及び自動伴奏を進行させる制御処理が実行されることになる。
 続いて、CPU201は、図2のRAM203の初期化等のその他初期化処理を実行する(ステップS903)。その後、CPU201は、図9Aのフローチャートで例示される図8のステップS801の初期化処理を終了する。
 図9B及び図9Cのフローチャートについては、後述する。図10は、図8のステップS802のスイッチ処理の詳細例を示すフローチャートである。
 CPU201はまず、図1の第1のスイッチパネル102内のテンポ変更スイッチにより歌詞進行及び自動伴奏のテンポが変更されたか否かを判定する(ステップS1001)。その判定がYESならば、CPU201は、テンポ変更処理を実行する(ステップS1002)。この処理の詳細は、図9Bを用いて後述する。ステップS1001の判定がNOならば、CPU201は、ステップS1002の処理はスキップする。
 次に、CPU201は、図1の第2のスイッチパネル103において何れかのソング曲が選曲されたか否かを判定する(ステップS1003)。その判定がYESならば、CPU201は、ソング曲読込み処理を実行する(ステップS1004)。この処理は、図7で説明したデータ構造を有する曲データを、図2のROM202からRAM203に読み込む処理である。なお、ソング曲読込み処理は、演奏中でなくても、演奏開始前でもよい。これ以降、図7に例示されるデータ構造内のトラックチャンク1又は2に対するデータアクセスは、RAM203に読み込まれた曲データに対して実行される。ステップS1003の判定がNOならば、CPU201は、ステップS1004の処理はスキップする。
 続いて、CPU201は、図1の第1のスイッチパネル102においてソング開始スイッチが操作されたか否かを判定する(ステップS1005)。その判定がYESならば、CPU201は、ソング開始処理を実行する(ステップS1006)。この処理の詳細は、図9Cを用いて後述する。ステップS1005の判定がNOならば、CPU201は、ステップS1006の処理はスキップする。
 続いて、CPU201は、図1の第1のスイッチパネル102においてフリーモードスイッチが操作されたか否かを判定する(ステップS1007)。その判定がYESならば、CPU201は、RAM203上の変数FreeModeの値を変更するフリーモードセット処理を実行する(ステップS1008)。フリーモードスイッチは例えばトグル動作になっており、変数FreeModeの値は、例えば図9AのステップS903で、例えば値1に初期設定されている。その状態でフリーモードスイッチが押されると変数FreeModeの値は0になり、もう一度押されるとその値は1になる、というようにフリーモードスイッチが押される毎に変数FreeModeの値が0と1で交互に切り替えられる。変数FreeModeの値が、1のときにはフリーモードが設定され、値0のときにはフリーモードの設定が解除される。ステップS1007の判定がNOならば、CPU201は、ステップS1008の処理はスキップする。
 続いて、CPU201は、図1の第1のスイッチパネル102において演奏テンポアジャストスイッチが操作されたか否かを判定する(ステップS1009)。その判定がYESならば、CPU201は、RAM203上の変数ShiinAdjustの値を、上記演奏テンポアジャストスイッチの操作に続いて第1のスイッチパネル102上の数値キーによって指定された値に変更する演奏テンポアジャスト設定処理を実行する(ステップS1010)。変数ShiinAdjustの値は、例えば図9AのステップS903で、値0に初期設定される。ステップS1009の判定がNOならば、CPU201は、ステップS1010の処理はスキップする。
 最後に、CPU201は、図1の第1のスイッチパネル102又は第2のスイッチパネル103においてその他のスイッチが操作されたか否かを判定し、各スイッチ操作に対応する処理を実行する(ステップS1011)。その後、CPU201は、図10のフローチャートで例示される図8のステップS802のスイッチ処理を終了する。
 図9Bは、図10のステップS1002のテンポ変更処理の詳細例を示すフローチャートである。前述したように、テンポ値が変更されるとTickTime[秒]も変更になる。図9Bのフローチャートでは、CPU201は、このTickTime[秒]の変更に関する制御処理を実行する。
 まず、CPU201は、図8のステップS801の初期化処理で実行された図9AのステップS901の場合と同様にして、前述した(3)式に対応する演算処理により、TickTime[秒]を算出する(ステップS911)。なお、テンポ値Tempoは、図1の第1のスイッチパネル102内のテンポ変更スイッチにより変更された後の値がRAM203等に記憶されているものとする。
 次に、CPU201は、図8のステップS801の初期化処理で実行された図9AのステップS902の場合と同様にして、図2のタイマ210に対して、ステップS911で算出したTickTime[秒]によるタイマ割込みを設定する(ステップS912)。その後、CPU201は、図9Bのフローチャートで例示される図10のステップS1002のテンポ変更処理を終了する。
 図9Cは、図10のステップS1006のソング開始処理の詳細例を示すフローチャートである。
 まず、CPU201は、自動演奏の進行において、TickTimeを単位として、直前のイベントの発生時刻からの相対時間をカウントするためのRAM203上のタイミングデータ変数DeltaT_1(トラックチャンク1)及びDeltaT_2(トラックチャンク2)の値を共に0に初期設定する。次に、CPU201は、図7に例示される曲データのトラックチャンク1内の演奏データ組DeltaTime_1[i]及びEvent_1[i](1≦i≦L-1)の夫々iの値を指定するためのRAM203上の変数AutoIndex_1と、同じくトラックチャンク2内の演奏データ組DeltaTime_2[j]及びEvent_2[j](1≦j≦M-1)の夫々jを指定するためのRAM203上の変数AutoIndex_2の各値を共に0に初期設定する(以上、ステップS921)。これにより、図7の例では、初期状態としてまず、トラックチャンク1内の先頭の演奏データ組DeltaTime_1[0]とEvent_1[0]、及びトラックチャンク2内の先頭の演奏データ組DeltaTime_2[0]とEvent_2[0]がそれぞれ参照される。
 次に、CPU201は、現在のソング位置を指示するRAM203上の変数SongIndexの値をNull値に初期設定する(ステップS922)。Null値は通常0と定義されることが多いが、インデックス番号が0である場合があることから、本実施例においてはNull値を―1と定義する。
 更に、CPU201は、歌詞及び伴奏の進行をするか(=1)しないか(=0)を示すRAM203上の変数SongStartの値を1(進行する)に初期設定する(ステップS923)。
 その後、CPU201は、演奏者が、図1の第1のスイッチパネル102により歌詞の再生に合わせて伴奏の再生を行う設定を行っているか否かを判定する(ステップS924)。
 ステップS924の判定がYESならば、CPU201は、RAM203上の変数Bansouの値を1(伴奏有り)に設定する(ステップS925)。逆に、ステップS924の判定がNOならば、CPU201は、変数Bansouの値を0(伴奏無し)に設定する(ステップS926)。ステップS925又はS926の処理の後、CPU201は、図9Cのフローチャートで例示される図10のステップS1006のソング開始処理を終了する。
 図11は、図8のステップS803の鍵盤処理の詳細例を示すフローチャートである。まず、CPU201は、図2のキースキャナ206を介して図1の鍵盤101上の何れかの鍵が操作されたか否かを判定する(ステップS1101)。
 ステップS1101の判定がNOならば、CPU201は、そのまま図11のフローチャートで例示される図8のステップS803の鍵盤処理を終了する。
 ステップS1101の判定がYESならば、CPU201は、押鍵がなされたか離鍵がなされたかを判定する(ステップS1102)。
 ステップS1102の判定において離鍵がなされたと判定された場合には、CPU201は、音声合成LSI205に対して、離鍵された音高(又はキーナンバ)に対応する歌声音声データ217の発声の消音を指示する(ステップS1113)。この指示に従って、音声合成LSI205内の図3の音声合成部302は、該当する歌声音声データ217の発声を中止する。その後、CPU201は、図11のフローチャートで例示される図8のステップS803の鍵盤処理を終了する。
 ステップS1102の判定において押鍵がなされたと判定された場合には、CPU201は、RAM203上の変数FreeModeの値を判定する(ステップS1103)。この変数FreeModeの値は、前述した図10のステップS1008で設定され、変数フリーモードが値1のときにはフリーモードが設定され、値0のときにはフリーモードの設定が解除される。
 ステップ1103で変数フリーモードの値が0であってフリーモードの設定が解除されていると判定された場合には、CPU201は、図6の演奏形態出力部603の説明で前述したように、RAM203にロードされたソング再生用の曲データ604から順次読み出される各タイミングデータ605である後述するDeltaTime_1[AutoIndex_1]を用いて下記(4)式で例示される演算処理により算出される値を、図6の演奏時演奏形態データ611に対応する演奏テンポを示すRAM203上の変数PlayTempoにセットする(ステップS1109)。
Figure JPOXMLDOC01-appb-M000016
 (4)式において、所定の係数は本実施例においては曲データのTimeDivision値×60である。すなわちTimeDivision値が480であれば、DeltaTime_1[AutoIndex_1]が480のときPlayTempoは60(通常のテンポ60に相当)となる。DeltaTime_1[AutoIndex_1]が240のときはPlayTempoは120(通常のテンポ120に相当)となる。
 フリーモードの設定が解除されている場合には、演奏テンポは、ソング再生のタイミング情報に同期して設定されることになる。
 ステップ1103で変数フリーモードの値が1であると判定された場合には、CPU201は更に、RAM203上の変数NoteOnTimeの値がNull値であるか否かを判定する(ステップS1104)。ソング再生の開始時には、例えば図9AのステップS903において、変数NoteOnTimeの値はNull値に初期設定されており、ソング再生開始後は後述するステップS1110において図2のタイマ210の現在時刻が順次セットされる。
 ソング再生の開始時であってステップS1104の判定がYESになった場合は、演奏者の押鍵操作から演奏テンポを決定することができないので、CPU201は、RAM203上のタイミングデータ605であるDeltaTime_1[AutoIndex_1]を用いて前述した(4)式で例示される演算処理により算出される値を、RAM203上の変数PlayTempoにセットする(ステップS1109)。このようにソング再生の開始時には、演奏テンポは、暫定的にソング再生のタイミング情報に同期して設定されることになる。
 ソング再生の開始後であってステップS1104の判定がNOになった場合は、CPU201は、まず図2のタイマ210が示す現在時刻から前回の押鍵時刻を示しているRAM203上の変数NoteOnTimeの値を減算して得られる差分時間をRAM203上の変数DeltaTimeにセットする(ステップS1105)。
 次に、CPU201は、前回の押鍵から今回の押鍵までの差分時間を示す変数DeltaTimeの値が、コード演奏(和音)による同時押鍵とみなす所定の最大時間よりも小さいか否かを判定する(ステップS1106)。
 ステップS1106の判定がYESで、今回の押鍵がコード演奏(和音)による同時押鍵であると判定された場合には、CPU201は、演奏テンポを決定するための処理は実行せずに、後述するステップS1110の処理に移行する。
 ステップS1106の判定がNOで、今回の押鍵がコード演奏(和音)による同時押鍵ではないと判定された場合には、CPU201は更に、前回の押鍵から今回の押鍵までの差分時間を示す変数DeltaTimeの値が、演奏が途切れたとみなす最小時間よりも大きいか否かを判定する(ステップS1107)。
 ステップS1107の判定がYESで、しばらく演奏が途切れた後の押鍵(演奏フレーズの先頭)であると判定された場合には、演奏フレーズの演奏テンポを決定することができないので、CPU201は、RAM203上のタイミングデータ605であるDeltaTime_1[AutoIndex_1]を用いて前述した(4)式で例示される演算処理により算出される値を、RAM203上の変数PlayTempoにセットする(ステップS1109)。このように、しばらく演奏が途切れた後の押鍵(演奏フレーズの先頭)である場合には、演奏テンポは、暫定的にソング再生のタイミング情報に同期して設定されることになる。
 ステップS1107の判定がNOで、今回の押鍵がコード演奏(和音)による同時押鍵でもなく演奏フレーズの先頭での押鍵でもないと判定された場合には、CPU201は、下記(5)式に例示されるように、前回の押鍵から今回の押鍵までの差分時間を示す変数DeltaTimeの逆数に所定の係数を乗算して得られる値を、図6の演奏時演奏形態データ611に対応する演奏テンポを示すRAM203上の変数PlayTempoにセットする(ステップS1108)。
Figure JPOXMLDOC01-appb-M000017
 ステップS1108での処理により、前回の押鍵と今回の押鍵の時間差を示す変数DeltaTimeの値が小さい場合には、演奏テンポであるPlayTempoの値は大きくなり(演奏テンポが速くなり)、演奏フレーズが速いパッセージであるとみなされ、音声合成LSI205内の音声合成部302において、図5Aに例示したように子音部の時間長が短い歌声音声データ217の音声波形が推論される。一方、時間差を示す変数DeltaTimeの値が大きい場合には、演奏テンポの値は小さくなり(演奏テンポが遅くなり)、演奏フレーズがゆっくりとしたパッセージであるとみなされ、音声合成部302において、図5Bに例示したように子音部の時間長が長い歌声音声データ217の音声波形が推論される。
 前述したステップS1108の処理の後、前述したステップS1109の処理の後、又は前述したステップS1106の判定がYESとなった後に、CPU201は、前回の押鍵時刻を示すRAM203上の変数NoteOnTimeに、図2のタイマ210が示す現在時刻をセットする(ステップS1110)。
 最後に、CPU201は、ステップS1108又はS1109で決定された演奏テンポを示すRAM203上の変数PlayTempoの値に、演奏者が意図的に設定した演奏テンポアジャスト値が設定されているRAM203上の変数ShiinAdjust(図10のステップS1010参照)の値を加算して得られる値を、新たな変数PlayTempoの値としてセットする(ステップS1111)。その後、CPU201は、図11のフローチャートで例示される図8のステップS803の鍵盤処理を終了する。
 ステップS1111の処理により、演奏者は、音声合成部302で合成される歌声音声データ217における子音部の時間長を意図的に調整(アジャスト)することができる。演奏者は、曲目や嗜好により歌い方を調整したい場合がある。例えば、ある曲では全体的に音を短く切って歯切れよく演奏したい場合は、子音を短くして早口で歌ったような音声を発音してほしい、逆に、ある曲では全体的にゆったり演奏したい場合は、ゆっくり歌ったような子音の息遣いをはっきり聞かせることができる音声を発音してほしいという場合がある。そこで、本実施形態では、演奏者が、例えば図1の第1のスイッチパネル102上の演奏テンポアジャストスイッチを操作することにより、変数ShiinAdjustの値を変更し、これに基づいて変数PlayTempoの値を調整することにより、演奏者の意図を反映した歌声音声データ217を合成することができる。スイッチ操作以外にも電子鍵盤楽器100に接続される可変抵抗を利用したペダルを足で操作することにより、ShiinAdjustの値を楽曲中の任意のタイミングで細かく制御することもできる。
 以上の鍵盤処理によって変数PlayTempoに設定された演奏テンポ値は、後述するソング再生処理において、演奏時歌声データ215の一部として設定されて(後述する図13のステップS1305参照)、音声合成LSI205に発行される。
 以上の鍵盤処理において、特に、ステップS1103からS1109、及びステップS1111の処理は、図6の演奏形態出力部603の機能に対応する。
 図12は、図2のタイマ210においてTickTime[秒]毎に発生する割込み(図9AのステップS902又は図9BのステップS912を参照)に基づいて実行される自動演奏割込み処理の詳細例を示すフローチャートである。以下の処理は、図7に例示される曲データのトラックチャンク1及び2の演奏データ組に対して実行される。
 まず、CPU201は、トラックチャンク1に対応する一連の処理(ステップS1201からS1206)を実行する。始めにCPU201は、SongStart値が1であるか否か(図10のステップS1006及び図9CのステップS923参照)、即ち歌詞及び伴奏の進行が指示されているか否かを判定する(ステップS1201)。
 歌詞及び伴奏の進行が指示されていないと判定された(ステップS1201の判定がNOである)場合には、CPU201は、歌詞及び伴奏の進行は行わずに図12のフローチャートで例示される自動演奏割込み処理をそのまま終了する。
 歌詞及び伴奏の進行が指示されていると判定された(ステップS1201の判定がYESである)場合には、CPU201は、トラックチャンク1に関する前回のイベントの発生時刻からの相対時刻を示すRAM203上の変数DeltaT_1の値が、RAM203上の変数AutoIndex_1の値が示すこれから実行しようとする演奏データ組の待ち時間を示すタイミングデータ605(図6)であるRAM203上のDeltaTime_1[AutoIndex_1]に一致したか否かを判定する(ステップS1202)。
 ステップS1202の判定がNOならば、CPU201は、トラックチャック1に関して、前回のイベントの発生時刻からの相対時刻を示す変数DeltaT_1の値を+1インクリメントさせて、今回の割込みに対応する1TickTime単位分だけ時刻を進行させる(ステップS1203)。その後、CPU201は、後述するステップS1207に移行する。
 ステップS1202の判定がYESになると、CPU201は、トラックチャンク1内の次に実行すべきソングイベントの位置を示す変数AutoIndex_1の値を、RAM203上の変数SongIndexに格納する(ステップS1204)。
 更に、CPU201は、トラックチャンク1内の演奏データ組を参照するための変数AutoIndex_1の値を+1インクリメントする(ステップS1205)。
 また、CPU201は、トラックチャンク1に関して今回参照したソングイベントの発生時刻からの相対時刻を示す変数DeltaT_1値を0にリセットする(ステップS1206)。その後、CPU201は、ステップS1207の処理に移行する。
 次に、CPU201は、トラックチャンク2に対応する一連の処理(ステップS1207からS1213)を実行する。始めにCPU201は、トラックチャンク2に関する前回のイベントの発生時刻からの相対時刻を示すRAM203上の変数DeltaT_2値が、RAM203上の変数AutoIndex_2の値が示すこれから実行しようとする演奏データ組のRAM203上のタイミングデータDeltaTime_2[AutoIndex_2]に一致したか否かを判定する(ステップS1207)。
 ステップS1207の判定がNOならば、CPU201は、トラックチャック2に関して、前回のイベントの発生時刻からの相対時刻を示変数DeltaT_2値を+1インクリメントさせて、今回の割込みに対応する1TickTime単位分だけ時刻を進行させる(ステップS1208)。その後、CPU201は、図12のフローチャートで例示される自動演奏割込み処理を終了する。
 ステップS1207の判定がYESならば、CPU201は、伴奏再生を指示するRAM203上の変数Bansouの値が1(伴奏有り)であるか否か(伴奏なし)を判定する(ステップS1209)(図9CのステップS924からS926を参照)。
 ステップS1209の判定がYESならば、CPU201は、変数AutoIndex_2値が示すトラックチャック2の伴奏に関するRAM203上のイベントデータEvent_2[AutoIndex_2]が示す処理を実行する(ステップS1210)。ここで実行されるイベントデータEvent_2[AutoIndex_2]が示す処理が、例えばノートオンイベントであれば、そのノートオンイベントにより指定されるキーナンバー及びベロシティーにより、図2の音源LSI204に対して伴奏用の楽音の発音指示が発行される。一方、イベントデータEvent_2[AutoIndex_2]が示す処理が、例えばノートオフイベントであれば、そのノートオフイベントにより指定されるキーナンバーにより、図2の音源LSI204に対して発音中の伴奏用の楽音の消音指示が発行される。
 一方、ステップS1209の判定がNOならば、CPU201は、ステップS1210をスキップすることにより、今回の伴奏に関するイベントデータEvent_2[AutoIndex_2]が示す処理は実行せずに、歌詞に同期した進行のために、次のステップS1211の処理に進んで、イベントの進行を進める制御処理のみを実行する。
 ステップS1210の後又はステップS1209の判定がNOの場合に、CPU201は、トラックチャンク2上の伴奏データのための演奏データ組を参照するための変数AutoIndex_2の値を+1インクリメントする(ステップS1211)。
 次に、CPU201は、トラックチャンク2に関して今回実行したイベントデータの発生時刻からの相対時刻を示す変数DeltaT_2の値を0にリセットする(ステップS1212)。
 そして、CPU201は、変数AutoIndex_2の値が示す次に実行されるトラックチャンク2上の演奏データ組のRAM203上のタイミングデータDeltaTime_2[AutoIndex_2]の値が0であるか否か、即ち、今回のイベントと同時に実行されるイベントであるか否かを判定する(ステップS1213)。
 ステップS1213の判定がNOならば、CPU201は、図12のフローチャートで例示される今回の自動演奏割込み処理を終了する。
 ステップS1213の判定がYESならば、CPU201は、ステップS1209の処理に戻って、変数AutoIndex_2の値が示すトラックチャンク2上で次に実行される演奏データ組のRAM203上のイベントデータEvent_2[AutoIndex_2]に関する制御処理を繰り返す。CPU201は、今回同時に実行される回数分だけ、ステップS1209からS1213の処理を繰り返し実行する。以上の処理シーケンスは、例えば和音等のように複数のノートオンイベントが同時タイミングで発音されるような場合に実行される。
 図13は、図8のステップS805のソング再生処理の詳細例を示すフローチャートである。
 まずCPU201は、図12の自動演奏割込み処理におけるステップS1204で、RAM203上の変数SongIndexにNull値でない新たな値がセットされて、ソング再生状態になったか否かを判定する(ステップS1301)。変数SongIndexには、ソング開始時は前述した図9CのステップS922でNull値が初期設定され、歌声の再生タイミングが到来する毎に図12の自動演奏割込み処理における前述したステップS1202の判定がYESとなって、続くステップS1204で、トラックチャンク1内の次に実行すべきソングイベントの位置を示す変数AutoIndex_1の有効な値がセットされ、更に図13のフローチャートで例示されるソング再生処理が1回実行される毎に、後述するステップS1307で再びNull値にリセットされる。即ち、変数SongIndexの値にNull値以外の有効な値がセットされているか否かは、現在のタイミングがソング再生のタイミングになっているか否かを示すものである。
 ステップS1301の判定がYESになった、即ち現時点がソング再生のタイミングになったら、CPU201は、図8のステップS803の鍵盤処理により演奏者による図1の鍵盤101上で新たな押鍵が検出されているか否かを判定する(ステップS1302)。
 ステップS1302の判定がYESならば、CPU201は、演奏者による押鍵により指定された音高を、発声音高として特には図示しないレジスタ又はRAM203上の変数にセットする(ステップS1303)。
 一方、ステップS1301の判定により現時点がソング再生のタイミングになったと判定されると共に、ステップS1302の判定がNO、即ち現時点で新規押鍵が検出されていないと判定された場合には、CPU201は、RAM203上の変数SongIndexが示すRAM203上の曲データのトラックチャンク1上のソングイベントデータEvent_1[SongIndex]から音高データ(図6のイベントデータ606中の音高データ607に対応)を読み出し、この音高データを発声音高として特には図示しないレジスタ又はRAM203上の変数にセットする(ステップS1304)。
 続いて、CPU201は、RAM203上の変数SongIndexが示すRAM203上の曲データのトラックチャンク1上のソングイベントEvent_1[SongIndex]から歌詞文字列(図6のイベントデータ606中の歌詞データ608に対応)を読み出す。そして、CPU201は、読み出した歌詞文字列(図6の演奏時歌詞データ609に対応)と、ステップS1303又はS1304で取得された発声音高(図6の演奏時音高データ610に対応)と、前述した図8のステップS803に対応する図10のステップS1111にてRAM203上の変数PlayTempoに得られた演奏テンポ(図6の演奏時演奏形態データ611に対応)がセットされた演奏時歌声データ215を、特には図示しないレジスタ又はRAM203上の変数にセットする(ステップS1305)。
 続いて、CPU201は、ステップS1305で作成した演奏時歌声データ215を、図2の音声合成LSI205の図3の音声合成部302に対して発行する(ステップS1306)。音声合成LSI205は、図3から図6を用いて説明したように、演奏時歌声データ215によって指定される歌詞を、演奏時歌声データ215によって指定される演奏者が鍵盤101上で押鍵した鍵又はソング再生により音高データ607(図6参照)として自動的に指定される音高にリアルタイムに対応し、更に演奏時歌声データ215によって指定される演奏テンポ(歌い方)で適切に歌う歌声音声データ217を推論、合成して出力する。
 最後に、CPU201は、変数SongIndexの値をNull値にクリアして、これ以降のタイミングをソング再生のタイミングでない状態にする(ステップS1307)。その後、CPU201は、図13のフローチャートで例示される図8のステップS805のソング再生処理を終了する。
 以上のソング再生処理において、特に、ステップS1302からS1304の処理は、図6の音高指定部602の機能に対応する。また、特に、ステップS1305の処理は、図6の歌詞出力部601の機能に対応する。
 以上説明した一実施形態により、演奏する曲の種類や、演奏フレーズにより、ボーカル音声の子音部の発音時間長が、ゆっくりとしたパッセージの音符の少ない演奏では長く表情豊かな生々しい音にすることができ、テンポが速い、又は音符が多い演奏では、短く歯切れのよい音にすることができる等、演奏フレーズに合った音色変化を得ることが可能となる。
 上述した一実施形態は、歌声音声データを生成する電子楽器の実施形態であったが、他の実施形態として、管楽器音や弦楽器音を生成する電子楽器の実施形態も実施可能である。この場合、図3の音響モデル部306に対応する音響モデル部は、音高を指定する学習用音高データとその音高に対応する管楽器や弦楽器の或る音源ソースの音響を示す学習用音響データに対応する教師データと学習用音響データの演奏形態(例えば演奏テンポ)を示す学習用演奏形態データとで機械学習させられ、入力される音高データと演奏形態データとに対応する音響モデルパラメータを出力する学習済み音響モデルを記憶する。また、音高指定部(図6の音高指定部602に対応)は、演奏時に演奏者の演奏操作により指定される音高を示す演奏時音高データを出力する。更に、演奏形態出力部(図6の演奏形態出力部603に対応)は、上述の演奏時の演奏形態、例えば演奏テンポを示す演奏時演奏形態データを出力する。そして、発音モデル部(図3の発声モデル部308に対応)は、演奏時に、上述の演奏時音高データと演奏時演奏形態データとを音響モデル部が記憶する学習済み音響モデルに入力することにより出力される音響モデルパラメータに基づいて、或る音源ソースの音声を推論する楽音データを合成し出力する。このような電子楽器の実施形態においては、例えば速いパッセージの曲では、管楽器の吹き始めのブロー音や弦楽器の弦を弓で擦る瞬間の弓をあてる速度が短くなるような音高データが推論されて合成されることにより、歯切れのよい演奏が可能となる。逆に、ゆっくりしたパッセージの曲では、管楽器の吹き始めのブロー音、弦を弓で擦る瞬間の弓があたる音の時間が長くなるような音高データが推論されて合成されることにより、演奏表現力の高い演奏が可能となる。
 上述した一実施形態において、初回の押鍵時や演奏フレーズの最初の押鍵のような演奏フレーズの速度が推定できない場合は、強く歌ったり弾いたりした場合は、子音や音の立ち上がり部分は短くなり、弱く歌ったり弾いたりした場合は子音や音の立ち上がり部分は長くなる傾向があることを利用して、鍵盤を弾く強さ(押鍵時のベロシティー値)を演奏テンポの値の算出時のよりどころとして使用してもよい。
 図3の発声モデル部308として採用可能な音声合成方式は、ケプストラム音声合成方式には限定されず、LSP音声合成方式をはじめとして様々な音声合成方式を採用することが可能である。
 更に、音声合成方式としては、HMM音響モデルを用いた統計的音声合成処理、DNN音響モデルを用いた統計的音声合成処理に基づく音声合成方式のほか、HMMとDNNを組み合わせた音響モデル等、機械学習に基づく統計的音声合成処理を用いた技術であればどのような音声合成方式が採用されてもよい。
 以上説明した実施形態では、演奏時歌詞データ609は予め記憶された曲データ604として与えられたが、演奏者がリアルタイムに歌う内容を音声認識して得られるテキストデータが歌詞情報としてリアルタイムに与えられてもよい。
 以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
 演奏時に指定される演奏時音高データを出力する音高指定部と、
 前記演奏時の演奏形態を示す演奏時演奏形態データを出力する演奏形態出力部と、
 前記演奏時に、前記演奏時音高データ及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時音高データ及び前記演奏時演奏形態データに対応する楽音データを合成し出力する発音モデル部と、
 を備える電子楽器。
(付記2)
 演奏時の歌詞を示す演奏時歌詞データを出力する歌詞出力部と、
 前記演奏時に前記歌詞の出力に合わせて指定される演奏時音高データを出力する音高指定部と、
 前記演奏時の演奏形態を示す演奏時演奏形態データを出力する演奏形態出力部と、
 前記演奏時に、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データに対応する歌声音声データを合成し出力する発声モデル部と、
 を備える電子楽器。
(付記3)
 前記演奏形態出力部は、前記演奏時に前記音高が指定される時間間隔を順次計測し、順次計測された前記時間間隔を示す演奏テンポデータを前記演奏時演奏形態データとして順次出力する、付記1又は2の何れかに記載の電子楽器。
(付記4)
 前記演奏形態出力部は、順次得られる前記演奏テンポデータを演奏者に意図的に変更させる変更手段を含む、付記3に記載の電子楽器。
(付記5)
 電子楽器のプロセッサに、
 演奏時に指定される演奏時音高データを出力し、
 前記演奏時の演奏形態を示す演奏時演奏形態データを出力し、
 前記演奏時に、前記演奏時音高データ及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時音高データ及び前記演奏時演奏形態データに対応する楽音データを合成し出力する、
 処理を実行させる電子楽器の制御方法。
(付記6)
電子楽器のプロセッサに、
 演奏時の歌詞を示す演奏時歌詞データを出力し、
 前記演奏時に前記歌詞の出力に合わせて指定される演奏時音高データを出力し、
 前記演奏時の演奏形態を示す前記演奏時演奏形態データを出力し、
 前記演奏時に、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データに対応する歌声音声データを合成し出力する、
 処理を実行させる電子楽器の制御方法。
(付記7)
 電子楽器のプロセッサに、
 演奏時に指定される演奏時音高データを出力し、
 前記演奏時の演奏形態を示す演奏時演奏形態データを出力し、
 前記演奏時に、前記演奏時音高データ及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時音高データ及び前記演奏時演奏形態データに対応する楽音データを合成し出力する、
 処理を実行させるためのプログラム。
(付記8)
 電子楽器のプロセッサに、
 演奏時の歌詞を示す演奏時歌詞データを出力し、
 前記演奏時に前記歌詞の出力に合わせて指定される演奏時音高データを出力し、
 前記演奏時の演奏形態を示す前記演奏時演奏形態データを出力し、
 前記演奏時に、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データに対応する歌声音声データを合成し出力する、
 処理を実行させるためのプログラム。
 本願は、2020年9月11日出願の日本特許出願2020-152926に基づくものであり、その内容はここに参照として取り込まれる。
 100 電子鍵盤楽器
 101 鍵盤
 102 第1のスイッチパネル
 103 第2のスイッチパネル
 104 LCD
 200 制御システム
 201 CPU
 202 ROM
 203 RAM
 204 音源LSI
 205 音声合成LSI
 206 キースキャナ
 208 LCDコントローラ
 209 システムバス
 210 タイマ
 211、212 D/Aコンバータ
 213 ミキサ
 214 アンプ
 215 歌声データ
 216 発音制御データ
 217 歌声音声データ
 218 楽音データ
 219 ネットワークインタフェース
 300 サーバコンピュータ
 301 音声学習部
 302 音声合成部
 303 学習用歌声解析部
 304 学習用音響特徴量抽出
 305 モデル学習部
 306 音響モデル部
 307 演奏時歌声解析部
 308 発声モデル部
 309 音源生成部
 310 合成フィルタ部
 311 学習用歌声データ
 312 学習用歌声音声データ
 313 学習用言語特徴量系列
 314 学習用音響特徴量系列
 315 学習結果データ
 316 演奏時言語情報量系列
 317 演奏時音響特徴量系列
 318 スペクトル情報
 319 音源情報
 601 歌詞出力部
 602 音高指定部
 603 演奏形態出力部
 604 曲データ
 605 タイミングデータ
 606 イベントデータ
 607 音高データ
 608 歌詞データ
 609 演奏時歌詞データ
 610 演奏時音高データ
 611 演奏時演奏形態データ

Claims (8)

  1.  演奏時に指定される演奏時音高データを出力する音高指定部と、
     前記演奏時の演奏形態を示す演奏時演奏形態データを出力する演奏形態出力部と、
     前記演奏時に、前記演奏時音高データ及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時音高データ及び前記演奏時演奏形態データに対応する楽音データを合成し出力する発音モデル部と、
     を備える電子楽器。
  2.  演奏時の歌詞を示す演奏時歌詞データを出力する歌詞出力部と、
     前記演奏時に前記歌詞の出力に合わせて指定される演奏時音高データを出力する音高指定部と、
     前記演奏時の演奏形態を示す演奏時演奏形態データを出力する演奏形態出力部と、
     前記演奏時に、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データに対応する歌声音声データを合成し出力する発声モデル部と、
     を備える電子楽器。
  3.  前記演奏形態出力部は、前記演奏時に音高が指定される時間間隔を順次計測し、順次計測された前記時間間隔を示す演奏テンポデータを前記演奏時演奏形態データとして順次出力する、請求項1又は2に記載の電子楽器。
  4.  前記演奏形態出力部は、順次得られる前記演奏テンポデータを演奏者に変更させる変更手段を含む、請求項3に記載の電子楽器。
  5.  電子楽器のプロセッサに、
     演奏時に指定される演奏時音高データを出力し、
     前記演奏時の演奏形態を示す演奏時演奏形態データを出力し、
     前記演奏時に、前記演奏時音高データ及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時音高データ及び前記演奏時演奏形態データに対応する楽音データを合成し出力する、
     処理を実行させる電子楽器の制御方法。
  6.  電子楽器のプロセッサに、
     演奏時の歌詞を示す演奏時歌詞データを出力し、
     前記演奏時に前記歌詞の出力に合わせて指定される演奏時音高データを出力し、
     前記演奏時の演奏形態を示す前記演奏時演奏形態データを出力し、
     前記演奏時に、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データに対応する歌声音声データを合成し出力する、
     処理を実行させる電子楽器の制御方法。
  7.  電子楽器のプロセッサに、
     演奏時に指定される演奏時音高データを出力し、
     前記演奏時の演奏形態を示す演奏時演奏形態データを出力し、
     前記演奏時に、前記演奏時音高データ及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時音高データ及び前記演奏時演奏形態データに対応する楽音データを合成し出力する、
     処理を実行させるためのプログラム。
  8.  電子楽器のプロセッサに、
     演奏時の歌詞を示す演奏時歌詞データを出力し、
     前記演奏時に前記歌詞の出力に合わせて指定される演奏時音高データを出力し、
     前記演奏時の演奏形態を示す前記演奏時演奏形態データを出力し、
     前記演奏時に、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データを学習済み音響モデルに入力することにより推論される音響モデルパラメータに基づいて、前記演奏時歌詞データ、前記演奏時音高データ、及び前記演奏時演奏形態データに対応する歌声音声データを合成し出力する、
     処理を実行させるためのプログラム。
PCT/JP2021/029833 2020-09-11 2021-08-13 電子楽器、電子楽器の制御方法、及びプログラム WO2022054496A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202180062213.5A CN116057624A (zh) 2020-09-11 2021-08-13 电子乐器、电子乐器控制方法和程序
US18/044,922 US20240021180A1 (en) 2020-09-11 2021-08-13 Electronic musical instrument, electronic musical instrument control method, and program
EP21866456.3A EP4213143A1 (en) 2020-09-11 2021-08-13 Electronic musical instrument, electronic musical instrument control method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020152926A JP7276292B2 (ja) 2020-09-11 2020-09-11 電子楽器、電子楽器の制御方法、及びプログラム
JP2020-152926 2020-09-11

Publications (1)

Publication Number Publication Date
WO2022054496A1 true WO2022054496A1 (ja) 2022-03-17

Family

ID=80632199

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/029833 WO2022054496A1 (ja) 2020-09-11 2021-08-13 電子楽器、電子楽器の制御方法、及びプログラム

Country Status (5)

Country Link
US (1) US20240021180A1 (ja)
EP (1) EP4213143A1 (ja)
JP (2) JP7276292B2 (ja)
CN (1) CN116057624A (ja)
WO (1) WO2022054496A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262989A1 (en) * 2004-05-28 2005-12-01 Electronic Learning Products, Inc. Computer-aided learning system employing a pitch tracking line
JP2015075574A (ja) * 2013-10-08 2015-04-20 ヤマハ株式会社 演奏データ生成装置および演奏データ生成方法を実現するためのプログラム
JP2017107228A (ja) * 2017-02-20 2017-06-15 株式会社テクノスピーチ 歌声合成装置および歌声合成方法
WO2018016581A1 (ja) * 2016-07-22 2018-01-25 ヤマハ株式会社 楽曲データ処理方法およびプログラム
JP2019184935A (ja) * 2018-04-16 2019-10-24 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP6610714B1 (ja) 2018-06-21 2019-11-27 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP2020152926A (ja) 2020-06-29 2020-09-24 王子ホールディングス株式会社 繊維状セルロース及び繊維状セルロースの製造方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262989A1 (en) * 2004-05-28 2005-12-01 Electronic Learning Products, Inc. Computer-aided learning system employing a pitch tracking line
JP2015075574A (ja) * 2013-10-08 2015-04-20 ヤマハ株式会社 演奏データ生成装置および演奏データ生成方法を実現するためのプログラム
WO2018016581A1 (ja) * 2016-07-22 2018-01-25 ヤマハ株式会社 楽曲データ処理方法およびプログラム
JP2017107228A (ja) * 2017-02-20 2017-06-15 株式会社テクノスピーチ 歌声合成装置および歌声合成方法
JP2019184935A (ja) * 2018-04-16 2019-10-24 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP6610714B1 (ja) 2018-06-21 2019-11-27 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP2019219568A (ja) * 2018-06-21 2019-12-26 カシオ計算機株式会社 電子楽器、電子楽器の制御方法、及びプログラム
JP2020152926A (ja) 2020-06-29 2020-09-24 王子ホールディングス株式会社 繊維状セルロース及び繊維状セルロースの製造方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KEI HASHIMOTOSHINJI TAKAKI: "Statistical parametric speech synthesis based on deep learning", JOURNAL OF THE ACOUSTICAL SOCIETY OF JAPAN, vol. 73, no. 1, 2017, pages 55 - 62

Also Published As

Publication number Publication date
EP4213143A1 (en) 2023-07-19
JP2022047167A (ja) 2022-03-24
JP2023100776A (ja) 2023-07-19
CN116057624A (zh) 2023-05-02
US20240021180A1 (en) 2024-01-18
JP7276292B2 (ja) 2023-05-18

Similar Documents

Publication Publication Date Title
JP6547878B1 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6610715B1 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6610714B1 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6587008B1 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
US11417312B2 (en) Keyboard instrument and method performed by computer of keyboard instrument
JP6835182B2 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6766935B2 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6760457B2 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6801766B2 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP6819732B2 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
WO2022054496A1 (ja) 電子楽器、電子楽器の制御方法、及びプログラム
JP2022038903A (ja) 電子楽器、電子楽器の制御方法、及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21866456

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18044922

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021866456

Country of ref document: EP

Effective date: 20230411