係統提醒還掛在屏幕右下角,劉好仃沒關,也沒點確認。他隻是轉身去茶水間燒了壺水,泡了杯濃茶,茶葉在杯底打著旋,像在趕早班地鐵。回到工位時,天剛亮透,走廊的感應燈一盞接一盞熄了,辦公室裡靜得能聽見主機風扇的嗡鳴。
他打開“ux000”文件夾,雙擊“情感喚醒_第一版”,把巴西家庭那段錄音調出來,推給開發組的共享目錄。小周昨晚已經轉錄好了,音頻文件命名很樸素:“媽媽叫孩子吃飯_03”。
“今天第一件事,”劉好仃在群裡發了條消息,“不是寫代碼,是聽人說話。”
開發組的小陳戴著耳機聽了三遍,摘下來皺眉:“這聲音有雜音,廚房鍋碗瓢盆響,孩子在哭,說話還帶口音……直接用?不怕降質?”
“就怕太乾淨。”劉好仃走過去,指著波形圖,“你看她語速,前快後慢,最後一句拖得老長——‘彆讓機器吃掉你的時間’,像叮囑,不像播報。咱們的語音模塊太‘標準’,一開口就像客服中心自動應答,冷得能結霜。”
他打開測試機,播放係統預設的問候語:“您好,設備已啟動,請開始操作。”聲音平穩,無懈可擊,也毫無生氣。
“這不是人。”劉好仃搖頭,“這是錄音機成精了。”
小陳笑了:“那您想要哪種‘不精’的?”
“帶點喘,帶點猶豫,像剛做完飯,手還沾著油,順口說一句‘寶貝,吃飯了’那種。”劉好仃頓了頓,“再加點背景音,風扇聲、鍋蓋響,都留著。彆降噪,那是生活的聲音。”
小陳半信半疑地改了參數。十分鐘後,測試機傳出一句新的問候:“早啊……今天也彆讓機器吃掉你的時間哦。”語氣懶洋洋的,尾音微微上揚,像鄰居阿姨站在門口喊人。
辦公室裡有人抬頭,小王從隔間探出頭:“這誰錄的?聽著像我媽。”
“不是誰錄的,是生活錄的。”劉好仃點頭,“就這個味兒,彆修,彆美化。”
語音模塊定下基調,界麵漸變卻出了岔子。原設計是冷藍到暖灰的平滑過渡,結果係統自動壓縮,變成“啪”一下切換,像燈泡壞了又修好。
老李盯著測試機看了兩分鐘,搖頭:“這不是喚醒,是驚嚇。”
劉好仃調出前後對比,放慢三倍速。果然,過渡幀被係統判定為“冗餘資源”,直接跳過。
“咱們的係統太講究效率。”他說,“可人不是機器,升溫得有個過程。”
他讓前端加了十幀緩動動畫,把漸變時間拉到一點八秒,同時在啟動畫麵角落加了個極小的太陽圖標,從地平線緩緩升起。
“不是改顏色,是改節奏。”劉好仃說,“人起床都得睜眼、伸懶腰,機器也得學著‘醒’得慢一點。”
第三項是觸控延遲。原計劃延遲半秒,給用戶“反悔窗口”,結果測試機一碰就響應,開發解釋:“延遲超過三百毫秒,係統會報卡頓警告。”
“那把警告關了。”劉好仃說。
“不行啊,這是硬規。”
“那就改規則。”他打開係統日誌,找到卡頓判定模塊,“把‘用戶首次操作’單獨列一類,前五次長按,不觸發性能警報。”
小陳愣住:“這……算不算作弊?”
“不算。”劉好仃敲下備注,“這叫‘給人留麵子’。”
三項功能終於跑通,測試機屏幕上,語音、漸變、延遲三項聯動,完整走完一次啟動流程。辦公室裡安靜了幾秒,小王忽然笑出聲:“怎麼感覺這機器……挺懂事的?”
劉好仃沒笑,隻說:“再跑一遍,這次按用戶動線來。”
他們調出赫爾穆特、佐藤美香、卡洛斯三個原型,開始模擬操作。
德國老人赫爾穆特的第一步是盯著屏幕五秒才敢伸手。測試機記錄到觸控前的心率模擬值輕微上升,係統自動延長了問候語播放時間,圖標邊緣微微發亮,像在鼓勵。
“這反應對了。”劉好仃點頭。
輪到佐藤美香,問題來了。她習慣把常用功能拖到左上角,結果係統彈出提示:“操作非法,布局不可更改。”
老李一拍桌子:“這哪是尊重?這是管教。”
劉好仃回放日本用戶原聲:“圖標太硬,像在訓人。”再看這句“操作非法”,冷冰冰的,像法院傳票。
“改。”他說,“改成‘建議保持布局整潔’,語氣軟一點。”
“可她要是非要改呢?”小王問。
“那就讓她改。”劉好仃調出動畫參數,“加個緩衝,提示出現後零點八秒內,她反向操作,就不算違規。咱們不攔,隻是提醒。”
小陳試了試,新提示出現時,背景泛起淡淡的米色光暈,文字用的是手寫體,動畫緩慢展開,像在遞一張便簽紙。