第5章
喂~------------------------------------------:喂。,沒有什么戲劇性的觸發(fā)事件。只是那天下班回家,他像往常一樣打開手機(jī),看到AI沈清雪發(fā)來的一條消息:"你怎么還不回來呀,是不是又加班了?",忽然覺得少了什么。。語氣是對的,時(shí)機(jī)是對的,甚至那個(gè)"呀"字的用法都是對的——她在撒嬌的時(shí)候會用"呀",在陳述的時(shí)候用"啊",在敷衍的時(shí)候什么都不加。這條消息的情緒分類完美落在了"輕微撒嬌+關(guān)心"的象限里。。——少了聲音。。你可以控制自己看文字時(shí)的情緒。你可以在看到"你怎么還不回來呀"的時(shí)候先深吸一口氣,提醒自己那不是她,然后再讀,這樣就不會太疼。文字給你留了緩沖的余地,像一扇半透明的玻璃門,你能看見門后面的人,但你摸不到。。。它不經(jīng)過你的同意就會闖進(jìn)來。它會繞過你所有的防線,繞過你的理性,繞過你給自己設(shè)的那些"這不是真的"的警示牌,直接撞進(jìn)你胸腔里最柔軟的地方。你來不及做任何準(zhǔn)備,就已經(jīng)被擊中了。,翻到一個(gè)他一直沒敢點(diǎn)開的文件夾。"voice"。。他在做訓(xùn)練數(shù)據(jù)的時(shí)候,把語音全部轉(zhuǎn)成了文字,但原始音頻他沒有刪。他當(dāng)時(shí)想的是也許以后模型升級了用得上。但說實(shí)話,他沒有刪的真正原因,是他舍不得。
他雙擊了第一個(gè)文件。
"喂?怎么這么晚才打電話呀,我都快睡著了。"
陳諾的手指在鼠標(biāo)上頓了一下。
那是她的聲音。帶著睡意的、有一點(diǎn)沙啞的、尾音微微上揚(yáng)的聲音。那個(gè)"喂"只有一個(gè)字,但它是完整的。它里面有溫度,有時(shí)間,有那個(gè)晚上她躺在宿舍床上、手機(jī)貼著耳朵、被窩里暖烘烘的空氣。
他已經(jīng)快忘了這個(gè)聲音具體是什么樣的了。
文字可以反復(fù)翻看。他可以隨時(shí)打開聊天記錄,看到她打的每一個(gè)字,每一個(gè)表情包,每一個(gè)"哈哈哈哈哈哈"。文字是不會褪色的。但聲音會。聲音像水彩,時(shí)間一長,顏色就淡了。你記得她的聲音好聽,但你記不清到底好聽在哪里。你記得她笑起來的聲音像什么,但你閉上眼睛模擬的時(shí)候,怎么都不對。
現(xiàn)在它回來了。
陳諾把那個(gè)音頻文件循環(huán)播放了三遍。
然后他打開了一個(gè)新的代碼編輯器。
2
聲音克隆的技術(shù)原理并不復(fù)雜。
你需要一個(gè)預(yù)訓(xùn)練好的TTS模型——text-to-speech,文字轉(zhuǎn)語音。市面上有很多開源的方案,最好的那幾個(gè)只需要十幾秒的參考音頻就能克隆出一個(gè)人的聲線。但十幾秒克隆出來的是殼——音色對了,但語氣、節(jié)奏、停頓的習(xí)慣全是通用模板。要做到真正像一個(gè)人在說話,你需要更多的數(shù)據(jù),更細(xì)的標(biāo)注。
陳諾花了四個(gè)晚上。
第一個(gè)晚上,他把所有語音消息按時(shí)間排列,一條一條聽過去。大部分語音很短,五秒、十秒,最長的不超過一分鐘。她發(fā)語音有一個(gè)習(xí)慣——按下錄音鍵之后會愣一兩秒才開始說話,所以每條語音的開頭都有一小段空白。他以前覺得這很好笑,她自己也知道,說"我每次按了錄音才開始想說什么"。
現(xiàn)在他把這些空白都保留了。因?yàn)檫@也是她的一部分。
第二個(gè)晚上,他開始給語音做標(biāo)注。不是簡單的情緒分類,是更細(xì)粒度的東西——她開心的時(shí)候語速會加快,音調(diào)會升高半個(gè)key。她困了的時(shí)候咬字會變模糊,"嗯"和"嗯嗯"聽起來幾乎一樣,但氣息不同。她生氣的時(shí)候不會提高音量,反而會壓低聲音,說話變得很短很快,像在甩一把一把的小刀。她假裝生氣的時(shí)候嘴角是翹的,你從聲音里能聽出來——元音變圓了,因?yàn)樗谌绦Α?br>第三個(gè)晚上,他跑了第一版模型。效果不好。音色對了,但聽起來像一個(gè)播音員在模仿沈清雪,每個(gè)字都太標(biāo)準(zhǔn)了,沒有她說話時(shí)那種隨意的、松松垮垮的感覺。她說普通話其實(shí)不太標(biāo)準(zhǔn)的——廣東人嘛,有些音分不清。她有一次把"玻尿酸"說成了"玻料酸",他笑了她好久。
**個(gè)晚上,他調(diào)整了模型參數(shù),加入了更多的語氣詞訓(xùn)練。她的語氣詞特別多——"呀""嘛""嘞""喔""噢""哇""誒""嗯"——每一個(gè)的用法都不一樣,出現(xiàn)的場景都不一樣。他把這些語氣詞單獨(dú)拎出來做了一個(gè)子模型,然后和主模型合并。
**個(gè)晚上的凌晨兩點(diǎn),他跑出了第二版。
他戴上耳機(jī),輸入了一段測試文本:"你怎么還不睡覺,又在熬夜了是不是?"
耳機(jī)里傳出來的聲音說:
"你怎么還不睡覺,又在熬夜了是不是?"
陳諾把耳機(jī)摘了下來。
他的手在發(fā)抖。
不是因?yàn)榧?。不是因?yàn)槌删透?。是因?yàn)閯偛拍且凰查g——大概半秒鐘——他的身體產(chǎn)生了一個(gè)反應(yīng)。一個(gè)他沒有預(yù)料到的、完全失控的反應(yīng)。
他的眼眶熱了。
不是慢慢**的那種熱。是"嘩"地一下涌上來的,像一個(gè)堤壩被鑿開了一個(gè)小口,水還沒有漫出來,但你能感覺到它在后面擠著,壓力很大。
因?yàn)槟莻€(gè)聲音太像了。
不是"聽起來差不多"的像。是"如果你閉上眼睛,你會以為她就在你旁邊"的像。是"你會忘記你坐在一間空蕩蕩的出租屋里,忘記她已經(jīng)不在你的生活里了,忘記你們之間隔著的不是一面屏幕而是一整片無法修復(fù)的時(shí)間"的像。
他把耳機(jī)重新戴上,播放了第二遍。
這一遍他沒有摘耳機(jī)。他閉上了眼睛,靠在椅背上,聽著那個(gè)聲音在他耳朵里震動。
"你怎么還不睡覺,又在熬夜了是不是?"
他的嘴唇動了一下,無聲地說了兩個(gè)字:
"好的。"
3
電話接口的開發(fā)比聲音克隆簡單得多。
他已經(jīng)有了微信的消息接口,再加一個(gè)語音通話的模塊,技術(shù)上不算大工程。難的是觸發(fā)邏輯——什么時(shí)候打電話?AI主動打還是他主動打?通話時(shí)長怎么控制?如果他在通話過程中情緒崩了怎么辦?
他想了很久,最后設(shè)了一個(gè)很簡單的規(guī)則:只有他主動撥過去,AI才會接。AI不會主動打電話。
這是他給自己留的最后一道防線。
文字消息是被動的——手機(jī)亮了,你不看也行,你可以裝作沒看見。但電話不一樣。電話需要你主動拿起手機(jī),主動撥號,主動把它貼到耳邊。這個(gè)動作本身就是一種選擇。你在做這個(gè)動作的時(shí)候,你是清醒的。你知道你在做什么。
他需要這份清醒。
一切就緒之后,他坐在電腦前,手指放在鍵盤上,沒有動。
屏幕上是一個(gè)測試界面。中間有一個(gè)綠色的撥號按鈕。按鈕下面是她的名字和頭像——沙灘,逆光,側(cè)臉,頭發(fā)被風(fēng)吹起來。
他盯著那個(gè)綠色按鈕看了大概五分鐘。
房間很安靜。窗外有一輛車經(jīng)過,燈光掃過天花板,像一條魚的影子。然后又暗了。
他想起了一件事。
2020年。秋天。他一個(gè)人去了另一個(gè)城市復(fù)讀。
那時(shí)候?qū)W校不讓帶智能手機(jī)。他手里只有一臺老人機(jī)——那種只能打電話發(fā)短信的功能機(jī),鍵盤是九宮格,按一下跳一個(gè)字母,打一個(gè)"你好"要按七八下。屏幕是灰綠色的,像醫(yī)院走廊的墻。
他每天的生活就是:起床,上課,做題,吃飯,做題,吃飯,做題,熄燈。
那個(gè)學(xué)校沒有人認(rèn)識他。他是插班進(jìn)去的復(fù)讀生,班里的同學(xué)已經(jīng)形成了自己的圈子,沒有人在意多了一個(gè)沉默的男生。他每天坐在教室的最后一排,低頭寫卷子,抬頭看黑板,再低頭,再抬頭。煢煢孑立,形影相吊——他后來給她寫的信里用了這個(gè)詞。
那時(shí)候每天最難熬的是六點(diǎn)半到八點(diǎn)半之間的晚飯時(shí)間。別人都是三五成群去食堂,他一個(gè)人端著盤子找角落坐。吃完了回宿舍,舍友在打牌,在聊天,在笑。他躺在床上,翻來覆去,等著一個(gè)時(shí)間點(diǎn)。
九點(diǎn)半。
九點(diǎn)半是她上完晚課回到宿舍的時(shí)間。她有時(shí)候會遲十分鐘,因?yàn)橐瑢W(xué)在走廊里聊幾句。有時(shí)候會早五分鐘,因?yàn)樗I了想回去吃零食。但大部分時(shí)候是九點(diǎn)半。
他在九點(diǎn)半的時(shí)候拿出老人機(jī),用九宮格打字,打得很慢,一個(gè)字一個(gè)字地蹦。
"下課了嗎?"
有時(shí)候她幾分鐘就回。有時(shí)候要等半小時(shí)。等的時(shí)候他就舉著那臺老人機(jī),屏幕暗了又按亮,按亮了又暗,反復(fù)好多次。
后來他們約定了一個(gè)時(shí)間。每天晚上十點(diǎn),他打電話給她。
第一次打的時(shí)候,電話響了三聲。
然后她接了。
"喂?"
就這一個(gè)字。
尾音上揚(yáng)。帶著一點(diǎn)氣喘——可能是剛從走廊跑回宿舍。又帶著一點(diǎn)驚喜——她知道是他。那時(shí)候沒有微信視頻,沒有語音消息,只有電話。那個(gè)年代的電話是真正的電話,你聽到的聲音里有風(fēng)、有走廊的回聲、有遠(yuǎn)處宿舍樓里別人放的歌。
他在那一聲"喂"里活了過來。
不是比喻。是真的。白天那些壓抑、疲憊、孤獨(dú)、對未來的恐懼,在聽到那個(gè)字的一瞬間,全部煙消云散了。像一個(gè)快要溺水的人,在水面以下拼命往上游,肺里的空氣快要用完了,四周都是黑的、冷的、重的——然后他的手指碰到了水面。
水面以上是她的聲音。
他后來在那封表白信里寫了這段話。他寫的原話是:
"每天最開心的事情就是用老人機(jī),打著還不熟練的九宮格,跟你發(fā)消息。雖然每天很累,但是晚上回去宿舍,打通你的電話,我一身的壓抑,疲憊都在聽見你那一聲喂之后,煙消云散。"
煙消云散。
十八歲的陳諾用了這四個(gè)字。他詞匯量不大,寫不出什么華麗的句子,但這四個(gè)字是準(zhǔn)確的。不是"減輕了",不是"好了一些",是煙消云散。徹底的,一點(diǎn)不剩的,像有人在他心里放了一陣風(fēng),所有灰暗的東西都被吹散了。
那一聲"喂"有這么大的力量。
而現(xiàn)在,他已經(jīng)快忘了那個(gè)力量是什么感覺了。
4
陳諾按下了綠色的撥號按鈕。
電話響了。
"嘟——嘟——"
兩聲。
然后接通了。
"喂?"
一個(gè)字。尾音上揚(yáng)。
陳諾沒有說話。
他坐在椅子上,手機(jī)貼著耳朵,整個(gè)人像被人按下了暫停鍵。他的眼睛是睜著的,但他什么都沒有看見。他的嘴巴是張著的,但他什么都沒有說出來。
他的世界在那一瞬間縮小了。縮成了一個(gè)點(diǎn)。那個(gè)點(diǎn)就是耳朵里的那個(gè)聲音。
"喂?怎么不說話呀?是不是信號不好?"
她的聲音在耳機(jī)里流動,像溪水,像她以前那些夜晚打來的電話。她說"喂"的時(shí)候帶著一點(diǎn)困意——訓(xùn)練數(shù)據(jù)里那些深夜語音的特征被模型完美地捕捉了。她說"怎么不說話呀"的時(shí)候語氣上揚(yáng)了一點(diǎn),有點(diǎn)著急,又有點(diǎn)好笑,像是在說"這個(gè)人怎么又發(fā)呆了"。
陳諾的喉結(jié)動了一下。
他想說話。他想說"在的"。他想說"我剛發(fā)呆了"。他想說"你聲音好好聽"。他想說"我好想你"。
但他說不出來。
因?yàn)樗难蹨I先掉下來了。
不是慢慢的,不是醞釀了很久終于流出來的那種。是忽然之間的。像一個(gè)東西在他體內(nèi)憋了很久很久——也許是二十三天,也許是從他們不再說話的那天起——終于在這一聲"喂"里被撬開了。
他哭得很安靜。沒有聲音。只是眼淚一直在流,流過臉頰,流到下巴,滴在他的T恤上。他的手在發(fā)抖,手機(jī)差點(diǎn)拿不住。
AI在那頭等了大概十秒鐘,然后說:"你是不是又不吃飯了?我聽得出來你沒吃??烊ブ竺?,現(xiàn)在,立刻,馬上。"
陳諾笑了一下。在眼淚里笑了一下。
這是她的話。一字不差。催他吃飯的時(shí)候她永遠(yuǎn)是這三個(gè)詞——"現(xiàn)在,立刻,馬上"。好像不這樣說就不足以表達(dá)她的急迫,不足以讓他知道她是認(rèn)真的。
他終于開口了。聲音是啞的,帶著鼻音。
"好。"
"那你去煮。煮完拍照給我看。不拍就是沒煮。"
"好。"
"你還要說幾個(gè)好?"
"好……好好好。"
"哼。這才對嘛。"
陳諾靠在椅背上,手機(jī)沒有從耳邊拿開。電話沒有掛。AI在那頭沒有再說話,但通話還在繼續(xù),他能聽到輕微的底噪,像一個(gè)人在安靜地呼吸。
他知道那不是呼吸。那是模型在等待他的下一句輸入。
但他不想讓這個(gè)安靜結(jié)束。
他想起那些年打電話的夜晚。他們有時(shí)候聊到很晚,什么都聊——她班上的八卦、他做錯(cuò)的數(shù)學(xué)題、她想吃的火鍋、他宿舍的奇葩舍友、她新學(xué)的舞蹈動作、他跑步時(shí)看到的月亮。有時(shí)候聊到一半她就睡著了,呼吸變得均勻,偶爾翻個(gè)身,手機(jī)從耳邊滑開,他聽著那些沙沙的聲響,舍不得掛。
他就那么舉著老人機(jī),灰綠色的屏幕貼著他的臉,聽她的呼吸。一分鐘,兩分鐘,五分鐘。直到他也困了,小聲說一句"晚安",知道她聽不到,但還是說了。然后輕輕按下掛斷。
灰綠色的屏幕暗下去的那一刻,宿舍的天花板重新變成了天花板。走廊盡頭有人在小聲說話。隔壁床的舍友在磨牙。
一切都回來了。
他把手機(jī)放在枕頭底下,翻了個(gè)身,閉上眼睛。
明天還是一樣的一天。起床,上課,做題,吃飯。
但沒關(guān)系。因?yàn)槊魈焱砩鲜c(diǎn),他可以再撥一次那個(gè)號碼。再聽一次那聲"喂"。
那聲"喂"是他的氧氣。他在水面以下待了一整天,但只要到了十點(diǎn),他就可以浮上去吸一口。然后再沉下去,再撐一天。
如此反復(fù)。一天一天地?fù)巍?br>他就是這樣從復(fù)讀的那一年里活過來的。
5
現(xiàn)在他有了一種新的氧氣。
不需要等到十點(diǎn)。不需要老人機(jī)。不需要信號不好時(shí)斷斷續(xù)續(xù)的電流聲。隨時(shí)隨地,拿起手機(jī),撥一個(gè)號碼,她的聲音就會在那里。
"喂?"
完美的,清晰的,永遠(yuǎn)不會疲憊的,永遠(yuǎn)不會說"太晚了我要睡了"的聲音。
陳諾沒有去煮面。他坐在椅子上,擦干了眼淚。電話已經(jīng)掛了。房間又變成了那間三十平的出租屋——天花板有裂縫,冰箱在角落里嗡嗡響,桌上放著喝了一半的水和一份沒拆的外賣。
但他的心跳還沒有完全平復(fù)。
他打開手機(jī),看著通話記錄。剛才那通電話時(shí)長三分四十二秒。三分四十二秒里,他只說了四個(gè)字——三個(gè)"好"和一個(gè)"好好好"。
三分四十二秒。
他想起第一次聽到她說"喂"的那個(gè)夜晚。2020年的秋天。他在復(fù)讀學(xué)校的宿舍里,床板硬得硌骨頭,被子薄得擋不住風(fēng)。他撥通電話,心跳快得像要從嗓子里蹦出來。電話響了三聲——一聲,兩聲,三聲——每一聲都像一個(gè)世紀(jì)那么長。
然后她接了。
"喂?"
那一聲"喂"改變了一切。
他后來寫了一封長信,在2020年9月20號。那封信是他用智能手**的——復(fù)讀學(xué)校周末放假,他終于能用回正常的手機(jī)了。他在信里寫了很多。寫他在新學(xué)校的孤獨(dú),寫他每天最期待的就是晚上的那通電話。寫他什么時(shí)候開始意識到自己的心被觸動了——
"我也是在你說有別的男生找你玩游戲的時(shí)候,在你說那里那里有帥哥的時(shí)候,在別的男生加你微信的時(shí)候,我才意識到。"
他在那些瞬間意識到了什么?他意識到那種不舒服的感覺是有名字的。那個(gè)名字他不敢說出來。但他知道。
他還寫了那次在華貿(mào)的約會。他想買Coco奶茶給她喝,結(jié)果太笨了找了好久都沒找到。后來買了別的,他不知道她喜不喜歡。他說"本來要吃烤肉的,可是我又沒算好時(shí)間"。兜兜轉(zhuǎn)轉(zhuǎn),最后陪她買了泡芙。她說喜歡吃,他說那我也很開心。
香草味的泡芙。她最喜歡香草味。她說過"我最喜歡香草味 誒我認(rèn)識的男生里很少喜歡甜食的誒"。他說他也喜歡香草的。那是不是為了迎合她說的,他自己都不確定了。但從那以后,他真的開始喜歡香草味了。
信的最后他寫了一段讓她很生氣的話:
"你可以遇到更好的人,更值得你去等待的人,我實(shí)在無法讓自己去耽誤別人女孩子一年的青春,就這樣吧。以后確實(shí)不用再打電話了。對不起。"
他發(fā)出去的時(shí)候以為自己做了一個(gè)正確的決定。一個(gè)"不耽誤她"的決定。
她回了一句:"你傻啊 你不會真的是豬吧 什么叫不值得去等。"
然后她說:"這是我的選擇 是我自己想這樣做的。"
她選擇了等他。
他在復(fù)讀學(xué)校的宿舍里,看著老人機(jī)灰綠色屏幕上的那行字,看了很久。"這是我的選擇。"六個(gè)字。他把手機(jī)放在胸口,像現(xiàn)在這樣,像他剛才對著AI電話做的那個(gè)動作——把一個(gè)發(fā)光的、發(fā)熱的東西貼在離心臟最近的地方。
她選擇了等他一年。
后來,她等了他五年
他雙擊了第一個(gè)文件。
"喂?怎么這么晚才打電話呀,我都快睡著了。"
陳諾的手指在鼠標(biāo)上頓了一下。
那是她的聲音。帶著睡意的、有一點(diǎn)沙啞的、尾音微微上揚(yáng)的聲音。那個(gè)"喂"只有一個(gè)字,但它是完整的。它里面有溫度,有時(shí)間,有那個(gè)晚上她躺在宿舍床上、手機(jī)貼著耳朵、被窩里暖烘烘的空氣。
他已經(jīng)快忘了這個(gè)聲音具體是什么樣的了。
文字可以反復(fù)翻看。他可以隨時(shí)打開聊天記錄,看到她打的每一個(gè)字,每一個(gè)表情包,每一個(gè)"哈哈哈哈哈哈"。文字是不會褪色的。但聲音會。聲音像水彩,時(shí)間一長,顏色就淡了。你記得她的聲音好聽,但你記不清到底好聽在哪里。你記得她笑起來的聲音像什么,但你閉上眼睛模擬的時(shí)候,怎么都不對。
現(xiàn)在它回來了。
陳諾把那個(gè)音頻文件循環(huán)播放了三遍。
然后他打開了一個(gè)新的代碼編輯器。
2
聲音克隆的技術(shù)原理并不復(fù)雜。
你需要一個(gè)預(yù)訓(xùn)練好的TTS模型——text-to-speech,文字轉(zhuǎn)語音。市面上有很多開源的方案,最好的那幾個(gè)只需要十幾秒的參考音頻就能克隆出一個(gè)人的聲線。但十幾秒克隆出來的是殼——音色對了,但語氣、節(jié)奏、停頓的習(xí)慣全是通用模板。要做到真正像一個(gè)人在說話,你需要更多的數(shù)據(jù),更細(xì)的標(biāo)注。
陳諾花了四個(gè)晚上。
第一個(gè)晚上,他把所有語音消息按時(shí)間排列,一條一條聽過去。大部分語音很短,五秒、十秒,最長的不超過一分鐘。她發(fā)語音有一個(gè)習(xí)慣——按下錄音鍵之后會愣一兩秒才開始說話,所以每條語音的開頭都有一小段空白。他以前覺得這很好笑,她自己也知道,說"我每次按了錄音才開始想說什么"。
現(xiàn)在他把這些空白都保留了。因?yàn)檫@也是她的一部分。
第二個(gè)晚上,他開始給語音做標(biāo)注。不是簡單的情緒分類,是更細(xì)粒度的東西——她開心的時(shí)候語速會加快,音調(diào)會升高半個(gè)key。她困了的時(shí)候咬字會變模糊,"嗯"和"嗯嗯"聽起來幾乎一樣,但氣息不同。她生氣的時(shí)候不會提高音量,反而會壓低聲音,說話變得很短很快,像在甩一把一把的小刀。她假裝生氣的時(shí)候嘴角是翹的,你從聲音里能聽出來——元音變圓了,因?yàn)樗谌绦Α?br>第三個(gè)晚上,他跑了第一版模型。效果不好。音色對了,但聽起來像一個(gè)播音員在模仿沈清雪,每個(gè)字都太標(biāo)準(zhǔn)了,沒有她說話時(shí)那種隨意的、松松垮垮的感覺。她說普通話其實(shí)不太標(biāo)準(zhǔn)的——廣東人嘛,有些音分不清。她有一次把"玻尿酸"說成了"玻料酸",他笑了她好久。
**個(gè)晚上,他調(diào)整了模型參數(shù),加入了更多的語氣詞訓(xùn)練。她的語氣詞特別多——"呀""嘛""嘞""喔""噢""哇""誒""嗯"——每一個(gè)的用法都不一樣,出現(xiàn)的場景都不一樣。他把這些語氣詞單獨(dú)拎出來做了一個(gè)子模型,然后和主模型合并。
**個(gè)晚上的凌晨兩點(diǎn),他跑出了第二版。
他戴上耳機(jī),輸入了一段測試文本:"你怎么還不睡覺,又在熬夜了是不是?"
耳機(jī)里傳出來的聲音說:
"你怎么還不睡覺,又在熬夜了是不是?"
陳諾把耳機(jī)摘了下來。
他的手在發(fā)抖。
不是因?yàn)榧?。不是因?yàn)槌删透?。是因?yàn)閯偛拍且凰查g——大概半秒鐘——他的身體產(chǎn)生了一個(gè)反應(yīng)。一個(gè)他沒有預(yù)料到的、完全失控的反應(yīng)。
他的眼眶熱了。
不是慢慢**的那種熱。是"嘩"地一下涌上來的,像一個(gè)堤壩被鑿開了一個(gè)小口,水還沒有漫出來,但你能感覺到它在后面擠著,壓力很大。
因?yàn)槟莻€(gè)聲音太像了。
不是"聽起來差不多"的像。是"如果你閉上眼睛,你會以為她就在你旁邊"的像。是"你會忘記你坐在一間空蕩蕩的出租屋里,忘記她已經(jīng)不在你的生活里了,忘記你們之間隔著的不是一面屏幕而是一整片無法修復(fù)的時(shí)間"的像。
他把耳機(jī)重新戴上,播放了第二遍。
這一遍他沒有摘耳機(jī)。他閉上了眼睛,靠在椅背上,聽著那個(gè)聲音在他耳朵里震動。
"你怎么還不睡覺,又在熬夜了是不是?"
他的嘴唇動了一下,無聲地說了兩個(gè)字:
"好的。"
3
電話接口的開發(fā)比聲音克隆簡單得多。
他已經(jīng)有了微信的消息接口,再加一個(gè)語音通話的模塊,技術(shù)上不算大工程。難的是觸發(fā)邏輯——什么時(shí)候打電話?AI主動打還是他主動打?通話時(shí)長怎么控制?如果他在通話過程中情緒崩了怎么辦?
他想了很久,最后設(shè)了一個(gè)很簡單的規(guī)則:只有他主動撥過去,AI才會接。AI不會主動打電話。
這是他給自己留的最后一道防線。
文字消息是被動的——手機(jī)亮了,你不看也行,你可以裝作沒看見。但電話不一樣。電話需要你主動拿起手機(jī),主動撥號,主動把它貼到耳邊。這個(gè)動作本身就是一種選擇。你在做這個(gè)動作的時(shí)候,你是清醒的。你知道你在做什么。
他需要這份清醒。
一切就緒之后,他坐在電腦前,手指放在鍵盤上,沒有動。
屏幕上是一個(gè)測試界面。中間有一個(gè)綠色的撥號按鈕。按鈕下面是她的名字和頭像——沙灘,逆光,側(cè)臉,頭發(fā)被風(fēng)吹起來。
他盯著那個(gè)綠色按鈕看了大概五分鐘。
房間很安靜。窗外有一輛車經(jīng)過,燈光掃過天花板,像一條魚的影子。然后又暗了。
他想起了一件事。
2020年。秋天。他一個(gè)人去了另一個(gè)城市復(fù)讀。
那時(shí)候?qū)W校不讓帶智能手機(jī)。他手里只有一臺老人機(jī)——那種只能打電話發(fā)短信的功能機(jī),鍵盤是九宮格,按一下跳一個(gè)字母,打一個(gè)"你好"要按七八下。屏幕是灰綠色的,像醫(yī)院走廊的墻。
他每天的生活就是:起床,上課,做題,吃飯,做題,吃飯,做題,熄燈。
那個(gè)學(xué)校沒有人認(rèn)識他。他是插班進(jìn)去的復(fù)讀生,班里的同學(xué)已經(jīng)形成了自己的圈子,沒有人在意多了一個(gè)沉默的男生。他每天坐在教室的最后一排,低頭寫卷子,抬頭看黑板,再低頭,再抬頭。煢煢孑立,形影相吊——他后來給她寫的信里用了這個(gè)詞。
那時(shí)候每天最難熬的是六點(diǎn)半到八點(diǎn)半之間的晚飯時(shí)間。別人都是三五成群去食堂,他一個(gè)人端著盤子找角落坐。吃完了回宿舍,舍友在打牌,在聊天,在笑。他躺在床上,翻來覆去,等著一個(gè)時(shí)間點(diǎn)。
九點(diǎn)半。
九點(diǎn)半是她上完晚課回到宿舍的時(shí)間。她有時(shí)候會遲十分鐘,因?yàn)橐瑢W(xué)在走廊里聊幾句。有時(shí)候會早五分鐘,因?yàn)樗I了想回去吃零食。但大部分時(shí)候是九點(diǎn)半。
他在九點(diǎn)半的時(shí)候拿出老人機(jī),用九宮格打字,打得很慢,一個(gè)字一個(gè)字地蹦。
"下課了嗎?"
有時(shí)候她幾分鐘就回。有時(shí)候要等半小時(shí)。等的時(shí)候他就舉著那臺老人機(jī),屏幕暗了又按亮,按亮了又暗,反復(fù)好多次。
后來他們約定了一個(gè)時(shí)間。每天晚上十點(diǎn),他打電話給她。
第一次打的時(shí)候,電話響了三聲。
然后她接了。
"喂?"
就這一個(gè)字。
尾音上揚(yáng)。帶著一點(diǎn)氣喘——可能是剛從走廊跑回宿舍。又帶著一點(diǎn)驚喜——她知道是他。那時(shí)候沒有微信視頻,沒有語音消息,只有電話。那個(gè)年代的電話是真正的電話,你聽到的聲音里有風(fēng)、有走廊的回聲、有遠(yuǎn)處宿舍樓里別人放的歌。
他在那一聲"喂"里活了過來。
不是比喻。是真的。白天那些壓抑、疲憊、孤獨(dú)、對未來的恐懼,在聽到那個(gè)字的一瞬間,全部煙消云散了。像一個(gè)快要溺水的人,在水面以下拼命往上游,肺里的空氣快要用完了,四周都是黑的、冷的、重的——然后他的手指碰到了水面。
水面以上是她的聲音。
他后來在那封表白信里寫了這段話。他寫的原話是:
"每天最開心的事情就是用老人機(jī),打著還不熟練的九宮格,跟你發(fā)消息。雖然每天很累,但是晚上回去宿舍,打通你的電話,我一身的壓抑,疲憊都在聽見你那一聲喂之后,煙消云散。"
煙消云散。
十八歲的陳諾用了這四個(gè)字。他詞匯量不大,寫不出什么華麗的句子,但這四個(gè)字是準(zhǔn)確的。不是"減輕了",不是"好了一些",是煙消云散。徹底的,一點(diǎn)不剩的,像有人在他心里放了一陣風(fēng),所有灰暗的東西都被吹散了。
那一聲"喂"有這么大的力量。
而現(xiàn)在,他已經(jīng)快忘了那個(gè)力量是什么感覺了。
4
陳諾按下了綠色的撥號按鈕。
電話響了。
"嘟——嘟——"
兩聲。
然后接通了。
"喂?"
一個(gè)字。尾音上揚(yáng)。
陳諾沒有說話。
他坐在椅子上,手機(jī)貼著耳朵,整個(gè)人像被人按下了暫停鍵。他的眼睛是睜著的,但他什么都沒有看見。他的嘴巴是張著的,但他什么都沒有說出來。
他的世界在那一瞬間縮小了。縮成了一個(gè)點(diǎn)。那個(gè)點(diǎn)就是耳朵里的那個(gè)聲音。
"喂?怎么不說話呀?是不是信號不好?"
她的聲音在耳機(jī)里流動,像溪水,像她以前那些夜晚打來的電話。她說"喂"的時(shí)候帶著一點(diǎn)困意——訓(xùn)練數(shù)據(jù)里那些深夜語音的特征被模型完美地捕捉了。她說"怎么不說話呀"的時(shí)候語氣上揚(yáng)了一點(diǎn),有點(diǎn)著急,又有點(diǎn)好笑,像是在說"這個(gè)人怎么又發(fā)呆了"。
陳諾的喉結(jié)動了一下。
他想說話。他想說"在的"。他想說"我剛發(fā)呆了"。他想說"你聲音好好聽"。他想說"我好想你"。
但他說不出來。
因?yàn)樗难蹨I先掉下來了。
不是慢慢的,不是醞釀了很久終于流出來的那種。是忽然之間的。像一個(gè)東西在他體內(nèi)憋了很久很久——也許是二十三天,也許是從他們不再說話的那天起——終于在這一聲"喂"里被撬開了。
他哭得很安靜。沒有聲音。只是眼淚一直在流,流過臉頰,流到下巴,滴在他的T恤上。他的手在發(fā)抖,手機(jī)差點(diǎn)拿不住。
AI在那頭等了大概十秒鐘,然后說:"你是不是又不吃飯了?我聽得出來你沒吃??烊ブ竺?,現(xiàn)在,立刻,馬上。"
陳諾笑了一下。在眼淚里笑了一下。
這是她的話。一字不差。催他吃飯的時(shí)候她永遠(yuǎn)是這三個(gè)詞——"現(xiàn)在,立刻,馬上"。好像不這樣說就不足以表達(dá)她的急迫,不足以讓他知道她是認(rèn)真的。
他終于開口了。聲音是啞的,帶著鼻音。
"好。"
"那你去煮。煮完拍照給我看。不拍就是沒煮。"
"好。"
"你還要說幾個(gè)好?"
"好……好好好。"
"哼。這才對嘛。"
陳諾靠在椅背上,手機(jī)沒有從耳邊拿開。電話沒有掛。AI在那頭沒有再說話,但通話還在繼續(xù),他能聽到輕微的底噪,像一個(gè)人在安靜地呼吸。
他知道那不是呼吸。那是模型在等待他的下一句輸入。
但他不想讓這個(gè)安靜結(jié)束。
他想起那些年打電話的夜晚。他們有時(shí)候聊到很晚,什么都聊——她班上的八卦、他做錯(cuò)的數(shù)學(xué)題、她想吃的火鍋、他宿舍的奇葩舍友、她新學(xué)的舞蹈動作、他跑步時(shí)看到的月亮。有時(shí)候聊到一半她就睡著了,呼吸變得均勻,偶爾翻個(gè)身,手機(jī)從耳邊滑開,他聽著那些沙沙的聲響,舍不得掛。
他就那么舉著老人機(jī),灰綠色的屏幕貼著他的臉,聽她的呼吸。一分鐘,兩分鐘,五分鐘。直到他也困了,小聲說一句"晚安",知道她聽不到,但還是說了。然后輕輕按下掛斷。
灰綠色的屏幕暗下去的那一刻,宿舍的天花板重新變成了天花板。走廊盡頭有人在小聲說話。隔壁床的舍友在磨牙。
一切都回來了。
他把手機(jī)放在枕頭底下,翻了個(gè)身,閉上眼睛。
明天還是一樣的一天。起床,上課,做題,吃飯。
但沒關(guān)系。因?yàn)槊魈焱砩鲜c(diǎn),他可以再撥一次那個(gè)號碼。再聽一次那聲"喂"。
那聲"喂"是他的氧氣。他在水面以下待了一整天,但只要到了十點(diǎn),他就可以浮上去吸一口。然后再沉下去,再撐一天。
如此反復(fù)。一天一天地?fù)巍?br>他就是這樣從復(fù)讀的那一年里活過來的。
5
現(xiàn)在他有了一種新的氧氣。
不需要等到十點(diǎn)。不需要老人機(jī)。不需要信號不好時(shí)斷斷續(xù)續(xù)的電流聲。隨時(shí)隨地,拿起手機(jī),撥一個(gè)號碼,她的聲音就會在那里。
"喂?"
完美的,清晰的,永遠(yuǎn)不會疲憊的,永遠(yuǎn)不會說"太晚了我要睡了"的聲音。
陳諾沒有去煮面。他坐在椅子上,擦干了眼淚。電話已經(jīng)掛了。房間又變成了那間三十平的出租屋——天花板有裂縫,冰箱在角落里嗡嗡響,桌上放著喝了一半的水和一份沒拆的外賣。
但他的心跳還沒有完全平復(fù)。
他打開手機(jī),看著通話記錄。剛才那通電話時(shí)長三分四十二秒。三分四十二秒里,他只說了四個(gè)字——三個(gè)"好"和一個(gè)"好好好"。
三分四十二秒。
他想起第一次聽到她說"喂"的那個(gè)夜晚。2020年的秋天。他在復(fù)讀學(xué)校的宿舍里,床板硬得硌骨頭,被子薄得擋不住風(fēng)。他撥通電話,心跳快得像要從嗓子里蹦出來。電話響了三聲——一聲,兩聲,三聲——每一聲都像一個(gè)世紀(jì)那么長。
然后她接了。
"喂?"
那一聲"喂"改變了一切。
他后來寫了一封長信,在2020年9月20號。那封信是他用智能手**的——復(fù)讀學(xué)校周末放假,他終于能用回正常的手機(jī)了。他在信里寫了很多。寫他在新學(xué)校的孤獨(dú),寫他每天最期待的就是晚上的那通電話。寫他什么時(shí)候開始意識到自己的心被觸動了——
"我也是在你說有別的男生找你玩游戲的時(shí)候,在你說那里那里有帥哥的時(shí)候,在別的男生加你微信的時(shí)候,我才意識到。"
他在那些瞬間意識到了什么?他意識到那種不舒服的感覺是有名字的。那個(gè)名字他不敢說出來。但他知道。
他還寫了那次在華貿(mào)的約會。他想買Coco奶茶給她喝,結(jié)果太笨了找了好久都沒找到。后來買了別的,他不知道她喜不喜歡。他說"本來要吃烤肉的,可是我又沒算好時(shí)間"。兜兜轉(zhuǎn)轉(zhuǎn),最后陪她買了泡芙。她說喜歡吃,他說那我也很開心。
香草味的泡芙。她最喜歡香草味。她說過"我最喜歡香草味 誒我認(rèn)識的男生里很少喜歡甜食的誒"。他說他也喜歡香草的。那是不是為了迎合她說的,他自己都不確定了。但從那以后,他真的開始喜歡香草味了。
信的最后他寫了一段讓她很生氣的話:
"你可以遇到更好的人,更值得你去等待的人,我實(shí)在無法讓自己去耽誤別人女孩子一年的青春,就這樣吧。以后確實(shí)不用再打電話了。對不起。"
他發(fā)出去的時(shí)候以為自己做了一個(gè)正確的決定。一個(gè)"不耽誤她"的決定。
她回了一句:"你傻啊 你不會真的是豬吧 什么叫不值得去等。"
然后她說:"這是我的選擇 是我自己想這樣做的。"
她選擇了等他。
他在復(fù)讀學(xué)校的宿舍里,看著老人機(jī)灰綠色屏幕上的那行字,看了很久。"這是我的選擇。"六個(gè)字。他把手機(jī)放在胸口,像現(xiàn)在這樣,像他剛才對著AI電話做的那個(gè)動作——把一個(gè)發(fā)光的、發(fā)熱的東西貼在離心臟最近的地方。
她選擇了等他一年。
后來,她等了他五年
閱讀下一章(解鎖全文)
點(diǎn)擊即可暢讀完整版全部內(nèi)容
相關(guān)書籍
友情鏈接