
é ããã«ã³ãã¢ãã«ã¯ãé³å£°èªèã§é·ãé䜿çšãããŠããŸããã ã±ãã¹ãã©ã ä¿æ°ïŒMFCCïŒã®ãããã§ãèªèã«ãšã£ãŠéèŠã§ãªãä¿¡å·æåãç Žæ£ããããšãå¯èœã«ãªããç¹åŸŽã®æ¬¡å æ§ãå€§å¹ ã«äœäžããŸããã ã€ã³ã¿ãŒãããã«ã¯ãHMMãšMFCCã䜿çšããŠç°¡åãªåèªãèªèããç°¡åãªäŸãæ°å€ããããŸãã
ãããã®æ©äŒã«æ £ããåŸããã®èªèã¢ã«ãŽãªãºã ãé³æ¥œã§è©ŠããŠã¿ãããšããèŠæããããŸããã ãã®ãããæŒå¥è ã«ãã£ãŠæ¥œæ²ãåé¡ãããšããã¿ã¹ã¯ã®ã¢ã€ãã¢ãçãŸããŸããã è©Šè¡ã«ã€ããŠã¯ããã®æçš¿ã§äœããã®éæ³ãšçµæã«ã€ããŠèª¬æããŸãã
ããæ°
é ããããã«ã³ãã¢ãã«ãå®éã«ç¥ããããšãã欲æ±ã¯ãã£ãšåã«çããæšå¹Žãç§ã¯ãããã®å®éã®äœ¿çšã修士課çšã®ã³ãŒã¹ãããžã§ã¯ããšãªã³ã¯ãããããšãã§ããŸããã
äºåãããžã§ã¯ãã°ãŒã°ã«ã§ãã¢ã€ã«ã©ã³ãããã€ãããã©ã³ã¹ã®ãã©ãŒã¯ãã¥ãŒãžãã¯ãåé¡ããããã®HMMã®äœ¿çšã«ã€ããŠèª¬æããèå³æ·±ãèšäºãèŠã€ãããŸããã æïŒæ°åã®æïŒã®å€§ããªã¢ãŒã«ã€ãã䜿çšããŠããã®èšäºã®èè ã¯ãç°ãªã人ã ã®æ§æã®éã«çµ±èšçãªéããããããšãç¹å®ããããšããŸãã
HMMã§ã©ã€ãã©ãªãå匷ããŠãããšãã«ã Python ML Cookbookã®ã³ãŒãã«åºäŒããŸãããããã§ã¯ãããã€ãã®ç°¡åãªåèªãèªèããäŸã䜿çšããŠãhmmlearnã©ã€ãã©ãªã䜿çšããŸããã
åé¡ã®å£°æ
è€æ°ã®é³æ¥œã¢ãŒãã£ã¹ãã®å©çšå¯èœãªæ²ã ã¿ã¹ã¯ã¯ãHMMã«åºã¥ããŠåé¡åããã¬ãŒãã³ã°ããããšã§ããHMMã¯ãå ¥åãããæ²ã®äœè ãæ£ããèªèããŸãã
æ²ã¯.wav圢åŒã§ãã ã°ã«ãŒãããšã«æ²ã®æ°ã¯ç°ãªããŸãã çµæç©ã®å質ãæç¶æéãç°ãªããŸãã
çè«
ã¢ã«ãŽãªãºã ã®åäœïŒã©ã®ãã©ã¡ãŒã¿ãŒãã©ã®ãã¬ãŒãã³ã°ã«é¢äžãããïŒãç解ããã«ã¯ãå°ãªããšããã§ãŒã¯ã±ãã¹ãã©ã ä¿æ°ãšé ããã«ã³ãã¢ãã«ã®çè«ã«é¢ããè¡šé¢çãªç¥èãå¿ èŠã§ãã 詳现ã«ã€ããŠã¯ã MFCCããã³HMMã«é¢ããèšäºãåç §ããŠãã ããã
MFCCã¯ã倧ãŸãã«èšãã°ãããŸããŸãªãã£ã«ã¿ãŒåŠçããã³å€æã䜿çšããŠã人éã®èŽèŠã«ãšã£ãŠéèŠã§ã¯ãªãæåãé€å»ãããç¹å¥ãªã¹ãã¯ãã«ã®åœ¢åŒã§ã®ä¿¡å·ã®è¡šçŸã§ãã ã¹ãã¯ãã«ã¯æ¬è³ªçã«çæéã§ããã€ãŸããæåã«ä¿¡å·ã¯20ã40ããªç§ã®äº€å·®ããã»ã°ã¡ã³ãã«åå²ãããŸãã ãã®ãããªã»ã°ã¡ã³ãã§ã¯ãä¿¡å·åšæ³¢æ°ã¯ããŸãå€åããªããšæ³å®ãããŠããŸãã ãããŠããããã®ã»ã°ã¡ã³ãã§ã¯ãã§ã«ããžãã¯ä¿æ°ãèæ ®ãããŠããŸãã
ä¿¡å·ããããŸã

