From 527205520bcc2b145fddf58b0cd4838c6c9ae1e4 Mon Sep 17 00:00:00 2001 From: owenchen Date: Fri, 29 May 2026 13:03:00 +0800 Subject: [PATCH] ow --- CloudBuilder.Topshelf.csproj | 5 +- Lib/CloudBuilder.AI.Service.dll | Bin 60416 -> 38400 bytes Lib/CloudBuilder.AI.dll | Bin 82432 -> 85504 bytes Properties/launchSettings.json | 2 +- Python/Hanlp2.cs | 3 - Python/NamedEntity.cs | 9 ++- Python/PythonCommand.cs | 2 + Task/AI/ChineseNameExtractorTask.cs | 33 ++++----- Task/Python/PythonRunTask.cs | 19 ++--- Task/TTS/TtsTask.cs | 2 +- Utility/SaveAudioToFileHelper.cs | 2 + .../SpeakerAnalysisHelper.cs | 70 ++++++++++++++++-- 12 files changed, 104 insertions(+), 43 deletions(-) rename {Task/Novel/Process => Utility}/SpeakerAnalysisHelper.cs (58%) diff --git a/CloudBuilder.Topshelf.csproj b/CloudBuilder.Topshelf.csproj index 1c642a8..2615ab4 100644 --- a/CloudBuilder.Topshelf.csproj +++ b/CloudBuilder.Topshelf.csproj @@ -12,14 +12,17 @@ + + + @@ -62,11 +65,11 @@ - + diff --git a/Lib/CloudBuilder.AI.Service.dll b/Lib/CloudBuilder.AI.Service.dll index 114cd3e91964d5939bd86ebd306719145923d7f5..b45d464c9e51549935c96a83d53f1bbb3f2653cb 100644 GIT binary patch literal 38400 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 literal 60416 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 hI1Y*6 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 adyWtG;YaxQHH_#e{u0gglfS=q68OIm1Of;E literal 82432 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

