淺談動感歌詞-歌詞生成篇

1引言

在寫這生成篇時,我仍是在煩惱應該是先寫歌詞解析篇,仍是先寫歌詞生成篇,後來我想想,其實仍是要先有歌詞文件,纔有解析嘛,固然,咱們也能夠經過現有的歌詞(krc、trc和ksc等)直接跳過這一步,直接解析歌詞便可。git

2製做軟件

這裏介紹一下《小灰熊卡拉ok字幕製做軟件》,咱們能夠經過一些專業的製做軟件,來理清和弄懂歌詞的製做原理。這裏先上個截圖:github

由圖和軟件製做歌詞的使用教程,咱們能夠知道以下信息:app

1.歌詞以行爲單位制做,逐【字】製做spa

2.在製做歌詞時,軟件彷佛已經把每一行歌詞的【字】都分割好了,應該是爲了後面方便製做歌詞,因此預先把行歌詞分割成每個【字】,這裏的【字】包括:英文單詞、數字串、中文,其中空格【只能】與英文單詞、數字串或者中文組成一個【字】,且空格的位置要放在後面設計

3.在製做歌詞的過程當中,音樂響起,聽到行歌詞中的【字】時,就按一下【空格】,這裏按一下【空格】,其實應該就是記錄該【字(A)】的出現時間,當按下下一個【字(B)】或者換行時,那就能夠記錄【字(A)】的持續時間視頻

4.歌詞換行,則記錄行歌詞的開始時間教程

5.歌詞製做完成後,則根據歌詞格式,生成對應歌詞文件ip

注:第2和第3點是實現製做歌詞的重點,如沒法理解,則沒法制做歌詞。get

3自實現製做軟件

知道製做歌詞的原理後,咱們就要動手本身編寫和實現製做歌詞軟件,這裏我採用Java Swing來編寫一個桌面程序,界面方面參考酷狗實現。源碼

3.1API

Java Swing:Graphics2D.setClip。固然也有Android的,後面的博客會說到。

 

由圖可知,Graphics2D在繪畫文本時,先畫默認顏色的歌詞文本,再設置clip層的長度寬度,而後再繪畫【高亮】歌詞文本,只要咱們不斷地修改clip層的寬度,就是咱們想要的動感歌詞效果了。固然咱們在製做歌詞時,只須要設置漸變遞增寬度爲每一個【字】的寬度就能夠了。

3.2實體類設計

3.2.1歌詞實體、行歌詞實體、標籤實體

採用《淺談動感歌詞-歌詞分析篇》裏的實體類,製做歌詞時,生成的數據,會保存到,歌詞實體(LyricsInfo)裏面,方便歌詞的預覽和生成。

3.2.2歌詞文件生成器

這個類的做用,就是爲了方便後面拓展支持多種動感歌詞格式。

 

3.2.3HRCX歌詞生成器

 

3.3界面

3.3.1錄入歌詞

 

3.3.2製做歌詞

思路:

1.大概就是將【錄入歌詞】的歌詞文本,進行行分割

2.獲取行歌詞後,對歌詞的內容進行分析,並進行【字】分割

3.播放歌曲,按下【左右箭頭】和【空格】製做歌詞

4.分割部分代碼:

 

5.界面

注:紫色,是已完成。紅色,表示正在生成。

3.3.3製做完成

 

3.4歌詞生成

部分代碼,文件後綴名:hrcx

3.5歌詞效果預覽

 

4參考

卡拉OK歌詞實現

注:這個是好像是Android的視頻教程,我也是從這個視頻的原理來找到Java Swing的API的。

5源碼

樂樂音樂

注:這是我用Java Swing寫的一個PC音樂播放器

6最後

下一篇,將介紹動感歌詞的解析。若有侵權,麻煩告知。

相關文章
相關標籤/搜索