语音盒

基本信息

属性 值
注册名 computronics:speechBox
方块类 pl.asie.computronics.block.BlockSpeechBox
TileEntity pl.asie.computronics.tile.TileSpeechBox
文档名 speech_box(BlockSpeechBox.java:22)
创造标签 tabComputronics(BlockSpeechBox.java:23)
双重开启条件 tts.enableTextToSpeech 且 enable.speechBox(Computronics.java:318、Computronics.java:326-330)

功能

文本转语音(TTS)方块,把字符串合成为语音并像扩音器一样播放。

双重条件下的注册顺序(Computronics.java:318-331):

  1. 先判 Config.TTS_ENABLED;
  2. 为真则调 TextToSpeechLoader.INSTANCE.preInit() 初始化 MaryTTS,成功后 new TextToSpeech() 并再判 tts.preInit(),失败则 tts = null;
  3. 然后才判 isEnabled("speechBox", true) 注册方块与 TileEntity。

因此即使 enable.speechBox = true,只要 TTS 初始化失败,语音盒根本不会注册——包括它的配方(ModRecipes.java:108-121、:380-399 都以 Computronics.speechBox != null 为前提)。

实现位于 pl.asie.computronics.audio.tts(TextToSpeech / TextToSpeechLoader / SynthesizeTask)。合成在独立线程执行,依赖外部 MaryTTS 服务。

数值

数值名 值 范围 来源
tts.enableTextToSpeech true 布尔 Config.java:140-144
tts.maxPhraseLength 300 0–100000 Config.java:145-151
Config.TTS_ENABLED 字段初值 无(默认 false) — Config.java:59

TTS_ENABLED 声明处未给初值(Config.java:59),Java 默认 false。实际生效值来自 tts.enableTextToSpeech,配置默认 true。 tts.maxPhraseLength 的单位是文本字节数(Config.java:150-151 描述),代码中源码注释标为 TODO。

交互

触发 行为
外部 无独立 GUI;经外设提交待朗读文本
文本长度 单次处理不超过 tts.maxPhraseLength 字节

合成配方

无 OC 配方(ModRecipes.java:108-121):

iii
iai
iri
字符 物品
i 铁锭 ingotIron
r 末影珍珠 minecraft:ender_pearl
a 扩音器 → 铁音符盒 → 音符盒(依次回退)

OC 配方(ModRecipes.java:380-399):

ici
sag
ibi
字符 物品
i 铁锭 ingotIron
c oc:cpu2
s oc:circuitChip3
g 铁栅栏 minecraft:iron_bars
a 扩音器 → 铁音符盒 → 音符盒(依次回退)
b oc:materialCircuitBoardPrinted

相关条目