WO2022202297A1 - 文章提供方法、プログラムおよび文章提供装置 - Google Patents

文章提供方法、プログラムおよび文章提供装置 Download PDF

Info

Publication number
WO2022202297A1
WO2022202297A1 PCT/JP2022/010084 JP2022010084W WO2022202297A1 WO 2022202297 A1 WO2022202297 A1 WO 2022202297A1 JP 2022010084 W JP2022010084 W JP 2022010084W WO 2022202297 A1 WO2022202297 A1 WO 2022202297A1
Authority
WO
WIPO (PCT)
Prior art keywords
chord
data
code
text
music
Prior art date
Application number
PCT/JP2022/010084
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 CN202280022223.0A priority Critical patent/CN116997958A/zh
Priority to JP2023508950A priority patent/JPWO2022202297A1/ja
Publication of WO2022202297A1 publication Critical patent/WO2022202297A1/ja
Priority to US18/471,376 priority patent/US20240013760A1/en

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/36Accompaniment arrangements
    • G10H1/38Chord
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10GREPRESENTATION OF MUSIC; RECORDING MUSIC IN NOTATION FORM; ACCESSORIES FOR MUSIC OR MUSICAL INSTRUMENTS NOT OTHERWISE PROVIDED FOR, e.g. SUPPORTS
    • G10G1/00Means for the representation of music
    • 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/0008Associated control or indicating means
    • 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/395Special musical scales, i.e. other than the 12-interval equally tempered scale; Special input devices therefor
    • 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/571Chords; Chord sequences
    • 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/571Chords; Chord sequences
    • G10H2210/576Chord progression
    • 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
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/075Musical metadata derived from musical analysis or for use in electrophonic musical instruments
    • G10H2240/081Genre classification, i.e. descriptive metadata for classification or selection of musical pieces according to style
    • 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