PE5c^oMVaKGeI z(NENq@p*Kr{9H!KZ;|VENyj(S1m!{8L;Eo9t^JdXkwg!^14$`y6{G+mJ;pV+rRI-B#T< zq@yqU>V;c^d#qb;d)$vd%8ki)_t$N$+dDVE+XgoRZcC12FWi>6eTj^%+s=LYZpmH8 z*R40Q3Ku7W6*Kc91B4RcOqU5T8rrQ}nG=xltKN9`W2JhCN`@o`(_me92gZjEkVy4LHq z+^x53jgc+iSM594BVpg&mhUTPqA^Fls&HvI!&H2*E7&za=_X2*wo#bKeHb*mVFO3`sKRtN_@Yz5LuqrTm zl)EQ7c)leX|6=f;!IK3s;BolR;HiQ*@M)3&J{{=D5z-U-U!Tse!!RG=Ud<*Gt@B*NNJI+Uf z9}RTmIPA%I{u}7vzVj6D6M&AKi2d2%yEaFGmtc=J5(47yNn@WjQVMi%Z~7SUa-bt8 zVZS!A4Cvr)b^Uu?6+j1n1x^1x*9xG6ClMxsuLL?$#lOE*4RmA`|K8RqKu1pJ-`6?= z=*XG4lgh|Cpd)7?P6mHPYdUy6;$)-&=*T&Ulacj62lvEhgP#X<@C{SB;1>WL+$BE? zd;`$IHx%Z9Ukr3`-~1f#OMwo)^=~ftFMtm2o-Y8u4(P})5hwi~zN5i6N)h<=KnLHV zw*dUtKt~$o81N>bBR7iv)vrxJ2lw0`4}KHSk>4P$_#SYegS+sTfNudh@;k&8f6WN! z;9h*3-*Gl91^*-Bif^|EI=DN38TkD`M;<_24bGMo;140L24~F`;D16~4bGe^!JDNT zyanjUqj<{1$YVeU_w?6-Zv{H?XFSVdcYm-Nmtc^QZ& zk1-B-W((-xy5Vf_*MW|_fpIYSF0BUeH!%+QMs=Wr@5MR~{B59vZ@0Ptybb8c2N(w< ze+N49A;!VTM?gpZfpIYSTYZ;;eqtBVS?MjC>7rx6W6rh8rDINqL1#~3MJPe)=bntw|Bj6c8 z2jBkE0zL-l;E9XJzz+mE_!g6`;D-VoJa_Q~_*9^SZyVVTemD^Ok9it=IuQGhc?SGQ zAod^gEO-_W`;U1ZJR6Ap$Gixh3&j3oUIw29#QtMm1_6rs@MS>kKjvfb3Ly3$^H1;_28Vcs0yxE;k2&UjcORSN(c}UkP;Z^h;mxtAW_BOn>lS0I^@0 zf#BBxv0vdSE9_T5>{n(e`1L^SS7tc)uYuUF%t-JiAoeR<|6{)bV!tve;5PvsxzmgS zzYB`UfA@CSj|m&`%n4+F6;nS;R}0b*Y=6Tw@6 z*q88%1N#yX`;s{nd@InAZDuO?6F>*g=Nt~c9q7nYW;*!OKnG9k90~pm5c` z9S!~-(82RRMd0l~>|J z2R;huNV;=2co2yF$7ui`19apdXFd3Mpd$x6=YdZEIx^9@0DKbAkwcsf;FE!l9O_&Q zJ_YE=ROeFg!+_YAoXfzc1FKx*m?K|3ctS_owpE8a7IV4JOCD!p1^4*RnkoV3t8Q=D>cfRJN zy}grtrCq#`@3k)8$-dRyl$R9H^2Xz8OMjx|+!5N+C|Nn80=wTjNpa3b%&w4|oOSXS z{QC#~;bpe|Ogm!gk|h(CjF)Ni%a>Ku*3BtjTYJP(*P6GwvNE)^vb^MA$;+);y|TQ< zQ*%SLb>%hg5xG@$6?JQi*RIlhu9y+3rC777ro6VcqPhwxS*3L@>Bv80bwy=ad5s=+ z%IZ)hO3AKXxhhmc%QkF6*M`A5;-n=@vZ|`9)~>8xU8_}(FPR`SS67wdmpyP|*8?X? zUQv0?sTHN=Y#?&DouAY-D=atdkgjR4+_cGE(_p!2hjvYab;MMeHn+NLb!GVxvM{f> zXvuN2m&~5Iq1l* zIYrr7g&mHYEhjfWx46U1$;-+wn6;q8$SYcspEqw#xNzv4y!pA=#Rc<^bal5E6nNfAoUF3!!7?1H(4T1k#JZkGOOX#6hBnx8dmepcb^urs5eU`|+M&(10= z&Yd6DGxPG%CLXEH$<0|3;mj<^&p}={x!{;EWdO4B(2{w@x%0AfwO)ETbBlO<*kIj} zZgF05KJzaq%rD5w;bEGawQ3nE3g*v>Fglg7gv!fk8<<~^os}OhsxWtcQNg^hw0Yb^ zw0&-;I@uUo4Se{R1%)|Ti0cx?;ykxe+4FO|cx-j?v4w0kTSkFFD$H6?M3-5L@{a2e z#aXkoleU?2vkD9I=FwpY5!Ub!h67WWRXkfoQNeE1--l&^9`< z9&bXq-O-eY$fCh4V}9uz+F3^?13|{=a#e#vzJto|v&J}h_LKDNsgtw2qbA;zg zxY+P9*tT*PX+<4*!dAh2E^IG{7YaAsi&x?N+?jccbjvBs&pK91;$bsLy(Qu*Z*jQF zEqzWdGjaiBW9iJo&L;Vxl}pP)ve(2NS5zLVDP5jjQ-PCNMM$zLips0%%BxDt_e#iF zSv#|$a&I@QqA*kwT2>QUwS2GqSrs#?t5fT2!t*xsG zmDcTL&#b5_o3XYVGbdCRs_l|eSW{6|*TpUMVp6mgXZn@n^u%0Uh3MeyRbDwxi^{61 zs;&#^NxgPlQR(vXm0jbj*+ko;0j$<@eQ`~BIbAnI5wx(Tx)c`+bUHVFetGTc$~q?4 zfrxM-2BDLy1JKE^5$@!9!@aPg{IrM!J=WHwDLECjt13fl*?=Se1tGIcUEM_z4yMb(OMvm>ONnp06zURqaOvo<12XHWCZtgcxZs;et6 zE39z4-^mD1p2|v;#hEgzyb5crRO;OL>9WczW8f^+Qnh8}Wf5tejFa4B-0F2wc?EEW zL1;?BX<^?|b@OVA5W7;emsLi{tW~SZtIEQyXBo3rSGf5|^!V_C4<~hYG>^`naB^5I z^<2$j=VCZlq;{8Yq?5ab%X}W@50-CaN~ybRu$*b`0@GYY)m2ASELk$MqP((9B7C$J zD>x#l)9gKB#gZj6LZvGzs+QR!_nM?#Gjy7tU6c2km|ZhOPRg#S9aFNqv`%xeYliSh zVq$ia$|=;zRbWJR-sKZN+ zE(5$^Rb_RkOs7oOG+lk&rxes+g6u2NjZuDeX{fUMquodNl)T!)(CXT54$;DjDo)==N^xje*III` za1O!3>zd+*Yi?-Os&13DuEJ2=@~#IKRjD{%;uGMaiE5a4k>TdkP8bqu7v~E)L8U~Xd`+Apg=@>S< z^LNRSU9H!<-5ly&8R6t#zNTx*;mGYHy`V-<%iSMqJHL-qyOw9H?OLf_#oZ-gE#eBT z>mh8%(tRc1y{@i@=#t6CZm|rPK3!6~zJTD{Nu6Ig-VM@@!nr zioNL7%YB)@np13UITl~pY+R*QhCSUHt%IZ895ZXGS9W-sBf`n4KCMbmIvQpv#N~#2 z4x-G{lQx+<)HXa)=Dz%rlk^z9e&XrOz1r3j8((6~SnIlYGt%bLlLa%8=y4tAJNgk) zQ?=&sF=3%85obIe7^$^U;R^OT`!Vz0-buVn4WA*|A$Q!ul}AW6j7Nl1JC?PMScK~I zN(=kajJ10uc1U+a=#=54j#{+R@cEXV=uoJVEy=2_Enm5`axKM@P^8imaWVEJc5Sbd zvkiQw6E^ehb&h7fy*>MS!p=vDoJ)9ty0oIITvsBHQNzIK+c-?e?mJP4~DPV#z6Ax_a5N@|qbn)u+|! zJN0@p!Af3R6PXU8{s>-8H%Y}> zNk>k%{?4BF5yIZNB3jvzun^18M2@z#EAhwlcD zndg^RhSs=mmvp3imE+Bivel(^9SJ&di+EAh;d!y-NqbF1W-ktQ&+a$^C%6vb)un9; zRYfG&%fbn`#+7Ql1X#MZ4pg&vSGdd* z7FZs6fdz_6wE_r#dyC2$%V3yF?DXuQU@o6xQT3#MDm}70I zYFXHsz2cZqRsQNu&g_cSvqGVYaGva{{EAR@6}q?xzn7LrrW7p?g;1v^R7Lu1Nkj>n zVQoi-*(*@VTpSva1&5qm5#bb{HoF!_WiKy}%%ugb!N2fc2V9D4Dpu-Q%zay?xO$adDs&i~RW@GIU>`t+?CMo(NjUq$Coa4?aYwq7GZ*Kn z@|xW6hmpAK&!<(=w1wL02Z5$20@O_(NaFxT(E?2$K>f2V z($;7LG%bp@KZBwz`lCOZ^!v`-xife7@+rxZ1yS1FJ7>;4bLN~gXI|&tu^6!$$aqfA zJm%h#795#t>2kQRrCL1bS(y(hU9m9177SN`E(8OxmzD}8jl)Vfb112To7RS>O&%s5 z8|&%zk(W7^+!)TcR5gT=xSeVVij&kMHu^rL#Uz*TFj!iKLz>4Ro>@_cHBqacDb+}{8j%n8umEy57*6Njv z5c733!K-s{FG^OU!<{GvZ)Yy2_0BT7M6Q(TVUNFF zcsV8Gw$f>=ROe?(r}GtjFQ_t?JDP!$rOSD&TTfwzwNRZevscw#N{@{fl)HU?vQ&n! ztYum?YcC}8USUKVq8g)e@GU=LK%4>#22HW1it-)$RV=j4ROV~-xk63NRSMV^)*@c&`RO`zMBL(!UxZq#m zZN#5v@w~%4o*yV89)1DOGUO5Gj+H3Yj+0*cTivv>$2hktbh*Ow3spWBdu9E#4Wt8#wTL?NX}nU$Gag5V&{;%zv*2tYp~Pm|S#Z1n z+$#`59@NN_u2mM0Hvu875!9CkKaU!`Ar_>rG)t*~+(i-X2p*iIm2Hpmn<$UXimEz* zW<=w_E1Qv~4pbLkO^n~*hX(W@szr4h<*M#F1Y4yL`kF3VH;>ahtX}N;Qs( zir<8C8K-;&DyD!(L`m~-5;{eLp-dNW2Mvt0sYVK1w-6eMRjPU`EwRdI#f-*v{#e2-EF|{=s^aD(JB##yyIwj<_;%;*Shp>nldR-74YDw&ksq<0?36 z*^M0!)oD5iwQoHoss;bi||M!D!&Ph5{ zk8f0G1BA9Ux6Pi)SOU){*G@7_vCk~LU6im!Sm zt(r7jn!UF<$F;GfQr-MkfxEe_y4Se{%unN^c)Nzdb*{gR-CW1@OGs|HPd`-f=2mUh zCz9KfYW%2GbN6a|x>1|3%UcgSWWDHT2MNXruHTB(*IKo`)poksk$Pf_eLUF=Elt(< zR4a=gtwGw|0=+9pXU{#mJf`99xXR)ckjHgcgxX?4&b>(f&H&run7+_;wYEnuVmqnk z;BTPDmX2;cce~wE5)~Ny_4az0*3H*e$JN}c>g`!8!n>gk^+=q)dTecRsds+kPT6L> zP%WH0XJgzo<2L*}rqemuCF7npE!4~=I99Vfa0{P3=_u~W%WebrhB>#1-%*$4CIt2( zcV6ha^cWgY1`UP+u+%xEb!>!g6)vvEDFde>JO6eBX<&M1-}0!H@2)EA7>;;7xLO^r zJ$W!~&*i{UHn}b(c13!h@G@#@LR4}hQ%a_c8YbO`m`=Rxl9HtC&HfD|7{~{mG%?H` z=X`8YZ*9Y~?r{UZ5PZGWK-c!~w_jkQi+E>ZyDq}&hO@9+>Fplw24D=ej+Pus7>Kx7NkD4%LKq zZPi)cUf1FdytX*pns2qSwY}=rXeWEnN4M)in}<-_9b`Q;Vml(Svbgs~tooYGOEq@3 zTIWaY0o@^z?z-c{Cf5_XxE!K352upbsl981A<&jWSFA8MOFyx_27mg|w^z$B`)`gg zw=Z(FJAN6BF2X&05jmJ!?b`H~XPKP$I zy@ary&GZwlDmPP3vJHN4Z*9*Q}JtZlnez*Lz`efJlPW{%;JXXuj zFJ4#eSN<2(r!UUg+tL{?!A>yh5AI=h4dzEHPJYPZ*|+A@CdmzjM--Cdo2 zZ;F2%csemU`m?+)^SbPpd0pjo z)vxlp&g;5g=k*e=m;5DOU*q*P|5^vGgCLDW5a7QgZ%FcnAKZ}SiX>P3V5LJTKlqo9 zEWZD}3-AAjyfcFG?oLSXcOco|+a$*d3=R6I05ELMu-mj6f+(50)ljTLE5i3mudNCMimKFI$Pyt- zB95CPv73HyQ{KB07CO?=k2m&LP)?S^La57TaAPZUwn_ z3^4ngbO3I=VrEj7RgWW+Q+?kgt;5Ys;LMO5SUQV;FRSzk9Q}c}=&ICS&I0I(1`OgY-nf{7L!xs4mKw;qE-{raCJkYr`9PbJM1#?p=J_r^p3OVZ zp7rx3Jr_h`^aAif_Q|f{cqz>!Gi+G)S+3w8xpczS?|8M`?MS=8W9N-}d>)VHAPx8F z8@<`F-TAu>9dMrz*xEB}1Id;1?OL3vTP9w$UbklbNfpa(RImPK1d1bVYSm*a)$7(N z+gz404r3CLy%{^`cYBR9Fd()c^f%@iBLnI^0l0a<$T!`XevXhG+Ft!EBr%Kyv-@Gw z8j9OYJXpNZvk}X8FV@KF(a3e}c%6^psVm2@3_}ClaWcaIyTj6-#7?gpQ{V}L$5gipnZsZ{e$e=pdndsp&6-*^hoC0)=4-X;)>w7dHj_$q^IN6o z=C(>w=ibR^;Gy+c7)aJ}VF30XE}9W=W`sOw#=XY?c7xvr*qzTr!(xNK*BY!{yw&S6!C!5U z@$IW3K7YB>;a3Bk%ousuQS4q@D)+oxneAoQnY?9>l`j*@H3?HSAuChT?H1H7qXsjh z-g^qP*(KW$E`z)G0!m?~jo&g^onJy$Sq)DiZxWu6b5k=XT8=v9er9t4g+W{9)jzD^J9C2^x_pKcO)=`rXxVBnR89RL7V(?IsB+YU{@E7-1qNcvL z7lraVkuC6Z#uZa)GGaRqLu3!b0Uh0UFNbmG#A9GkrW0IN=ftC}(_hBt zda5(s-q{!YJgzUbckaVZKE8_ls`Bd^zb#24GbSMNIDAj?FQaf;hwgxHHX>1O25JZ>E2eYb z^Iy>5Yl8fT{v=2a`IG4^cIt2XB~6<<>fj(l5{SUK$y>O|o>lw&ISEVnWBFbI(ohg5r0_X$zMaeHpelbOGk>FVY z&kA@}z_SFG1zZ+zS-@q2s{*bHxGLZ(!F2)G1zZ8_v#|* z)P>Z*YdBl=%zPz!Q~rfn9&O?QuS*)`QBMtyoq6d3Uzdxc7)HZmBaU7@GKP?v3z`1t z(2($G3?5dK<{epJ^n2G=nvJrIVsa*~rMDsnhlRW2&S86#PwxrZ2JmtqgA?i-pkHunj zB&FZ(FIBeb+?9M)6tY7!LT2#hdUK4OQW;NmOBr<@AtbiI!gDwglzl;GO%7_)LM!NZ zZ0GO_ZK=efK94Ymx3|lIgc{30iPen`W`?JWvM=e-M^*{hynfNYkTGN}nTRQUFPYZL z%i)M0a48z(i2z}mjLyhWdb&bXg`5?q6pbIpepQMhQ)m;1q$tWdRDW)cr?=^f%e&F> z&UHoAn|#dz?a1m~!${h~LOSGio=3tM!g8lr9#z594R!gEmEcA^YD2Whf*e|la&%=_ zPx39=!Mo_?;5JQaeqlz}PD@AZnP>6ligGLjIY9{&s@$wK%>v8jB;F8(Fr2}vPx=jE zXv=MjILJhr$y^QA9iEpP=2KPxmvJD5LxsswD08Zxg=?|!{o;xita-t)Il2J~!#FSm z3J&Q+4C`t|Nv%WH^0JtGPL8DrMHFGxc!H1E^E{5o6?>*`c)lPHM#@#@rCDfCC3k6J zeTbbO`@9u zY&Sli!RI^3`;LZ0rLV+nZwi#YV>qB#GHl~Nr&L^HxzwK$E_?I#XC^Q;O>>3Sn91vPoLdgNQbbh&-% z-~RpwPksN#;MV*NzK-jxNyUGAm>2!we1nC_a``k4w@_Dbur!X#9^>&j`tK)Cfl70g zqkA7-JO~m%Cx~hcDiy?QBf|)UhPJ|qcM_l1FL~-5hIZ!fT-#w>zA6!+uPVllp2zz6 zS!|}{@OuW!=4S=CF6>w)zWztbQnlv z>v;fgr5}$zEVm!{tRH8^3;5-#tmS-tzQ<4>uHh=Y|2qXbr$A#yC{Pkr$bgcZ!FnZp zFkFSggq!7YQG;+wndO;!GsOj?jpSv^)p9=vdVCarQD*m+`;F+}$yxPN;3s~6v(&82 zKC2F@=hY!_c>w>4>WF$4scAqj<8uJt GetHanlpCon(string text) { @@ -138,7 +136,6 @@ namespace CloudBuilder.Topshelf.Python return null; } - public List GetTokCoarse(string text) { try diff --git a/Python/NamedEntity.cs b/Python/NamedEntity.cs index e63b7d7..2175ace 100644 --- a/Python/NamedEntity.cs +++ b/Python/NamedEntity.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Xml.Linq; namespace CloudBuilder.Topshelf.Python { @@ -179,11 +180,11 @@ namespace CloudBuilder.Topshelf.Python /// 所有节点 /// 节点ID /// 节点对象,如果未找到则返回null - public static HanlpConstituencyNode GetNodeTopLabelById(List nodes, int itemId, string label) + public static HanlpConstituencyNode GetNodeTopLabelById(List nodes, int itemId, string[] label) { HanlpConstituencyNode nd = GetNodeFatherById(nodes, itemId); - if (label == nd.Label && nd.Children > 0) return nd; + if (label.Where(x => x == nd.Label).Any() && nd.Children > 0) return nd; while (nd.FatherId > 0) { @@ -199,9 +200,9 @@ namespace CloudBuilder.Topshelf.Python /// 所有节点 /// 节点ID /// 节点对象,如果未找到则返回null - public static string GetNodeBottomLabelById(List nodes, int itemId, string label) + public static string GetNodeBottomLabelById(List nodes, int itemId, string[] label) { - HanlpConstituencyNode[] nds = nodes?.Where(node => node.FatherId == itemId && node.Label == label && node.Children > 0).ToArray(); + HanlpConstituencyNode[] nds = nodes?.Where(node => node.FatherId == itemId && label.Where(x => x == node.Label).Any() && node.Children > 0).ToArray(); if (nds == null || nds.Length == 0) return null; HanlpConstituencyNode father; List list = new List(); diff --git a/Python/PythonCommand.cs b/Python/PythonCommand.cs index ac1f3b9..c497f8c 100644 --- a/Python/PythonCommand.cs +++ b/Python/PythonCommand.cs @@ -79,6 +79,8 @@ namespace CloudBuilder.Topshelf.Python // 2. 关闭 Python 运行时(关键!) if (PythonEngine.IsInitialized) { + AppContext.SetSwitch("System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization", true); + PythonEngine.Shutdown(); // 销毁 Python 解释器 } diff --git a/Task/AI/ChineseNameExtractorTask.cs b/Task/AI/ChineseNameExtractorTask.cs index 41f01c5..16b613e 100644 --- a/Task/AI/ChineseNameExtractorTask.cs +++ b/Task/AI/ChineseNameExtractorTask.cs @@ -2,12 +2,12 @@ using CloudBuilder.Core.DatabaseAccessor.Entity; using CloudBuilder.Core.DependencyInjection.Task; using CloudBuilder.Topshelf.Python; -using CloudBuilder.Topshelf.Task.Novel.Process; +using CloudBuilder.Topshelf.Utility; using static System.Net.Mime.MediaTypeNames; namespace CloudBuilder.Topshelf.Task { - //task:ChineseNameExtractorTask guid:B000006 + //task:ChineseNameExtractorTask book_id:B000008 public class ChineseNameExtractorTask : IScheduleTask { private readonly IApplicationService service; @@ -19,16 +19,16 @@ namespace CloudBuilder.Topshelf.Task public void Run(Dictionary bodyDict) { - if (!bodyDict.ContainsKey("guid")) return; + if (!bodyDict.ContainsKey("book_id")) return; - string guid = bodyDict["guid"]; + string guid = bodyDict["book_id"]; PythonCommand python = new PythonCommand(service); try { Hanlp2 hanlp = new Hanlp2(python); - IRepository repository = service.GetRepository>(); + IRepository repository = service.GetRepository>(); IRepository repositoryAiSentenceEntity = service.GetRepository>(); @@ -42,10 +42,12 @@ namespace CloudBuilder.Topshelf.Task SpeakerAnalysisHelper speakerFeatureLearner = new SpeakerAnalysisHelper(); - AiSentenceDialogueViewEntity[] ents = repository.DetachedEntities.Where(x => x.BookGuid == guid).OrderBy(x => x.ChapterIndex).ThenBy(x => x.ParagraphIndex).ThenBy(x => x.DialogueIndc).ToArray(); + AiSentenceViewEntity[] ents = repository.DetachedEntities.Where(x => x.BookId == guid).OrderBy(x => x.ChapterId).ThenBy(x => x.ParagraphId).ThenBy(x => x.SentenceIndex).ToArray(); + if (ents == null || ents.Length == 0) return; + AiSentenceEntity aiSentenceEntity; string person = null; - int paragraphIndex = 0; + long paragraphIndex = 0; int totalLines = ents.Length; int processedLines = 0; // 已处理行数计数器 @@ -54,23 +56,17 @@ namespace CloudBuilder.Topshelf.Task { processedLines++; - if (!string.IsNullOrEmpty(person) && paragraphIndex == ent.ParagraphIndex) + person = speakerFeatureLearner.GetPerson(hanlp, ent.Content); + paragraphIndex = ent.ParagraphId; + + if (!string.IsNullOrEmpty(person)) { - paragraphIndex = 0; - aiSentenceEntity = repositoryAiSentenceEntity.Entities.Where(x => x.Guid == ent.Guid).FirstOrDefault(); + aiSentenceEntity = repositoryAiSentenceEntity.Entities.Where(x => x.SentenceId == ent.SentenceId).FirstOrDefault(); aiSentenceEntity.PersonName = person; repositoryAiSentenceEntity.UpdateNow(aiSentenceEntity); - continue; } - depRoot = hanlp.GetDepRoot(ent.Content); - ners = hanlp.GetHanlpNer(ent.Content); - srls = hanlp.GetHanlpSrl(ent.Content); - - person = speakerFeatureLearner.GetPerson(depRoot, ners, srls, cons); - paragraphIndex = ent.ParagraphIndex; - UpdateProgress(processedLines, totalLines); } @@ -81,6 +77,7 @@ namespace CloudBuilder.Topshelf.Task } finally { + Console.WriteLine(""); python.Dispose(); } } diff --git a/Task/Python/PythonRunTask.cs b/Task/Python/PythonRunTask.cs index 2d34b3f..92c2e97 100644 --- a/Task/Python/PythonRunTask.cs +++ b/Task/Python/PythonRunTask.cs @@ -1,7 +1,6 @@ using CloudBuilder.Core.DatabaseAccessor.Entity; using CloudBuilder.Core.DependencyInjection.Task; using CloudBuilder.Topshelf.Python; -using CloudBuilder.Topshelf.Task.Novel.Process; using CloudBuilder.Topshelf.Utility; namespace CloudBuilder.Topshelf.Task @@ -29,22 +28,24 @@ namespace CloudBuilder.Topshelf.Task text = "银发老者神色一肃的向金越禅师问道。"; //text = "鬼灵门门主一边吩咐着,一边冷冷打量着悬浮在身前的画轴,见其并没有任何异样发生,目光闪动几下。"; - text = "韩立闻言,眉头不经意的一皱,想了想后,还是摇摇头说道:"; - List sentiments = hanlp.GetTokFine(text); + text = "这是一个小城,说是小城其实只是一个大点的镇子,名字也叫青牛镇,只有那些住在附近山沟里、没啥见识的土人,才“青牛城”“青牛城”的叫个不停。这是干了十几年门丁的张二心里话。"; + //List sentiments = hanlp.GetTokFine(text); - sentiments = hanlp.GetTokCoarse(text); + //sentiments = hanlp.GetTokCoarse(text); - string depRoot = hanlp.GetDepRoot(text); + //string depRoot = hanlp.GetDepRoot(text); - List ners = hanlp.GetHanlpNer(text); + //List ners = hanlp.GetHanlpNer(text); - List> srls = hanlp.GetHanlpSrl(text); + //List> srls = hanlp.GetHanlpSrl(text); - List cons = hanlp.GetHanlpCon(text); + //List cons = hanlp.GetHanlpCon(text); SpeakerAnalysisHelper speakerFeatureLearner = new SpeakerAnalysisHelper(); - speakerFeatureLearner.GetPerson(depRoot, ners, srls, cons); + var person = speakerFeatureLearner.GetPerson(hanlp, text); + + text = "韩立闻言,眉头不经意的一皱,想了想后,还是摇摇头说道:"; } catch (Exception ex) { diff --git a/Task/TTS/TtsTask.cs b/Task/TTS/TtsTask.cs index 6e562a1..4bfe594 100644 --- a/Task/TTS/TtsTask.cs +++ b/Task/TTS/TtsTask.cs @@ -12,7 +12,7 @@ using static System.Runtime.InteropServices.JavaScript.JSType; namespace CloudBuilder.Topshelf.Task.TTS { - //task:TtsTask voice:Sherpa2 save_path:D:\MAFAI\cc.wav text:乌云忽然凝聚变形,瞬间化为了一个身高寸许的黑绿婴儿出来,并口吐人言的说道。 + //task:TtsTask voice:Sherpa2 save_path:D:\\Net8\\FileServer\\Backup\\DmsFile\\voice\\20260528112739.mp3 text:二愣子睁大着双眼,直直望着茅草和烂泥糊成的黑屋顶,身上盖着的旧棉被,已呈深黄色,看不出原来的本来面目,还若有若无的散发着淡淡的霉味。 public class TtsTask : IScheduleTask { private readonly IApplicationService service; diff --git a/Utility/SaveAudioToFileHelper.cs b/Utility/SaveAudioToFileHelper.cs index 6513b0a..756ff22 100644 --- a/Utility/SaveAudioToFileHelper.cs +++ b/Utility/SaveAudioToFileHelper.cs @@ -150,6 +150,8 @@ namespace CloudBuilder.Topshelf.Utility break; } + string directoryName = Path.GetDirectoryName(saveFilePath); + if (!Directory.Exists(directoryName)) Directory.CreateDirectory(directoryName); // --- 4. 保存音频 --- audio.SaveToWaveFile(saveFilePath); } diff --git a/Task/Novel/Process/SpeakerAnalysisHelper.cs b/Utility/SpeakerAnalysisHelper.cs similarity index 58% rename from Task/Novel/Process/SpeakerAnalysisHelper.cs rename to Utility/SpeakerAnalysisHelper.cs index 4781509..1575138 100644 --- a/Task/Novel/Process/SpeakerAnalysisHelper.cs +++ b/Utility/SpeakerAnalysisHelper.cs @@ -2,16 +2,34 @@ using CloudBuilder.Topshelf.Python; using System; using System.Collections.Generic; +using System.Diagnostics.Eventing.Reader; using System.Linq; +using System.Reflection.Metadata; using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; +using static System.Net.Mime.MediaTypeNames; -namespace CloudBuilder.Topshelf.Task.Novel.Process +namespace CloudBuilder.Topshelf.Utility { public class SpeakerAnalysisHelper { - public string GetPerson(string depRoot, List ners, List> srls, List cons) + public string GetPerson(Hanlp2 hanlp, string text) + { + string depRoot = hanlp.GetDepRoot(text); + + List ners = hanlp.GetHanlpNer(text); + + List> srls = hanlp.GetHanlpSrl(text); + + List cons = hanlp.GetHanlpCon(text); + + SpeakerAnalysisHelper speakerFeatureLearner = new SpeakerAnalysisHelper(); + + return GetPerson(hanlp, depRoot, ners, srls, cons); + } + + public string GetPerson(Hanlp2 hanlp, string depRoot, List ners, List> srls, List cons) { string arg0 = string.Empty; @@ -29,7 +47,14 @@ namespace CloudBuilder.Topshelf.Task.Novel.Process ners.Where(x => mrp.Text.Contains(x.Text)).FirstOrDefault().Text.Length > 1) return ners.Where(x => mrp.Text.Contains(x.Text)).FirstOrDefault().Text; - return mrp.Text.Length > 6 ? mrp.Text.Substring(mrp.Text.Length - 6, 6) : mrp.Text; + if (mrp.Text.Length > 4) + { + arg0 = GetPerson(hanlp, mrp.Text); + } + else + { + return mrp.Text; + } } } @@ -41,13 +66,46 @@ namespace CloudBuilder.Topshelf.Task.Novel.Process } } - if (ners != null && ners.Count() > 0) - return ners.FirstOrDefault().Text; + if (ners != null && ners.Where(x => x.Type.Contains("PERSON")).Count() > 0) + { + List ps = new List(); + foreach (string namedEntity in ners.Where(x => x.Type.Contains("PERSON")).Select(x=>x.Text).Distinct().ToArray()) + { + if (namedEntity.Length > 1) + { + if (!ps.Contains(namedEntity)) + ps.Add(namedEntity); + } + else + { + HanlpConstituencyNode[] nodes; + HanlpConstituencyNode nodef; + string feature = null; + + nodes = HanlpResultHelper.GetNodeByLabel(cons, namedEntity); + if (nodes == null || nodes.Length == 0) continue; + + string[] nps = new string[] { "NP", "DNP" }; + //如果存在,找到父节点上的NP + foreach (HanlpConstituencyNode node in nodes) + { + nodef = HanlpResultHelper.GetNodeTopLabelById(cons, node.FatherId, nps); + if (nodef == null) continue; + feature = HanlpResultHelper.GetNodeBottomLabelById(cons, nodef.ItemId, nps); + if (string.IsNullOrEmpty(feature)) continue; + if (feature.Contains(namedEntity) && !ps.Contains(namedEntity)) ps.Add(feature); + } + } + + } + return QuotedString.ToDelimiteredList(ps.ToArray()); + } + return arg0; } - public AiParagraphEntity[] AiParagraphs { get; set; } + //public AiSentenceEntity[] AiParagraphs { get; set; } public AiSentenceEntity[] AiSentences { get; set; }