2013年7月16日 星期二

徵音梅林計畫-錄音DAY2

前一集
今天是虛擬歌手徵音梅林計畫錄音的第二天,昨天晚上回到家針對昨天遇到的心理層問題(撐太久精神會疲乏,注意力開始渙散,check容易誤判,容易焦慮等),設計了新的工作流程與更好的休息間隔(也可以說是紀律,那就是不超錄),今天錄的間實際長度其實比昨天少,但反而單位小時產量大增,昨天白天平均時速只有30檔左右=.=,晚上提高到50,今天平均時速都在90~100左右,最高速時一小時達到160檔左右。

但是....今天發現了新問題,昨天克服了心理層問題,就是還有肉體(聲帶每天使用限度)極限的問題,今天發現聲優的聲帶,想要長時間穩定地維持萌音,還不斷地唸,有一定的極限,就算休息間隔加長,到後來喉嚨會開始出狀況,開始出現異音,所以只好喊卡,不急著衝上1000大關,保護聲優第一。後面的錄音計畫比較有眉目,可以作更好的調整,錄的天數要增加,每次的時數減少,中間大休時間加長,錄音的工作流程要增加一道新的音色校正步驟。

以下是今天可公開的情報:
(鼻血萌?)
 屁股?
 牛仔?
 噓...你知道就好....
 魔獸梗??
 好吃!
 娃娃灣?
 __之牆?

 埃及語?印和闐:「安娜蘇那穆!」的對聯?

印和闐!印和闐!印和闐!印和闐!

以下是高難度咒語,請多加練習:



 這個應該是五顆星難度
今天我為了我的海量批次錄音增加唯讀功能(以防手賤,洗掉沒問題的音orz雖然還沒有發生過),此外發現我們的程式從另外一種角度來看,有超高難度繞口令產生/顯示器的作用,也許以後有奇怪的另類用途。

除了昨天的原始班底Lo Chu、Paul、me以外,今天感謝以下前來支援的朋友:

賽柏飛以及帶來的好多補給品(補給官?)、新的夥伴維尼(以及他的IPA/正音咬字指導)、Lo Chu的男朋友,以及感謝諸位支援安全士官書記官、MAGI第三審議者。

2013年7月15日 星期一

徵音梅林計畫-錄音DAY1

今天是虛擬歌手徵音梅林計畫錄音的第一天,早上一開始充滿著朝氣以及旺盛的戰鬥力....
 
還有初音未來的加油
 接著開始大戰三百回合..

被很多的咒語攻擊....例如:醋沒萌鼻歌爸背背逼?
崖發芽崖翻
再來沒力氣打了....可以自己唸看看....要每一個音都唸很清楚....一氣呵成,不能斷音(台灣式國語)





 到了晚上變這樣...


明天繼續...orz

2013年7月12日 星期五

Python超級新手心得:寫音訊處理程式的經驗

很久以前就有買了一本O'reilly的《Python入門》也就是小老鼠本(怎麼封面不是大蛇?)Python的程式都是偶而寫一寫,沒有很正規的使用,我還是用java這種系統語言為主,直到最近,為了跟好友Paul Liu開發完全用自由軟體做的虛擬歌手《徵音梅林》,需要特殊的批次錄音程式,自己主業又已經不是作軟體,轉行去作音樂、設計樂器了,美國時間不多,才嘗試Python的快速開發能力,所以就寫了自己第一個完整的Python程式,而且直上GUI。

這個程式的功能是讀取錄音表,然後一個一個的來錄音,程式會自動地顯示錄要錄的發音,錄完自動存檔,而且配特定的檔名,那要錄多少個wav檔呢。4500多個(所以才要寫專用的,用audacity錄一個存一個,再打檔名,你會發瘋的@@)




得到許多寶貴的經驗,為了不要忘記,就順便紀錄一下心得:

