01起點:這不是音樂產品
傳一封簡訊,不如傳一首歌。生日、道謝、道歉、告白、過年拜年 —— 這些場合大家都想講點什麼,但打成文字就是乾乾的一行。
所以我們一開始就把定位釘死:這是一個溝通產品,不是音樂工具。 這句話聽起來像廢話,但它其實是整個產品最重要的一條規則, 因為它決定了後面每一次取捨要往哪邊倒 —— 使用者不是來做音樂的,他是來把一句話送出去的。
02第一條紅線:歌詞必須是使用者寫的字
AI 生成音樂的工具都很願意「幫你潤飾一下歌詞」。對音樂工具來說這是功能, 對這個產品來說這是災難 —— 如果把使用者寫給媽媽的話改得更押韻, 那首歌就不再是他寫的了。
所以「歌詞逐字等於使用者輸入」變成產品的第一條不可違反的規則。 而且這條規則沒有寫在給 AI 的提示裡,是寫在程式碼的檢查關卡裡 —— 因為提示只能建議,關卡才能保證。
03那次驚嚇:它唱了別人的歌詞
我們想讓使用者可以選曲風,做法是餵一段「參考音檔」給模型,讓它知道台語老歌、 嘻哈或抒情大概長什麼樣子。技術上這叫風格條件化,聽起來很合理。
結果生出來的歌很好聽、很像那個曲風 —— 唱的卻是參考音檔本身的歌詞, 不是使用者寫的字。我們把生成的歌詞跟使用者的原句逐字比對, 29 個字裡面只對上 2 個。
更麻煩的是,它不是壞掉。沒有錯誤訊息、沒有失敗狀態, 產出的是一首完全正常、完全合格、內容完全錯誤的歌。 如果當時沒有做逐字比對,這個東西會一路上線,而使用者只會覺得「這什麼鬼」。
「叫 AI 像某個東西」這件事,會連內容一起像過去,不只是風格。 任何「讓它模仿這個」的功能,都同時是一個內容風險 —— 所以它預設關閉,而且必須先過內容比對這一關才准用。
04從「不要失敗」改成「不要默默出錯」
我們曾經想追求「百分之百不會出錯、不需要備案」。認真想過之後, 接受了一個比較誠實的答案:生成式的東西沒辦法保證,只能保證被檢查到。
所以現在每一首歌生出來之後,都會被量一次:唱的字對不對、咬字清不清楚、 有沒有大段空白、節奏會不會拖。不合格的就重生一次,而不是丟給使用者去發現。 目標從「永不失敗」換成「絕不默默出貨錯的東西」—— 這個目標做得到,前一個做不到。
05換引擎、比引擎
中間我們認真評估過換一家生成引擎。兩家一起跑同一批輸入, 用同一套檢查去量結果 —— 因為我們的檢查器是吃「音檔 + 原文」的, 跟哪一家沒關係,所以它剛好可以拿來當公正的裁判。
比出來的結果不只是音質差異:挑戰者的版權掃描把我們 39 個參考音檔擋下 15 個, 這是任何規格表和報價單都不會寫的遷移成本。 換供應商真正的代價,通常藏在「現有的東西還能不能用」裡面。
06送出去這一段,比生成還難
歌做好只是一半。這是一個溝通產品,所以「怎麼傳給他」跟「歌好不好聽」一樣重要。 這一段花掉的時間遠超過預期:LINE 裡面開的網頁跟一般瀏覽器行為不一樣、 分享要能一鍵跳到聊天室、對方點開要能直接播, 還做了一支會把歌詞燒在畫面上的 KTV 字幕影片,因為在群組裡影片比連結更容易被點開。
07用了哪些 AI 工具和服務
08付費還沒打開,因為成本還沒算完
付費機制已經做好但是關著 —— 因為每生成一首歌都是真的在燒錢, 我們想先把成本算清楚、把品質關卡站穩,再決定價格。 目前每一筆生成的花費都會被記下來,跟供應商帳單對得起來。
所以下一個要解的不是功能,是單位成本:一首歌要壓到多少錢,付費才打得開。 在那之前它維持免費,錢由我們自己吸收。