Definitions

  • This disclosure relates to a text providing method.
  • Patent Document 1 discloses a technique of detecting cadences in a musical score indicating the chord progression of a piece of music, displaying arrow symbols at the cadences, and changing the color according to the type of the cadences. The user can recognize the part corresponding to the cadence and the type of the cadence among the chords included in the music by the arrow symbol and the color.
  • One of the purposes of this disclosure is to provide a commentary on the code from multiple codes arranged in chronological order.
  • code input data in which codes are arranged in chronological order is generated based on the relationship between code string data in which codes are arranged in chronological order and commentary texts related to the codes included in the code string data.
  • a text providing method is provided that includes obtaining a corresponding text.
  • FIG. 4 is a diagram for explaining a chroma vector representing a code in one embodiment
  • FIG. 4 is a diagram for explaining a chroma vector representing a code in one embodiment
  • FIG. 10 is a diagram for explaining an example of commentary sentences obtained from code input data
  • FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. FIG. 4 is a diagram for explaining an example of a teacher data set
  • FIG. 10 is a diagram for explaining a chord progression detected as two-five-one;
  • FIG. 10 is a diagram for explaining an example of commentary sentences obtained from code input data;
  • FIG. 10 is a diagram for explaining an example of commentary sentences obtained from code input data;
  • FIG. 10 is a diagram for explaining a modification of chord progression detected as two-five-one;
  • FIG. 10 is a diagram for explaining a modification of chord progression detected as two-five-one;
  • FIG. 4 is a diagram for explaining a music database in one embodiment;
  • FIG. FIG. 4 is a diagram for explaining a method of calculating chord progression importance; It is a flow chart which shows processing which generates code input data in one embodiment.
  • FIG. 1 is a diagram showing a text providing system in one embodiment.
  • the text providing system 1000 includes a text providing server 1 (text providing device) and a model generation server 3 connected to a network NW such as the Internet.
  • the communication terminal 9 is a smart phone, a tablet computer, a laptop computer, a desktop computer, or the like, and connects to the network NW to perform data communication with other devices.
  • the text providing server 1 receives data related to music from the communication terminal 9 via the network NW, and transmits commentary text corresponding to the chord progression included in the music to the communication terminal 9.
  • the communication terminal 9 can display commentary sentences on the display.
  • the text providing server 1 generates commentary text using a learned model obtained by machine learning.
  • the trained model 155 receives chord input data in which chords constituting a piece of music are arranged in chronological order, it outputs commentary sentences regarding chord progressions through arithmetic processing using a neural network.
  • the model generation server 3 executes machine learning processing using the teacher data set to generate a trained model used in the text providing server 1 .
  • the text providing server 1 and the model generating server 3 will be described below.
  • the text providing server 1 includes a control section 11 , a communication section 13 and a storage section 15 .
  • the control unit 11 includes a CPU (processor), RAM and ROM.
  • the control unit 11 executes a program stored in the storage unit 15 by the CPU, thereby performing processing according to instructions described in the program.
  • This program includes a program 151 for performing text providing processing, which will be described later.
  • the communication unit 13 includes a communication module, connects to the network NW, and transmits and receives various data to and from other devices.
  • the storage unit 15 includes a storage device such as a non-volatile memory, and stores the program 151 and the learned model 155. In addition, various data used in the text providing server 1 are stored.
  • the storage unit 15 may store a music database 159 .
  • the song database 159 is described in another embodiment.
  • the program 151 is provided to the text providing server 1 in a state stored in a computer-readable recording medium such as a magnetic recording medium, an optical recording medium, a magneto-optical recording medium, or a semiconductor memory as long as it can be executed by a computer. good too. In this case, the text providing server 1 may be provided with a device for reading the recording medium.
  • Program 151 may be provided by downloading via communication unit 13 .
  • the learned model 155 is generated by machine learning in the model generating server 3 and provided to the text providing server 1.
  • the trained model 155 When the trained model 155 is provided with code input data, it outputs a commentary text about the code through arithmetic processing using a neural network.
  • the trained model 155 is a model using RNN (Recurrent Neural Network).
  • the trained model 155 uses Seq2Seq (Sequence To Sequence) and includes an encoder and a decoder, which will be described later.
  • the code input data and commentary text are examples of data described in chronological order, and the details will be described later. Therefore, the trained model 155 is preferably a model that is advantageous in handling time-series data.
  • the trained model 155 may be a model using LSTM (Long Short Term Memory) and GRU (Gated Recurrent Unit).
  • the trained model 155 may be a model using CNN (Convolutional Neural Network), Attention (Self-Attention, Source Target Attention), or the like.
  • the trained model 155 may be a model combining multiple models.
  • Trained model 155 may be stored in another device connected via network NW. In this case, the text providing server 1 may connect to the trained model 155 via the network NW.
  • the model generation server 3 includes a control section 31 , a communication section 33 and a storage section 35 .
  • the control unit 31 includes a CPU (processor), RAM and ROM.
  • the control unit 31 executes a program stored in the storage unit 35 by the CPU, thereby performing processing according to instructions described in the program.
  • This program includes a program 351 for performing model generation processing, which will be described later.
  • Model generation processing is processing for generating a learned model 155 using a teacher data set.
  • the communication unit 33 includes a communication module, connects to the network NW, and transmits and receives various data to and from other devices.
  • the storage unit 35 includes a storage device such as a non-volatile memory, and stores the program 351 and the teacher data set 355. In addition, various data used in the model generation server 3 are stored.
  • the program 351 is provided to the model generation server 3 as long as it can be executed by a computer, and is stored in a computer-readable recording medium such as a magnetic recording medium, an optical recording medium, a magneto-optical recording medium, or a semiconductor memory. good too.
  • the text providing server 1 may be provided with a device for reading the recording medium.
  • Program 351 may be provided by downloading via communication unit 33 .
  • a plurality of teacher data sets 355 may be stored in the storage unit 35 .
  • the teacher data set 355 is data in which the code string data 357 and the commentary text data 359 are associated with each other, and is used when the trained model 155 is generated. Details of the teacher data set 355 will be described later.
  • FIG. 2 is a flowchart showing text provision processing in one embodiment.
  • the control unit 11 waits until music code data is received from the communication terminal 9 (step S101; No).
  • the song code data is data in which a plurality of codes that constitute a song are arranged in chronological order and described.
  • the song code data is described as "CM7-Dm7-Em7-".
  • each code may be arranged in units of predetermined unit periods (for example, one bar, one beat, etc.), or may be arranged in order without considering unit periods.
  • each chord is arranged in units of one measure in the above example
  • the song code data is described as "CM7-CM7-Dm7". be done.
  • the music code data is described as "CM7-Dm7-" as in the above example.
  • the communication terminal 9 transmits the music code data to the text providing server 1 .
  • the control unit 11 When the text providing server 1 receives the music code data, the control unit 11 generates code input data from the music code data (step S103).
  • the chord input data is written by converting each chord included in the song chord data into a predetermined format.
  • the code input data is data in which each code is described by a chroma vector.
  • FIGS. 3 and 4 are diagrams for explaining chroma vectors representing codes in one embodiment.
  • the chroma vector is described by the presence of a note "1" or no note “0" corresponding to each note name (C, C#, D, . . . ).
  • each chord is converted into data (hereinafter referred to as conversion data) in which a chroma vector corresponding to a component tone, a chroma vector corresponding to a bass tone, and a chroma vector corresponding to a tension tone are combined.
  • the conversion data is data describing three chroma vectors as matrix data (3 ⁇ 12).
  • Transform data may be described as vector data in which three chroma vectors are connected in series.
  • Fig. 3 is an example of code "CM7” expressed as conversion data.
  • FIG. 4 is an example in which the code “C/B” is represented as conversion data.
  • “CM7” and “C/B” have the same constituent sounds, but different base sounds and tension sounds. Therefore, according to the conversion data, "CM7" and “C/B” can be distinguished. That is, the transform data can unambiguously represent the functionality of the code.
  • the conversion data may contain at least the chroma vectors of the component sounds, and may not contain at least one of the bass sound and the tension sound, or both.
  • the structure of the conversion data should be appropriately set according to the required result.
  • the code input data is the data in which the converted data are arranged in chronological order.
  • the chord input data are the conversion data corresponding to "CM7”, the conversion data corresponding to "Dm7”, It is described as data arranged in the order of .
  • the control unit 11 provides the code input data to the trained model 155 (step S105).
  • the control unit 11 executes arithmetic processing by the trained model 155 (step S107), and acquires sentence output data from the trained model 155 (step S109).
  • the control unit 11 transmits the acquired text output data to the communication terminal 9 (step S111).
  • the sentence output data corresponds to the commentary sentence described above and includes a character group indicating an explanation for the code defined by the code input data.
  • the commentary text includes at least one of a first group of characters describing chord progressions, a second group of characters describing function of the chords, and a third group of characters describing joining techniques between chords.
  • the commentary text includes a first character group, a second character group and a third character group.
  • FIG. 5 is a diagram for explaining an example of commentary sentences obtained from code input data.
  • the trained model 155 includes an encoder (also called an input layer) that generates intermediate state data by operating the supplied code input data with the RNN, and sentence output data by operating the intermediate state data with the RNN. It contains an output decoder (also called an output layer). More specifically, the encoder is provided with a plurality of transform data included in the code input data in chronological order. The decoder outputs a plurality of characters (character group) arranged in chronological order as commentary text. A character here may mean one word (morpheme) classified by morphological analysis. Intermediate states are sometimes referred to as hidden states or hidden layers.
  • chord input data shown in FIG. 5 is shown as music chord data "CM7-Dm7-Em7-", but is data in which each chord is described as conversion data as described above.
  • an end marker (EOS: End Of Sequence) is attached to the portion where the code ends.
  • sentence output data that is, commentary sentences are composed of combinations of the following character groups.
  • diatonic chords are sequentially ascended to form a two-five between Fm7 and Bb7. While Bb7 functions as a substitute chord for the subdominant minor chord Fm7, the following dominant 7th chord E7 for Am7
  • the substitute chord Am7 of the tonic chord CM7 and the substitute chord AbM7 of the subdominant minor chord Fm7 are repeated, so that the root note rises and falls by a semitone while the 3rd and 7th notes are kept the same. It is progress.”
  • the first group of characters (explaining the chord progression) in the commentary text shown in Fig. 5 corresponds to "form two fives between Fm7 and Bb7".
  • the second character group (explaining the functions of the chords) in the commentary sentences shown in FIG. functions as a back chord of the tonic chord CM7", "alternative chord Am7 of tonic chord CM7”, and “alternative chord AbM7 of subdominant minor chord Fm7".
  • the description of the two functions of Bb7 is put together and expressed as "Bb7... functions, while Am7 following it functions.”
  • the third character group (description of the connection technique between chords) in the commentary sentences shown in FIG. and the 7th note are progressions that are held homophonically".
  • the ascending diatonic chords are expressed as "Sequentially ascending diatonic chords, . . . " so as to be connected to the next sentence.
  • the sentence output data obtained in this way is transmitted to the communication terminal 9 that transmitted the music code data.
  • the user of the communication terminal 9 is provided with commentary sentences corresponding to the music code data.
  • the above is the description of the text providing process.
  • model generation processing (model generation method) executed by the control unit 31 in the model generation server 3 will be described.
  • the model generation process is started in response to a request from a terminal or the like used by the manager of the model generation server 3 .
  • the model generation process may be started in response to a user's request, that is, a request from the communication terminal 9 .
  • FIG. 6 is a flowchart showing model generation processing in one embodiment.
  • the control unit 31 acquires the teacher data set 355 from the storage unit 35 (step S301).
  • the teacher data set 355 includes code string data 357 and commentary text data 359 that are associated with each other.
  • the code string data 357 is described in the same format as the code input data. That is, the code string data 357 is described as data in which codes represented by conversion data are arranged in time series.
  • the commentary text data 359 is data containing commentary texts as shown in FIG.
  • This commentary text is a text that explains the code defined by the code string data 357 .
  • the commentary text includes at least one of a first group of characters describing chord progressions, a second group of characters describing function of the chords, and a third group of characters describing linking techniques between chords, as described above.
  • the commentary text data 359 is provided with identifiers for specifying words obtained by dividing the commentary text by morphological analysis. Each word is described as "One Hot Vector”.
  • the analysis text may be described in word expressions such as “word2vec” and “GloVe”.
  • the code string data 357 included in the teacher data set 355 includes a sequence of chords corresponding to one piece of music in this example, and at least one end marker EOS is attached.
  • the teacher data set 355 can take various forms. A plurality of possible examples of the teacher data set 355 will be described with reference to FIGS. 7 to 9. FIG.
  • FIGs 7 to 9 are diagrams for explaining an example of a teacher data set.
  • the code string data 357 corresponding to the chords of the music are indicated by a plurality of sections (music segments CL(A) to CL(E)).
  • the music sections CL(A) to CL(E) each correspond to a segmented range of phrases constituting a music piece, for example, a range of 8-bar units, and are composed of a plurality of chords arranged in chronological order. include.
  • Each music segment need not be the same length as other music segments.
  • the code string data 357 shown in FIG. 7 has a format in which codes corresponding to music sections CL(A) to CL(E) are described in series, and includes an end marker EOS only at the end of the data.
  • the code string data 357 in FIG. 8 has a format in which codes corresponding to music segments CL(A) to CL(E) are divided for each music segment and described.
  • An end marker EOS is written at the division position.
  • a section divided by the end marker EOS is called a divided area.
  • a plurality of music sections may be included in one divided area.
  • one music section is not included in a plurality of divided areas.
  • the code string data 357 in FIG. 9 divides the chords corresponding to the music segments CL(A) to CL(E) into each music segment, and then further divides the chords before and after the music segment in each divided area. It has a format in which the code of the song section is added and described. That is, in the code string data 357 in FIG. 9, a plurality of continuous music sections are arranged in one divided area, and at least one music section is included in the plurality of divided areas. In this example, three consecutive music sections are arranged in each divided area, and two consecutive music sections are arranged only in the first and last divided areas. The number of continuous music sections is not limited to this example.
  • the commentary text data 359 includes commentary texts ED(A) to ED(E) respectively corresponding to the music sections CL(A) to CL(E).
  • the commentary text ED(A) includes a group of characters explaining the chords corresponding to the music section CL(A).
  • the commentary text data 359 shown in FIGS. 8 and 9 are divided by the end marker EOS, similarly to the code string data 357 .
  • the control unit 31 inputs the code string data 357 to a model for machine learning (here, called a training model) (step S303).
  • the training model is a model that performs arithmetic processing using the same neural network (RNN in this example) as the trained model 155 .
  • the training model may be the learned model 155 stored in the text providing server 1 .
  • the control unit 31 uses the values output from the training model corresponding to the input of the code string data and the commentary text data 359 to execute machine learning by error backpropagation (step S305). Specifically, machine learning updates the weighting factors in the neural network of the trained model. If there are other teacher data sets 355 to be learned (step S307; Yes), machine learning is performed using the remaining teacher data sets 355 (steps S301, S303, S305). If there is no other teacher data set 355 to be learned (step S307; No), the control unit 31 terminates machine learning.
  • the control unit 31 generates a training model that has undergone machine learning as a learned model (step S309), and ends model generation processing.
  • the generated trained model is provided to the text providing server 1 and used as the trained model 155 .
  • the trained model 155 is a model that has learned the correlation between the code defined in the code string data 357 and the commentary text for that code.
  • the control unit 31 resets the intermediate state at the time of the end marker EOS. That is, in machine learning, the code in a specific divided area and the codes in other divided areas divided from that area are not treated as continuous time-series data.
  • a code in a specific music section and a code in a music section different from that music section are treated as mutually independent time-series data.
  • the chords included in one music section are treated as time-series data.
  • music sections separated from each other are not included in one divided area and are treated as independent time-series data.
  • the music segment CL(B) and the music segment CL(C) may be included in one divided area or may be included in different divided areas. Therefore, depending on the divided areas, the code of the music section CL(B) and the code of the music section CL(C) may be treated as a series of time-series data or treated as independent time-series data. be.
  • a first example is a teacher data set in which no divided regions are set as shown in FIG.
  • a second example is a teacher data set in which a plurality of divided areas are set as shown in FIG. 8 and none of the music segments are included in the plurality of divided areas.
  • a third example is a data set in which a plurality of divided areas are set as shown in FIG. 9 and at least one music section is included in the plurality of divided areas.
  • FIG. 10 is a diagram for explaining chord progressions detected as two-five-one.
  • FIG. 10 shows an example of a two-five-one chord progression within the scale of Cmaj or Amin (basic form, derivative form) and another example outside the scale (subverse chord, postponement of resolution).
  • "Back code” means that a back code is used in part of the chord progression. Derived forms and sub-codes corresponding to the basic form are enclosed in a range with dashed lines. In the derivative form and the back code, the parts that differ from the basic form are underlined.
  • “deferred resolution” it is an example of a two-five-one format with a change added by inserting the code shown in parentheses.
  • the learned model 155 generated by the above-described machine learning can output as a commentary sentence that the two-five-one exists even if the chord progression is expressed in a form other than the basic form.
  • the learned model 155 generated by machine learning including the context can output a commentary sentence considering whether the chord progression corresponds to 251 or not. can.
  • FIGS. 11 and 12 are diagrams for explaining examples of commentary sentences obtained from code input data. 11 and 12 both have a sequence of codes "Em7-A7-GbM7-Ab7", but in FIG. 12 DbM7 is added to the last part. That is, the code positioned at the end of the time series by the end marker EOS is Ab7 in FIG. 11, whereas it is DbM7 in FIG.
  • the trained model 155 presumes that the element "Em7-A7-Ab7" in the code input data shown in FIG. 11 is related to two-five-one, and outputs the following commentary text as text output data.
  • “Em7-A7-Ab7 is a derivative of II-VI (Em7-A7-Dm7) in the diatonic chord of the Cmaj scale when compared to the Dmaj scale, and Dm7 is changed to a reverse chord.
  • GbM7 is a two-five to Ab7 in Dbmaj and is inserted to temporarily delay resolution (termination) to Ab7.”
  • the trained model 155 presumes that the element "GbM7-Ab7-DbM7" in the code input data shown in FIG.
  • the following commentary sentences that are also referred to are output as sentence output data. "There is a temporary modulation from Cmaj to Dmaj. GbM7-Ab7-DbM7 changes II to the same subdominant IV (Ebm7 ⁇ GbM7 ).In order to make the modulation smooth, a kind of two-five-one using the back chord of Em7-A7-Ab7 is adopted.”
  • the learned model 155 can generate similar parts even if the code sequences contained in the code input data are similar. It is possible to output text output data including an appropriate commentary text in consideration of the context.
  • FIGS. 13 and 14 are diagrams for explaining modifications of chord progressions detected as two-five-one.
  • the connection technique of lowering the baseline is applied to the basic form of the chord progression of two-five-one, "Bm7(-5)-E7-Am7," for example, "Bm7(- 5) -Bm7(-5)/F-E7-E7/G#-Am7".
  • Bm7(-5)-E7-Am7 for example, "Bm7(- 5) -Bm7(-5)/F-E7-E7/G#-Am7”.
  • the chord input data may specify the sequence of all chords contained in the song code data, or it may specify the sequence of some chords extracted from it. There may be.
  • a section of music corresponding to a chord included in chord input data will be referred to as a specific section.
  • the specific section may be set by the user, or may be set by a predetermined method exemplified below.
  • chord input data provided to the trained model 155 does not have to be all of the song code data, and if the characteristic parts of the song can be used, it is possible to obtain the commentary sentences that are characteristic of the song. Therefore, it is preferable to set such a characteristic portion of a piece of music as the specific section.
  • a characteristic part of a piece of music can be set by various methods, and one example will be described.
  • control unit 11 divides a piece of music into a plurality of predetermined determination intervals (for example, the above-described music intervals), and sets determination intervals that satisfy predetermined conditions as specific intervals.
  • predetermined determination intervals for example, the above-described music intervals
  • determination intervals that satisfy predetermined conditions are set as specific intervals.
  • a determination section having a chord progression importance exceeding a predetermined threshold is set as the specific section.
  • chord progression importance is calculated based on various data registered in the music database 159 and the chord progression in the determination section. An example of this calculation method will be described.
  • FIG. 15 is a diagram for explaining the music database in one embodiment.
  • the music database 159 is stored in the storage unit 15 of the text providing server 1, for example.
  • Information about a plurality of songs is registered in the song database 159. For example, genre information, scale information, chord appearance rate data, and chord progression appearance rate data associated with each other are registered.
  • Genre information is information indicating the genre of a song, for example, "rock”, “pops”, “jazz”, and so on.
  • the scale information is information indicating scales (including keys in this example) such as 'C major scale', 'C minor scale', 'C# major scale', and so on.
  • Each scale has set tones that compose it (hereinafter referred to as scale constituent tones).
  • the chord appearance rate data indicates the ratio of each type of chord to the total number of chords in all songs registered in the song database. For example, if the total number of codes is "10000" and the number of codes "Cm" is "100", the appearance rate of that code is "0.01".
  • any of the following criteria may be used for the identity of codes that are similar to each other. If the chord names are different from each other, they may be treated as different chords ("CM7" and "C/B” are different). If the constituent sounds are the same, they may be treated as the same code ("CM7” and "C/B” are the same). If the constituent notes and the bass note are the same, they may be treated as the same code ("CM7” and "G/C” are the same). Even if the constituent sounds are different from each other, if they are the same except for the tension sound, they may be treated as the same code ("CM7" and "C” are the same).
  • the chord progression appearance rate data indicates the ratio of each type of chord progression to the total number of chord progressions of all songs registered in the song database.
  • the chord progression referred to here is set in advance by a user or the like. For example, if the total number of chord progressions is "20000" and the number of chord progressions "Dm-G7-CM7" is "400", the chord progression appearance rate is "0.02".
  • the criteria for determining code identity may be the same as the code appearance rate determination method described above. Any of the following examples of criteria for determining the identity of chord progressions may be used. Chord progressions that are similar to each other may be treated as the same chord progression. For example, the derivative form of the basic form shown in FIG. 10 and the form using the alternate chord may be treated as the same chord progression.
  • chord progression in which at least two of the chord progressions match may be treated as the same chord progression.
  • chord progression “Dm-G7-CM7”, “*-G7-CM7”, “Dm-*-CM7” and “Dm-G7-*” may be treated as the same chord progression.
  • “*” indicates an unspecified code (one of all codes).
  • chord appearance rate data and chord progression appearance rate data include data for all songs.
  • the chord appearance rate data and the chord progression appearance rate data further include data determined corresponding to each genre defined in the genre information.
  • the chord appearance rate data and chord progression appearance rate data corresponding to the genre "rock” may include the chord appearance rate and the chord progression appearance rate obtained only from songs corresponding to the genre "rock".
  • the parameters of the appearance rate total number of chords and total number of chord progressions
  • the data for the entire song may be used.
  • chords and chord progressions In terms of chords and chord progressions, the appearance rate in the genre "rock” and the appearance rate in the genre “jazz” are different. Therefore, by having the appearance rate of chords and the appearance rate of chord progressions for each genre, it is possible to more accurately determine the characteristic portion of a piece of music. Genre information may not necessarily be used, and in this case, there may be no chord appearance rate data and chord progression appearance rate data for each genre.
  • FIG. 16 is a diagram for explaining the method of calculating the importance of chord progression.
  • the example shown in FIG. 16 shows each index value and importance when the chord progression in the determination section is "C-Cm-CM7-Cm7".
  • the index value includes a chord progression rarity (CP) determined for a chord progression, a scale factor (S) determined for each chord constituting the chord progression, and a chord rarity (C). Based on these indices, the chord importance (CS) for each chord and the chord progression importance (CPS) for the chord progression are calculated. Both the index value and the importance have values ranging from "0" to "1". A higher value indicates a characteristic element.
  • the key for the song is C
  • the scale is major scale
  • the genre is pops.
  • the scale element (S) is set to "0" when all of the chord constituent tones are included in the scale constituent tones, and is set to "1" when any of the chord constituent tones are not included in the scale constituent tones. ”. This is because it can be said that chords that include tones that are not included in the scale-constituting tones are characteristic parts of a piece of music.
  • the code rarity (C) is obtained by a predetermined calculation formula.
  • the calculation formula is determined so that the higher the code appearance rate, the lower the code rarity (C).
  • C code rarity
  • C major scale C and CM7 have relatively high chord appearance rates, so the chord rarity (C) is set to a relatively small value.
  • the chord progression rarity (CP) is obtained by a predetermined calculation formula.
  • the calculation formula is determined so that the higher the chord progression appearance rate, the lower the chord progression rarity (CP).
  • the occurrence rate of the chord progression "C-Cm-CM7-Cm7” is extremely low, so the chord progression rarity (CP) is set to a large value "1".
  • chord importance is calculated using the scale factor (S), chord rarity (C), and chord progression rarity (CP).
  • S scale factor
  • C chord rarity
  • CP chord progression rarity
  • chord progression importance indicates that the larger the number (closer to "1"), the more unusual the chord progression is compared to other songs.
  • a determination section with a large chord progression importance is a characteristic part of a piece of music.
  • index value and importance calculation method are examples, and various calculation methods can be used as long as the importance of the chord progression as a whole (characteristic part of the song) can be obtained.
  • This code input data generation method replaces, for example, the processing in step S103 shown in FIG.
  • FIG. 17 is a flowchart showing processing for generating code input data in one embodiment.
  • the control unit 11 sets the key, scale and genre (step S1031). As described above, the key, scale, and genre may be obtained by receiving them from the communication terminal 9 according to settings made by the user, or may be obtained by analyzing music code data.
  • the control unit 11 divides the music piece into a plurality of judgment intervals (step S1033), and calculates the chord progression importance (CPS) in each judgment interval (step S1035).
  • CPS chord progression importance
  • the control unit 11 sets at least one judgment section as a specific section based on the chord progression importance (CPS) calculated for each judgment section (step S1037).
  • a determination section having a chord progression importance (CPS) greater than a predetermined threshold is set as the specific section.
  • a predetermined number of determination segments may be set as the specific segment in order from the determination segment having the highest chord progression importance (CPS).
  • the control unit 11 generates code input data corresponding to the specific section (step S1039).
  • one specific section may be arranged in one divided area by arranging an end marker EOS for each specific section, or a plurality of consecutive determination sections may be arranged in a plurality of specific sections. , the plurality of specific sections may be arranged so as to be included in one divided area.
  • the trained model 155 By providing the generated chord input data to the trained model 155 in this way, the trained model 155 generates commentary sentences for the chord progressions representing the characteristic parts of the music, and outputs sentence output data. be able to.
  • the text providing server 1 uses the trained model 155 to generate commentary text from code input data, but a model that does not use a neural network (for example, a rule-based model) is used. may be used. According to the trained model 155, the accuracy of the commentary text can be improved by using many teacher data sets 355 for machine learning.
  • a model that does not use a neural network for example, a rule-based model
  • the accuracy of the commentary text can be improved by using many teacher data sets 355 for machine learning.
  • a rule for generating commentary text from code input data that is, a correspondence relationship between information corresponding to the code string data 357 and information corresponding to the commentary text data 359 described above.
  • This rule requires a large amount of information. For example, as described above, various types of chord sequences are assumed to be determined as a two-five-one chord progression. Therefore, in order to improve the accuracy of the commentary text, it is necessary to set each commentary text corresponding to many possible types. In order to reduce the amount of information, it may be necessary to simplify the commentary sentences compared to when the trained model 155 is used. Although it may be less efficient than using the trained model 155, it is possible to generate commentary sentences from code input data using a rule-based model.
  • chord appearance rate data and the chord progression appearance rate data may be defined to be equivalent regardless of the key of the music.
  • the chord appearance rate data is such that the code “CM7” when the key of the song is “C” and the code “EM7” when the key of the song is “E” are interpreted as the same chord. do it.
  • the chord progression appearance rate data is the same for the chord progression "Dm-G7-CM7" when the key of the song is "C” and the chord progression "Fm-B7-EM7” when the key is "E”. It should be interpreted as a chord progression.
  • chord appearance rate data and the chord progression appearance rate data may be defined by chords expressed relative to the music key.
  • a relative expression may be, for example, a conversion when the key is “C”. It may be converted into descriptions such as "I” and "II”. For example, the code “Em7" in the key "C” is expressed as "IIIm7".
  • control unit 11 converts the chord appearance rate data and the chord progression appearance rate data defined by the chords of relative expression into the chords of absolute expression based on the set key of the music piece. .
  • the control unit 11 calculates the chord importance (CS) and the chord progression importance (CPS) based on the appearance rate of the converted chord.
  • the text providing server 1 may use an arithmetic model such as SVM (Support Vector Machine) or HMM (Hidden Markov Model) instead of using the trained model 155 .
  • the controller 11 obtains a specific chord progression such as "two five one" from the chord input data using this computational model.
  • the control unit 11 combines the acquired chord progression and a predetermined template to control the commentary text.
  • a predetermined template is, for example, "XXXX is used in this chord progression.”
  • a commentary text saying "Two Five One is used for this chord progression” is generated.
  • HMM the codes included in the code input data may be input sequentially.
  • SVM a predetermined number of codes included in code input data may be input collectively.
  • a server storing a plurality of trained models 155 may be connected to the network NW.
  • This server may be the model generation server 3 .
  • the text providing server 1 may select one of the plurality of trained models 155 stored in this server and execute the text providing process described above.
  • the text providing server 1 may download the learned model 155 used in the text providing process from the server and store it in the storage unit 15, or may communicate with the server that stores the learned model 155 without downloading it. Code input data may be sent and sentence output data may be received by doing.
  • a plurality of trained models 155 differ from each other in at least part of the teacher data set 355 used for machine learning. For example, when machine learning is performed using a plurality of teacher data sets 355 classified by genre (jazz, classical, etc.), a plurality of learned models 155 corresponding to the genres are generated.
  • the teacher data set 355 may be classified according to genre type or musical instrument type. According to this classification, the code string data and commentary text data are specialized for that classification.
  • the teacher data set 355 may be classified according to the authors of the commentary texts included in the commentary text data 359 thereof.
  • chord input data corresponding to music classified as jazz For example, by providing chord input data corresponding to music classified as jazz to the trained model 155 corresponding to jazz, it is possible to obtain highly accurate commentary text.
  • the object to which the music corresponding to the chord input data is classified may be set by the user or may be set by analyzing the music.
  • multiple types of commentary texts may be obtained. For example, if a plurality of trained models 155 corresponding to a plurality of creators are used, it is possible to compare the obtained plurality of types of commentary sentences and select one suitable for the user. A new commentary text may be generated based on common points among the commentary texts obtained from a plurality of trained models 155 .
  • Code input data and code string data 357 are not limited to being described in chroma vectors. For example, as long as the constituent sounds of the chord are represented by data including vectors, they may be represented by other methods. Codes may also be described using expressions such as "word2vec" and "GloVe”.
  • codes are arranged in chronological order based on the relationship between code string data in which codes are arranged in chronological order and commentary texts related to the codes included in the code string data.
  • a text providing method includes obtaining text corresponding to code input data.
  • Obtaining the sentence may include obtaining the sentence from the trained model by providing the code data to the trained model that has learned the relationship.
  • the chords included in the code string data may include at least constituent notes of the chords and bass notes.
  • the chords included in the code string data may include at least constituent sounds of the chords and tension sounds of the chords.
  • the code may be represented by data including vectors.
  • the chord may be represented by data including a first chroma vector corresponding to the constituent notes of the chord.
  • the chord may be represented by data including a second chroma vector corresponding to the bass note of the chord.
  • the chord may be represented by data including a third chroma vector corresponding to the tension sound of the chord.
  • the commentary text may include a first character group explaining chord progression.
  • the commentary text may include a second group of characters explaining the function of the code.
  • the commentary text may include a third character group that explains the technique of connecting codes.
  • the predetermined condition may include a condition using the chord included in the music chord data and the importance of the chord determined according to the key of the music.
  • the predetermined condition may include a condition using the code included in the music code data and the importance of the code determined according to the genre of the music.
  • a program may be provided for causing a computer to execute the text providing method.
  • a text providing device may be provided that includes a storage unit that stores instructions of this program and a processor that executes the instructions.

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Auxiliary Devices For Music (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一実施形態における文章提供方法は、コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係を学習させた学習済モデルに対し、コードを時系列に並べたコード入力データを提供し、コード入力データに対応する文章を学習済モデルから取得することを含む。

Description

文章提供方法、プログラムおよび文章提供装置
 本開示は、文章提供方法に関する。
 楽曲を構成する複数のコード(Chord)は、それらの組み合わせ(例えば、時系列に並んだコード進行)によって、聴取者に与える印象を変化させる。一般的な聴取者は、楽曲からの印象を感覚的に受け取る。聴取者は、コード進行など音楽理論に基づいて楽曲の解析することで、その印象を裏付けることができる。楽曲のコード進行を示す楽譜においてカデンツを検出し、カデンツの部分に矢印記号を表示し、カデンツの種類によって色を異ならせる技術が、例えば、特許文献1に開示されている。ユーザは、矢印記号および色により、楽曲に含まれるコードのうちカデンツに対応する部分およびカデンツの種類を認識することができる。
特開2020-56938号公報
 楽曲に含まれるコード進行の種類は様々である。コード進行の種類を理解することは、楽曲の印象を裏付ける重要な要素である。特許文献1に記載された技術によれば、ユーザが楽曲の楽譜に含まれるカデンツの部分および種類を、矢印記号および色といった画像情報から認識することができる。しかしながら、一定程度の音楽理論の知識を有していないと、ユーザは画像情報からその意味を理解することができず、得られた情報を活用することができない。
 本開示の目的の一つは、時系列に並ぶ複数のコードからコードに関する解説文章を提供することにある。
 本開示の一実施形態によれば、コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得することを含む、文章提供方法が提供される。
 本開示によれば、時系列に並ぶ複数のコードからコードに関する解説文章を提供することができる。
一実施形態における文章提供システムを示す図である。 一実施形態における文章提供処理を示すフローチャートである。 一実施形態におけるコードを表すクロマベクトルを説明するための図である。 一実施形態におけるコードを表すクロマベクトルを説明するための図である。 コード入力データから得られる解説文章の例を説明するための図である。 一実施形態におけるモデル生成処理を示すフローチャートである。 教師データセットの一例を説明するための図である。 教師データセットの一例を説明するための図である。 教師データセットの一例を説明するための図である。 ツーファイブワンとして検出されるコード進行を説明するための図である。 コード入力データから得られる解説文章の例を説明するための図である。 コード入力データから得られる解説文章の例を説明するための図である。 ツーファイブワンとして検出されるコード進行の変形例を説明するための図である。 ツーファイブワンとして検出されるコード進行の変形例を説明するための図である。 一実施形態における楽曲データベースを説明するための図である。 コード進行重要度の計算方法を説明するための図である。 一実施形態におけるコード入力データを生成する処理を示すフローチャートである。
 以下、本開示の一実施形態について、図面を参照しながら詳細に説明する。以下に示す実施形態は一例であって、本開示はこれらの実施形態に限定して解釈されるものではない。本実施形態で参照する図面において、同一部分または同様な機能を有する部分には同一の符号または類似の符号(数字の後にA、Bなど付しただけの符号)を付し、その繰り返しの説明は省略する場合がある。
[1-1.文章提供システム]
 図1は、一実施形態における文章提供システムを示す図である。文章提供システム1000は、インターネットなどのネットワークNWに接続された文章提供サーバ1(文章提供装置)およびモデル生成サーバ3を含む。通信端末9は、スマートフォン、タブレットパソコン、ラップトップパソコンおよびデスクトップパソコンなどであり、ネットワークNWに接続して、他の装置とデータ通信を行う。
 文章提供サーバ1は、ネットワークNWを介して通信端末9から楽曲に関するデータを受信し、その楽曲に含まれるコード進行に応じた解説文章を通信端末9に送信する。通信端末9では、ディスプレイに解説文章を表示することができる。文章提供サーバ1は、機械学習によって得られた学習済モデルを用いて、解説文章を生成する。学習済モデル155は、楽曲を構成するコードを時系列に並べたコード入力データを受け取ると、ニューラルネットワークを用いた演算処理によってコード進行に関する解説文章を出力する。モデル生成サーバ3は、教師データセットを用いた機械学習処理を実行し、文章提供サーバ1において使用される学習済みモデルを生成する。以下、文章提供サーバ1およびモデル生成サーバ3について説明する。
[1-2.文章提供サーバ]
 文章提供サーバ1は、制御部11、通信部13および記憶部15を含む。制御部11は、CPU(プロセッサ)、RAMおよびROMを含む。制御部11は、記憶部15に記憶されたプログラムをCPUにより実行することによって、プログラムに記述された命令にしたがった処理を行う。このプログラムには、後述する文章提供処理を行うためのプログラム151が含まれる。
 通信部13は、通信モジュールを含み、ネットワークNWに接続して、他の装置と各種データの送受信を行う。
 記憶部15は、不揮発性メモリなどの記憶装置を含み、プログラム151および学習済モデル155を記憶する。その他にも文章提供サーバ1において用いられる様々なデータが記憶される。記憶部15は、楽曲データベース159を記憶してもよい。楽曲データベース159については、別の実施形態において説明する。プログラム151は、コンピュータにより実行可能であればよく、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶された状態で文章提供サーバ1に提供されてもよい。この場合には、文章提供サーバ1は、記録媒体を読み取る装置を備えていればよい。プログラム151は、通信部13を介してダウンロードすることによって提供されてもよい。
 学習済モデル155は、モデル生成サーバ3において機械学習によって生成され、文章提供サーバ1に提供されている。学習済モデル155は、コード入力データが提供されると、ニューラルネットワークを用いた演算処理によってコードに関する解説文章を出力する。この例では、学習済モデル155は、RNN(Recurrent Neural Network)を利用したモデルである。学習済モデル155は、Seq2Seq(Sequence To Sequence)を利用し、すなわち後述するエンコーダとデコーダとを含む。コード入力データおよび解説文章は、時系列に記述されるデータの一例であって、詳細は後述する。そのため、学習済モデル155は、時系列のデータの扱いに有利なモデルが採用されることが好ましい。
 学習済モデル155は、LSTM(Long Short Term Memory)、GRU(Gated Recurrent Unit)を利用したモデルであってもよい。学習済モデル155は、CNN(Convolutional Neural Network)、Attention(Self-Attention、Source Target Attention)などを利用したモデルであってもよい。学習済モデル155は、複数のモデルを組み合わせたモデルであってもよい。学習済モデル155は、ネットワークNWを介して接続された別の装置に記憶されてもよい。この場合には、文章提供サーバ1は、ネットワークNWを介して学習済モデル155に接続してもよい。
[1-3.モデル生成サーバ]
 モデル生成サーバ3は、制御部31、通信部33および記憶部35を含む。制御部31は、CPU(プロセッサ)、RAMおよびROMを含む。制御部31は、記憶部35に記憶されたプログラムをCPUにより実行することによって、プログラムに記述された命令にしたがった処理を行う。このプログラムには、後述するモデル生成処理を行うためのプログラム351が含まれる。モデル生成処理は、教師データセットを用いて学習済モデル155を生成するための処理である。
 通信部33は、通信モジュールを含み、ネットワークNWに接続して、他の装置と各種データの送受信を行う。
 記憶部35は、不揮発性メモリなどの記憶装置を含み、プログラム351および教師データセット355を記憶する。その他にもモデル生成サーバ3において用いる様々なデータが記憶される。プログラム351は、コンピュータにより実行可能であればよく、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどのコンピュータ読み取り可能な記録媒体に記憶された状態でモデル生成サーバ3に提供されてもよい。この場合には、文章提供サーバ1は、記録媒体を読み取る装置を備えていればよい。プログラム351は、通信部33を介してダウンロードすることによって提供されてもよい。
 記憶部35には、複数の教師データセット355が記憶されてもよい。教師データセット355は、コード列データ357と解説文章データ359とを対応付けたデータであり、学習済モデル155を生成するときに用いられる。教師データセット355の詳細については後述する。
[2.文章提供処理]
 続いて、文章提供サーバ1における制御部11が実行する文章提供処理(文章提供方法)について説明する。文章提供処理は、例えば、通信端末9からの要求に応じて開始される。
 図2は、一実施形態における文章提供処理を示すフローチャートである。制御部11は、通信端末9から楽曲コードデータを受信するまで待機する(ステップS101;No)。楽曲コードデータは、楽曲を構成する複数のコードを時系列に並べて記述されたデータである。例えば、楽曲コードデータは、例えば、「CM7-Dm7-Em7-・・・」として記述されている。時系列に並べるときには、各コードは、所定の単位期間(例えば、1小節、1拍など)を単位として並べられてもよいし、単位期間を考慮せずに順番に並べられてもよい。例えば、上述の例で各コードが1小節を単位として並べられる場合を想定すると、上記の例における最初のコードが2小節続くときには、楽曲コードデータは「CM7-CM7-Dm7・・・」として記述される。一方、小節数を考慮しない場合を想定すると、楽曲コードデータは上記の例のように「CM7-Dm7-・・・」として記述される。
 ユーザが通信端末9を操作して、楽曲コードデータの送信を指示すると、通信端末9は文章提供サーバ1に対して楽曲コードデータを送信する。文章提供サーバ1が楽曲コードデータを受信すると、制御部11は、楽曲コードデータからコード入力データを生成する(ステップS103)。コード入力データは、楽曲コードデータに含まれる各コードを所定のフォーマットに変換して記述されている。具体的には、コード入力データは、各コードをクロマベクトルによって記述したデータである。
 図3および図4は、一実施形態におけるコードを表すクロマベクトルを説明するための図である。図3および図4に示すように、クロマベクトルは、各音名(C、C#、D、・・・)に対応して音の有「1」または無「0」によって記述されている。この例では、各コードは、構成音に対応するクロマベクトル、ベース音に対応するクロマベクトルおよびテンション音に対応するクロマベクトルを組み合わせたデータ(以下、変換データという)に変換される。この例では、変換データは、3つのクロマベクトルを行列データ(3×12)として記述されたデータである。変換データは、3つのクロマベクトルを直列につなげたベクトルデータとして記述されてもよい。
 図3はコード「CM7」を変換データとして表した例である。図4はコード「C/B」を変換データとして表した例である。「CM7」と「C/B」とは、構成音が互いに同じであるが、ベース音およびテンション音が互いに異なる。したがって、変換データによれば、「CM7」と「C/B」とを区別することができる。すなわち、変換データはコードの機能を明確に表すことができる。変換データは、少なくとも構成音のクロマベクトルを含んでいればよく、ベース音およびテンション音の少なくとも一方、または双方が含まれていなくてもよい。変換データの構造は、必要とする結果に応じて適宜設定されればよい。
 コード入力データは、変換データを時系列に並べたデータである。上述した例のように、楽曲コードデータが「CM7-Dm7-・・・」である場合には、コード入力データは、「CM7」に対応する変換データ、「Dm7」に対応する変換データ、・・・の順で並んだデータとして記述される。
 図2に戻って説明を続ける。制御部11は、コード入力データを学習済モデル155に提供する(ステップS105)。制御部11は、学習済モデル155による演算処理を実行し(ステップS107)、学習済モデル155から文章出力データを取得する(ステップS109)。制御部11は、取得した文章出力データを通信端末9に送信する(ステップS111)。文章出力データは、上述した解説文章に対応し、コード入力データによって定義されるコードに関する解説を示す文字群を含む。解説文章は、コード進行を説明する第1文字群、コードの機能を説明する第2文字群、およびコード間の連結技法を説明する第3文字群の少なくとも1つを含む。この例では、解説文章は、第1文字群、第2文字群および第3文字群を含む。
 図5は、コード入力データから得られる解説文章の例を説明するための図である。学習済モデル155は、提供されたコード入力データをRNNにより演算することによって中間状態のデータを生成するエンコーダ(入力層ともいう)、および中間状態のデータをRNNにより演算することによって文章出力データを出力するデコーダ(出力層ともいう)を含む。より詳細には、エンコーダには、コード入力データに含まれる複数の変換データが時系列の順に提供される。デコーダは、時系列に並んだ複数の文字(文字群)を解説文章として出力する。ここでいう文字とは、形態素解析によって区分される一単語(形態素)を意味してもよい。中間状態は、隠れ状態または隠れ層ということもある。
 図5に示すコード入力データは、楽曲コードデータ「CM7-Dm7-Em7-・・・」として示されているが、上述したように各コードを変換データとして記述したデータである。コード入力データにおいて、コードが終了した部分には終了マーカ(EOS:End Of Sequence)が付されている。このコード入力データが学習済モデル155に提供されると、学習済モデル155は図5に例示される解説文章を含む文章出力データを出力する。
 図5に示すコード入力データによれば、文章出力データ、すなわち解説文章は、以下のような文字群の組み合わせによって構成される。
「前半は、ダイアトニックコードを順次上行させて、Fm7とBb7との間でツーファイブを形成する。Bb7が、サブドミナントマイナーコードFm7の代理コードとして機能する一方、それに続くAm7に対するドミナント7thコードE7の裏コードとして機能する。後半は、トニックコードCM7の代理コードAm7とサブドミナントマイナーコードFm7の代理コードAbM7の反復により、ルート音が半音で上下しつつ3rdと7thの音は同音で保持される進行である。」
 図5に示す解説文章のうち第1文字群(コード進行を説明)は、「Fm7とBb7との間でツーファイブを形成する」に相当する。
 図5に示す解説文章のうち第2文字群(コードの機能を説明)は、「Bb7が、サブドミナントマイナーコードFm7の代理コードとして機能する」、「Bb7が、それに続くAm7に対するドミナント7thコードE7の裏コードとして機能する」、「トニックコードCM7の代理コードAm7」、「サブドミナントマイナーコードFm7の代理コードAbM7」に相当する。実際には、解説文章においては、Bb7に関する2つの機能の説明がまとめられて、「Bb7が、・・・機能する一方、それに続くAm7に対する・・・機能する。」と表現されている。
 図5に示す解説文章のうち第3文字群(コード間の連結技法の説明)は、「ダイアトニックコードを順次上行させる」、「Am7とAbM7の反復により、ルート音が半音で上下しつつ3rdと7thの音は同音で保持される進行である」に相当する。実際には、解説文章においては、ダイアトニックコードを順次上行させることについては、次の文章と接続されるように「ダイアトニックコードを順次上行させて、・・・」と表現されている。
 このようにして得られた文章出力データは、楽曲コードデータを送信した通信端末9に送信される。これによって、通信端末9のユーザに対して、楽曲コードデータに対応する解説文章が提供される。以上が、文章提供処理についての説明である。
[3.モデル生成処理]
 続いて、モデル生成サーバ3における制御部31が実行するモデル生成処理(モデル生成方法)について説明する。モデル生成処理は、モデル生成サーバ3の管理者が使用する端末等からの要求に応じて開始される。モデル生成処理は、ユーザの要求、すなわち通信端末9からの要求に応じて開始されてもよい。
 図6は、一実施形態におけるモデル生成処理を示すフローチャートである。制御部31は、記憶部35から教師データセット355を取得する(ステップS301)。上述したように、教師データセット355は、互いに対応付けられたコード列データ357と解説文章データ359とを含む。コード列データ357は、コード入力データと同様の形式で記述されている。すなわち、コード列データ357は、変換データで表されたコードを時系列に並べたデータとして記述されている。
 解説文章データ359は、図5に示すような解説文章を含むデータである。この解説文章は、コード列データ357によって定義されるコードに関する解説をする文章である。解説文章は、上述したように、コード進行を説明する第1文字群、コードの機能を説明する第2文字群、およびコードに間の連結技法を説明する第3文字群の少なくとも1つを含む。この例では、解説文章データ359は、解説文章を形態素解析によって分割された単語を特定するための識別子が付されている。各単語は「One Hot Vector」で記述される。解析文章は、「word2vec」、「GloVe」などの単語表現で記述されてもよい。
 教師データセット355に含まれるコード列データ357は、この例では1つの楽曲に対応するコードの並びを含み、少なくとも1つの終了マーカEOSが付されている。教師データセット355は、様々な形態を取り得る。図7から図9を用いて、教師データセット355が取り得る複数の例を説明する。
 図7から図9は、教師データセットの一例を説明するための図である。ここで説明する教師データセット355において、楽曲のコードに対応するコード列データ357は、複数に区分(楽曲区間CL(A)~CL(E))で示されている。ここでは、楽曲区間CL(A)~CL(E)は、それぞれ楽曲を構成するフレーズ等の区分された範囲、例えば、8小節単位の範囲に対応し、それぞれ時系列に並んだ複数のコードを含む。各楽曲区間は、他の楽曲区間と同じ長さでなくてもよい。
 図7に示すコード列データ357は、楽曲区間CL(A)~CL(E)に対応するコードを一連に記述した形式を有し、データの最後にのみ終了マーカEOSを含む。
 図8におけるコード列データ357は、楽曲区間CL(A)~CL(E)に対応するコードを、それぞれ楽曲区間毎に分割して記述した形式を有する。分割位置には、終了マーカEOSが記述されている。終了マーカEOSによって分割された区間を分割領域という。1つの分割領域に複数の楽曲区間が含まれてもよい。一方、この例では1つの楽曲区間が複数の分割領域に含まれない。
 図9におけるコード列データ357は、図8に示すように楽曲区間CL(A)~CL(E)に対応するコードを、それぞれ楽曲区間毎に分割した後に、各分割領域においてさらに楽曲区間の前後の楽曲区間のコードを加えて記述した形式を有する。すなわち、図9におけるコード列データ357では、1つの分割領域に連続する複数の楽曲区間が配置され、少なくとも1つの楽曲区間が複数の分割領域に含まれる。この例では、各分割領域に、3つの連続する楽曲区間が配置され、最初と最後の分割領域のみ2つの連続する楽曲区間が配置されている。連続する楽曲区間の数はこの例に限られない。
 解説文章データ359は、楽曲区間CL(A)~CL(E)にそれぞれ対応する解説文章ED(A)~ED(E)を含む。例えば、解説文章ED(A)は、楽曲区間CL(A)に対応するコードを解説する文字群を含む。図8および図9に示す解説文章データ359は、コード列データ357と同様に、終了マーカEOSによって分割されている。
 図6に戻って説明を続ける。制御部31は、コード列データ357を機械学習用のモデル(ここでは訓練モデルという)に入力する(ステップS303)。訓練モデルは、学習済モデル155と同じニューラルネットワーク(この例ではRNN)を用いた演算処理を行うモデルである。訓練モデルは、文章提供サーバ1に記憶されている学習済モデル155であってもよい。
 制御部31は、コード列データの入力に対応して訓練モデルから出力された値と解説文章データ359とを用いて、誤差逆伝搬による機械学習を実行する(ステップS305)。具体的には、機械学習によって、訓練モデルのニューラルネットワークにおける重み係数が更新される。学習すべき他の教師データセット355が存在している場合(ステップS307;Yes)、残りの教師データセット355を用いて機械学習を実行する(ステップS301、S303、S305)。学習すべき他の教師データセット355が存在しない場合(ステップS307;No)、制御部31は機械学習を終了する。
 制御部31は、機械学習を済みの訓練モデルを学習済モデルとして生成して(ステップS309)、モデル生成処理を終了する。生成された学習済モデルは、文章提供サーバ1に提供されて学習済モデル155として使用される。このように、学習済モデル155は、コード列データ357に定義されるコードとそのコードに関する解説文章との相関関係を学習したモデルである。
 機械学習において入力されるコード列データ357が図8および図9のようにデータの途中で終了マーカEOSを含む場合、制御部31は終了マーカEOSの時点で中間状態をリセットする。すなわち、機械学習においては、特定の分割領域におけるコードと、その領域から分割された他の分割領域におけるコードとは、連続した時系列のデータとして扱われない。図8に示す例では、特定の楽曲区間におけるコードと、その楽曲区間とは異なる楽曲区間のコードとは、互いに独立した時系列のデータとして扱われる。一方、1つの楽曲区間に含まれるコードは、時系列のデータとして扱われる。
 図9に示す例では、互いに離れた楽曲区間、例えば、楽曲区間CL(B)と楽曲区間CL(E)とは1つの分割領域に含まれることはなく、互いに独立した時系列のデータとして扱われる。一方、楽曲区間CL(B)と楽曲区間CL(C)とは1つの分割領域に含まれる場合と、互いに異なる分割領域に含まれる場合とがある。したがって、分割領域によって楽曲区間CL(B)のコードと楽曲区間CL(C)のコードとが、一連の時系列のデータとして扱われる場合と、互いに独立した時系列のデータとして扱われる場合とがある。
 例示した3つの教師データセットをまとめると、以下のとおりである。第1の例は、図7のように分割領域を設定しない教師データセットである。第2の例は、図8のように複数の分割領域が設定され、いずれの楽曲区間も複数の分割領域に含まれることがない教師データセットである。第3の例は、図9のように複数の分割領域を設定され、少なくとも1つの楽曲区間が複数の分割領域に含まれるデータセットである。
 特に、第1の例および第3の例のように、時系列のデータとして扱われるコードを多くすることで、コードの並びの前後関係を広く考慮した精度の高い機械学習を実現することができる。第3の例のように、前後関係の範囲を絞ることで、互いに離れすぎていて関係性が希薄となる部分を機械学習の対象から除外し、より精度の高い機械学習を実現することができる。機械学習においては、これらの例のうち、いずれか1つの例のみが用いられてもよいし、複数の例が併用されてもよい。
[4.コード解釈の例]
 次に、コードの解釈と解説文章との相関関係についてさらに詳しく説明する。ここでは、代表的なコード進行の例としてツーファイブワン(II-V-I)が検出される例を説明する。
 図10は、ツーファイブワンとして検出されるコード進行を説明するための図である。図10においては、ツーファイブワンのコード進行として、CmajまたはAminのスケール内における例(基本形、派生形)、およびスケール外における他の例(裏コード、解決の先送り)が示されている。「裏コード」は、コード進行の一部において裏コードを利用していることを意味する。基本形に対応する派生形および裏コードは、破線で1つの範囲に囲まれている。派生形および裏コードにおいて、基本形と相違する部分は下線で示されている。「解決の先送り」については、ツーファイブワンの形式をとりつつ、()で示したコードが挿入されることで変化が付けられている例である。
 上述した機械学習により生成された学習済モデル155は、基本形以外で表現されたコード進行であってもツーファイブワンが存在していることを解説文章として出力することができる。楽曲を構成するコードの並びにおいて、ツーファイブワンを意図せず偶然にツーファイブワンに相当するコード進行が含まれている場合もある。このような場合であっても、その前後関係を含めた機械学習により生成された学習済モデル155は、コード進行がツーファイブワンに該当するのか該当しないのかを考慮した解説文章を出力することができる。
 図11および図12は、コード入力データから得られる解説文章の例を説明するための図である。図11と図12とは、いずれも「Em7-A7-GbM7-Ab7」というコードの並びを備えているが、図12ではさらにDbM7が最後の部分に付加されている。すなわち、終了マーカEOSによって時系列の最後に位置するコードが、図11ではAb7であるのに対し、図12ではDbM7である点で異なっている。
 学習済モデル155は、図11に示すコード入力データのうち、「Em7-A7-Ab7」の要素がツーファイブワンに関連すると推測し、以下のような解説文章を文章出力データとして出力する。
 「Em7-A7-Ab7は、Cmajスケールのダイアトニックコードにおいて、Dmajスケールに見立てたときのII-V-I(Em7-A7-Dm7)の派生形であり、Dm7を裏コードに変更している。GbM7はDbmajにおけるAb7に対するツーファイブであり、Ab7への解決(終止)を一時的に遅らせるために挿入されている。」
 一方、学習済モデル155は、図12に示すコード入力データのうち、「GbM7-Ab7-DbM7」の要素がツーファイブワンに関連すると推測し、さらには、「Em7-A7-Ab7」の要素についても言及する以下のような解説文章を文章出力データとして出力する。
「CmajからDmajに一時転調している。GbM7-Ab7-DbM7は、DbmajスケールにおけるII-V-I(Ebm7-Ab7-DbM7)のうち、IIを同じサブドミナントであるIVに変化(Ebm7→GbM7)させたものである。転調をスムーズにするために、Em7-A7-Ab7という裏コードを利用したツーファイブワンの一種が取り入れられている。」
 このように、多くの教師データセット355を用いて上記のように機械学習をすることによって、コード入力データに含まれるコードの並びが類似したものであっても、学習済モデル155は類似した部分の前後関係を考慮して適切な解説文章を含む文章出力データを出力することができる。
 図13および図14は、ツーファイブワンとして検出されるコード進行の変形例を説明するための図である。図13に示す例では、ツーファイブワンのコード進行の基本形である「Bm7(-5)-E7-Am7」に対して、ベースラインの下降という連結技法が適用されると、例えば「Bm7(-5)-Bm7(-5)/F-E7-E7/G#-Am7」といったコードの並びになる。この場合でも、ベースラインの変化に影響されずに、ツーファイブワンのコード進行であることを認識することができる。
 図14に示す例では、ツーファイブワンのコード進行の基本形である「Dm7-Db7-CM7」に対して、パッシングディミニッシュという連結技法が適用されると、例えば「Dm7-Ddim7-Db7-CM7」といったコードの並びになる。この場合でも、Ddim7が追加されたことに影響されずに、ツーファイブワンのコード進行であることを認識することができる。
[5.特定区間の抽出]
 上述した実施形態において、コード入力データは、楽曲コードデータに含まれる全てのコードの並びを特定するものであってもよいし、そのなかから抽出された一部のコードの並びを特定するものであってもよい。以下の説明では、コード入力データに含まれるコードに対応する楽曲の区間を特定区間という。特定区間は、ユーザによって設定されてもよいし、以下に例示される所定の方法によって設定されてもよい。
 所定の方法の例について説明する。学習済モデル155に提供されるコード入力データは、楽曲コードデータのすべてではなくてもよく、楽曲の特徴的な部分を用いることができれば、楽曲に特徴的な解説文章を得ることができる。したがって、このような楽曲の特徴的な部分を特定区間として設定することが好ましい。楽曲の特徴的な部分は、様々な方法で設定することができるが、その一例について説明する。
 ここで説明する例では、制御部11が、予め決められた複数の判定区間(例えば、上述した楽曲区間)に楽曲を分割し、所定の条件を満たす判定区間を特定区間として設定する。この例では、各判定区間におけるコード進行重要度を算出することによって、所定の閾値を超えたコード進行重要度を有する判定区間が特定区間として設定される。
 コード進行重要度は、楽曲データベース159に登録された各種データと、判定区間におけるコード進行とに基づいて算出される。この算出方法の一例を説明する。
 図15は、一実施形態における楽曲データベースを説明するための図である。楽曲データベース159は、例えば、文章提供サーバ1の記憶部15に記憶される。楽曲データベース159には、複数の楽曲に関する情報が登録され、例えば、互いに関連付けられたジャンル情報、スケール情報、コード出現率データおよびコード進行出現率データが登録されている。
 ジャンル情報は、例えば、「ロック」、「ポップス」、「ジャズ」、・・・という楽曲のジャンルを示す情報である。スケール情報は、「C major scale」、「C minor scale」、「C# major scale」、・・・というスケール(この例ではキーも含む)を示す情報である。それぞれのスケールには、それを構成する音(以下、スケール構成音という)が設定されている。
 コード出現率データは、楽曲データベースに登録された全楽曲のコードの総数に対する、各種類のコードの割合を示す。例えば、コードの総数が「10000」であり、そのうち、コード「Cm」の数が「100」であれば、そのコードの出現率は、「0.01」である。
 コードの出現率の算出において、互いに類似するコードの同一性については、以下に例示するいずれかの判定基準を用いてもよい。互いにコード名が違えば別のコードとして扱われてもあってもよい(「CM7」と「C/B」とが異なる)。互いに構成音が同じであれば同じコードして扱われてもよい(「CM7」と「C/B」とが同じ)。互いに構成音とベース音とが同じであれば同じコードして扱われてもよい(「CM7」と「G/C」とが同じ)。互いに構成音が異なってもテンション音以外が同じであれば同じコードして扱われてもよい(「CM7」と「C」とが同じ)。
 コード進行出現率データは、楽曲データベースに登録された全楽曲のコード進行の総数に対する、各種類のコード進行の割合を示す。ここでいうコード進行は、予めユーザ等によって設定されている。例えば、コード進行の総数が「20000」であり、そのうち、コード進行「Dm-G7-CM7」の数が「400」であれば、コード進行の出現率は、「0.02」である。
 コードの同一性の判定基準は、上述したコード出現率の判定方法と同じであってもよい。コード進行の同一性の判定基準は、以下に例示するいずれかの判定基準を用いてもよい。互いに類似するコード進行は同じコード進行として扱われてもよい。例えば、図10に示す基本形に対する派生形および裏コードを利用した形は同じコード進行として扱われてもよい。
 コード進行の少なくとも2つが一致するコード進行は同じコード進行として扱われてもよい。例えば、コード進行「Dm-G7-CM7」であれば、「*-G7-CM7」、「Dm-*-CM7」および「Dm-G7-*」が同一のコード進行として扱われてもよい。ここで「*」は特定されないコード(全てのコードのいずれか)を示す。
 コード出現率データおよびコード進行出現率データは、全ての楽曲に対してのデータを含む。この例では、コード出現率データおよびコード進行出現率データは、さらに、ジャンル情報に規定されるジャンル毎に対応して定められたデータを含む。例えば、ジャンル「ロック」に対応するコード出現率データおよびコード進行出現率データは、ジャンル「ロック」に対応する楽曲のみから得られたコードの出現率およびコード進行の出現率を含んでもよい。出現率の母数(コードの総数およびコード進行の総数)については、楽曲全体に対するデータを対象としてもよい。
 コードおよびコード進行においては、ジャンル「ロック」における出現率とジャンル「ジャズ」における出現率とが異なる。そのため、ジャンル毎のコードの出現率およびコード進行の出現率が存在することによって、楽曲の特徴部分をより精度よく判定することができる。ジャンル情報は必ずしも用いられなくてもよく、この場合、ジャンル毎のコード出現率データおよびコード進行出現率データが存在しなくてもよい。
 図16は、コード進行重要度の計算方法を説明するための図である。図16に示す例では、判定区間におけるコード進行が「C-Cm-CM7-Cm7」である場合の各指標値および重要度を示している。指標値は、コード進行に対して決められるコード進行希少度(CP)、コード進行を構成する各コードに対して決められるスケール要素(S)、コード希少度(C)を含む。これらの指標に基づいて、各コードに対するコード重要度(CS)およびコード進行に対するコード進行重要度(CPS)が算出される。指標値及び重要度は、いずれも「0」から「1」の範囲の値を有する。数値が高いほど、特徴的要素であることを示す。
 この例では、楽曲に対して、キーがCであり、スケールがmajor scaleであり、ジャンルがポップスである。これらの情報は、あらかじめユーザによって設定されてもよいし、楽曲コードデータを解析して設定されてもよい。楽曲コードデータを解析する場合には、例えば、楽曲データベース159に登録されている楽曲との比較により類似するコードとの関係で設定されてもよいし、機械学習等によって得られた学習済みモデルを用いてコードの並びから推定されてもよい。
 スケール要素(S)は、コードの構成音の全てがスケール構成音に含まれる場合には「0」に設定され、コードの構成音のいずれかがスケール構成音に含まれない場合には「1」に設定される。スケール構成音に含まれない音を含むコードは、楽曲にとって特徴的な部分であるといえるためである。
 コード希少度(C)は、あらかじめ決められた算出式によって得られる。コード出現率が大きいほど、コード希少度(C)が小さくなるように算出式が決められている。C major scaleの場合、CおよびCM7は、コード出現率が相対的に高いため、コード希少度(C)は相対的に小さい値に設定されている。
 コード進行希少度(CP)は、あらかじめ決められた算出式によって得られる。コード進行出現率が大きいほど、コード進行希少度(CP)が小さくなるように算出式が決められている。この例では、「C-Cm-CM7-Cm7」というコード進行の出現率が極めて小さいため、コード進行希少度(CP)が大きい値「1」に設定されている。
 コード重要度(CS)は、スケール要素(S)、コード希少度(C)およびコード進行希少度(CP)を用いて算出される。この例では、算出式は、CS=a×S+b×C+c×CPであり、a=1/4、b=1/4、c=1/2である。コード進行重要度(CPS)は、コード重要度(CS)の平均値である。
 このようにして得られたコード進行重要度(CPS)は、数値が大きいほど(「1」に近いほど)、そのコード進行が他の楽曲と比べて珍しい構成であることを示している。すなわち、コード進行重要度(CPS)が大きい判定区間は、楽曲の特徴的な部分であるといえる。
 上記の指標値および重要度の算出方法は一例であって、全体としてコード進行の重要度(楽曲の特徴的な部分)が得られれば、様々な算出方法が取り得る。続いて、特定区間を用いてコード入力データを生成する方法について説明する。このコード入力データを生成する方法は、例えば、図2に示すステップS103における処理と置き換えられる。
 図17は、一実施形態におけるコード入力データを生成する処理を示すフローチャートである。制御部11は、キー、スケールおよびジャンルを設定する(ステップS1031)。上述したように、キー、スケールおよびジャンルは、ユーザによる設定により通信端末9から受信することによって取得してもよいしし、楽曲コードデータを解析することによって取得してもよい。制御部11は、楽曲を複数の判定区間に分割し(ステップS1033)、各判定区間におけるコード進行重要度(CPS)を算出する(ステップS1035)。
 制御部11は、各判定区間に対して算出されたコード進行重要度(CPS)に基づいて、少なくとも1つの判定区間を特定区間として設定する(ステップS1037)。ここでは、コード進行重要度(CPS)が所定の閾値よりも大きい判定区間が、特定区間として設定される。コード進行重要度(CPS)が最も大きい判定区間から順に所定数の判定区間が、特定区間として設定されてもよい。
 制御部11は、特定区間に対応するコード入力データを生成する(ステップS1039)。コード入力データにおいては、特定区間毎に終了マーカEOSが配置されることで1つの分割領域に1つの特定区間が配置されるようにしてもよいし、連続する複数の判定区間が複数の特定区間として設定された場合には、1つの分割領域にその複数の特定区間が含まれるように配置されてもよい。
 このようにして、生成されたコード入力データを学習済モデル155に提供することによって、学習済モデル155は、楽曲の特徴部分を表すコード進行に対する解説文章を生成して、文章出力データを出力することができる。
[6.変形例]
 本開示は上述した実施形態に限定されるものではなく、他の様々な変形例が含まれる。例えば、上述した実施形態は本開示を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。実施形態の構成の一部について、他の構成を追加・削除・置換してもよい。以下、一部の変形例について説明する。
(1)上述した実施形態においては、文章提供サーバ1は、コード入力データから解説文章を生成するために学習済モデル155を用いたが、ニューラルネットワークを用いないモデル(例えばルールベースのモデル)を用いてもよい。学習済モデル155によれば、機械学習を多くの教師データセット355を用いることによって解説文章の精度を向上させることができる。
 ルールベースのモデルによれば、コード入力データから解説文章を生成するためのルール、すなわち上述したコード列データ357に相当する情報と解説文章データ359に相当する情報との対応関係を設定する必要がある。このルールは多くの情報量を必要とする。例えば、上述したようにツーファイブワンのコード進行として判断されるコードの並びとして、様々な種類が想定される。そのため、解説文章の精度を高めようとすると、想定され得る多く種類に対応して、それぞれ解説文章を設定する必要がある。情報量を低減するためには、学習済モデル155を用いた場合よりも解説文章を単純化する必要が生じる場合もある。学習済モデル155を用いる場合よりも効率が落ちる場合も想定されるものの、ルールベースのモデルによりコード入力データから解説文章を生成することは実現可能である。
(2)コード出現率データおよびコード進行出現率データは、楽曲のキーによらず等価になるように定義されてもよい。例えば、コード出現率データは、楽曲のキーが「C」であるときのコード「CM7」と、キーが「E」であるときのコード「EM7」とが同じコードであるとして解釈されるようにすればよい。コード進行出現率データは、楽曲のキーが「C」であるときのコード進行「Dm-G7-CM7」と、キーが「E」であるときのコード進行「Fm-B7-EM7」とが同じコード進行であるとして解釈されるようにすればよい。
 すなわち、コード出現率データおよびコード進行出現率データは、いずれも楽曲のキーに対する相対的な表現のコードによって規定されればよい。相対的な表現とは、例えば、キーが「C」である場合に変換したものであってもよい。「I」、「II」といった記述に変換されたものであってもよい。例えば、キーが「C」におけるコード「Em7」は、「IIIm7」というように表現される。
 この場合には、制御部11は、相対的な表現のコードによって定義されたコード出現率データおよびコード進行出現率データを、設定された楽曲のキーに基づいて絶対的な表現のコードに変換する。制御部11は、変換後のコードによる出現率に基づいて、コード重要度(CS)およびコード進行重要度(CPS)を算出する。
(3)文章提供サーバ1は、学習済モデル155を用いる代わりに、SVM(Support Vector Machine)またはHMM(Hidden Markov Model)などの演算モデルを用いてもよい。この場合には、制御部11は、この演算モデルを用いてコード入力データから特定のコード進行、例えば、「ツーファイブワン」を取得する。制御部11は、取得したコード進行と、予め決められた所定のテンプレートとを組み合わせて解説文章を制する。所定のテンプレートは、例えば、「このコード進行にはXXXXが用いられています。」である。「XXXX」の部分に取得したコード進行(上記の例では、「ツーファイブワン」)を用いることで、「このコード進行にはツーファイブワンが用いられています。」という解説文章が生成される。HMMであれば、コード入力データに含まれるコードを順次入力すればよい。SVMであれば、コード入力データに含まれる所定数のコードをまとめて入力すればよい。
(4)複数の学習済モデル155を記憶するサーバがネットワークNWに接続されていてもよい。このサーバは、モデル生成サーバ3であってもよい。文章提供サーバ1は、このサーバに記憶された複数の学習済モデル155のいずれかを選択して、上述した文章提供処理を実行してもよい。文章提供サーバ1は、文章提供処理に用いる学習済モデル155をそのサーバからダウンロードして記憶部15に記憶してもよいし、学習済モデル155をダウンロードせずに、これを記憶するサーバと通信することによってコード入力データを送信し、文章出力データを受信してもよい。
 複数の学習済モデル155は、機械学習のときに用いる教師データセット355の少なくとも一部が互いに異なっている。例えば、ジャンル(ジャズ、クラシックなど)によってそれぞれ分類された複数の教師データセット355を用いて機械学習をすると、複数のジャンルにそれぞれ対応した複数の学習済モデル155が生成される。教師データセット355は、ジャンルの種類で分類されてもよいし、楽器の種類で分類されてもよい。この分類によれば、コード列データと解説文章データとが、その分類に特化したものとなる。教師データセット355は、その解説文章データ359に含まれる解説文章の作成者によって分類されてもよい。
 例えば、ジャズに分類される楽曲に対応したコード入力データが、ジャズに対応した学習済モデル155に提供されることで、精度の高い解説文章を得ることができる。コード入力データに対応する楽曲が分類される対象は、ユーザによって設定されてもよいし、楽曲を解析することによって設定されてもよい。
 1つのコード入力データが複数の学習済モデル155に提供されることで、複数種類の解説文章を得てもよい。例えば、複数の作成者にそれぞれ対応する複数の学習済モデル155を用いれば、得られた複数種類の解説文章を比較して、ユーザに適したものを選ぶこともできる。複数の学習済モデル155から得られた解説文章のうち、共通点に基づいて新たな解説文章を生成してもよい。
(5)コード入力データおよびコード列データ357は、クロマベクトルで記述されている場合に限らない。例えば、コードの構成音がベクトルを含むデータで表されるのであれば、他の方法で表されてもよい。コードに関しても、「word2vec」、「GloVe」などを適用した表現で記述されてもよい。
 以上が変形例に関する説明である。
 以上のとおり、本開示の一実施形態によれば、コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得することを含む、文章提供方法が提供される。
 前記文章を取得することは、前記関係を学習させた学習済モデルに前記コードデータを提供することによって、前記学習済モデルから前記文章を取得することを含んでもよい。
 前記コード列データに含まれるコードは、少なくとも前記コードの構成音とベース音とを含んでもよい。
 前記コード列データに含まれるコードは、少なくとも前記コードの構成音と前記コードのテンション音とを含んでもよい。
 前記コードは、ベクトルを含むデータで表されてもよい。
 前記コードは、当該コードの構成音に対応する第1クロマベクトルを含むデータで表されてもよい。
 前記コードは、当該コードのベース音に対応する第2クロマベクトルを含むデータで表されてもよい。
 前記コードは、当該コードのテンション音に対応する第3クロマベクトルを含むデータで表されてもよい。
 前記解説文章は、コード進行を説明する第1文字群を含んでもよい。
 前記解説文章は、コードの機能を説明する第2文字群を含んでもよい。
 前記解説文章は、コード間の連結技法を説明する第3文字群を含んでもよい。
 楽曲の前記コードを時系列に並べた楽曲コードデータを取得し、前記楽曲コードデータから所定の条件を満たす特定区間の前記コードの並びを前記コード入力データとして抽出すること、を含んでもよい。
 前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のキーに応じて決められるコードに関する重要度とを用いた条件を含んでもよい。
 前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のジャンルに応じて決められるコードに関する重要度とを用いた条件を含んでもよい。
 前記文章提供方法をコンピュータに実行させるためのプログラムが提供されてもよい。このプログラムの命令を記憶する記憶部とその命令を実行するプロセッサを含む文章提供装置が提供されてもよい。
1…文章提供サーバ、11…制御部、13…通信部、15…記憶部、151…プログラム、155…学習済モデル、159…楽曲データベース、3…モデル生成サーバ、31…制御部、33…通信部、35…記憶部、351…プログラム、355…教師データセット、357…コード列データ、359…解説文章データ、9…通信端末、1000…文章提供システム
 

Claims (22)

  1.  コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係を学習させた学習済モデルに対し、コードを時系列に並べたコード入力データを提供し、
     前記コード入力データに対応する文章を前記学習済モデルから取得すること
     を含む、文章提供方法。
  2.  前記コードは、ベクトルを含むデータで表される、請求項1に記載の文章提供方法。
  3.  前記コードは、当該コードの構成音に対応する第1クロマベクトルを含むデータで表される、請求項1または請求項2に記載の文章提供方法。
  4.  前記コードは、当該コードのベース音に対応する第2クロマベクトルを含むデータで表される、請求項1から請求項3のいずれかに記載の文章提供方法。
  5.  前記コードは、当該コードのテンション音に対応する第3クロマベクトルを含むデータで表される、請求項1から請求項4のいずれかに記載の文章提供方法。
  6.  前記解説文章は、コード進行を説明する第1文字群を含む、請求項1から請求項5のいずれかに記載の文章提供方法。
  7.  前記解説文章は、コードの機能を説明する第2文字群を含む、請求項1から請求項6のいずれかに記載の文章提供方法。
  8.  前記解説文章は、コード間の連結技法を説明する第3文字群を含む、請求項1から請求項7のいずれかに記載の文章提供方法。
  9.  楽曲の前記コードを時系列に並べた楽曲コードデータを取得し、
     前記楽曲コードデータから所定の条件を満たす特定区間の前記コードの並びを前記コード入力データとして抽出すること、
     をさらに含む、
     請求項1から請求項8のいずれかに記載の文章提供方法。
  10.  前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のキーに応じて決められるコードに関する重要度とを用いた条件を含む、
     請求項9に記載の文章提供方法。
  11.  前記所定の条件は、前記楽曲コードデータに含まれる前記コードと、前記楽曲のジャンルに応じて決められるコードに関する重要度とを用いた条件を含む、
     請求項9または請求項10に記載の文章提供方法。
  12.  コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得すること
     をコンピュータに実行させるためのプログラム。
  13.  前記文章を取得することは、前記関係を学習させた学習済モデルに前記コード入力データを提供することによって、前記学習済モデルから前記文章を取得することを含む、請求項12に記載のプログラム。
  14.  前記コード列データに含まれるコードは、少なくとも前記コードの構成音とベース音とを含む、請求項12または請求項13に記載のプログラム。
  15.  前記コード列データに含まれるコードは、少なくとも前記コードの構成音と前記コードのテンション音とを含む、請求項12から請求項14のいずれかに記載のプログラム。
  16.  前記コードは、ベクトルを含むデータで表される、請求項12から請求項15のいずれかに記載のプログラム。
  17.  前記コードは、当該コードの構成音に対応する第1クロマベクトルを含むデータで表される、請求項12から請求項16のいずれかに記載のプログラム。
  18.  前記コードは、当該コードのベース音に対応する第2クロマベクトルを含むデータで表される、請求項12から請求項17のいずれかに記載のプログラム。
  19.  前記コードは、当該コードのテンション音に対応する第3クロマベクトルを含むデータで表される、請求項12から請求項18のいずれかに記載のプログラム。
  20.  前記解説文章は、コード進行を説明する第1文字群を含む、請求項12から請求項19のいずれかに記載のプログラム。
  21.  コードを時系列に並べたコード列データと当該コード列データに含まれるコードに関する解説文章との関係に基づいて、コードを時系列に並べたコード入力データに対応する文章を取得する制御部を含む、文章提供装置。
  22.  前記制御部は、前記関係を学習させた学習済モデルに前記コード入力データを提供することによって、前記学習済モデルから前記文章を取得することを含む、請求項21に記載の文章提供装置。
PCT/JP2022/010084 2021-03-23 2022-03-08 文章提供方法、プログラムおよび文章提供装置 WO2022202297A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280022223.0A CN116997958A (zh) 2021-03-23 2022-03-08 文章提供方法、程序及文章提供装置
JP2023508950A JPWO2022202297A1 (ja) 2021-03-23 2022-03-08
US18/471,376 US20240013760A1 (en) 2021-03-23 2023-09-21 Text providing method and text providing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021049200 2021-03-23
JP2021-049200 2021-03-23

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/471,376 Continuation US20240013760A1 (en) 2021-03-23 2023-09-21 Text providing method and text providing device

Publications (1)

Publication Number Publication Date
WO2022202297A1 true WO2022202297A1 (ja) 2022-09-29

Family

ID=83395600

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/010084 WO2022202297A1 (ja) 2021-03-23 2022-03-08 文章提供方法、プログラムおよび文章提供装置

Country Status (4)

Country Link
US (1) US20240013760A1 (ja)
JP (1) JPWO2022202297A1 (ja)
CN (1) CN116997958A (ja)
WO (1) WO2022202297A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215181A (ja) * 2010-03-31 2011-10-27 Yamaha Corp 楽譜表示装置および楽譜表示方法を実現するためのプログラム
JP2012168538A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 楽譜位置推定装置、及び楽譜位置推定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215181A (ja) * 2010-03-31 2011-10-27 Yamaha Corp 楽譜表示装置および楽譜表示方法を実現するためのプログラム
JP2012168538A (ja) * 2011-02-14 2012-09-06 Honda Motor Co Ltd 楽譜位置推定装置、及び楽譜位置推定方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KAGO YUINA, KOJIRI TOMOKO: "Piano Accompaniment Support System Focusing on Accompaniment Pattern Image", IEICE TECHNICAL REPORT, ET, IEICE, JP, vol. 116, no. 517 (ET2016-104), 1 March 2017 (2017-03-01), JP, pages 61 - 66, XP009539998 *
RYOTA NISHIMURA, MIHO HIGAKI, NORIHIDE KITAOKA: "RNN-based mapping of acoustic vector time series to document vectors", IEICE TECHNICAL REPORT, SP, IEICE, JP, vol. 118, no. 112 (SP2018-12), 1 June 2018 (2018-06-01), JP, pages 59 - 64, XP009539997 *
RYOUE TAKAHASHI AND OTHERS: "3-7-4 Consideration of Association between Song Reviews and Acoustic Features", SPRING AND AUTUMN MEETING OF THE ACOUSTICAL SOCIETY OF JAPAN, ACOUSTICAL SOCIETY OF JAPAN, JP, 1 March 2007 (2007-03-01) - 15 March 2007 (2007-03-15), JP , pages 743 - 744, XP009539970, ISSN: 1880-7658 *

Also Published As

Publication number Publication date
CN116997958A (zh) 2023-11-03
US20240013760A1 (en) 2024-01-11
JPWO2022202297A1 (ja) 2022-09-29

Similar Documents

Publication Publication Date Title
Chen et al. Functional Harmony Recognition of Symbolic Music Data with Multi-task Recurrent Neural Networks.
CN111630590B (zh) 生成音乐数据的方法
Collins et al. Developing and evaluating computational models of musical style
Cogliati et al. Transcribing Human Piano Performances into Music Notation.
JP2020003535A (ja) プログラム、情報処理方法、電子機器、及び学習済みモデル
Suzuki et al. Four-part harmonization using Bayesian networks: Pros and cons of introducing chord nodes
Cambouropoulos The harmonic musical surface and two novel chord representation schemes
Banar et al. A systematic evaluation of GPT-2-based music generation
Marxer et al. Unsupervised incremental online learning and prediction of musical audio signals
Wu et al. The power of fragmentation: a hierarchical transformer model for structural segmentation in symbolic music generation
Bigo et al. Sketching sonata form structure in selected classical string quartets
Colombo et al. Learning to generate music with BachProp
Glickman et al. (A) Data in the Life: Authorship Attribution of Lennon-McCartney Songs
WO2022202297A1 (ja) 文章提供方法、プログラムおよび文章提供装置
Ycart et al. A supervised approach for rhythm transcription based on tree series enumeration
Arronte Alvarez et al. Distributed vector representations of folksong motifs
US10431191B2 (en) Method and apparatus for analyzing characteristics of music information
KR102490769B1 (ko) 음악적 요소를 이용한 인공지능 기반의 발레동작 평가 방법 및 장치
Syarif et al. Gamelan Melody Generation Using LSTM Networks Controlled by Composition Meter Rules and Special Notes
Llorens et al. musif: a Python package for symbolic music feature extraction
Martins et al. Similarity measures for rhythmic sequences
Müller et al. Chord Recognition
Hadimlioglu et al. Automated musical transitions through rule-based synthesis using musical properties
Uehara Unsupervised Learning of Harmonic Analysis Based on Neural HSMM with Code Quality Templates
Ju Addressing ambiguity in supervised machine learning: A case study on automatic chord labelling

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: 22775089

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023508950

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 202280022223.0

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22775089

Country of ref document: EP

Kind code of ref document: A1