ãããã25ããªç§ã®ã»ã°ã¡ã³ããååŸãããŸã

ãããŠããããã®ããããã«ã€ããŠããã§ãŒã¯ã±ãã¹ãã©ã ä¿æ°ãèšç®ãããŸãã

ãã®è¡šçŸã®å©ç¹ã¯ãé³å£°èªèã®å Žåãéåžžã®ããŒãªãšå€æã®å Žåãæ°çŸãŸãã¯æ°åã§ã¯ãªãããã¬ãŒã ããšã«çŽ16ã®ä¿æ°ãåãã ãã§ååã§ããããšã§ãã æã®äžã§ãããã®ä¿æ°ãéžæããã«ã¯ã30ã40ã®ã³ã³ããŒãã³ãã䜿çšããæ¹ãè¯ãããšãå®éšçã«ããã£ãã
é ããã«ã³ãã¢ãã«ã®åäœã®äžè¬çãªç解ã«ã€ããŠã¯ã wikiã®èª¬æãåç §ããŠãã ããã
ãããã®æå³ã¯ãé ãããç¶æ ã®æªç¥ã®ã»ããããããšããããšã§ã $ã€ã³ã©ã€ã³$ x_1ãx_2ãx_3 $ã€ã³ã©ã€ã³$ 確çã«ãã£ãŠæ±ºå®ãããäœããã®ã·ãŒã±ã³ã¹ã§ã®çç¶ $ã€ã³ã©ã€ã³$ a_1ãa_2ãa_3 $ã€ã³ã©ã€ã³$ ããã€ãã®ç¢ºç㧠$ã€ã³ã©ã€ã³$ b_1ãb_2ãb_3 $ã€ã³ã©ã€ã³$ äžé£ã®èŠ³æž¬å¯èœãªçµæã«ã€ãªãã $ã€ã³ã©ã€ã³$ y_1ãy_2ãy_3 $ã€ã³ã©ã€ã³$ ã

