劇本中的張誠是比較柔弱、容易被欺負、且有些自卑的孩子;反而小光是個看來活潑、陽光、完全不覺得陰暗的大男孩。編導柯貞年表示,選角的時候,原本想讓星二代出身的劉子銓演小光,因為他個子比較高大、感覺較陽光。
後來柯貞年先讓劉子銓在2個角色中選一個,劉子銓選了張誠。柯貞年原本有些憂慮,「因為銓銓看起來一點都不自卑,不像我原本想像的張誠。」不過既然他想演,就讓他演。後來證明劉子銓飾演的張誠,也很有特色。
至於張誠這個角色,柯貞年一開始希望找韓劇《信號》裡童星金玄彬,「我覺得他的樣子、性格還有彆扭的表情跟張誠有點像,相信他一定可以把張誠演得很好。」但金玄彬能否加入,柯貞年不敢有太多期待,沒想到聯絡之後,對方竟然有意願,只是看過劇本後,竟然也想演張誠。由於柯貞年已先答應讓劉子銓演張誠,只好請金玄彬演小光,最後對方同意挑戰看看。
柯貞年坦言:「其實小光是我劇本裡最喜歡的角色,最像我內心扭曲一面的角色。這個角色我覺得誰演、就是誰中。」
《無聲》裡金玄彬有一場天台的重頭戲,可說是得獎場,讓工作人員一致稱讚。柯貞年記得,「演完之後他問我,『導演,有哪裡要修正的嗎?』我只能拍拍他說:『辛苦了』。通常我是不太稱讚演員的,因為覺得稱讚可能會讓人放鬆。」
柯貞年透露,「金玄彬雖然才14歲,但非常專業。厲害的是,他本人其實是一個小孩子,私底下非常天真、也愛玩,很喜歡去打網咖、吃牛肉麵、喝珍珠奶茶;可是演戲的時候就變成大人。我覺得這個反差感很可愛。」