1.Python語言本體部份:就算Python號稱很容易,但是一些小細節的習慣動作仍然要適應,例如
  • 縮排的控制也是語法之一,很多小錯誤都卡在這地方XD
  • 同為物件導向語言,看起來很像java,但是存取資料成員時,Python沒有this super可以用,甚至要存取本類別資料成員,都不能省略 自己.變數 這樣的作法
  • 很多有關WxPython的視窗元件的方法成員呼叫,傳的參數如查api會發現往往含上self本身,然後真正在傳參數的時候,卻不用傳self,例如說API上面寫XXX.SetVisible(self,file)或者你自己寫的方法成員宣告時是這樣,但實際呼叫時,只要XXX.SetVisible(myfile)就好了,有一點點人格分裂之感XD
  • Java的GUI程式設計沒有mainloop(),或者說隱藏起來,但是Python的有
  • 承上,同樣的東西在Java很多可能是一個呼叫背後直接跑一個Thread,但Python的不是,所以自己記得包Thread,不然會掛住整個視窗
  • 基本語法不一樣,例如for、操作資料結構部份、沒有";",很直接簡潔,要習慣習慣才行XD
2.開發工具
  • 雖然很多人推崇SPE ,但是SPE存檔存ASCII的,所以程式碼裡面不能出現中文訊息、中文註解,所以我只用它的wxGlade來拉出視窗介面
  • 我主力用emacs,太方便了,只是剛開始寫python,不知道有沒有python的自動補完函式的模組?
3.音訊處理
  • 一開始我用alsaaudio模組,但是後來發現這是一個錯誤的選擇。我們的目標是必須能錄24bit,而Ubuntu以及其他現代的GNU/Linux Distribution是讓alsa上架pulseaudiio,而pulseaudiio被鎖在16bit,你的錄音介面再好也沒有用,用alsa的模組都會直接轉到pulseaudio,然後24bit錄到的都會變成破音
  • 而我是alsa直上jack 音訊系統,pulseaudio也是轉進jack,一直執著alsaaudio沒有用,終究24bit都會變成破音
  • python不適合realtime,所以很少有python用的jack模組,我只有找到pyjack,但build不起來orz。
  • 最後發現有console的jack錄音程式-jack_capture,當然可以正確的錄出24bit的wav,只要我寫的GUI來呼叫他就可以啦,請教paul,得知要用subprocess,一開始有點難度,反覆查API,最後終於搞定,覺得很有趣,原來python被稱為命令稿語言是因為擅長於呼叫其他程式,組合起來快速完成工作。
這次感覺到原來python的魅力以及好處所在,執行有時間壓力的專案時,要打造臨時性工具,不一定要從頭到尾統統自己苦幹實做,運用python這樣的語言,善用且組合現有的程式來完成工作才是上策,而不是把系統語言的寫作觀念帶來命令稿語言。

花了兩個星期寫起來了,利用餘暇時間一點一點寫,昨天終於搞定。搞完,就轉換到音樂人狀態好好地發洩一下....爽啦  XD

2013年7月5日 星期五

死與生

今天晚上在我家附近發生一個車禍
原來狗血是漿狀的....
附近某人家的貓追一隻另一戶的吉娃娃狗,結果吉娃娃狗突然跑到馬路上被閃避不及的車子撞死。

當倒楣的車主倒水洗馬路時,不洗還好,一洗,血液跟水一混合,加上面積擴散,整個血腥味蔓延開來,後來受不了,我關心完就離開了(我手上拿著義美冰淇淋..)。


這是週三在台北火車站月台看到的在生死存亡邊緣的蟬,看他一直翻肚痛苦的掙扎,我把牠翻過來,應該可以走得好過一點吧?

再來是之前救被黏住的蝙蝠那一次,我用初音鼓勵牠~(還是牠被嚇到?所以更努力掙脫XD,當天費了很多功夫助牠掙脫,晚上成功放飛。
 
ps.有興趣可以看我的前一篇文。

count