Ren’Py支持自動語音模式。在自動語音模式下使用一個語音合成器朗讀出文本和其他介面元素。這個功能能讓有視力缺陷的人也能使用Ren’Py遊戲。
自動語音模式可以按 v
鍵切換開關。
處於自動語音模式時,鍵盤導航會發生變化,上下方向鍵會讓循環經過界面上所有可獲得焦點的可視組件。
當某個可視組件獲得焦點時,Ren’Py會大聲朗讀出與那個可視組件關聯的文本。如果沒有可視組件獲得焦點,Ren’Py會讀出界面上無法獲得焦點的文本內容。自動語音透過這種方式大體上覆蓋了構成遊戲的所有對話和文本。
Ren’Py針對不同的操作系統提供不同的語音合成服務。要調整語音合成的速度和使用的聲音,就需要調整對應平台的語音設置。
say
命令。在“Dictation & Speech”控制面板的“Text to Speech”標籤可以修改語音合成設置。espeak
命令。在自動語音模式運行之前,需要先使用package管理器安裝espeak。默認聲音可以在對應平台的基本設置中選擇,使用
config.tts_voice
配置項。舉例:
init python:
if renpy.windows:
config.tts_voice = "Mark"
elif renpy.macintosh:
config.tts_voice = "Alex"
elif renpy.linux:
config.tts_voice = "english_rp"
可用的聲音與平台有關。
Ren’Py的自動語音會從可視組件中剝離文本並向閱讀給用戶。Ren’Py從兩個地方剝離文本。
轉換文本是通過可視組件的 alt
樣式特性提供。還可以透過按鈕(button)上的行為和條(bar)的值來獲取。顯示提供的轉換文本優先於行為和值的文本,從文本組件剝離文本的優先度最低。
轉換文本會使用Ren’Py的字串多語言支持機制進行翻譯。轉換文本的優先度高於從可視組件及其子組件剝離出的文本,不過從文本組件剝離出的問題可以使用“[text]”型字串替換。其他文本都不允許使用字串替換。
傳入Character對象的 who_alt 和 what_alt 參數將alt樣式特性分別設置為角色的名字文本和身體文本。舉個例子,我們定義了一個角色使用斜體表示其內心想法,但通過自動語音顯示表現其想法:
define thought = Character(None, what_italic=True, what_alt="I think, [text]")
描述文本是通過旁白顯示(或表述)的文本內容。如果禁用自動語音則文本不顯示。自動語音文本使用變數 sv
,與角色的定義過程類似。
alt
= … link一個類角色的對象,啟動自動語音的情況下會唸出旁白的文本。
舉例:
e "Hang on, this is gonna be a bumpy ride!"
alt "And then the sun exploded..."
# 一個複雜而且亦可賽艇的特寫場景。
show event sun_exploding
pause 10
有一個配置項變數控制描述文本:
config.descriptive_text_character
= None link若不是None,該項應該是一個字元對象,用於顯示描述文本。
使用快捷鍵shift+alt+V可以啟用自動語音的debug模式。debug模式下會顯示界面中會播放語音的文本,用於開發需求。