|
|
本帖最后由 XHG78999 于 2022-8-24 09:10 编辑
, C% y1 J) b5 ?4 ], f# F" J
' ~& P& v' D# Z) f9 u% P哇我的模组居然可以编译了哇啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
3 X* u4 k6 I. _% g自从上次试图push语音引擎到官方被@Zbx1425 无情回绝之后,我几乎已经事gonna give you up了。
; s( Y! q. P' c) ]3 ^' V前两天由于某些原因(MCP仓库被撅了无法设置Forge)我开始转Fabric开发,随后尝到了FabricAPI和Mixin带来的甜头。一不做二不休,拿起老需求,用Mixin注入了库,换作了一个HTTP Based-on的引擎。# m3 D. U2 Y0 J3 F' j# g
虽然时延高达11451.4ms(巨♂硬的服务),然而效果十分优秀。. ^0 F, o! N( H) e. U% q; @
+ Z' x3 ^* M* K- V. V
不久之后MTR: Railway Facilities将包含该可选功能。
* _6 E( O/ W7 [好时代,来临力!
0 R7 e0 @6 `" z% K6 }--------------update-------------0 K; s1 @7 h& D1 X
8 O5 X- a4 ?: g8 s
其实引擎事从一个读书app的APK里面反编译的,(反混淆好累啊% o3 E7 f4 A8 r" \
上图:
b! V2 X9 S. z9 m: _7 Z X4 z i: ~8 V
, u* I2 i/ u% [--------------update 114514---------------
$ [0 v2 c5 X6 I2 Y, m' k代码整理完毕,扔出来看看:
( @' E! D: z- T; \[mw_shl_code=java,true]package com.xhg78999.mtrfac.tts.mixin;( ~2 W3 J$ p9 r" j
( A, @. K% s6 t$ {+ d
) k! u6 ^: a M5 eimport com.xhg78999.mtrfac.tts.engine;
$ y1 L3 w% } M M. k" Yimport com.mojang.text2speech;
* {0 `4 a( N1 l, f# V+ K- uimport org.spongepowered.asm.mixin.Mixin;
7 T) o3 f/ g9 [import org.spongepowered.asm.mixin.injection.At;' O/ s8 V9 B( k( e+ t
import org.spongepowered.asm.mixin.injection.Inject;+ {, k% W0 J+ Y
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1 u- t+ |0 h1 l1 o1 d0 W5 p' H5 I7 P- ?
@Mixin(Text2Speech.class)8 y9 b- q1 x) A, {/ @2 Z" N6 U
public class TTSEngineMixin {8 v3 O k \& K8 L$ c9 F
@Inject(at = @At("HEAD"), method = "<反编译不易 保密>")8 i( u7 H% r. C
private void init(String text, CallbackInfo info) {
, K# Z3 ?, i1 d$ @" @TTSMain.speak(text);
& t# v! B" R' \( }! z }- D+ @" @! \# Q1 C
}
* m) A6 ?( P) m t( K9 e) K[/mw_shl_code]
* ]/ G4 Y% I) J8 S3 S) I+ V |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|