ãã®å Žåã芳å¯ãããçµæã¯åãã¬ãŒã ã®mfccã§ãã
Baum-Welshã¢ã«ãŽãªãºã ïŒããæåãªEMã¢ã«ãŽãªãºã ã®ç¹æ®ãªã±ãŒã¹ïŒã¯ãæªç¥ã®HMMãã©ã¡ãŒã¿ãŒãèŠã€ããããã«äœ¿çšãããŸãã ã¢ãã«ãæããããšã«åŸäºããŠããã®ã¯åœŒã§ãã
å®è£
æåŸã«ã³ãŒãã«åãããããŸãããã å®å šçã¯ãã¡ãããå ¥æã§ããŸã ã
librosaã©ã€ãã©ãªã¯ãMFCCãèšç®ããããã«éžæãããŸããã python_speech_featuresã©ã€ãã©ãªã䜿çšããããšãã§ããŸãã ãã®ã©ã€ãã©ãªã¯ã librosaãšã¯ç°ãªããã±ãã¹ãã©ã«ä¿æ°ã®èšç®ã«å¿ èŠãªé¢æ°ã®ã¿ãå®è£ ããŸãã
ã.wavã圢åŒã®æ²ãåãå ¥ããŸãã 以äžã¯ãå ¥åãšã㊠".wav"ãã¡ã€ã«ã®ååããšãMFCCãèšç®ããããã®é¢æ°ã§ãã
def getFeaturesFromWAV(self, filename): audio, sampling_freq = librosa.load( filename, sr=None, res_type=self._res_type) features = librosa.feature.mfcc( audio, sampling_freq, n_mfcc=self._nmfcc, n_fft=self._nfft, hop_length=self._hop_length) if self._scale: features = sklearn.preprocessing.scale(features) return features.T
æåã®è¡ã¯ãããwavããã¡ã€ã«ã®éåžžã®ããŠã³ããŒãã§ãã ã¹ãã¬ãªãã¡ã€ã«ã¯ã·ã³ã°ã«ãã£ã³ãã«åœ¢åŒã«å€æãããŸãã librosaã§ã¯ããŸããŸãªãªãµã³ããªã³ã°ãå¯èœã§ããç§ã¯
res_type='scipy'
ã«
res_type='scipy'
ã
笊å·ã®èšç®ã«ã¯3ã€ã®äž»èŠãªãã©ã¡ãŒã¿ãŒã瀺ãå¿ èŠããããšèããŸããïŒ
n_mfcc
ã±ãã¹ãã©ã ä¿æ°ã®æ°ã
n_fft
é«éããŒãªãšå€æã®ãã€ã³ãæ°ã
hop_length
ãã¬ãŒã ã®ãµã³ãã«æ°ïŒããšãã°ã22kGã®512ãµã³ãã«ã§ãçŽ23msãçæããŸãïŒã
ã¹ã±ãŒãªã³ã°ã¯ãªãã·ã§ã³ã®æé ã§ãããããã«ãã£ãŠåé¡åãããå®å®ãããããšãã§ããŸããã
åé¡åšã«ç§»ããŸãããã hmmlearnã¯ãæŽæ°ã®ãã³ã«äœããå£ããäžå®å®ãªã©ã€ãã©ãªã§ããããšãå€æããŸããã ããã§ããscikitãšã®äºææ§ã¯è¯å¥œã§ãã çŸæç¹ïŒ0.2.1ïŒã§ã¯ãã¬ãŠã¹æŸåºã䌎ãé ããã«ã³ãã¢ãã«ãæãæå¹ãªã¢ãã«ã§ãã
å¥éã次ã®ã¢ãã«ãã©ã¡ãŒã¿ãŒã«æ³šæããŠãã ããã
self._hmm = hmm.GaussianHMM(n_components=hmmParams.n_components, covariance_type=hmmParams.cov_type, n_iter=hmmParams.n_iter, tol=hmmParams.tol)
ãã©ã¡ãŒã¿
n_components
é衚瀺ç¶æ ã®æ°ã決å®ããŸãã 6-8ã®é衚瀺ç¶æ ã䜿çšããŠãæ¯èŒçè¯ãã¢ãã«ãæ§ç¯ã§ããŸãã Core i5-7300HQ 2.50GHzã§ã¯ã10æ²ã§çŽ7åããããŸãã ããããããèå³æ·±ãã¢ãã«ãååŸããããã«ãçŽ20ã®é衚瀺ç¶æ ã䜿çšããããšã奜ã¿ãŸããã ãã£ãšè©ŠããŠã¿ãŸãããããã¹ãã§ã¯çµæã¯ããŸãå€ããããåãæ²æ°ã§ãã¬ãŒãã³ã°æéãæ°æ¥ã«å¢ããŸããã
æ®ãã®ãã©ã¡ãŒã¿ãŒã¯ãEMã¢ã«ãŽãªãºã ã®åæãæ åœããå埩åæ°ã粟床ãå¶éããå ±åæ£ç¶æ ãã©ã¡ãŒã¿ãŒã®ã¿ã€ãã決å®ããŸãã
hmmlearnã¯ãæåž«ãªãã§æããããã«äœ¿çšãããŸãã ãããã£ãŠãåŠç¿ããã»ã¹ã¯æ¬¡ã®ããã«æ§æãããŸãã åã¯ã©ã¹ã«ã¯ç¬èªã®ã¢ãã«ããããŸãã 次ã«ããã¹ãä¿¡å·ãåã¢ãã«ãééããããããåã¢ãã«ã®å¯Ÿæ°ç¢ºç
score
ãèšç®ãããŸãã æãé«ã確çãçæããã¢ãã«ã«å¯Ÿå¿ããã¯ã©ã¹ã¯ããã®ãã¹ãä¿¡å·ã®ææè ã§ãã
1ã€ã®ã¢ãã«ã®ã³ãŒãã®ãã¬ãŒãã³ã°ã¯æ¬¡ã®ããã«ãªããŸãã
featureMatrix = np.array([]) for filename in [x for x in os.listdir(subfolder) if x.endswith('.wav')]: filepath = os.path.join(subfolder, filename) features = self.getFeaturesFromWAV(filepath) featureMatrix = np.append(featureMatrix, features, axis=0) if len( featureMatrix) != 0 else features hmm_trainer = HMMTrainer(hmmParams=self._hmmParams) hmm_trainer.train(featureMatrix)
ã³ãŒãã¯
subfolder
ãã©ã«ããŒãå®è¡ãããã¹ãŠã®ã.wavããã¡ã€ã«ãæ€çŽ¢ããŸããããããã®ãã¡ã€ã«ã«ã€ããŠãMFCCãèæ ®ããŸããMFCCã¯ãå°æ¥çã«åçŽã«èšå·ã®ãããªãã¯ã¹ã«è¿œå ãããŸãã å±æ§ãããªãã¯ã¹ã§ã¯ãè¡ã¯ãã¬ãŒã ã«å¯Ÿå¿ããåã¯MFCCããã®ä¿æ°çªå·ã«å¯Ÿå¿ããŸãã
ãããªãã¯ã¹ãåããåŸããã®ã¯ã©ã¹ã®é ããã«ã³ãã¢ãã«ãäœæãããå±æ§ããã¬ãŒãã³ã°ã®ããã«EMã¢ã«ãŽãªãºã ã«è»¢éãããŸãã
åé¡ã¯æ¬¡ã®ããã«ãªããŸãã
features = self.getFeaturesFromWAV(filepath) #label is the name of class corresponding to model scores = {} for hmm_model, label in self._models: score = hmm_model.get_score(features) scores[label] = score similarity = sorted(scores.items(), key=lambda t: t[1], reverse=True)
ãã¹ãŠã®ã¢ãã«ãããŸãããšå¯Ÿæ°ç¢ºçãã«ãŠã³ãããŸãã 確çãœãŒããããã¯ã©ã¹ã®ã»ãããååŸããŸãã æåã®èŠçŽ ã¯ããã®æ²ã®æãå¯èœæ§ã®é«ãããã©ãŒããŒã瀺ããŸãã
çµæãšæ¹å
ãã¬ãŒãã³ã°ã»ããã§ã¯ãã¢ãã»ããããªãŠããã¢ã³ããããã¡ã¿ãªã«ãã¢ãŒã¿ãŒãããããã«ãŽã¡ãŒãããã³ã¯ããã€ããã¶XXã®7人ã®ã¢ãŒãã£ã¹ãã®æãéžã°ããŸããã ããããã®æ²ã®æ°ãšæ²èªäœã¯ãå®æœãããã¹ããæ£ç¢ºã«èæ ®ããŠéžæãããŸããã
ããšãã°ãã¢ããããã³ãã®ã¹ã¿ã€ã«ã¯ãã£ãªã¢ã®äžã§å€§ããå€åãããããŒãã¥ãŒã ã¡ã¿ã«ããå§ãŸããç©ãããªããã°ã¬ãã·ãããã¯ã§çµãããŸããã ãã¡ãŒã¹ãã¢ã«ãã ã®æ²ããã¹ããµã³ãã«ã«éä¿¡ããããã«ãã¬ãŒãã³ã°ã«ãããæãããæ²ãéä¿¡ããããšã決å®ãããŸããã
ãã¬ãŒãã³ã°ã«åå ããŠããæ²ã®ãªã¹ã
ã¢ãã»ãïŒ
æ·±ã
å§å
ã¢ã³ã¿ããã£ãã«ããŒã1
å¶åŸ¡äžèœ
ã¢ã³ããŒã¯ãŒã«ã
æåŸã®å¥ã
ãããã¯
çµäºããæŽãã®æ¥
å€æ
ããªãŠããã¢ã³ãããïŒ
å°çã«è¡ã£ã
ã¹ã«ã
ç§ãã¡ã¯
ã¢ã³ããã
æ å
ã€ã³ã°
æ»ã£ãŠãã
ã¡ã¿ãªã«ïŒ
ãµã³ããã³ã«å ¥ã
ä»ã«äœãåé¡ãããŸãã
æ²ããããã©æ¬åœ
ãªãªã«ããšäººéã®
èš±ãããªã
倱æããç¥
ã©ãã«æ³ãŸã£ãŠããã
ç§ã®äžå¹žã®å人
èžã¿ã€ããªãã§
å ãªãéäº
決ããŠ
ã¢ãŒã¿ãŒãããïŒ
åå©ãæ»ã¬ã
devil.mp3
é·ãšçš²åŠ»
é»æ°
ãã¡ã€ã¢ã¹ããŒã ããã«
éªçŒ
ãã¹ãŠã®ã©ã€ããæã€
ãã«ãŽã¡ãŒãïŒ
ããããŒ
女ã®åã«ã€ããŠ
éªéãªãã®
ãã®ãŸãŸæ¥ãŠ
çµãããªãç¡å
ããŒãåããã¯ã¹
ãªããŠã
ãã³ã¯ã»ããã€ãïŒ
å¥ã®ã¬ã³ã¬ã®å£pt 1
å¿«é©ãªéº»çº
æŠäºã®ç¬
空ã®ã¹ããŒã¹
æé
ããªããããã«ãããããã®ã«
ãé
é¢ããŠ
XXïŒ
倩䜿ãã¡
å°èª¬
ããŒã·ãã¯ã¹ããŒã¹
çµæ¶å
ãã¡ã³ã¿ãžãŒ
å±éãã
æ·±ã
å§å
ã¢ã³ã¿ããã£ãã«ããŒã1
å¶åŸ¡äžèœ
ã¢ã³ããŒã¯ãŒã«ã
æåŸã®å¥ã
ãããã¯
çµäºããæŽãã®æ¥
å€æ
ããªãŠããã¢ã³ãããïŒ
å°çã«è¡ã£ã
ã¹ã«ã
ç§ãã¡ã¯
ã¢ã³ããã
æ å
ã€ã³ã°
æ»ã£ãŠãã
ã¡ã¿ãªã«ïŒ
ãµã³ããã³ã«å ¥ã
ä»ã«äœãåé¡ãããŸãã
æ²ããããã©æ¬åœ
ãªãªã«ããšäººéã®
èš±ãããªã
倱æããç¥
ã©ãã«æ³ãŸã£ãŠããã
ç§ã®äžå¹žã®å人
èžã¿ã€ããªãã§
å ãªãéäº
決ããŠ
ã¢ãŒã¿ãŒãããïŒ
åå©ãæ»ã¬ã
devil.mp3
é·ãšçš²åŠ»
é»æ°
ãã¡ã€ã¢ã¹ããŒã ããã«
éªçŒ
ãã¹ãŠã®ã©ã€ããæã€
ãã«ãŽã¡ãŒãïŒ
ããããŒ
女ã®åã«ã€ããŠ
éªéãªãã®
ãã®ãŸãŸæ¥ãŠ
çµãããªãç¡å
ããŒãåããã¯ã¹
ãªããŠã
ãã³ã¯ã»ããã€ãïŒ
å¥ã®ã¬ã³ã¬ã®å£pt 1
å¿«é©ãªéº»çº
æŠäºã®ç¬
空ã®ã¹ããŒã¹
æé
ããªããããã«ãããããã®ã«
ãé
é¢ããŠ
XXïŒ
倩䜿ãã¡
å°èª¬
ããŒã·ãã¯ã¹ããŒã¹
çµæ¶å
ãã¡ã³ã¿ãžãŒ
å±éãã
ãã¹ãã§ã¯ãæ¯èŒçè¯ãçµæãåŸãããŸããïŒ16ã®ãã¹ãã®ãã¡ã4ã€ã®ãšã©ãŒïŒã æ²ã®äžéšãåãåã£ãŠã¢ãŒãã£ã¹ããèªèããããšãããšåé¡ãçºçããŸããã
çªç¶ãæ§å³èªäœãæ£ããåé¡ããããšããã®äžéšãæ£å察ã®çµæãããããããšãå€æããŸããã ããã«ããã®æ¥œæ²ã«æ²ã®å§ãŸããå«ãŸããŠããå Žåãã¢ãã«ã¯æ£ããçµæãçæããŸãã ããããããã§ããããäœæ²ã®å¥ã®éšåããå§ãŸãå Žåãã¢ãã«ã¯ãã®æãç®çã®ã¢ãŒãã£ã¹ãã®ãã®ã§ã¯ãªãããšãå®å šãã€å®å šã«ç¢ºä¿¡ããŠããŸãã
ãã¹ãã®äžéš
ã¡ã¿ãªã«ãžã®äººåœ¢ã®ãã¹ã¿ãŒïŒTrueïŒ
ãã¹ã¿ãŒãªãããããïŒã«ãã00:00-00:35ïŒããã¡ã¿ãªã«ïŒTrueïŒ
æã人圢ã®é人ïŒã«ãã00:20-00:55ïŒããAnathemaïŒFalseãMetallicaïŒ
The UnforgivenïŒCut 01:10-01:35ïŒto AnathemaïŒFalseãMetallicaïŒ
ãã«ãŽã¡ãŒããžã®ããŒãåããã¯ã¹ïŒTrueïŒ
ããŒãåããã¯ã¹ïŒã«ãã01:00-01:40ïŒããããªãŠããã¢ã³ãããïŒãã¡ã«ã¹ããã«ãŽã¡ãŒãïŒ
ãã¹ã¿ãŒãªãããããïŒã«ãã00:00-00:35ïŒããã¡ã¿ãªã«ïŒTrueïŒ
æã人圢ã®é人ïŒã«ãã00:20-00:55ïŒããAnathemaïŒFalseãMetallicaïŒ
The UnforgivenïŒCut 01:10-01:35ïŒto AnathemaïŒFalseãMetallicaïŒ
ãã«ãŽã¡ãŒããžã®ããŒãåããã¯ã¹ïŒTrueïŒ
ããŒãåããã¯ã¹ïŒã«ãã01:00-01:40ïŒããããªãŠããã¢ã³ãããïŒãã¡ã«ã¹ããã«ãŽã¡ãŒãïŒ
解決çã¯é·ãéæ±ããããŠããŸããã 50以äžã®é ãããç¶æ ïŒã»ãŒ3æ¥éã®ãã¬ãŒãã³ã°ïŒã§åŠç¿ããè©Šã¿ãè¡ãããMFCCã®æ°ã¯æ°çŸã«å¢å ããŸããã ããããããã§åé¡ã¯è§£æ±ºããŸããã§ããã
åé¡ã¯éåžžã«å³ãããã®ã«ãã£ãŠè§£æ±ºãããŸããããæœåšæèã®ããã¬ãã«ã§ã¯æ確ãªã¢ã€ãã¢ã§ãã ãã¬ãŒãã³ã°ã®åã«ãç¹åŸŽãããªãã¯ã¹ã®ç·ãã©ã³ãã ã«ã·ã£ããã«ããããšã§ããã çµæã¯ããã¬ãŒãã³ã°æéããããã«å¢ããããšã§ææãäžããŸããããããå®å®ããã¢ã«ãŽãªãºã ãäœæããŸããã
featureMatrix = np.array([]) for filename in [x for x in os.listdir(subfolder) if x.endswith('.wav')]: filepath = os.path.join(subfolder, filename) features = self.getFeaturesFromWAV(filepath) featureMatrix = np.append(featureMatrix, features, axis=0) if len( featureMatrix) != 0 else features hmm_trainer = HMMTrainer(hmmParams=self._hmmParams) np.random.shuffle(featureMatrix) #shuffle it hmm_trainer.train(featureMatrix)
以äžã«ããã©ã¡ãŒã¿ãŒã䜿çšããã¢ãã«ãã¹ãã®çµæã瀺ããŸãã20ã®é衚瀺ç¶æ ã40 MFCCãã³ã³ããŒãã³ãã®ã¹ã±ãŒãªã³ã°ãšã·ã£ããã«ã
è©Šéšçµæ
ã¢ãããã«äžçã売ã£ãç·ïŒFalseãNirvanaïŒ
ç§ãã¡ã¯ã¢ãŒã¿ãŒãããã«ã¢ãŒã¿ãŒãããã§ãïŒTrueïŒ
ã¡ã¿ãªã«ãžã®äººåœ¢ã®ãã¹ã¿ãŒïŒTrueïŒ
空ããéåŠïŒTrueïŒ
ãã³ã¯ã»ããã€ããšè©±ãç¶ããïŒTrueïŒ
ã¢ãŒã¿ãŒãããã«æ®ºã人ãæããŠãã ããïŒTrueïŒ
ãã£ãŒã³ã¹ããªããã®ãããªåãããã«ãŽã¡ãŒãïŒTrueïŒ
ãªãªãªã³ïŒInstrumentalïŒããã¡ã¿ãªã«ïŒTrueïŒ
æ²é»ã®è¬ããã¢ãã·ãŒããžïŒTrueïŒ
Nirvana-School to NirvanaïŒTrueïŒ
ã¢ãã»ããžã®èªç¶çœå®³ïŒTrueïŒ
ã¢ã€ã©ã³ãã»ãã¥ã»ã¶ã»XXïŒTrueïŒ
ãã³ã¯ã»ããã€ããžã®é«ãåžæïŒTrueïŒ
ãã³ã¯ããã€ãã«èå·»ãæã£ãŠããïŒTrueïŒ
Lovelorn Rhapsody to Pink FloydïŒFalseãAnathemaïŒ
ããªãšã¿ã³ãã¥ãã¥ã¡ã¿ãªã«ïŒTrueïŒ
ç§ãã¡ã¯ã¢ãŒã¿ãŒãããã«ã¢ãŒã¿ãŒãããã§ãïŒTrueïŒ
ã¡ã¿ãªã«ãžã®äººåœ¢ã®ãã¹ã¿ãŒïŒTrueïŒ
空ããéåŠïŒTrueïŒ
ãã³ã¯ã»ããã€ããšè©±ãç¶ããïŒTrueïŒ
ã¢ãŒã¿ãŒãããã«æ®ºã人ãæããŠãã ããïŒTrueïŒ
ãã£ãŒã³ã¹ããªããã®ãããªåãããã«ãŽã¡ãŒãïŒTrueïŒ
ãªãªãªã³ïŒInstrumentalïŒããã¡ã¿ãªã«ïŒTrueïŒ
æ²é»ã®è¬ããã¢ãã·ãŒããžïŒTrueïŒ
Nirvana-School to NirvanaïŒTrueïŒ
ã¢ãã»ããžã®èªç¶çœå®³ïŒTrueïŒ
ã¢ã€ã©ã³ãã»ãã¥ã»ã¶ã»XXïŒTrueïŒ
ãã³ã¯ã»ããã€ããžã®é«ãåžæïŒTrueïŒ
ãã³ã¯ããã€ãã«èå·»ãæã£ãŠããïŒTrueïŒ
Lovelorn Rhapsody to Pink FloydïŒFalseãAnathemaïŒ
ããªãšã¿ã³ãã¥ãã¥ã¡ã¿ãªã«ïŒTrueïŒ
çµæïŒ16æ²äž2ãšã©ãŒã ééãã¯æãããããšã§ãããäžè¬çã«ã¯æªããããŸããïŒãã³ã¯ããã€ãã¯æããã«ããã»ã©éããããŸããïŒã
æ²ã®åãæãã䜿çšãããã¹ãã¯ãèªä¿¡ãæã£ãŠåæ ŒããŸãã
æ²ããã®åãæã
ã¡ã¿ãªã«ãžã®äººåœ¢ã®ãã¹ã¿ãŒïŒTrueïŒ
ãã¹ã¿ãŒãªãããããïŒã«ãã00:00-00:35ïŒããã¡ã¿ãªã«ïŒTrueïŒ
ãã¹ã¿ãŒã»ãªãã»ããããïŒã«ãã00:20-00:55ïŒããã¡ã¿ãªã«ïŒãã¥ã«ãŒïŒ
The UnforgivenïŒCut 01:10-01:35ïŒto MetallicaïŒTrueïŒ
ãã«ãŽã¡ãŒããžã®ããŒãåããã¯ã¹ïŒTrueïŒ
ããŒãåããã¯ã¹ïŒã«ãã01:00-01:40ïŒãããã«ãŽã¡ãŒãïŒTrueïŒ
ãã¹ã¿ãŒãªãããããïŒã«ãã00:00-00:35ïŒããã¡ã¿ãªã«ïŒTrueïŒ
ãã¹ã¿ãŒã»ãªãã»ããããïŒã«ãã00:20-00:55ïŒããã¡ã¿ãªã«ïŒãã¥ã«ãŒïŒ
The UnforgivenïŒCut 01:10-01:35ïŒto MetallicaïŒTrueïŒ
ãã«ãŽã¡ãŒããžã®ããŒãåããã¯ã¹ïŒTrueïŒ
ããŒãåããã¯ã¹ïŒã«ãã01:00-01:40ïŒãããã«ãŽã¡ãŒãïŒTrueïŒ
ãããã«
é ããã«ã³ãã¢ãã«ã«åºã¥ããŠæ§ç¯ãããåé¡åšã¯ãæºè¶³ã®ããçµæã瀺ããã»ãšãã©ã®æ¥œæ²ã®æŒå¥è ãæ£ããèå¥ããŸãã
ãã¹ãŠã®ã³ãŒãã¯ãã¡ãããå ¥æã§ããŸã ã æ°ã«ãã人ã圌ã¯åœŒã®äœæ²ã§ã¢ãã«ãèšç·Žããããšããããšãã§ããŸãã çµæã«å¿ããŠãããŸããŸãªã°ã«ãŒãã®é³æ¥œã®å ±éç¹ãç¹å®ããããšãã§ããŸãã
ãã¬ãŒãã³ã°ãããã³ã³ããžã·ã§ã³ã®ç°¡åãªãã¹ãã«ã€ããŠã¯ãHerokuã§ã¹ãã³ããŠãããµã€ããèŠãããšãã§ããŸãïŒå°ããªã.wavããã¡ã€ã«ãå ¥åãšããŠåãå ¥ããŸãïŒã ã¢ãã«ããµã€ããããã¬ãŒãã³ã°ãããçµæç©ã®ãªã¹ãã¯ãäžèšã®ãã¿ãã¬ã®äžã®æ®µèœã«ç€ºãããŠããŸãã