COSCUP2011 上提到的虛擬歌手專案。

開始之前的工商服務

這個專案在徵虛擬歌手的聲優,條件和報酬如下,有興趣請連絡 Paul Liu

  • 中文
  • 蘿莉音
  • 不需會唱歌
  • 限女性
  • 成品授權條款:CC-BY 3.0(只要對方有註名出處,就可以拿去用)
  • 報酬:¥20000

前言

這是昨天在 COSCUP 上聽 PaulLiu 提到的用自由軟體打造虛擬歌手後,回家試了一下 之後的筆記,因為對語音合成這一塊並沒有很熟,所以如果下面的東西有錯,煩請大 家幫忙補正。

另外,很不幸的,雖然在現場的時候魔法設計師有現場 DEMO 在 Linux 跑這東西,但 我到現在還是無法讓他正常動起來。

成果範例

http://www.facebook.com/video/video.php?v=10150150376548285

組成元件

這個虛擬歌手並不是單一的自由軟體專案,而是由各自的三個專案組成,表列如下:

  • Cadencii

    • 這個是 UI,他的目的是『做一個更好的 Vocaloid 介面』,可以吃 Vocaloid/UTAU 和下面介紹的自由軟體的語音合成引擎
    • 授權條款:GPLv3
    • 程式語言:C#
    • 附註:
      • 是目前我遇到的最大問題,無法讓他正常在 Linux 下執行。
      • 程式碼非常大一包,裡面還會用到 Wine,我的功力不足,解析不能。
      • 他是用很奇怪的方法把 C# 原始碼轉成 Java 檔,再用 javac 編譯出 Java 版。
  • efb-gw

    • 聲音分所合成系統(不用解釋了吧?讓歌手能唱歌的最重要的元件。)
    • 授權條款:GPLv3
    • 程式語言:C++
    • 相依性:libfftw
    • 附註:
      • 官方下載點在該網頁最下方有一個 zip 檔連結
      • 建議下載 PaulLiu 包的,裡面有 Linux 可以用的 makefile
  • wavtool-pl

    • PaulLiu 改寫的 wavtool,做用不明,看起來像生 .wav 檔用的
    • 授權條款:GPLv3
    • 程式語言:C 語言
    • 相依性:libsndfile
    • 附註:
      • 下載方式如下:
        • git clone git://git.sourceforge.jp/gitroot/wavtool-pl/wavtool-pl.git

使用音源

目前可以免費、合法取得的音源是『重音テト』,非自由軟體授權,聽說是日本的一個女高中生錄的。

抓取的時候請抓取最新版『連續音』+『單獨音』那個,另外,下載來的壓縮檔是日文編碼檔名,無法直接在 UTF-8 的 Linux 環境下解壓縮,囧。

解決方法:在 Windows XP 上面到控制台/地區與語言/進階把『非 Unicode 的程式使用編碼』那邊調成『日文』,解壓縮後用 Samba 把他搬到 Linux 上。

EFB-GW 程式編譯與使用

  • 編譯

    1. 將 PaulLiu 包的那包解壓縮
    2. 確定你的 Linux 系統上有裝 libfftw 這個函式庫
    3. 依照下列方式編譯
    4. cd efb-gw
    5. rm test1
    6. make clean
    7. make
    8. 編譯完後應該會出現一個叫 test1 的可執行檔
    9. 執行 ./test1 應該會出現『error: 引数の数が不正です.』的錯誤訊息
  • 測試執行

    • 將『重音テト』的解壓縮後的『重音テト連続音』資料夾放在 efb-gw 的上一層目錄
    • mplayer ../重音テト連続音/_あるろあん.wav 聽一下原始的聲音
    • 在 efb-gw 目錄執行 ./ex1.sh
    • 這個時候會出現一個新的 o1.wav 檔
    • mplayer o1.wav 檔來聽合成後的聲音,你會發現中間幾個字的音被吃掉了
    • 修改 ex1.sh,將 B3 改成 C3,然後重新執行 ./ex1.sh
    • mplayer o1.wav 來聽新的合成音,會發現音調改變了
  • 結論

    • 可以看出這是整個系統最核心的部份,其實有很多可以玩的
    • 不過很不幸的,我不知道他後面那一堆參數是幹嘛用的。XD

wavtool-pl 編譯與使用

  • 編譯

    1. git clone git://git.sourceforge.jp/gitroot/wavtool-pl/wavtool-pl.git 下載原始碼
    2. cd wavtool-pl/src/
    3. gcc *.c -o wavtool-pl -lsndfile
    4. 這個時候會有一個 wavtool-pl 的執行檔出現
  • 使用

    1. 執行 ./wavtool-pl 會出現一串訊息
    2. 很不幸的,我也不知道那一串參數的做用,囧。

Cadencii 編譯與使用

  • checkout http://svn.sourceforge.jp./svnroot/cadencii
  • cd cadencii/Cadencii/trunk
  • chmod +x configure
  • ./configure
  • make
  • 還沒成功過……orz.

結語

最大的難關是讓 Cadencii 能跑起來……orz. 其實不那麼堅持在 Linux 上跑的話,他有已經編好的 Windows / MacOS 版本可以用

回響