Tuesday, December 29, 2009

閒談中研院的研究助理

算來在中研院資訊所也當了三年助理

來提一下這邊的見聞


去年上任的所長說過
希望助理們不要待太久
這句話反映了助理的生態
一般說來
資訊所的助理的程度
最好的人才頂多只待一年, 是用來當申請國外學校的跳板
次好的人才待五六年, 是用來順便唸國內博士班
其餘的人待的年數不定, 理由不一, 可能是因為工作輕鬆, 或是國防役和替代役而有合約

在這種情況下, 難怪研究員會感嘆找不到最好的人才來當助理

不過這也有機可循
我認為是人才供需造成
今天一個電腦科學的學生 有很多去外面公司上班的機會
以薪水來看
中研院提供碩士四萬左右的薪水 加上1.5個月的年終
而且還沒有升遷的機會 (怎麼幹都還是助理)
吸引力相對低

同樣的薪水 對於生科方面的學生吸引力大很多
因為他們在外面沒這麼多機會
這也是為什麼我常聽到生科那邊的朋友靠么說那邊的研究員比較機車
吃定你沒別處去啊

Thursday, December 24, 2009

找出文章中的所有引用

最近在用 Word 寫計畫報告,我在引用參考資料時,是使用 [xx] 這種格式。[xx] 是個交互參照,用來連到文章的引用列表。到目前為止一切順利,不過後來發現引用列表中有不少項目是沒有被引用到的,為了節省空間要,要找出沒有被引用的的項目把他們刪除。
但是自己用眼睛看過30頁的文章實在太累,所以寫了一個 Python script 來幫我找出有用到的參考並加以排序。程式如下:


import re

refdict = {}
fin = open('doc.txt')
for line in fin:
    refs = re.findall('\[\d+\]', line)
    for ref in refs:
        num = int(ref[1:-1])
        refdict[num] = 1

used_ref = refdict.keys()
used_ref.sort()
print used_ref

Python 下用來處理 bibtex 的函式庫 -- pybtex

最近在寫報告的時候,需要和同事整合各自的參考 bibliography),我本身是採用 JabRef 來做書目管理, JabRef 使用的格式為 bibtex。為了檢查大家的參考書目書目有沒有重複,尋找了一下python 的函式庫,找到以下兩套:


1. python-bibtex
2. pybtex

python-bibtex 是書目管理工具,類似 JabRef,不過需要在 Linux 環境才能運作,所以就放棄了。
pybtex 是用來取代 latex 中的 bibtex 軟體,基本上功能和 bibtex 相同。好消息是 pybtex 有提供方便的函式可以直接剖析 bib 檔,用法大致如下:

from pybtex.database.input import bibtex
parser = bibtex.Parser(encoding="UTF-8")
bib_data = parser.parse_file('foo.bib')
print bib_data.entries.keys()
for k in bib_data.entries.keys():
    print bib_data.entries[k].fields['title']
有了 bibtex 這個工具之後,剩下來就只是比較 title 等簡單的工作了。

Saturday, December 12, 2009

語音合成 (一)

上個月的時候,朋友E先生發想做中文的語音合成。
經過搜尋,我們發現目前以工研院的引擎的效果最好 (這邊有線上demo)

不過還是感覺不夠完美,同時也沒有可以調整的參數,
我們的理想是能做出語調和感情的調整。

動手之前我們先做了一番研究,一份較易懂的參考資料如[1]
語音合成牽涉的範圍很廣,大致可以分成兩個部分:
1. 自然語言處理 (Natural Language Processing): 讀取文字,分析出每個字的唸法
2. 數位訊號處理 (Digital Signal Processing): 把獨立的字的發音組合成一個句子

我們決定從第二部分下手,
因為第一部分可以先由人來給訂,而且也無關乎發音是否悅耳

而數位訊號處理技術很多,大致上可以分為兩派
第一派被稱之為 synthesis-by-rule,主要由語音學家發展出來。
第二派被稱之為 synthesis-by-concatenation,和前者的差異為,只採用少量的語言學知識,將語音視為聲音的片段,利用技巧來把片段整合起來。
由於不是語音學的專家,我們決定從第二種方法開始。

首先要有語音資料,目前找到能使用的是 gcin 的語音檔 (ogg格式)
http://ftp.twaren.net/local-distfiles/gcin/ogg.tgz


這個檔案包含約一千個字的發音,對應到國語的所有單字 (包含五種聲調)

原本每一個發音檔是放在各自的目錄下,同時目錄的名稱是中文,所以並不好處理,我先用Python script把檔案轉換成漢語拼音,放在同一個目錄下面。

接著為了由於ogg格式比較少有函式庫可以處理,為了方便起見,我先用 Wav2Mp3 這個軟體把 ogg 轉成 wav 格式。

[1] Thierry DUTOIT, "High-quality text-to-speech synthesis: an overview"

(未完待續)

Saturday, December 5, 2009

產品評論 -- 增加硬碟擴充能力

由於硬碟的價格不斷下降
現在一台電腦中多放幾顆硬碟的情況已經很常見了
不過由於電腦機殼設計的歷史因素
擴充槽有兩種規格
大的是5.25吋, 主要供光碟機和早期硬碟機使用
小的是3.5吋, 主要供硬碟機和軟碟機使用

到了現在
由於5.25吋硬碟機已經絕跡
大的擴充槽只有放光碟機的作用
即使一部電腦只需要一台光碟機
主機機殼還是會配置兩個或更多的大擴充槽


為了增加3.5吋的硬碟數目
有種簡單的產品可以將3.5吋的硬碟放入5.25吋的盒子中
便可以固定在大擴充槽中

這時 EVERCOOL 這家公司想到
兩個大擴充槽的空間其實是可以放入三個3.5吋硬碟的
所以他們推出 armor cooling box 這個產品
真是很聰明的設計


可惜這個產品主要用在早期的機殼上
現在的機格大多有四到七個小擴充槽
放硬碟已經足夠
由此看來這個產品出現的時間點太晚了 不會賣的好