From 0873d9e68879f7a8f814f656bf0e488b6d2b64b6 Mon Sep 17 00:00:00 2001 From: Seiun <140777969+lonh-jing@users.noreply.github.com> Date: Wed, 11 Feb 2026 10:26:47 +0800 Subject: [PATCH] Squashed 'plugins/tts_voice_plugin/' content from commit d14ba1bd git-subtree-dir: plugins/tts_voice_plugin git-subtree-split: d14ba1bdf00b09521a4eab8fd66ee83c64f2314c --- .gitignore | 40 ++ LICENSE | 661 +++++++++++++++++++++ README.md | 311 ++++++++++ _manifest.json | 235 ++++++++ backends/__init__.py | 38 ++ backends/ai_voice.py | 133 +++++ backends/base.py | 239 ++++++++ backends/comfyui.py | 827 ++++++++++++++++++++++++++ backends/cosyvoice.py | 285 +++++++++ backends/doubao.py | 230 ++++++++ backends/doubao_stream_parser.py | 432 ++++++++++++++ backends/gpt_sovits.py | 326 +++++++++++ backends/gsv2p.py | 186 ++++++ config.toml | 292 ++++++++++ config_keys.py | 103 ++++ plugin.py | 972 +++++++++++++++++++++++++++++++ test.wav | Bin 0 -> 889100 bytes utils/__init__.py | 12 + utils/file.py | 280 +++++++++ utils/session.py | 186 ++++++ utils/text.py | 181 ++++++ 21 files changed, 5969 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 _manifest.json create mode 100644 backends/__init__.py create mode 100644 backends/ai_voice.py create mode 100644 backends/base.py create mode 100644 backends/comfyui.py create mode 100644 backends/cosyvoice.py create mode 100644 backends/doubao.py create mode 100644 backends/doubao_stream_parser.py create mode 100644 backends/gpt_sovits.py create mode 100644 backends/gsv2p.py create mode 100644 config.toml create mode 100644 config_keys.py create mode 100644 plugin.py create mode 100644 test.wav create mode 100644 utils/__init__.py create mode 100644 utils/file.py create mode 100644 utils/session.py create mode 100644 utils/text.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..f937ce2b --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +# 敏感配置文件 +config.toml +config.toml.backup.* +config.toml.reset.* + +# Python缓存文件 +__pycache__/ +*.py[cod] +*$py.class +*.so + +# 虚拟环境 +venv/ +ENV/ +env/ + +# IDE配置 +.vscode/ +.idea/ +*.swp +*.swo + +# 临时文件 +*.log +*.tmp +.DS_Store + +# 生成的音频文件 +tts_*.mp3 +tts_*.wav +tts_*.ogg + +# 数据目录(包含临时音频文件) +data/ + +# 规范工作流目录 +.spec-workflow/ + +# Claude配置 +.claude/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..0ad25db4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md new file mode 100644 index 00000000..9cd5f91c --- /dev/null +++ b/README.md @@ -0,0 +1,311 @@ +# TTS 语音合成插件 + +MaiBot 的文本转语音插件,支持多种 TTS 后端。 + +## 支持的后端 + +| 后端 | 说明 | 适用场景 | +|------|------|----------| +| AI Voice | MaiCore 内置,无需配置 | 仅群聊 | +| GSV2P | 云端 API,需要 Token | 群聊/私聊 | +| GPT-SoVITS | 本地服务,需自行部署 | 群聊/私聊 | +| 豆包语音 | 火山引擎云服务,高质量 | 群聊/私聊 | +| CosyVoice | 阿里云 CosyVoice3,支持方言和声音克隆 | 群聊/私聊 | +| ComfyUI | 本地 ComfyUI 工作流 API(MLX Qwen3-TTS VoiceClone) | 群聊/私聊 | + +## 安装 + +```bash +pip install aiohttp gradio_client +``` + +## 配置 + +编辑 `config.toml`,设置默认后端: + +```toml +[general] +default_backend = "cosyvoice" # 可选:ai_voice / gsv2p / gpt_sovits / doubao / cosyvoice / comfyui +audio_output_dir = "" # 音频输出目录,留空使用项目根目录 +use_base64_audio = false # 是否使用base64发送(备选方案) +split_sentences = true # 是否分段发送语音(长文本逐句发送) +split_delay = 0.3 # 分段发送间隔时间(秒) +send_error_messages = true # 是否发送错误提示消息(false=静默失败) +``` + +### Docker环境配置说明 + +**问题:** Docker环境中可能遇到音频上传失败或文件路径识别错误(如`识别URL失败`) + +**解决方案(按推荐顺序):** + +#### 方案1:使用相对路径(推荐) + +```toml +[general] +audio_output_dir = "" # 留空,默认使用项目根目录 +``` + +音频文件将保存在项目根目录,OneBot/NapCat可以正确识别相对路径。 + +#### 方案2:自定义输出目录 + +```toml +[general] +audio_output_dir = "data/tts_audio" # 相对路径,相对于项目根目录 +# 或 +audio_output_dir = "/app/data/audio" # 绝对路径 +``` + +#### 方案3:使用base64编码(备选) + +如果路径方案都不生效,可启用base64发送: + +```toml +[general] +use_base64_audio = true # 使用base64编码发送(会增加约33%数据大小) +``` + +### 豆包语音配置 + +```toml +[doubao] +app_id = "你的APP_ID" +access_key = "你的ACCESS_KEY" +resource_id = "seed-tts-2.0" +default_voice = "zh_female_vv_uranus_bigtts" +``` + +**预置音色:** + +| 音色名称 | voice_type | +|----------|------------| +| vivi 2.0 | zh_female_vv_uranus_bigtts | +| 大壹 | zh_male_dayi_saturn_bigtts | +| 黑猫侦探社咪仔 | zh_female_mizai_saturn_bigtts | + +**复刻音色:** 将 `resource_id` 改为 `seed-icl-2.0`,`default_voice` 填音色 ID(如 `S_xxxxxx`) + +凭证获取:[火山引擎控制台](https://console.volcengine.com/speech/service/8) + +### GSV2P 配置 + +```toml +[gsv2p] +api_token = "你的Token" +default_voice = "原神-中文-派蒙_ZH" +``` + +Token 获取:[https://tts.acgnai.top](https://tts.acgnai.top) + +### AI Voice 配置 + +```toml +[ai_voice] +default_character = "温柔妹妹" +``` + +可用音色:小新、猴哥、妲己、酥心御姐、温柔妹妹、邻家小妹 等 22 种 + +### GPT-SoVITS 配置 + +**支持两种配置格式:** + +#### 格式1:数组格式(推荐,WebUI 友好) + +```toml +[gpt_sovits] +server = "http://127.0.0.1:9880" + +[[gpt_sovits.styles]] +name = "default" +refer_wav = "/path/to/reference.wav" +prompt_text = "参考文本" +prompt_language = "zh" +gpt_weights = "/path/to/model.ckpt" # 可选:动态模型切换 +sovits_weights = "/path/to/model.pth" # 可选:动态模型切换 + +[[gpt_sovits.styles]] +name = "happy" +refer_wav = "/path/to/happy.wav" +prompt_text = "开心的参考文本" +prompt_language = "zh" +``` + +#### 格式2:字典格式(兼容旧版) + +```toml +[gpt_sovits] +server = "http://127.0.0.1:9880" + +[gpt_sovits.styles.default] +refer_wav = "/path/to/reference.wav" +prompt_text = "参考文本" +prompt_language = "zh" +gpt_weights = "/path/to/model.ckpt" +sovits_weights = "/path/to/model.pth" +``` + +> **提示:** 插件会自动识别并兼容两种格式,推荐使用数组格式以获得更好的 WebUI 支持。 + +### CosyVoice 配置 + +```toml +[cosyvoice] +gradio_url = "https://funaudiollm-fun-cosyvoice3-0-5b.ms.show/" +default_mode = "3s极速复刻" # 或 "自然语言控制" +default_instruct = "You are a helpful assistant. 请用广东话表达。<|endofprompt|>" # 只有自然语言控制模式才会生效,3s极速复刻模式下不生效 +reference_audio = "/path/to/ref.wav" # 参考音频路径 +prompt_text = "参考音频对应的文本" # 参考音频的对应文本 +timeout = 300 # API超时(秒) +``` + +**支持的方言/情感/语速:** + +| 类型 | 可用选项 | +|------|----------| +| 方言 | 广东话、东北话、四川话、上海话、闽南话、山东话、陕西话、湖南话等17种 | +| 情感 | 开心、伤心、生气 | +| 语速 | 慢速、快速 | +| 音量 | 大声、小声 | +| 特殊风格 | 小猪佩奇、机器人 | + +**推理模式:** +- `3s极速复刻`:需要提供参考音频进行声音克隆 +- `自然语言控制`:通过指令控制方言、情感、语速等 + +## 使用方法 + +### 命令触发 + +``` +/tts 你好世界 # 使用默认后端 +/tts 今天天气不错 小新 # 指定音色 +/gsv2p 你好世界 # 使用 GSV2P +/doubao 你好世界 # 使用豆包 +/cosyvoice 你好世界 四川话 # 使用 CosyVoice,四川话 +/comfyui 你好世界 -v default # 使用 ComfyUI 本地工作流(MLX VoiceClone) +``` + +## ComfyUI 后端配置 + +该后端通过 ComfyUI 的 HTTP API 执行工作流(`/prompt` -> `/history` -> `/view`),并用 `LoadAudio` 从 ComfyUI 的 `input` 目录读取参考音频。 + +```toml +[comfyui] +server = "http://127.0.0.1:8188" +input_dir = "/Users/xenon/Downloads/seiun_tts/ComfyUI/ComfyUI/input" +timeout = 120 +audio_quality = "128k" # SaveAudioMP3: V0/128k/320k +mlx_python = "/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/.venv/bin/python" +mlx_cli = "/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/mlx_voice_clone_cli.py" +default_style = "default" + +[[comfyui.styles]] +name = "default" +refer_wav = "/path/to/ref.wav" +prompt_text = "参考音频逐字稿" +language = "Auto" # 可选: Auto/Chinese/English/Japanese... +model_choice = "1.7B" +precision = "bf16" +seed = 0 +max_new_tokens = 2048 +top_p = 0.8 +top_k = 20 +temperature = 1.0 +repetition_penalty = 1.05 +``` + +### 自动触发 + +LLM 判断需要语音回复时会自动触发,可通过概率控制: + +```toml +[probability] +enabled = false # 默认关闭,每次都触发语音 +base_probability = 0.3 # 启用时 30% 概率触发 +``` + +### 智能分割插件支持 + +本插件已适配智能分割插件,支持使用 `|||SPLIT|||` 分隔符进行精确分段: + +- **优先级**:智能分割标记 > 自动句子分割 > 单句发送 +- **使用方式**:智能分割插件会在适当位置插入 `|||SPLIT|||` 标记,本插件自动识别并按标记分段发送 +- **示例**:`今天天气不错|||SPLIT|||适合出去玩|||SPLIT|||你觉得呢` 会分成三段语音依次发送 + +## 项目结构 + +``` +tts_voice_plugin/ +├── plugin.py # 插件入口 +├── config.toml # 配置文件 +├── backends/ # 后端实现 +│ ├── ai_voice.py +│ ├── gsv2p.py +│ ├── gpt_sovits.py +│ ├── doubao.py +│ └── cosyvoice.py +└── utils/ # 工具函数 +``` + +## 常见问题 + +**Q: Docker环境中提示"文件处理失败 识别URL失败"?** +A: 留空 `audio_output_dir` 配置项,插件将使用项目根目录保存音频(相对路径)。如仍有问题,可设置 `use_base64_audio = true` 使用base64编码发送。 + +**Q: AI Voice 提示"仅支持群聊"?** +A: AI Voice 只能在群聊使用,私聊会自动切换到其他后端。 + +**Q: 豆包语音怎么获取凭证?** +A: 登录火山引擎控制台,开通语音合成服务获取。 + +**Q: 文本太长被截断?** +A: 修改 `config.toml` 中 `max_text_length = 1000` + +**Q: 语音合成失败时不想让Bot发送错误消息?** +A: 设置 `send_error_messages = false`,语音合成失败时将静默处理,不向用户发送错误提示。 + +## 更新日志 + +### v3.2.3 +- 修复豆包语音 WAV 流式响应合并问题(正确处理 LIST/INFO 元数据块和多 header 情况) +- 默认后端改为 CosyVoice(更稳定的声音克隆体验) +- 默认关闭概率控制(每次触发都生成语音,更可预期的行为) +- 优化 LLM 长度约束提示(利用"近因效应"提高遵守率) +- 优化 action 记录格式,帮助 planner 避免重复执行 +- GSV2P/豆包音频格式默认改为 WAV(更好的兼容性) +- CosyVoice 默认模式改为 3s 极速复刻(更快响应) +- 更新默认超时配置(CosyVoice 300s, GSV2P 120s) + +### v3.2.2 +- 适配智能分割插件(支持 `|||SPLIT|||` 分隔符精确分段) +- GPT-SoVITS 支持数组格式配置(WebUI 友好,向后兼容字典格式) +- 修复豆包语音音色信息显示乱码问题 +- 优化配置文件注释,更简洁清晰 +- 优化分段发送逻辑优先级(智能分割 > 自动分割 > 单句) +- 禁用 Python 字节码生成(保持目录干净) +- 添加插件 ID 标识字段 + +### v3.2.1 +- 新增 `send_error_messages` 配置项(可选择关闭错误提示消息) +- 统一错误消息处理逻辑(通过 `_send_error` 方法) + +### v3.2.0 +- 新增 CosyVoice 后端(阿里云 ModelScope,支持 17 种方言、3 秒声音克隆) +- 新增分段发送功能(长文本自动分割逐句发送) +- GPT-SoVITS 支持动态模型切换(在风格配置中指定 gpt_weights/sovits_weights) +- GSV2P 后端新增重试机制(5 次重试,3 秒间隔) +- 新增 `/cosyvoice` 命令 +- 新增 gradio_client 依赖 + +### v3.1.0 +- 新增豆包语音后端(火山引擎云服务) +- 重构为模块化架构 +- HTTP Session 复用优化 + +## 信息 + +- 版本:3.2.3 +- 作者:靓仔 +- 许可:AGPL-v3.0 diff --git a/_manifest.json b/_manifest.json new file mode 100644 index 00000000..d640b6a3 --- /dev/null +++ b/_manifest.json @@ -0,0 +1,235 @@ +{ + "manifest_version": 1, + "name": "统一TTS语音合成插件", + "version": "3.2.3", + "description": "统一TTS语音合成插件,整合AI Voice、GSV2P、GPT-SoVITS、豆包语音、CosyVoice五种后端引擎,提供灵活的语音合成能力。", + "author": { + "name": "靓仔", + "url": "https://github.com/xuqian13" + }, + "license": "AGPL-v3.0", + "homepage_url": "", + "repository_url": "https://github.com/xuqian13/tts_voice_plugin", + "keywords": [ + "TTS", + "语音合成", + "文本转语音", + "AI语音", + "GSV2P", + "GPT-SoVITS", + "豆包", + "CosyVoice", + "火山引擎", + "多后端", + "语音", + "朗读", + "音色", + "语音播报", + "方言", + "声音克隆", + "MaiCore" + ], + "categories": [ + "语音", + "AI", + "聊天增强", + "娱乐", + "Utility", + "Communication", + "Accessibility" + ], + "host_application": { + "min_version": "0.12.0" + }, + "default_locale": "zh-CN", + "plugin_info": { + "is_built_in": false, + "plugin_type": "general", + "components": [ + { + "type": "action", + "name": "unified_tts_action", + "description": "统一TTS语音合成Action,支持四种后端引擎智能切换,LLM自主判断触发" + }, + { + "type": "command", + "name": "unified_tts_command", + "description": "统一TTS命令,支持/tts、/voice、/gsv2p、/doubao多种命令格式,灵活指定后端和音色" + } + ], + "features": [ + "支持五种TTS后端:AI Voice、GSV2P、GPT-SoVITS、豆包语音、CosyVoice", + "AI Voice: MaiCore内置,简单快速,22+预设音色", + "GSV2P: 云端API,高质量合成,丰富的调节参数", + "GPT-SoVITS: 本地服务,高度定制化,多风格支持", + "豆包语音: 字节跳动云服务,支持复刻音色和情感控制", + "CosyVoice: 阿里云语音合成,支持17种方言、3秒声音克隆、情感控制", + "模块化架构,后端独立实现,易于扩展", + "HTTP Session复用,提升性能", + "临时文件自动清理,避免并发冲突", + "智能触发模式(LLM自主判断)和手动命令模式", + "概率控制机制,避免语音回复过于频繁", + "智能语言检测(中文/英文/日文)", + "文本自动清理和网络用语转换", + "完善的错误处理和重试机制", + "灵活的配置系统,支持各后端独立配置" + ], + "dependencies": { + "python": [ + "aiohttp", + "gradio_client" + ], + "system": [], + "plugins": [] + }, + "backend_info": { + "ai_voice": { + "provider": "MaiCore内置", + "endpoint": "AI_VOICE_SEND命令", + "authentication": "无需认证", + "limitations": "仅支持群聊使用", + "voices": "22+预设音色(小新、妲己、酥心御姐等)" + }, + "gsv2p": { + "provider": "GSV2P云服务", + "endpoint": "https://gsv2p.acgnai.top/v1/audio/speech", + "authentication": "需要API Token", + "limitations": "API调用限制", + "features": "高质量合成、多语言支持、丰富参数调节" + }, + "gpt_sovits": { + "provider": "本地GPT-SoVITS服务", + "endpoint": "http://127.0.0.1:9880", + "authentication": "无需认证", + "limitations": "需要本地部署服务", + "features": "高度定制化、多风格支持、模型权重切换" + }, + "doubao": { + "provider": "字节跳动火山引擎", + "endpoint": "https://openspeech.bytedance.com/api/v3/tts/unidirectional", + "authentication": "需要app_id、access_key、resource_id", + "limitations": "需要火山引擎账号", + "features": "快速高质量、支持复刻音色、情感语气控制" + }, + "cosyvoice": { + "provider": "阿里云 CosyVoice", + "endpoint": "ModelScope Gradio API", + "authentication": "无需认证(公开Gradio接口)", + "limitations": "依赖ModelScope服务可用性", + "features": "3秒声音克隆、17种方言支持、情感语速控制、自然语言指令" + } + } + }, + "configuration": { + "config_file": "config.toml", + "config_template": "config.toml.example", + "auto_generate": true, + "sections": [ + { + "name": "plugin", + "description": "插件基本配置" + }, + { + "name": "general", + "description": "通用设置(默认后端、超时、文本长度等)" + }, + { + "name": "components", + "description": "组件启用控制" + }, + { + "name": "probability", + "description": "概率控制配置(避免语音回复过于频繁)" + }, + { + "name": "ai_voice", + "description": "AI Voice后端配置(音色映射等)" + }, + { + "name": "gsv2p", + "description": "GSV2P后端配置(API地址、Token、参数等)" + }, + { + "name": "gpt_sovits", + "description": "GPT-SoVITS后端配置(服务地址、风格配置等)" + }, + { + "name": "doubao", + "description": "豆包语音后端配置(火山引擎认证、音色、情感等)" + }, + { + "name": "cosyvoice", + "description": "CosyVoice后端配置(Gradio URL、模式、方言等)" + } + ] + }, + "usage_examples": [ + { + "type": "action", + "backend": "auto", + "description": "LLM自动触发语音回复", + "example": "用户:请用语音说\"你好世界\"\n机器人:[使用默认后端自动生成语音文件并发送]" + }, + { + "type": "command", + "backend": "ai_voice", + "description": "手动命令使用AI Voice", + "example": "/tts 你好世界 小新" + }, + { + "type": "command", + "backend": "gsv2p", + "description": "手动命令使用GSV2P", + "example": "/gsv2p 今天天气不错" + }, + { + "type": "command", + "backend": "doubao", + "description": "手动命令使用豆包语音", + "example": "/doubao 你好世界" + }, + { + "type": "command", + "backend": "gpt_sovits", + "description": "手动命令使用GPT-SoVITS", + "example": "/tts 测试一下 default gpt_sovits" + }, + { + "type": "command", + "backend": "cosyvoice", + "description": "手动命令使用CosyVoice", + "example": "/cosyvoice 你好世界 四川话" + }, + { + "type": "command", + "backend": "auto", + "description": "使用默认后端", + "example": "/tts 你好世界" + } + ], + "migration_info": { + "from_plugins": [ + "ai_voice_plugin (v1.0.0)", + "gsv2p_tts_plugin (v1.0.0)", + "tts_voice_plugin (v2.0.0)", + "tts_voice_plugin (v3.0.0)" + ], + "migration_notes": [ + "本插件整合了ai_voice_plugin、gsv2p_tts_plugin和旧版tts_voice_plugin的所有功能", + "v3.2.2适配智能分割插件(支持|||SPLIT|||分隔符精确分段)", + "v3.2.2支持GPT-SoVITS数组格式配置(WebUI友好,向后兼容字典格式)", + "v3.2.2修复豆包语音音色信息显示乱码问题", + "v3.2.2优化配置文件注释,更简洁清晰", + "v3.2.0新增CosyVoice后端支持(阿里云语音合成,支持17种方言和3秒声音克隆)", + "v3.1.0新增豆包语音后端支持", + "v3.1.0重构为模块化架构,提升代码可维护性", + "配置文件需要重新生成,原配置需手动迁移", + "建议备份旧插件配置后再迁移", + "AI Voice音色映射保持兼容", + "GSV2P API配置需重新填写Token", + "GPT-SoVITS风格配置需要重新设置", + "新增config.toml.example模板文件" + ] + }, + "id": "tts_voice_plugin" +} \ No newline at end of file diff --git a/backends/__init__.py b/backends/__init__.py new file mode 100644 index 00000000..ddcafef1 --- /dev/null +++ b/backends/__init__.py @@ -0,0 +1,38 @@ +""" +TTS后端模块 +""" + +import sys +sys.dont_write_bytecode = True + +from .base import TTSBackendBase, TTSBackendRegistry, TTSResult +from .ai_voice import AIVoiceBackend +from .gsv2p import GSV2PBackend +from .gpt_sovits import GPTSoVITSBackend +from .doubao import DoubaoBackend +from .cosyvoice import CosyVoiceBackend +from .comfyui import ComfyUIBackend, ComfyUIVoiceCloneBackend, ComfyUICustomVoiceBackend + +# 注册后端 +TTSBackendRegistry.register("ai_voice", AIVoiceBackend) +TTSBackendRegistry.register("gsv2p", GSV2PBackend) +TTSBackendRegistry.register("gpt_sovits", GPTSoVITSBackend) +TTSBackendRegistry.register("doubao", DoubaoBackend) +TTSBackendRegistry.register("cosyvoice", CosyVoiceBackend) +TTSBackendRegistry.register("comfyui", ComfyUIBackend) +TTSBackendRegistry.register("comfyui_voiceclone", ComfyUIVoiceCloneBackend) +TTSBackendRegistry.register("comfyui_customvoice", ComfyUICustomVoiceBackend) + +__all__ = [ + "TTSBackendBase", + "TTSBackendRegistry", + "TTSResult", + "AIVoiceBackend", + "GSV2PBackend", + "GPTSoVITSBackend", + "DoubaoBackend", + "CosyVoiceBackend", + "ComfyUIBackend", + "ComfyUIVoiceCloneBackend", + "ComfyUICustomVoiceBackend", +] diff --git a/backends/ai_voice.py b/backends/ai_voice.py new file mode 100644 index 00000000..c916fa00 --- /dev/null +++ b/backends/ai_voice.py @@ -0,0 +1,133 @@ +""" +AI Voice 后端实现 +使用 MaiCore 内置的 AI 语音功能 +""" + +from typing import Optional, Callable, Dict +from .base import TTSBackendBase, TTSResult +from ..utils.text import TTSTextUtils +from ..config_keys import ConfigKeys +from src.common.logger import get_logger + +logger = get_logger("tts_ai_voice") + +# AI Voice 音色映射表 +AI_VOICE_ALIAS_MAP = { + "小新": "lucy-voice-laibixiaoxin", + "猴哥": "lucy-voice-houge", + "四郎": "lucy-voice-silang", + "东北老妹儿": "lucy-voice-guangdong-f1", + "广西大表哥": "lucy-voice-guangxi-m1", + "妲己": "lucy-voice-daji", + "霸道总裁": "lucy-voice-lizeyan", + "酥心御姐": "lucy-voice-suxinjiejie", + "说书先生": "lucy-voice-m8", + "憨憨小弟": "lucy-voice-male1", + "憨厚老哥": "lucy-voice-male3", + "吕布": "lucy-voice-lvbu", + "元气少女": "lucy-voice-xueling", + "文艺少女": "lucy-voice-f37", + "磁性大叔": "lucy-voice-male2", + "邻家小妹": "lucy-voice-female1", + "低沉男声": "lucy-voice-m14", + "傲娇少女": "lucy-voice-f38", + "爹系男友": "lucy-voice-m101", + "暖心姐姐": "lucy-voice-female2", + "温柔妹妹": "lucy-voice-f36", + "书香少女": "lucy-voice-f34" +} + + +class AIVoiceBackend(TTSBackendBase): + """ + AI Voice 后端 + + 使用 MaiCore 内置的 AI 语音功能 + 注意:仅支持群聊环境 + """ + + backend_name = "ai_voice" + backend_description = "MaiCore内置AI语音(仅群聊)" + support_private_chat = False # 不支持私聊 + default_audio_format = "" # AI Voice不需要音频格式 + + def __init__(self, config_getter, log_prefix: str = ""): + super().__init__(config_getter, log_prefix) + self._send_command = None # 由外部注入 + + def set_send_command(self, send_command_func: Callable) -> None: + """设置发送命令的函数(由Action/Command注入)""" + self._send_command = send_command_func + + def get_default_voice(self) -> str: + """获取默认音色""" + return self.get_config(ConfigKeys.AI_VOICE_DEFAULT_CHARACTER, "温柔妹妹") + + def resolve_voice(self, voice: Optional[str]) -> str: + """解析音色别名""" + alias_map: Dict[str, str] = self.get_config( + ConfigKeys.AI_VOICE_ALIAS_MAP, + AI_VOICE_ALIAS_MAP + ) + default_voice = self.get_default_voice() + return TTSTextUtils.resolve_voice_alias( + voice, + alias_map, + default_voice, + prefix="lucy-voice-" + ) + + async def execute( + self, + text: str, + voice: Optional[str] = None, + **kwargs + ) -> TTSResult: + """ + 执行AI Voice语音合成 + + Args: + text: 待转换的文本 + voice: 音色名称或别名 + + Returns: + TTSResult + """ + if not self._send_command: + return TTSResult( + success=False, + message="AI Voice后端未正确初始化(缺少send_command)", + backend_name=self.backend_name + ) + + # 解析音色 + character = self.resolve_voice(voice) + + try: + success = await self._send_command( + command_name="AI_VOICE_SEND", + args={"text": text, "character": character}, + storage_message=False + ) + + if success: + logger.info(f"{self.log_prefix} AI语音发送成功 (音色: {character})") + return TTSResult( + success=True, + message=f"成功发送AI语音 (音色: {character})", + backend_name=self.backend_name + ) + else: + return TTSResult( + success=False, + message="AI语音命令发送失败", + backend_name=self.backend_name + ) + + except Exception as e: + logger.error(f"{self.log_prefix} AI语音执行错误: {e}") + return TTSResult( + success=False, + message=f"AI语音执行错误: {e}", + backend_name=self.backend_name + ) diff --git a/backends/base.py b/backends/base.py new file mode 100644 index 00000000..9d8936f4 --- /dev/null +++ b/backends/base.py @@ -0,0 +1,239 @@ +""" +TTS后端抽象基类和注册表 +""" + +import asyncio +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import Dict, Type, Optional, Any, Callable, Tuple, Union +from src.common.logger import get_logger +from ..config_keys import ConfigKeys + +logger = get_logger("tts_backend") + + +@dataclass +class TTSResult: + """TTS执行结果""" + success: bool + message: str + audio_path: Optional[str] = None + backend_name: str = "" + + def __iter__(self): + """支持解包为 (success, message)""" + return iter((self.success, self.message)) + + +class TTSBackendBase(ABC): + """ + TTS后端抽象基类 + + 所有TTS后端必须继承此类并实现 execute 方法 + """ + + # 后端名称(子类必须覆盖) + backend_name: str = "base" + + # 后端描述 + backend_description: str = "TTS后端基类" + + # 是否支持私聊 + support_private_chat: bool = True + + # 默认音频格式 + default_audio_format: str = "mp3" + + def __init__(self, config_getter: Callable[[str, Any], Any], log_prefix: str = ""): + """ + 初始化后端 + + Args: + config_getter: 配置获取函数,签名为 get_config(key, default) + log_prefix: 日志前缀 + """ + self.get_config = config_getter + self.log_prefix = log_prefix or f"[{self.backend_name}]" + self._send_custom = None + + def set_send_custom(self, send_custom_func: Callable) -> None: + """设置发送自定义消息的函数""" + self._send_custom = send_custom_func + + async def send_audio( + self, + audio_data: bytes, + audio_format: str = "mp3", + prefix: str = "tts", + voice_info: str = "" + ) -> TTSResult: + """ + 统一的音频发送方法 + + Args: + audio_data: 音频二进制数据 + audio_format: 音频格式(如mp3、wav) + prefix: 文件名前缀 + voice_info: 音色信息(用于日志) + + Returns: + TTSResult + """ + from ..utils.file import TTSFileManager + + # 检查是否使用base64发送 + use_base64 = self.get_config(ConfigKeys.GENERAL_USE_BASE64_AUDIO, False) + logger.debug(f"{self.log_prefix} 开始发送音频 (原始大小: {len(audio_data)}字节, 格式: {audio_format})") + + if use_base64: + # 使用base64编码发送 + base64_audio = TTSFileManager.audio_to_base64(audio_data) + if not base64_audio: + return TTSResult(False, "音频数据转base64失败", backend_name=self.backend_name) + + logger.debug(f"{self.log_prefix} base64编码完成,准备通过send_custom发送") + if self._send_custom: + await self._send_custom(message_type="voice", content=base64_audio) + logger.info(f"{self.log_prefix} 语音已通过send_custom发送 (base64模式, 音频大小: {len(audio_data)}字节)") + else: + logger.warning(f"{self.log_prefix} send_custom未设置,无法发送语音") + return TTSResult(False, "send_custom回调未设置", backend_name=self.backend_name) + + return TTSResult( + success=True, + message=f"成功发送{self.backend_name}语音{(' ('+voice_info+')') if voice_info else ''}, base64模式", + backend_name=self.backend_name + ) + else: + # 使用文件路径发送 + output_dir = self.get_config(ConfigKeys.GENERAL_AUDIO_OUTPUT_DIR, "") + audio_path = TTSFileManager.generate_temp_path( + prefix=prefix, + suffix=f".{audio_format}", + output_dir=output_dir + ) + + if not await TTSFileManager.write_audio_async(audio_path, audio_data): + return TTSResult(False, "保存音频文件失败", backend_name=self.backend_name) + + logger.debug(f"{self.log_prefix} 音频文件已保存, 路径: {audio_path}") + # 发送语音 + if self._send_custom: + await self._send_custom(message_type="voiceurl", content=audio_path) + logger.info(f"{self.log_prefix} 语音已通过send_custom发送 (文件路径模式, 路径: {audio_path})") + # 延迟清理临时文件 + asyncio.create_task(TTSFileManager.cleanup_file_async(audio_path, delay=30)) + else: + logger.warning(f"{self.log_prefix} send_custom未设置,无法发送语音") + return TTSResult(False, "send_custom回调未设置", backend_name=self.backend_name) + + return TTSResult( + success=True, + message=f"成功发送{self.backend_name}语音{(' ('+voice_info+')') if voice_info else ''}", + audio_path=audio_path, + backend_name=self.backend_name + ) + + @abstractmethod + async def execute( + self, + text: str, + voice: Optional[str] = None, + **kwargs + ) -> TTSResult: + """ + 执行TTS转换 + + Args: + text: 待转换的文本 + voice: 音色/风格 + **kwargs: 其他参数(如emotion等) + + Returns: + TTSResult 包含执行结果 + """ + raise NotImplementedError + + def validate_config(self) -> Tuple[bool, str]: + """ + 验证后端配置是否完整 + + Returns: + (is_valid, error_message) + """ + return True, "" + + def get_default_voice(self) -> str: + """获取默认音色""" + return "" + + def is_available(self) -> bool: + """检查后端是否可用""" + is_valid, _ = self.validate_config() + return is_valid + + +class TTSBackendRegistry: + """ + TTS后端注册表 + + 使用策略模式 + 工厂模式管理后端 + """ + + _backends: Dict[str, Type[TTSBackendBase]] = {} + + @classmethod + def register(cls, name: str, backend_class: Type[TTSBackendBase]) -> None: + """ + 注册后端 + + Args: + name: 后端名称 + backend_class: 后端类 + """ + cls._backends[name] = backend_class + logger.debug(f"注册TTS后端: {name}") + + @classmethod + def unregister(cls, name: str) -> None: + """注销后端""" + if name in cls._backends: + del cls._backends[name] + + @classmethod + def get(cls, name: str) -> Optional[Type[TTSBackendBase]]: + """获取后端类""" + return cls._backends.get(name) + + @classmethod + def create( + cls, + name: str, + config_getter: Callable[[str, Any], Any], + log_prefix: str = "" + ) -> Optional[TTSBackendBase]: + """ + 创建后端实例 + + Args: + name: 后端名称 + config_getter: 配置获取函数 + log_prefix: 日志前缀 + + Returns: + 后端实例或None + """ + backend_class = cls.get(name) + if backend_class: + return backend_class(config_getter, log_prefix) + return None + + @classmethod + def list_backends(cls) -> list[str]: + """列出所有已注册的后端名称""" + return list(cls._backends.keys()) + + @classmethod + def is_registered(cls, name: str) -> bool: + """检查后端是否已注册""" + return name in cls._backends diff --git a/backends/comfyui.py b/backends/comfyui.py new file mode 100644 index 00000000..d574e9fe --- /dev/null +++ b/backends/comfyui.py @@ -0,0 +1,827 @@ +""" +ComfyUI backend (Workflow API). + +This backend calls a fixed ComfyUI prompt graph that: +LoadAudio -> MLX_Qwen3TTSVoiceClone -> SaveAudioMP3 + +Rationale: +- ComfyUI expects API-format "prompt" graphs (not UI workflow json). +- For audio inputs, the simplest reliable path is to copy the reference audio into ComfyUI/input + and use the built-in LoadAudio node. +""" + +from __future__ import annotations + +import asyncio +import hashlib +import os +import re +import time +import uuid +from typing import Any, ClassVar, Dict, Optional, Tuple +from urllib.parse import urlencode + +from src.common.logger import get_logger +from src.plugin_system.apis import generator_api + +from .base import TTSBackendBase, TTSResult +from ..config_keys import ConfigKeys +from ..utils.file import TTSFileManager +from ..utils.session import TTSSessionManager +from ..utils.text import TTSTextUtils + +logger = get_logger("tts_comfyui") + + +LANG_TO_DEMO = { + "zh": "Chinese", + "ja": "Japanese", + "en": "English", +} + + +class ComfyUIBackend(TTSBackendBase): + backend_name = "comfyui" + backend_description = "ComfyUI 工作流 API(MLX Qwen3-TTS VoiceClone/CustomVoice)" + support_private_chat = True + default_audio_format = "mp3" + + _ref_cache: ClassVar[Dict[str, str]] = {} + _instruct_cache: ClassVar[Dict[str, str]] = {} + # If set by subclasses, only these modes are allowed (e.g. {"voice_clone"}). + allowed_modes: ClassVar[Optional[set[str]]] = None + + def get_default_voice(self) -> str: + return self.get_config(ConfigKeys.COMFYUI_DEFAULT_STYLE, "default") + + def _filter_styles_by_mode(self, styles: Dict[str, Any]) -> Dict[str, Any]: + allowed = self.allowed_modes + if not allowed: + return styles + out: Dict[str, Any] = {} + for name, st in (styles or {}).items(): + if not isinstance(st, dict): + continue + mode = str(st.get("mode") or "voice_clone").strip() + if mode in allowed: + out[name] = st + return out + + def _normalize_styles_config(self, styles_config: Any) -> Dict[str, Any]: + # Match GPT-SoVITS backend style schema: list[{name,...}] or dict{name:{...}} + if isinstance(styles_config, dict): + return styles_config + if isinstance(styles_config, list): + result = {} + for style in styles_config: + if isinstance(style, dict) and "name" in style: + name = style["name"] + result[name] = {k: v for k, v in style.items() if k != "name"} + return result + return {} + + def _clean_instruct(self, s: str, max_chars: int) -> str: + s = (s or "").strip() + if not s: + return "" + + # Strip common wrappers. + s = s.replace("```", "").strip() + s = re.sub(r"^instruct\\s*[::]\\s*", "", s, flags=re.IGNORECASE).strip() + + # Prefer first non-empty line. + for line in s.splitlines(): + line = line.strip() + if line: + s = line + break + + # Trim quotes. + if len(s) >= 2 and ((s[0] == s[-1] == '"') or (s[0] == s[-1] == "'")): + s = s[1:-1].strip() + + if max_chars and len(s) > max_chars: + s = s[:max_chars].rstrip() + return s + + def _clean_base_tone(self, s: str) -> str: + """ + Clean a base tone/persona string so it can safely live inside `基调=...`: + - single-line + - no semicolons (they are field separators) + - no '=' (KV separator) + """ + s = (s or "").strip() + if not s: + return "" + s = s.replace("\r", " ").replace("\n", " ") + s = re.sub(r"\\s+", " ", s).strip() + # Avoid breaking KV parsing. + s = s.replace(";", ",").replace(";", ",") + s = s.replace("=", " ").replace("=", " ") + return s.strip(" ,,") + + def _attach_base_tone(self, instruct: str, max_chars: int) -> str: + """ + If configured, prefix inferred instruct with a fixed base tone/persona: + `基调=<...>;情绪=...;语速=...;停顿=...` + + Priority when trimming: keep the inferred instruct fields intact if possible. + """ + base_raw = self.get_config(ConfigKeys.COMFYUI_AUTO_INSTRUCT_BASE_TONE, "") or "" + base = self._clean_base_tone(str(base_raw)) + if not base: + return (instruct or "").strip() + + s = (instruct or "").strip() + fields = self._parse_instruct_fields(s) + if "基调" in fields: + return s + + prefix = f"基调={base}" + if not s: + return prefix[:max_chars].rstrip() if max_chars else prefix + + combined = f"{prefix};{s}" + if not max_chars or len(combined) <= max_chars: + return combined + + # Too long: try trimming base first, keeping inferred instruct intact. + remain = max_chars - len(s) - len(";") - len("基调=") + if remain <= 0: + # Can't fit base at all; keep instruct (already max_chars-limited upstream). + return s[:max_chars].rstrip() + base_trim = base[:remain].rstrip(" ,,") + return f"基调={base_trim};{s}" + + def _parse_instruct_fields(self, instruct: str) -> Dict[str, str]: + """ + Parse a 1-line instruct like: + 情绪=愤怒;语速=很快;停顿=很少;表现=咬牙切齿 + + We only *use* a few keys (情绪/语速/停顿/强度/表现...), but keep it generic. + """ + s = (instruct or "").strip() + if not s: + return {} + + # Normalize separators (full-width punctuation). + s = s.replace(";", ";").replace(":", ":").replace("=", "=") + + # Split by semicolon/comma-like separators. + parts = [p.strip() for p in re.split(r"[;]+", s) if p.strip()] + out: Dict[str, str] = {} + for p in parts: + if "=" not in p: + continue + k, v = p.split("=", 1) + k = k.strip() + v = v.strip() + if not k or not v: + continue + # Limit key length to avoid garbage. + if len(k) > 8: + continue + out[k] = v + return out + + def _map_speed_label(self, label: str) -> Optional[float]: + lab = (label or "").strip() + m = { + "很慢": 0.85, + "稍慢": 0.93, + "正常": 1.00, + "稍快": 1.07, + "很快": 1.15, + } + return m.get(lab) + + def _map_pause_label(self, label: str) -> Optional[float]: + lab = (label or "").strip() + m = { + "很少": 0.6, + "自然": 1.0, + "稍多": 1.3, + "很多": 1.7, + } + return m.get(lab) + + def _ensure_base_pause_cfg(self, pause_cfg: Dict[str, float]) -> Dict[str, float]: + # If caller didn't configure pauses (all zeros), apply a conservative base so "停顿" can take effect. + keys = ["pause_linebreak", "period_pause", "comma_pause", "question_pause", "hyphen_pause"] + if all(float(pause_cfg.get(k, 0.0) or 0.0) == 0.0 for k in keys): + return { + **pause_cfg, + "pause_linebreak": 0.18, + "period_pause": 0.22, + "comma_pause": 0.10, + "question_pause": 0.20, + "hyphen_pause": 0.06, + } + return pause_cfg + + def _enrich_instruct_for_emotion(self, instruct: str, max_chars: int) -> str: + """ + Add short performance cues for common emotions, keeping it single-line KV style. + This helps when the model under-reacts to simple labels like "愤怒". + """ + s = (instruct or "").strip() + if not s: + return "" + + fields = self._parse_instruct_fields(s) + emo = fields.get("情绪", "") + if not emo: + return s + + # Only add if it doesn't already contain a "表现=" field. + if "表现" in fields: + return s + + emo_norm = emo + cues = "" + if "愤怒" in emo_norm or "生气" in emo_norm: + cues = "声压高,咬字重,重音强,尾音下压" + elif "开心" in emo_norm or "高兴" in emo_norm: + cues = "笑意明显,轻快上扬,尾音明亮" + elif "悲伤" in emo_norm or "难过" in emo_norm: + cues = "气声略多,音量偏低,语尾下沉" + elif "温柔" in emo_norm: + cues = "音量轻,气声柔,语尾轻收" + elif "冷淡" in emo_norm or "冷静" in emo_norm: + cues = "平直克制,少起伏,干净收尾" + + if not cues: + return s + + extra = f";表现={cues}" + if max_chars and len(s) + len(extra) > max_chars: + # Trim cues to fit. + allow = max_chars - len(s) - len(";表现=") + if allow <= 0: + return s[:max_chars].rstrip() + cues = cues[:allow].rstrip(",, ") + extra = f";表现={cues}" + return (s + extra)[:max_chars].rstrip() if max_chars else (s + extra) + + def _apply_instruct_controls( + self, instruct: str, speed: float, pause_cfg: Dict[str, float], max_chars: int + ) -> Tuple[str, float, Dict[str, float]]: + """ + If instruct contains '语速'/'停顿', map them to real synthesis controls. + This makes auto_instruct meaningfully affect output even if the model is insensitive to labels. + """ + s = (instruct or "").strip() + if not s: + return "", speed, pause_cfg + + fields = self._parse_instruct_fields(s) + speed_label = fields.get("语速", "") + pause_label = fields.get("停顿", "") + + out_speed = float(speed) + mapped_speed = self._map_speed_label(speed_label) + if mapped_speed is not None: + out_speed = mapped_speed + + out_pause_cfg = dict(pause_cfg or {}) + mapped_pause = self._map_pause_label(pause_label) + if mapped_pause is not None: + out_pause_cfg = self._ensure_base_pause_cfg(out_pause_cfg) + for k in ["pause_linebreak", "period_pause", "comma_pause", "question_pause", "hyphen_pause"]: + try: + out_pause_cfg[k] = float(out_pause_cfg.get(k, 0.0) or 0.0) * float(mapped_pause) + except Exception: + pass + + # Add short performance cues (kept within max_chars). + s = self._enrich_instruct_for_emotion(s, max_chars=max_chars) + return s, out_speed, out_pause_cfg + + async def _infer_instruct( + self, + text: str, + detected_lang: str, + chat_stream=None, + chat_id: Optional[str] = None, + style_name: str = "", + ) -> str: + """ + Infer a short CustomVoice `instruct` string from the target text via MaiBot's LLM interface. + """ + enabled = bool(self.get_config(ConfigKeys.COMFYUI_AUTO_INSTRUCT_ENABLED, False)) + if not enabled: + return "" + + max_chars = int(self.get_config(ConfigKeys.COMFYUI_AUTO_INSTRUCT_MAX_CHARS, 40) or 40) + + # Default prompt: output ONE short instruct line only. + default_tpl = ( + "你是配音导演。请根据要朗读的文本生成一行 TTS instruct。\\n" + "硬性要求:必须同时包含【情绪】【语速】【停顿】三项。可以额外补充 1-2 个表演提示(如 音量/重音/音高/表现)。\\n" + "只输出一行,不要解释,不要复述原文,不要引号/代码块。\\n" + "输出格式固定为:情绪=<...>;语速=<...>;停顿=<...>\\n" + "语速可选:很慢/稍慢/正常/稍快/很快。\\n" + "停顿可选:很少/自然/稍多/很多。\\n" + "长度<= {max_chars} 字。\\n" + "文本语言: {lang}\\n" + "待朗读文本: {text}\\n" + ) + prompt_tpl = str(self.get_config(ConfigKeys.COMFYUI_AUTO_INSTRUCT_PROMPT, default_tpl) or "") + if not prompt_tpl.strip(): + prompt_tpl = default_tpl + + # Cache key should change if prompt/base_tone/max_chars changes. + base_raw = str(self.get_config(ConfigKeys.COMFYUI_AUTO_INSTRUCT_BASE_TONE, "") or "") + cfg_sig_src = f"{max_chars}\\n{prompt_tpl}\\n{base_raw}" + cfg_sig = hashlib.sha256(cfg_sig_src.encode("utf-8")).hexdigest()[:12] + text_sig = hashlib.sha256(text.encode("utf-8")).hexdigest()[:16] + cache_key = f"{cfg_sig}:{detected_lang}:{text_sig}" + cached = self._instruct_cache.get(cache_key) + if cached: + return cached + + lang = detected_lang or "auto" + prompt = prompt_tpl.format(text=text.strip(), lang=lang, max_chars=max_chars) + + try: + resp = await generator_api.generate_tts_instruct( + prompt=prompt, + request_type="tts_instruct", + ) + instruct = self._clean_instruct(resp or "", max_chars=max_chars) + instruct = self._attach_base_tone(instruct, max_chars=max_chars) + if instruct: + self._instruct_cache[cache_key] = instruct + return instruct + except Exception as e: + logger.warning(f"{self.log_prefix} auto_instruct 失败(style={style_name}): {e}") + return "" + + def validate_config(self) -> Tuple[bool, str]: + server = self.get_config(ConfigKeys.COMFYUI_SERVER, "http://127.0.0.1:8188") + if not server: + return False, "ComfyUI 未配置 server" + + input_dir = self.get_config( + ConfigKeys.COMFYUI_INPUT_DIR, + "/Users/xenon/Downloads/seiun_tts/ComfyUI/ComfyUI/input", + ) + if not input_dir: + return False, "ComfyUI 未配置 input_dir" + + styles_raw = self.get_config(ConfigKeys.COMFYUI_STYLES, {}) + styles = self._normalize_styles_config(styles_raw) + if not styles: + return False, "ComfyUI 后端未配置任何风格(至少需要配置 1 个 style)" + + default_name = self.get_default_voice() or "default" + if default_name not in styles: + # Fallback to "default" if present. + if "default" in styles: + default_name = "default" + else: + return False, f"ComfyUI default_style='{default_name}' 不存在" + + st = styles.get(default_name, {}) + mode = (st.get("mode") or "voice_clone").strip() + if mode == "voice_clone": + if not st.get("refer_wav") or not st.get("prompt_text"): + return False, f"ComfyUI 风格 '{default_name}' 配置不完整(voice_clone 需要 refer_wav 和 prompt_text)" + elif mode == "custom_voice": + if not st.get("model_path") or not st.get("speaker"): + return False, f"ComfyUI 风格 '{default_name}' 配置不完整(custom_voice 需要 model_path 和 speaker)" + else: + return False, f"ComfyUI 风格 '{default_name}' mode 无效: {mode}" + + return True, "" + + def _ensure_ref_in_input(self, input_dir: str, refer_wav: str) -> str: + refer_wav = TTSFileManager.resolve_path(refer_wav) + if not os.path.exists(refer_wav): + raise FileNotFoundError(f"参考音频不存在: {refer_wav}") + + st = os.stat(refer_wav) + cache_key = f"{os.path.abspath(refer_wav)}:{st.st_mtime_ns}:{st.st_size}" + if cache_key in self._ref_cache: + name = self._ref_cache[cache_key] + if os.path.exists(os.path.join(input_dir, name)): + return name + + ext = os.path.splitext(refer_wav)[1] or ".wav" + h = hashlib.sha256(cache_key.encode("utf-8")).hexdigest()[:16] + name = f"maibot_ref_{h}{ext}" + dst = os.path.join(input_dir, name) + + os.makedirs(input_dir, exist_ok=True) + if not os.path.exists(dst): + # Keep it simple: copy file bytes. LoadAudio can decode common formats (wav/mp3). + import shutil + + shutil.copyfile(refer_wav, dst) + + self._ref_cache[cache_key] = name + return name + + def _build_prompt_voice_clone( + self, + ref_filename: str, + ref_text: str, + target_text: str, + language: str, + model_choice: str, + precision: str, + seed: int, + max_new_tokens: int, + top_p: float, + top_k: int, + temperature: float, + repetition_penalty: float, + audio_quality: str, + mlx_python: str, + mlx_cli: str, + pause_cfg: Dict[str, float], + ) -> Dict[str, Any]: + # Node IDs are arbitrary but stable in this prompt template. + # 1: LoadAudio -> outputs AUDIO + # 2: Pause config (FB_Qwen3TTSConfig) -> outputs TTS_CONFIG + # 3: MLX VoiceClone -> outputs AUDIO + # 4: SaveAudioMP3 -> outputs UI audio file info + filename_prefix = f"audio/maibot_comfyui_{int(time.time())}_{uuid.uuid4().hex[:8]}" + prompt: Dict[str, Any] = { + "1": { + "class_type": "LoadAudio", + "inputs": { + "audio": ref_filename, + }, + }, + "2": { + "class_type": "FB_Qwen3TTSConfig", + "inputs": { + "pause_linebreak": float(pause_cfg.get("pause_linebreak", 0.0)), + "period_pause": float(pause_cfg.get("period_pause", 0.0)), + "comma_pause": float(pause_cfg.get("comma_pause", 0.0)), + "question_pause": float(pause_cfg.get("question_pause", 0.0)), + "hyphen_pause": float(pause_cfg.get("hyphen_pause", 0.0)), + }, + }, + "3": { + "class_type": "MLX_Qwen3TTSVoiceClone", + "inputs": { + "target_text": target_text, + "model_choice": model_choice, + "device": "auto", + "precision": precision, + "language": language, + "ref_audio": ["1", 0], + "ref_text": ref_text, + "seed": int(seed), + "max_new_tokens": int(max_new_tokens), + "top_p": float(top_p), + "top_k": int(top_k), + "temperature": float(temperature), + "repetition_penalty": float(repetition_penalty), + "attention": "auto", + "unload_model_after_generate": False, + "config": ["2", 0], + "mlx_python": mlx_python, + "mlx_cli": mlx_cli, + }, + }, + "4": { + "class_type": "SaveAudioMP3", + "inputs": { + "audio": ["3", 0], + "filename_prefix": filename_prefix, + "quality": audio_quality, + }, + }, + } + return prompt + + def _build_prompt_custom_voice( + self, + target_text: str, + speaker: str, + model_path: str, + instruct: str, + speed: float, + language: str, + seed: int, + max_new_tokens: int, + top_p: float, + top_k: int, + temperature: float, + repetition_penalty: float, + audio_quality: str, + mlx_python: str, + mlx_cli: str, + pause_cfg: Dict[str, float], + ) -> Dict[str, Any]: + # 2: Pause config (FB_Qwen3TTSConfig) -> outputs TTS_CONFIG + # 3: MLX CustomVoice -> outputs AUDIO + # 4: SaveAudioMP3 -> outputs UI audio file info + filename_prefix = f"audio/maibot_comfyui_{int(time.time())}_{uuid.uuid4().hex[:8]}" + prompt: Dict[str, Any] = { + "2": { + "class_type": "FB_Qwen3TTSConfig", + "inputs": { + "pause_linebreak": float(pause_cfg.get("pause_linebreak", 0.0)), + "period_pause": float(pause_cfg.get("period_pause", 0.0)), + "comma_pause": float(pause_cfg.get("comma_pause", 0.0)), + "question_pause": float(pause_cfg.get("question_pause", 0.0)), + "hyphen_pause": float(pause_cfg.get("hyphen_pause", 0.0)), + }, + }, + "3": { + "class_type": "MLX_Qwen3TTSCustomVoice", + "inputs": { + "text": target_text, + "speaker": speaker, + "model_path": model_path, + "instruct": instruct or "", + "speed": float(speed), + "language": language, + "seed": int(seed), + "max_new_tokens": int(max_new_tokens), + "top_p": float(top_p), + "top_k": int(top_k), + "temperature": float(temperature), + "repetition_penalty": float(repetition_penalty), + "config": ["2", 0], + "mlx_python": mlx_python, + "mlx_cli": mlx_cli, + }, + }, + "4": { + "class_type": "SaveAudioMP3", + "inputs": { + "audio": ["3", 0], + "filename_prefix": filename_prefix, + "quality": audio_quality, + }, + }, + } + return prompt + + async def _queue_and_wait( + self, server: str, prompt: Dict[str, Any], timeout: int + ) -> Dict[str, Any]: + session_manager = await TTSSessionManager.get_instance() + prompt_id = str(uuid.uuid4()) + + post_url = f"{server.rstrip('/')}/prompt" + payload = { + "prompt": prompt, + "client_id": "maibot-tts-voice-plugin", + "prompt_id": prompt_id, + } + + async with session_manager.post( + post_url, json=payload, backend_name=self.backend_name, timeout=timeout + ) as resp: + data = await resp.json(content_type=None) + if resp.status != 200: + raise RuntimeError(f"ComfyUI /prompt 失败: {resp.status} {str(data)[:200]}") + if "error" in data: + raise RuntimeError(f"ComfyUI /prompt 返回错误: {data['error']}") + + # Poll history until prompt_id appears + hist_url = f"{server.rstrip('/')}/history/{prompt_id}" + deadline = time.time() + float(timeout) + while time.time() < deadline: + async with session_manager.get( + hist_url, backend_name=self.backend_name, timeout=timeout + ) as resp: + history = await resp.json(content_type=None) + if prompt_id in history: + return history[prompt_id] + await asyncio.sleep(0.35) + + raise TimeoutError("等待 ComfyUI 生成超时") + + async def _download_output_audio(self, server: str, history_item: Dict[str, Any], timeout: int) -> bytes: + outputs = history_item.get("outputs") or {} + node_out = outputs.get("4") or {} + audios = node_out.get("audio") or [] + if not audios: + # Some failures show up only in status/messages. + status = history_item.get("status") or {} + raise RuntimeError(f"ComfyUI 未产出音频. status={status}") + + a0 = audios[0] + filename = a0.get("filename") + subfolder = a0.get("subfolder", "") + folder_type = a0.get("type", "output") + if not filename: + raise RuntimeError(f"ComfyUI 音频输出结构异常: {a0}") + + q = urlencode({"filename": filename, "subfolder": subfolder, "type": folder_type}) + url = f"{server.rstrip('/')}/view?{q}" + + session_manager = await TTSSessionManager.get_instance() + async with session_manager.get(url, backend_name=self.backend_name, timeout=timeout) as resp: + if resp.status != 200: + txt = await resp.text() + raise RuntimeError(f"ComfyUI /view 失败: {resp.status} {txt[:200]}") + return await resp.read() + + async def execute(self, text: str, voice: Optional[str] = None, **kwargs) -> TTSResult: + is_valid, err = self.validate_config() + if not is_valid: + return TTSResult(False, err, backend_name=self.backend_name) + + if not text or not text.strip(): + return TTSResult(False, "待合成的文本为空", backend_name=self.backend_name) + + server = self.get_config(ConfigKeys.COMFYUI_SERVER, "http://127.0.0.1:8188") + input_dir = self.get_config( + ConfigKeys.COMFYUI_INPUT_DIR, + "/Users/xenon/Downloads/seiun_tts/ComfyUI/ComfyUI/input", + ) + timeout = int(self.get_config(ConfigKeys.COMFYUI_TIMEOUT, self.get_config(ConfigKeys.GENERAL_TIMEOUT, 60))) + + audio_quality = self.get_config(ConfigKeys.COMFYUI_AUDIO_QUALITY, "128k") + mlx_python = self.get_config( + ConfigKeys.COMFYUI_MLX_PYTHON, + "/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/.venv/bin/python", + ) + mlx_cli = self.get_config( + ConfigKeys.COMFYUI_MLX_CLI, + "/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/mlx_voice_clone_cli.py", + ) + + styles_raw = self.get_config(ConfigKeys.COMFYUI_STYLES, {}) + styles = self._filter_styles_by_mode(self._normalize_styles_config(styles_raw)) + + style_name = (voice or self.get_default_voice() or "").strip() or "default" + if style_name not in styles: + # For split backends (voiceclone/customvoice), make "wrong style" errors explicit. + if (voice or "").strip() and self.allowed_modes: + return TTSResult( + False, + f"ComfyUI风格 '{style_name}' 不存在或不属于当前后端({self.backend_name})", + backend_name=self.backend_name, + ) + # Fallback order: "default" -> first available style. + if "default" in styles: + style_name = "default" + elif styles: + style_name = sorted(styles.keys())[0] + else: + return TTSResult( + False, + f"ComfyUI 未配置任何风格({self.backend_name})", + backend_name=self.backend_name, + ) + style = styles.get(style_name, {}) + + mode = (style.get("mode") or "voice_clone").strip() + if mode == "voice_clone": + refer_wav = style.get("refer_wav", "") + prompt_text = style.get("prompt_text", "") + if not refer_wav or not prompt_text: + return TTSResult(False, f"ComfyUI风格 '{style_name}' 配置不完整(voice_clone)", backend_name=self.backend_name) + elif mode == "custom_voice": + model_path = style.get("model_path", "") + speaker = style.get("speaker", "") + if not model_path or not speaker: + return TTSResult(False, f"ComfyUI风格 '{style_name}' 配置不完整(custom_voice)", backend_name=self.backend_name) + else: + return TTSResult(False, f"ComfyUI风格 '{style_name}' mode 无效: {mode}", backend_name=self.backend_name) + + # Map language to the MLX node's language combo. Default to Auto. + detected = TTSTextUtils.detect_language(text) + language = style.get("language") or LANG_TO_DEMO.get(detected, "Auto") + + # Sampling defaults match the MLX node defaults we exposed. + seed = int(style.get("seed", 0) or 0) + model_choice = str(style.get("model_choice", "1.7B") or "1.7B") + precision = str(style.get("precision", "bf16") or "bf16") + max_new_tokens = int(style.get("max_new_tokens", 2048) or 2048) + top_p = float(style.get("top_p", 0.8) or 0.8) + top_k = int(style.get("top_k", 20) or 20) + temperature = float(style.get("temperature", 1.0) or 1.0) + repetition_penalty = float(style.get("repetition_penalty", 1.05) or 1.05) + + pause_cfg = { + "pause_linebreak": float(self.get_config(ConfigKeys.COMFYUI_PAUSE_LINEBREAK, 0.0)), + "period_pause": float(self.get_config(ConfigKeys.COMFYUI_PERIOD_PAUSE, 0.0)), + "comma_pause": float(self.get_config(ConfigKeys.COMFYUI_COMMA_PAUSE, 0.0)), + "question_pause": float(self.get_config(ConfigKeys.COMFYUI_QUESTION_PAUSE, 0.0)), + "hyphen_pause": float(self.get_config(ConfigKeys.COMFYUI_HYPHEN_PAUSE, 0.0)), + } + # Allow per-style override. + if isinstance(style.get("pause_cfg"), dict): + for k in pause_cfg.keys(): + if k in style["pause_cfg"]: + try: + pause_cfg[k] = float(style["pause_cfg"][k]) + except Exception: + pass + + try: + if mode == "voice_clone": + ref_filename = self._ensure_ref_in_input(input_dir, style.get("refer_wav", "")) + prompt = self._build_prompt_voice_clone( + ref_filename=ref_filename, + ref_text=style.get("prompt_text", ""), + target_text=text, + language=language, + model_choice=model_choice, + precision=precision, + seed=seed, + max_new_tokens=max_new_tokens, + top_p=top_p, + top_k=top_k, + temperature=temperature, + repetition_penalty=repetition_penalty, + audio_quality=audio_quality, + mlx_python=mlx_python, + mlx_cli=mlx_cli, + pause_cfg=pause_cfg, + ) + else: + # Allow per-style / automatic instruct inference. + instruct = str(style.get("instruct", "")).strip() + auto_style = bool(style.get("auto_instruct", False)) + inferred = "" + if instruct == "__AUTO__" or (not instruct and auto_style): + chat_stream = kwargs.get("chat_stream") + chat_id = kwargs.get("chat_id") + inferred = await self._infer_instruct( + text=text, + detected_lang=detected, + chat_stream=chat_stream, + chat_id=chat_id, + style_name=style_name, + ) + if inferred: + instruct = inferred + + # If the instruct contains usable fields, map them to real controls. + max_chars = int(self.get_config(ConfigKeys.COMFYUI_AUTO_INSTRUCT_MAX_CHARS, 40) or 40) + instruct, mapped_speed, mapped_pause_cfg = self._apply_instruct_controls( + instruct=instruct, + speed=float(style.get("speed", 1.0) or 1.0), + pause_cfg=pause_cfg, + max_chars=max_chars, + ) + + prompt = self._build_prompt_custom_voice( + target_text=text, + speaker=str(style.get("speaker", "")).strip(), + model_path=str(style.get("model_path", "")).strip(), + instruct=instruct, + speed=mapped_speed, + language=language, + seed=seed, + max_new_tokens=max_new_tokens, + top_p=top_p, + top_k=top_k, + temperature=temperature, + repetition_penalty=repetition_penalty, + audio_quality=audio_quality, + mlx_python=mlx_python, + mlx_cli=mlx_cli, + pause_cfg=mapped_pause_cfg, + ) + + logger.info(f"{self.log_prefix} ComfyUI请求: text='{text[:50]}...', style={style_name}") + history_item = await self._queue_and_wait(server, prompt, timeout=timeout) + audio_bytes = await self._download_output_audio(server, history_item, timeout=timeout) + + ok, msg = TTSFileManager.validate_audio_data(audio_bytes) + if not ok: + return TTSResult(False, f"ComfyUI 返回音频无效: {msg}", backend_name=self.backend_name) + + return await self.send_audio( + audio_data=audio_bytes, + audio_format="mp3", + prefix="tts_comfyui", + voice_info=f"style: {style_name}", + ) + except Exception as e: + return TTSResult(False, f"ComfyUI后端错误: {e}", backend_name=self.backend_name) + + +class ComfyUIVoiceCloneBackend(ComfyUIBackend): + backend_name = "comfyui_voiceclone" + backend_description = "ComfyUI 工作流 API(MLX Qwen3-TTS VoiceClone 专用)" + allowed_modes = {"voice_clone"} + + def get_default_voice(self) -> str: + v = self.get_config(ConfigKeys.COMFYUI_VOICECLONE_DEFAULT_STYLE, "") or "" + v = v.strip() + return v or super().get_default_voice() + + +class ComfyUICustomVoiceBackend(ComfyUIBackend): + backend_name = "comfyui_customvoice" + backend_description = "ComfyUI 工作流 API(MLX Qwen3-TTS CustomVoice 专用)" + allowed_modes = {"custom_voice"} + + def get_default_voice(self) -> str: + v = self.get_config(ConfigKeys.COMFYUI_CUSTOMVOICE_DEFAULT_STYLE, "") or "" + v = v.strip() + return v or super().get_default_voice() diff --git a/backends/cosyvoice.py b/backends/cosyvoice.py new file mode 100644 index 00000000..28199815 --- /dev/null +++ b/backends/cosyvoice.py @@ -0,0 +1,285 @@ +""" +CosyVoice后端实现 +使用 ModelScope 的 Fun-CosyVoice3-0.5B Gradio API 进行语音合成 +""" + +import asyncio +import os +import shutil +from typing import Optional, Tuple +from .base import TTSBackendBase, TTSResult +from ..utils.file import TTSFileManager +from ..config_keys import ConfigKeys +from src.common.logger import get_logger + +logger = get_logger("tts_cosyvoice") + +# CosyVoice指令映射表(方言、情感、语速等) +COSYVOICE_INSTRUCT_MAP = { + # 方言 + "广东话": "You are a helpful assistant. 请用广东话表达。<|endofprompt|>", + "东北话": "You are a helpful assistant. 请用东北话表达。<|endofprompt|>", + "甘肃话": "You are a helpful assistant. 请用甘肃话表达。<|endofprompt|>", + "贵州话": "You are a helpful assistant. 请用贵州话表达。<|endofprompt|>", + "河南话": "You are a helpful assistant. 请用河南话表达。<|endofprompt|>", + "湖北话": "You are a helpful assistant. 请用湖北话表达。<|endofprompt|>", + "湖南话": "You are a helpful assistant. 请用湖南话表达。<|endofprompt|>", + "江西话": "You are a helpful assistant. 请用江西话表达。<|endofprompt|>", + "闽南话": "You are a helpful assistant. 请用闽南话表达。<|endofprompt|>", + "宁夏话": "You are a helpful assistant. 请用宁夏话表达。<|endofprompt|>", + "山西话": "You are a helpful assistant. 请用山西话表达。<|endofprompt|>", + "陕西话": "You are a helpful assistant. 请用陕西话表达。<|endofprompt|>", + "山东话": "You are a helpful assistant. 请用山东话表达。<|endofprompt|>", + "上海话": "You are a helpful assistant. 请用上海话表达。<|endofprompt|>", + "四川话": "You are a helpful assistant. 请用四川话表达。<|endofprompt|>", + "天津话": "You are a helpful assistant. 请用天津话表达。<|endofprompt|>", + "云南话": "You are a helpful assistant. 请用云南话表达。<|endofprompt|>", + + # 音量 + "大声": "You are a helpful assistant. Please say a sentence as loudly as possible.<|endofprompt|>", + "小声": "You are a helpful assistant. Please say a sentence in a very soft voice.<|endofprompt|>", + + # 语速 + "慢速": "You are a helpful assistant. 请用尽可能慢地语速说一句话。<|endofprompt|>", + "快速": "You are a helpful assistant. 请用尽可能快地语速说一句话。<|endofprompt|>", + + # 情感 + "开心": "You are a helpful assistant. 请非常开心地说一句话。<|endofprompt|>", + "伤心": "You are a helpful assistant. 请非常伤心地说一句话。<|endofprompt|>", + "生气": "You are a helpful assistant. 请非常生气地说一句话。<|endofprompt|>", + + # 特殊风格 + "小猪佩奇": "You are a helpful assistant. 我想体验一下小猪佩奇风格,可以吗?<|endofprompt|>", + "机器人": "You are a helpful assistant. 你可以尝试用机器人的方式解答吗?<|endofprompt|>", +} + + +class CosyVoiceBackend(TTSBackendBase): + """ + CosyVoice语音后端 + + 使用 ModelScope 的 Fun-CosyVoice3-0.5B Gradio API 进行语音合成 + 支持3秒极速复刻、自然语言控制(方言、情感、语速等) + """ + + backend_name = "cosyvoice" + backend_description = "阿里云 CosyVoice3 API (ModelScope Gradio)" + support_private_chat = True + default_audio_format = "wav" + + def get_default_voice(self) -> str: + """获取默认音色(CosyVoice 不需要预设音色)""" + return "" + + def validate_config(self) -> Tuple[bool, str]: + """验证配置""" + gradio_url = self.get_config(ConfigKeys.COSYVOICE_GRADIO_URL, "") + + if not gradio_url: + return False, "CosyVoice后端缺少必需的 gradio_url 配置" + + return True, "" + + def _resolve_instruct(self, emotion: Optional[str]) -> str: + """ + 解析情感参数为指令文本 + + Args: + emotion: 情感/方言关键词 + + Returns: + 指令文本 + """ + if emotion and emotion in COSYVOICE_INSTRUCT_MAP: + return COSYVOICE_INSTRUCT_MAP[emotion] + + # 返回默认指令(确保不为空) + default_instruct = self.get_config( + ConfigKeys.COSYVOICE_DEFAULT_INSTRUCT, + "You are a helpful assistant. 请用广东话表达。<|endofprompt|>" + ) + + # 如果配置为空,强制使用广东话 + if not default_instruct or not default_instruct.strip(): + default_instruct = "You are a helpful assistant. 请用广东话表达。<|endofprompt|>" + + return default_instruct + + async def execute( + self, + text: str, + voice: Optional[str] = None, + emotion: Optional[str] = None, + **kwargs + ) -> TTSResult: + """ + 执行 CosyVoice 语音合成 + + Args: + text: 待转换的文本 + voice: 音色(对于CosyVoice,这个参数用于指定参考音频路径) + emotion: 情感/方言/语速参数 + + Returns: + TTSResult + """ + # 验证配置 + is_valid, error_msg = self.validate_config() + if not is_valid: + return TTSResult(False, error_msg, backend_name=self.backend_name) + + # 验证文本 + if not text or not text.strip(): + return TTSResult(False, "待合成的文本为空", backend_name=self.backend_name) + + # 获取配置 + gradio_url = self.get_config(ConfigKeys.COSYVOICE_GRADIO_URL, "") + mode_config = self.get_config(ConfigKeys.COSYVOICE_DEFAULT_MODE, "3s极速复刻") + + # mode_checkbox_group 实际上是 Radio 组件,期望字符串而不是列表 + # 处理配置可能返回字符串或列表的情况 + if isinstance(mode_config, list): + mode_str = mode_config[0] if mode_config else "3s极速复刻" + else: + mode_str = mode_config if mode_config else "3s极速复刻" + + timeout = self.get_config(ConfigKeys.COSYVOICE_TIMEOUT, 60) + reference_audio = self.get_config(ConfigKeys.COSYVOICE_REFERENCE_AUDIO, "") + prompt_text = self.get_config(ConfigKeys.COSYVOICE_PROMPT_TEXT, "") + + # CosyVoice 的"自然语言控制"模式实际上需要参考音频和 prompt_text + # 如果没有配置,使用默认的参考音频 + if not reference_audio or not os.path.exists(reference_audio): + plugin_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + default_audio = os.path.join(plugin_dir, "test.wav") + if os.path.exists(default_audio): + reference_audio = default_audio + logger.debug(f"{self.log_prefix} 使用默认参考音频: {reference_audio}") + + # 如果没有 prompt_text,使用默认文本 + if not prompt_text: + prompt_text = "大家好,我是嘉然,今天我来为大家朗读。" + logger.debug(f"{self.log_prefix} 使用默认 prompt_text") + + # voice 参数可以覆盖配置文件中的参考音频 + if voice and os.path.exists(voice): + reference_audio = voice + + # 解析指令文本 + instruct_text = self._resolve_instruct(emotion) + + logger.info( + f"{self.log_prefix} CosyVoice请求: text='{text[:50]}...' " + f"(共{len(text)}字符), mode={mode_str}, instruct={emotion or '默认'}" + ) + + try: + # 动态导入 gradio_client(避免全局依赖) + try: + from gradio_client import Client, handle_file + except ImportError: + logger.error(f"{self.log_prefix} gradio_client 未安装,请运行: pip install gradio_client") + return TTSResult( + False, + "gradio_client 未安装,请运行: pip install gradio_client", + backend_name=self.backend_name + ) + + # 创建 Gradio 客户端(设置超时) + try: + import httpx + httpx_kwargs = {"timeout": httpx.Timeout(timeout, read=timeout, write=timeout, connect=30.0)} + client = Client(gradio_url, httpx_kwargs=httpx_kwargs) + except Exception as e: + logger.warning(f"{self.log_prefix} 无法设置 httpx 超时,使用默认配置: {e}") + client = Client(gradio_url) + + # 准备参数 + logger.debug(f"{self.log_prefix} 准备参考音频: {reference_audio}") + prompt_wav_upload = handle_file(reference_audio) if reference_audio and os.path.exists(reference_audio) else None + logger.debug(f"{self.log_prefix} 参考音频准备完成") + + # 调用 API + logger.info(f"{self.log_prefix} 调用 Gradio API: {gradio_url} (超时: {timeout}秒)") + logger.debug(f"{self.log_prefix} mode参数: {mode_str} (type: {type(mode_str).__name__})") + logger.debug(f"{self.log_prefix} prompt_text: {prompt_text[:50]}...") + logger.debug(f"{self.log_prefix} instruct_text: {instruct_text[:50]}...") + + result = await asyncio.wait_for( + asyncio.to_thread( + client.predict, + tts_text=text, + mode_checkbox_group=mode_str, + prompt_text=prompt_text, + prompt_wav_upload=prompt_wav_upload, + prompt_wav_record=None, + instruct_text=instruct_text, + seed=0, + stream=False, # API 实际期望布尔值 False,虽然文档显示为 Literal['False'] + api_name="/generate_audio" + ), + timeout=timeout + ) + + logger.info(f"{self.log_prefix} CosyVoice API 响应成功") + + # result 是生成的音频文件路径 + if not result or not os.path.exists(result): + return TTSResult( + False, + f"CosyVoice 生成失败,未返回有效文件: {result}", + backend_name=self.backend_name + ) + + # 读取音频数据 + try: + with open(result, 'rb') as f: + audio_data = f.read() + except Exception as e: + logger.error(f"{self.log_prefix} 读取音频文件失败: {e}") + return TTSResult( + False, + f"读取音频文件失败: {e}", + backend_name=self.backend_name + ) + + # 验证音频数据 + is_valid, error_msg = TTSFileManager.validate_audio_data(audio_data) + if not is_valid: + logger.warning(f"{self.log_prefix} CosyVoice音频数据验证失败: {error_msg}") + return TTSResult( + False, + f"CosyVoice语音{error_msg}", + backend_name=self.backend_name + ) + + logger.debug( + f"{self.log_prefix} CosyVoice音频数据验证通过 " + f"(大小: {len(audio_data)}字节)" + ) + + # 使用统一的发送方法 + audio_format = self.get_config(ConfigKeys.COSYVOICE_AUDIO_FORMAT, "wav") + voice_info = f"模式: {mode_str}, 指令: {emotion or '默认'}" + + return await self.send_audio( + audio_data=audio_data, + audio_format=audio_format, + prefix="tts_cosyvoice", + voice_info=voice_info + ) + + except asyncio.TimeoutError: + logger.error(f"{self.log_prefix} CosyVoice API 请求超时 (配置超时: {timeout}秒)") + return TTSResult( + False, + "CosyVoice API 调用超时", + backend_name=self.backend_name + ) + except Exception as e: + logger.error(f"{self.log_prefix} CosyVoice 执行异常: {e}") + return TTSResult( + False, + f"CosyVoice 执行错误: {e}", + backend_name=self.backend_name + ) diff --git a/backends/doubao.py b/backends/doubao.py new file mode 100644 index 00000000..4c566abf --- /dev/null +++ b/backends/doubao.py @@ -0,0 +1,230 @@ +""" +豆包语音后端实现 +使用字节跳动豆包语音 API 进行语音合成 +""" + +import asyncio +import uuid +from typing import Optional, List, Dict, Tuple +from .base import TTSBackendBase, TTSResult +from .doubao_stream_parser import DoubaoStreamParser +from ..utils.file import TTSFileManager +from ..utils.session import TTSSessionManager +from ..config_keys import ConfigKeys +from src.common.logger import get_logger + +logger = get_logger("tts_doubao") + +# 豆包语音情感映射表(用于自动生成context_texts) +DOUBAO_EMOTION_MAP = { + # 积极情绪 + "开心": "你的语气再欢乐一点", + "兴奋": "用特别兴奋激动的语气说话", + "温柔": "用温柔体贴的语气说话", + "骄傲": "用骄傲的语气说话", + "自信": "用自信坚定的语气说话", + + # 消极情绪 + "生气": "你得跟我互怼!就是跟我用吵架的语气对话", + "愤怒": "用愤怒的语气说话", + "伤心": "用特别特别痛心的语气说话", + "失望": "用失望沮丧的语气说话", + "委屈": "用委屈的语气说话", + + # 中性情绪 + "平静": "用平静淡定的语气说话", + "严肃": "用严肃认真的语气说话", + "疑惑": "用疑惑不解的语气说话", + + # 语速调整 + "慢速": "说慢一点", + "快速": "说快一点", + + # 音量调整 + "小声": "你嗓门再小点", + "大声": "大声一点", +} + + +class DoubaoBackend(TTSBackendBase): + """ + 豆包语音后端 + + 使用字节跳动豆包语音 API 进行高质量语音合成 + 支持预置音色和复刻音色 + """ + + backend_name = "doubao" + backend_description = "字节跳动豆包语音API" + support_private_chat = True + default_audio_format = "mp3" + + def get_default_voice(self) -> str: + """获取默认音色""" + return self.get_config(ConfigKeys.DOUBAO_DEFAULT_VOICE, "zh_female_shuangkuaisisi_moon_bigtts") + + def validate_config(self) -> Tuple[bool, str]: + """验证配置""" + app_id = self.get_config(ConfigKeys.DOUBAO_APP_ID, "") + access_key = self.get_config(ConfigKeys.DOUBAO_ACCESS_KEY, "") + resource_id = self.get_config(ConfigKeys.DOUBAO_RESOURCE_ID, "") + + if not app_id or not access_key or not resource_id: + return False, "豆包语音后端缺少必需的认证配置(app_id/access_key/resource_id)" + + return True, "" + + def _resolve_emotion(self, emotion: Optional[str]) -> Optional[List[str]]: + """ + 解析情感参数为 context_texts + + Args: + emotion: 情感关键词 + + Returns: + context_texts 列表或 None + """ + if emotion and emotion in DOUBAO_EMOTION_MAP: + return [DOUBAO_EMOTION_MAP[emotion]] + return None + + async def execute( + self, + text: str, + voice: Optional[str] = None, + emotion: Optional[str] = None, + **kwargs + ) -> TTSResult: + """ + 执行豆包语音合成 + + Args: + text: 待转换的文本 + voice: 音色ID + emotion: 情感/语气参数 + + Returns: + TTSResult + """ + # 验证配置 + is_valid, error_msg = self.validate_config() + if not is_valid: + return TTSResult(False, error_msg, backend_name=self.backend_name) + + # 验证文本 + if not text or not text.strip(): + return TTSResult(False, "待合成的文本为空", backend_name=self.backend_name) + + # 获取配置 + api_url = self.get_config(ConfigKeys.DOUBAO_API_URL, "https://openspeech.bytedance.com/api/v3/tts/unidirectional") + app_id = self.get_config(ConfigKeys.DOUBAO_APP_ID, "") + access_key = self.get_config(ConfigKeys.DOUBAO_ACCESS_KEY, "") + resource_id = self.get_config(ConfigKeys.DOUBAO_RESOURCE_ID, "") + timeout = self.get_config(ConfigKeys.DOUBAO_TIMEOUT, 30) + + if not voice: + voice = self.get_default_voice() + + # 构建请求头 + headers = { + "Content-Type": "application/json", + "X-Api-App-Id": app_id, + "X-Api-Access-Key": access_key, + "X-Api-Resource-Id": resource_id, + "X-Api-Request-Id": str(uuid.uuid4()), + "Accept-Encoding": "gzip, deflate" + } + + # 构建请求体 + request_data: Dict[str, any] = { + "req_params": { + "text": text, + "speaker": voice, + "audio_params": { + "format": self.get_config(ConfigKeys.DOUBAO_AUDIO_FORMAT, "mp3"), + "sample_rate": self.get_config(ConfigKeys.DOUBAO_SAMPLE_RATE, 24000), + "bitrate": self.get_config(ConfigKeys.DOUBAO_BITRATE, 128000) + } + } + } + + # 添加可选参数 + speed = self.get_config(ConfigKeys.DOUBAO_SPEED, None) + if speed is not None: + request_data["req_params"]["speed"] = speed + + volume = self.get_config(ConfigKeys.DOUBAO_VOLUME, None) + if volume is not None: + request_data["req_params"]["volume"] = volume + + # 处理 context_texts + context_texts: Optional[List[str]] = None + + # 优先使用传入的emotion参数 + if emotion: + context_texts = self._resolve_emotion(emotion) + if context_texts: + logger.info(f"{self.log_prefix} 使用emotion参数: {emotion} -> {context_texts[0]}") + + # 否则使用配置文件的默认值 + if not context_texts: + context_texts = self.get_config(ConfigKeys.DOUBAO_CONTEXT_TEXTS, None) + + if context_texts: + request_data["req_params"]["context_texts"] = context_texts + + logger.info(f"{self.log_prefix} 豆包语音请求: text='{text[:50]}...' (共{len(text)}字符), voice={voice}") + + try: + session_manager = await TTSSessionManager.get_instance() + async with session_manager.post( + api_url, + json=request_data, + headers=headers, + backend_name="doubao", + timeout=timeout + ) as response: + logger.info(f"{self.log_prefix} 豆包API响应状态码: {response.status}") + + if response.status == 200: + # 使用新的流式响应解析器 + audio_data, error_msg = await DoubaoStreamParser.parse_response( + response, + log_prefix=self.log_prefix + ) + + if error_msg: + logger.error(f"{self.log_prefix} 豆包语音解析失败: {error_msg}") + return TTSResult(False, error_msg, backend_name=self.backend_name) + + # 验证音频数据 + is_valid, error_msg = TTSFileManager.validate_audio_data(audio_data) + if not is_valid: + logger.warning(f"{self.log_prefix} 豆包音频数据验证失败: {error_msg}") + return TTSResult(False, f"豆包语音{error_msg}", backend_name=self.backend_name) + + logger.debug(f"{self.log_prefix} 豆包音频数据验证通过 (大小: {len(audio_data)}字节)") + + # 使用统一的发送方法 + audio_format = self.get_config(ConfigKeys.DOUBAO_AUDIO_FORMAT, "mp3") + return await self.send_audio( + audio_data=audio_data, + audio_format=audio_format, + prefix="tts_doubao", + voice_info=f"音色: {voice}" + ) + else: + error_text = await response.text() + logger.error(f"{self.log_prefix} 豆包API请求失败[{response.status}]: {error_text[:200]}") + return TTSResult( + False, + f"豆包语音API调用失败: {response.status} - {error_text[:100]}", + backend_name=self.backend_name + ) + + except asyncio.TimeoutError: + logger.error(f"{self.log_prefix} 豆包API请求超时 (配置超时: {timeout}秒)") + return TTSResult(False, "豆包语音API调用超时", backend_name=self.backend_name) + except Exception as e: + logger.error(f"{self.log_prefix} 豆包语音执行异常: {e}") + return TTSResult(False, f"豆包语音执行错误: {e}", backend_name=self.backend_name) diff --git a/backends/doubao_stream_parser.py b/backends/doubao_stream_parser.py new file mode 100644 index 00000000..a3f61925 --- /dev/null +++ b/backends/doubao_stream_parser.py @@ -0,0 +1,432 @@ +""" +豆包语音流式响应解析器 +基于官方示例实现,确保兼容性和正确性 + +官方API说明: +- code=0: 继续处理,可能包含 "data"(音频)或 "sentence"(文本) +- code=20000000: 结束标志,可能包含 "usage"(用量统计) +- code>0: 错误响应 +""" + +import json +import base64 +from typing import Tuple, Optional, List +from src.common.logger import get_logger + +logger = get_logger("doubao_stream_parser") + + +class DoubaoStreamParser: + """ + 豆包语音流式响应解析器 + + 基于官方API实现,忠实还原官方示例逻辑。 + 处理流程: + 1. 逐行读取 JSON 响应 + 2. 检查状态码:code=0(继续), code=20000000(结束), code>0(错误) + 3. 提取音频数据(code=0 且有 "data" 字段) + 4. 记录日志(code=0 且有 "sentence" 字段) + """ + + def __init__(self, log_prefix: str = "[DoubaoParser]"): + """ + 初始化解析器 + + Args: + log_prefix: 日志前缀 + """ + self.log_prefix = log_prefix + self._audio_chunks: List[bytes] = [] + self._buffer: bytes = b'' + self._line_count: int = 0 + self._total_bytes: int = 0 + self._error_message: Optional[str] = None + self._finished: bool = False # 是否收到结束信号 + self._usage_info: Optional[dict] = None + + def _decode_audio_from_base64(self, audio_base64: str) -> Optional[bytes]: + """ + 从 Base64 字符串解码音频数据 + + 官方示例中直接使用 base64.b64decode(data["data"]), + 但我们添加了额外的容错和验证。 + + Args: + audio_base64: Base64 编码的音频数据 + + Returns: + 解码后的音频字节数据或 None + """ + if not audio_base64: + return None + + try: + # 官方示例直接调用 base64.b64decode() + # 这里添加容错处理:补充填充符(如果需要) + padding_needed = len(audio_base64) % 4 + if padding_needed: + audio_base64 += '=' * (4 - padding_needed) + logger.debug( + f"{self.log_prefix} Base64填充已应用 " + f"(原长: {len(audio_base64) - (4 - padding_needed)}, 新长: {len(audio_base64)})" + ) + + audio_bytes = base64.b64decode(audio_base64) + + if not audio_bytes: + logger.warning(f"{self.log_prefix} Base64解码结果为空") + return None + + logger.debug( + f"{self.log_prefix} 音频块解码成功 - 大小: {len(audio_bytes)}字节" + ) + return audio_bytes + + except Exception as e: + logger.error( + f"{self.log_prefix} Base64解码失败: {e} " + f"(Base64长度: {len(audio_base64)})" + ) + return None + + def _process_json_line(self, line_str: str) -> Optional[str]: + """ + 处理单行 JSON 数据 + + 严格按照官方示例逻辑: + 1. 检查 code 字段 + 2. code=0 且有 data → 提取音频 + 3. code=0 且有 sentence → 记录文本(可选) + 4. code=20000000 → 收到结束信号 + 5. code>0 → 错误 + + Args: + line_str: JSON 字符串 + + Returns: + 如果收到结束信号,返回 "END";如果发生错误,返回错误信息;否则返回 None + """ + try: + json_obj = json.loads(line_str) + except json.JSONDecodeError as e: + logger.debug(f"{self.log_prefix} JSON解析失败: {e}") + return None + except Exception as e: + logger.warning(f"{self.log_prefix} JSON处理异常: {e}") + return None + + if not isinstance(json_obj, dict): + logger.debug( + f"{self.log_prefix} 收到非字典JSON对象: {type(json_obj).__name__}" + ) + return None + + code = json_obj.get("code", -1) + + # ✅ 官方逻辑:处理 code=0 的数据帧 + if code == 0: + # 检查是否有音频数据 + if "data" in json_obj and json_obj["data"]: + chunk_audio = self._decode_audio_from_base64(json_obj["data"]) + if chunk_audio: + self._audio_chunks.append(chunk_audio) + logger.debug( + f"{self.log_prefix} 音频块#{len(self._audio_chunks)} 已接收 " + f"(大小: {len(chunk_audio)}字节)" + ) + + # 检查是否有文本/句子信息(可选) + if "sentence" in json_obj and json_obj["sentence"]: + sentence_data = json_obj.get("sentence", {}) + logger.debug( + f"{self.log_prefix} 收到句子数据: {sentence_data}" + ) + + return None # 继续处理 + + # ✅ 官方逻辑:处理 code=20000000 的结束帧 + elif code == 20000000: + logger.info(f"{self.log_prefix} 收到流结束信号 (code=20000000)") + + # 记录用量信息(如果有) + if "usage" in json_obj: + self._usage_info = json_obj["usage"] + logger.info( + f"{self.log_prefix} 豆包用量信息: {self._usage_info}" + ) + + self._finished = True + return "END" # 表示流已结束 + + # ✅ 官方逻辑:错误处理 + elif code and code > 0: + error_msg = json_obj.get("message", f"未知错误 (code={code})") + logger.error( + f"{self.log_prefix} 豆包语音API返回错误 " + f"(code={code}): {error_msg}" + ) + self._error_message = error_msg + return error_msg # 返回错误信息 + + # 未知状态码 + else: + logger.debug( + f"{self.log_prefix} 收到未知状态码: code={code}" + ) + return None + + def _find_data_chunk_offset(self, header: bytes) -> int: + """ + 在 WAV header 中查找 'data' 块的位置 + + 豆包返回的 WAV 可能包含额外的元数据块(如 LIST/INFO), + 导致 'data' 块不在标准的 44 字节位置。 + + Args: + header: WAV 文件头部数据 + + Returns: + data 块数据开始的位置(即 'data' + 4字节大小之后) + """ + pos = 12 # 跳过 RIFF(4) + size(4) + WAVE(4) + + while pos < len(header) - 8: + chunk_id = header[pos:pos+4] + chunk_size = int.from_bytes(header[pos+4:pos+8], 'little') + + if chunk_id == b'data': + return pos + 8 # 返回音频数据开始位置 + + # 移动到下一个块 + pos += 8 + chunk_size + # WAV 块需要对齐到偶数字节 + if chunk_size % 2 == 1: + pos += 1 + + # 未找到 data 块,返回默认值 + return 44 + + def _merge_audio_chunks(self, chunks: List[bytes]) -> bytes: + """ + 合并音频块,处理 WAV 格式的流式响应 + + 豆包流式 WAV 响应特点: + 1. 第一个块包含完整 header(可能 > 44 字节,含 LIST/INFO 元数据) + 2. header 中的大小字段是 0xFFFFFFFF(流式占位符) + 3. 后续块是纯音频数据(无 header) + 4. 需要在合并后修正大小字段 + + Args: + chunks: 音频数据块列表 + + Returns: + 合并后的有效 WAV 文件 + """ + if not chunks: + return b'' + + first_chunk = chunks[0] + + # 检查是否是 WAV 格式(RIFF header) + if len(first_chunk) < 44 or first_chunk[:4] != b'RIFF': + # 不是 WAV 格式(如 MP3),直接拼接 + return b''.join(chunks) + + # 查找 data 块的实际位置 + data_offset = self._find_data_chunk_offset(first_chunk) + logger.debug(f"{self.log_prefix} WAV data 块偏移: {data_offset} 字节") + + # 提取 header 和第一块的音频数据 + header = bytearray(first_chunk[:data_offset]) + data_parts = [first_chunk[data_offset:]] + skipped_headers = 0 + + # 处理后续块 + for chunk in chunks[1:]: + if len(chunk) > 44 and chunk[:4] == b'RIFF': + # 后续块也有 RIFF header,需要跳过 + chunk_data_offset = self._find_data_chunk_offset(chunk) + data_parts.append(chunk[chunk_data_offset:]) + skipped_headers += 1 + else: + # 纯音频数据 + data_parts.append(chunk) + + # 合并所有音频数据 + audio_data = b''.join(data_parts) + audio_size = len(audio_data) + + # 修正 WAV header 中的大小字段 + # 字节 4-7: 文件总大小 - 8 = (header_size - 8) + audio_size + file_size = len(header) - 8 + audio_size + header[4:8] = file_size.to_bytes(4, 'little') + + # 修正 data 块的大小字段(位于 data_offset - 4 处) + header[data_offset-4:data_offset] = audio_size.to_bytes(4, 'little') + + if skipped_headers > 0 or audio_size > 0: + logger.info( + f"{self.log_prefix} WAV 流式合并完成: " + f"header={len(header)}字节, 音频={audio_size}字节, " + f"跳过重复header={skipped_headers}" + ) + + return bytes(header) + audio_data + + def feed_chunk(self, chunk: bytes) -> Optional[str]: + """ + 输入一块数据 + + Args: + chunk: 网络数据块 + + Returns: + 如果遇到错误或结束,返回相应信息;否则返回 None + """ + if not chunk: + return None + + self._buffer += chunk + self._total_bytes += len(chunk) + + # 按行处理(官方示例使用 iter_lines) + while b'\n' in self._buffer: + line_bytes, self._buffer = self._buffer.split(b'\n', 1) + + # 尝试解码行数据 + try: + line_str = line_bytes.decode('utf-8', errors='replace').strip() + except Exception as e: + logger.warning( + f"{self.log_prefix} 行解码失败: {e}, 跳过该行" + ) + self._line_count += 1 + continue + + if not line_str: + continue + + self._line_count += 1 + + # 处理该行 + result = self._process_json_line(line_str) + + # 如果收到结束信号或错误,立即返回 + if result == "END": + return None # 正常结束 + elif result: # 返回的是错误信息 + return result + + return None + + def finalize(self) -> Tuple[Optional[bytes], Optional[str]]: + """ + 完成解析,处理剩余数据 + + Returns: + (audio_data, error_message) + - audio_data: 合并后的音频数据(成功时) + - error_message: 错误信息(失败时) + """ + # 处理剩余的 buffer 中的最后一行 + if self._buffer.strip(): + try: + line_str = self._buffer.decode('utf-8', errors='replace').strip() + if line_str: + logger.debug( + f"{self.log_prefix} 处理最后的buffer数据 " + f"(长度: {len(line_str)}字符)" + ) + result = self._process_json_line(line_str) + if result and result != "END": + # 最后的 buffer 包含错误 + self._error_message = result + except Exception as e: + logger.warning( + f"{self.log_prefix} 最后buffer解析异常: {e}" + ) + + logger.info( + f"{self.log_prefix} 豆包流解析完成 - " + f"处理行数: {self._line_count}, " + f"音频块数: {len(self._audio_chunks)}, " + f"接收字节数: {self._total_bytes}, " + f"正常结束: {self._finished}" + ) + + # 检查是否有错误 + if self._error_message: + logger.error( + f"{self.log_prefix} 豆包API返回错误: {self._error_message}" + ) + return None, f"豆包语音API错误: {self._error_message}" + + # 检查是否有音频数据 + if not self._audio_chunks: + if self._total_bytes == 0: + logger.warning( + f"{self.log_prefix} 豆包API未返回任何数据" + ) + return None, "未收到任何响应数据" + + logger.warning( + f"{self.log_prefix} 收到 {self._total_bytes} 字节数据但无音频块" + ) + return None, "豆包语音未返回任何音频数据" + + # ✅ 额外的数据完整性检查 + # 过滤掉过小的块(可能是损坏或无效的) + min_chunk_size = 50 # 最小块大小 + valid_chunks = [ + chunk for chunk in self._audio_chunks + if len(chunk) >= min_chunk_size + ] + + if not valid_chunks: + logger.error( + f"{self.log_prefix} 所有音频块都太小 (可能是损坏的数据)" + ) + logger.debug( + f"{self.log_prefix} 块大小分布: {[len(c) for c in self._audio_chunks]}" + ) + return None, "音频数据不完整或已损坏" + + # 合并所有有效的音频数据(处理 WAV 多 header 问题) + merged_audio = self._merge_audio_chunks(valid_chunks) + + logger.info( + f"{self.log_prefix} 音频合并完成 - " + f"有效块数: {len(valid_chunks)}/{len(self._audio_chunks)}, " + f"总大小: {len(merged_audio)}字节" + ) + + return merged_audio, None + + @classmethod + async def parse_response( + cls, + response, + log_prefix: str = "[DoubaoParser]" + ) -> Tuple[Optional[bytes], Optional[str]]: + """ + 解析豆包 API 的流式响应 + + Args: + response: aiohttp 响应对象 + log_prefix: 日志前缀 + + Returns: + (audio_data, error_message) + """ + parser = cls(log_prefix) + + # 逐块读取响应流 + async for chunk in response.content.iter_any(): + result = parser.feed_chunk(chunk) + + # 如果遇到错误,立即返回 + if result and result != "END": + return None, result + + # 完成解析,处理剩余数据 + return parser.finalize() diff --git a/backends/gpt_sovits.py b/backends/gpt_sovits.py new file mode 100644 index 00000000..126851ff --- /dev/null +++ b/backends/gpt_sovits.py @@ -0,0 +1,326 @@ +""" +GPT-SoVITS 后端实现 +使用本地 GPT-SoVITS 服务进行语音合成 +""" + +import asyncio +from typing import Optional, Dict, Any, Tuple, ClassVar +from .base import TTSBackendBase, TTSResult +from ..utils.text import TTSTextUtils +from ..utils.file import TTSFileManager +from ..utils.session import TTSSessionManager +from ..config_keys import ConfigKeys +from src.common.logger import get_logger + +logger = get_logger("tts_gpt_sovits") + + +class GPTSoVITSBackend(TTSBackendBase): + """ + GPT-SoVITS 后端 + + 使用本地 GPT-SoVITS 服务进行高度定制化的语音合成 + 支持动态切换 GPT 和 SoVITS 模型权重 + """ + + backend_name = "gpt_sovits" + backend_description = "本地GPT-SoVITS服务" + support_private_chat = True + default_audio_format = "mp3" + + # 类变量:记录当前加载的模型路径,避免重复切换 + _current_gpt_weights: ClassVar[Optional[str]] = None + _current_sovits_weights: ClassVar[Optional[str]] = None + + def get_default_voice(self) -> str: + """获取默认风格""" + return "default" + + async def _switch_model( + self, + server: str, + gpt_weights: Optional[str], + sovits_weights: Optional[str], + timeout: int + ) -> Tuple[bool, str]: + """ + 切换 GPT-SoVITS 模型权重 + + Args: + server: 服务器地址 + gpt_weights: GPT 模型权重路径 + sovits_weights: SoVITS 模型权重路径 + timeout: 超时时间 + + Returns: + (success, error_message) + """ + session_manager = await TTSSessionManager.get_instance() + + async def _set_model_v1() -> Tuple[bool, str]: + # 兼容旧版 api.py: 仅支持 /set_model 同时切换 + if not gpt_weights or not sovits_weights: + return False, "当前GPT-SoVITS服务不支持单独切换模型(请同时配置GPT与SoVITS权重)" + set_model_url = ( + f"{server.rstrip('/')}/set_model?" + f"gpt_model_path={gpt_weights}&sovits_model_path={sovits_weights}" + ) + logger.info(f"{self.log_prefix} 切换模型(兼容模式): {gpt_weights} | {sovits_weights}") + try: + async with session_manager.get( + set_model_url, + backend_name="gpt_sovits", + timeout=timeout + ) as response: + if response.status == 200: + GPTSoVITSBackend._current_gpt_weights = gpt_weights + GPTSoVITSBackend._current_sovits_weights = sovits_weights + logger.info(f"{self.log_prefix} 模型切换成功(兼容模式)") + return True, "" + error_text = await response.text() + return False, f"模型切换失败: {error_text}" + except Exception as e: + return False, f"模型切换异常: {e}" + + # 切换 GPT 权重 + if gpt_weights and gpt_weights != GPTSoVITSBackend._current_gpt_weights: + gpt_url = f"{server.rstrip('/')}/set_gpt_weights?weights_path={gpt_weights}" + logger.info(f"{self.log_prefix} 切换GPT模型: {gpt_weights}") + + try: + async with session_manager.get( + gpt_url, + backend_name="gpt_sovits", + timeout=timeout + ) as response: + if response.status == 200: + GPTSoVITSBackend._current_gpt_weights = gpt_weights + logger.info(f"{self.log_prefix} GPT模型切换成功") + elif response.status == 404: + # 旧版服务没有 /set_gpt_weights + return await _set_model_v1() + else: + error_text = await response.text() + return False, f"GPT模型切换失败: {error_text}" + except Exception as e: + return False, f"GPT模型切换异常: {e}" + + # 切换 SoVITS 权重 + if sovits_weights and sovits_weights != GPTSoVITSBackend._current_sovits_weights: + sovits_url = f"{server.rstrip('/')}/set_sovits_weights?weights_path={sovits_weights}" + logger.info(f"{self.log_prefix} 切换SoVITS模型: {sovits_weights}") + + try: + async with session_manager.get( + sovits_url, + backend_name="gpt_sovits", + timeout=timeout + ) as response: + if response.status == 200: + GPTSoVITSBackend._current_sovits_weights = sovits_weights + logger.info(f"{self.log_prefix} SoVITS模型切换成功") + elif response.status == 404: + # 旧版服务没有 /set_sovits_weights + return await _set_model_v1() + else: + error_text = await response.text() + return False, f"SoVITS模型切换失败: {error_text}" + except Exception as e: + return False, f"SoVITS模型切换异常: {e}" + + return True, "" + + def _normalize_styles_config(self, styles_config: Any) -> Dict[str, Any]: + """ + 规范化风格配置格式 + + 支持两种格式: + 1. 旧格式(字典): {"default": {...}, "happy": {...}} + 2. 新格式(数组): [{"name": "default", ...}, {"name": "happy", ...}] + + 统一转换为字典格式供内部使用 + """ + # 如果是字典格式(旧格式),直接返回 + if isinstance(styles_config, dict): + return styles_config + + # 如果是数组格式(新格式),转换为字典 + if isinstance(styles_config, list): + result = {} + for style in styles_config: + if isinstance(style, dict) and "name" in style: + style_name = style["name"] + # 复制配置,移除 name 字段 + style_data = {k: v for k, v in style.items() if k != "name"} + result[style_name] = style_data + return result + + # 其他情况返回空字典 + return {} + + def validate_config(self) -> Tuple[bool, str]: + """验证配置""" + styles_raw = self.get_config(ConfigKeys.GPT_SOVITS_STYLES, {}) + styles = self._normalize_styles_config(styles_raw) + + if not styles or "default" not in styles: + return False, "GPT-SoVITS未配置任何语音风格" + + default_style = styles.get("default", {}) + if not default_style.get("refer_wav") or not default_style.get("prompt_text"): + return False, "GPT-SoVITS默认风格配置不完整(需要refer_wav和prompt_text)" + + return True, "" + + async def execute( + self, + text: str, + voice: Optional[str] = None, + **kwargs + ) -> TTSResult: + """ + 执行GPT-SoVITS语音合成 + + Args: + text: 待转换的文本 + voice: 风格名称 + + Returns: + TTSResult + """ + # 验证文本 + if not text or not text.strip(): + return TTSResult(False, "待合成的文本为空", backend_name=self.backend_name) + + # 获取配置 + server = self.get_config(ConfigKeys.GPT_SOVITS_SERVER, "http://127.0.0.1:9880") + styles_raw = self.get_config(ConfigKeys.GPT_SOVITS_STYLES, {}) + styles = self._normalize_styles_config(styles_raw) + timeout = self.get_config(ConfigKeys.GENERAL_TIMEOUT, 60) + + # 确定使用的风格 + voice_style = voice if voice and voice in styles else "default" + + if voice_style not in styles: + return TTSResult( + False, + f"GPT-SoVITS风格 '{voice_style}' 未配置", + backend_name=self.backend_name + ) + + style_config = styles[voice_style] + refer_wav_path = style_config.get("refer_wav", "") + prompt_text = style_config.get("prompt_text", "") + prompt_language = style_config.get("prompt_language", "zh") + gpt_weights = style_config.get("gpt_weights") + sovits_weights = style_config.get("sovits_weights") + + if not refer_wav_path or not prompt_text: + return TTSResult( + False, + f"GPT-SoVITS风格 '{voice_style}' 配置不完整", + backend_name=self.backend_name + ) + + # 如果配置了模型权重,先切换模型 + if gpt_weights or sovits_weights: + switch_success, switch_error = await self._switch_model( + server, gpt_weights, sovits_weights, timeout + ) + if not switch_success: + return TTSResult(False, switch_error, backend_name=self.backend_name) + + # 检测文本语言 + text_language = TTSTextUtils.detect_language(text) + + # 构建请求数据 + data = { + "text": text, + "text_lang": text_language, + "ref_audio_path": refer_wav_path, + "prompt_text": prompt_text, + "prompt_lang": prompt_language + } + + tts_url = f"{server.rstrip('/')}/tts" + legacy_tts_url = f"{server.rstrip('/')}/" + legacy_data = { + "text": text, + "text_language": text_language, + "refer_wav_path": refer_wav_path, + "prompt_text": prompt_text, + "prompt_language": prompt_language, + } + + logger.info(f"{self.log_prefix} GPT-SoVITS请求: text='{text[:50]}...', style={voice_style}") + + try: + session_manager = await TTSSessionManager.get_instance() + async with session_manager.post( + tts_url, + json=data, + backend_name="gpt_sovits", + timeout=timeout + ) as response: + if response.status == 200: + audio_data = await response.read() + + # 验证音频数据 + is_valid, error_msg = TTSFileManager.validate_audio_data(audio_data) + if not is_valid: + return TTSResult(False, f"GPT-SoVITS{error_msg}", backend_name=self.backend_name) + + # 使用统一的发送方法 + return await self.send_audio( + audio_data=audio_data, + audio_format="wav", + prefix="tts_gpt_sovits", + voice_info=f"风格: {voice_style}" + ) + elif response.status == 404: + # 兼容旧版 api.py:没有 /tts 端点,回退到根路径 + logger.warning(f"{self.log_prefix} /tts 端点不存在,尝试兼容模式请求根路径") + else: + error_info = await response.text() + logger.error(f"{self.log_prefix} GPT-SoVITS API失败[{response.status}]: {error_info[:200]}") + return TTSResult( + False, + f"GPT-SoVITS API调用失败: {response.status}", + backend_name=self.backend_name + ) + + # 仅在 /tts 404 时回退到旧版根路径 + async with session_manager.post( + legacy_tts_url, + json=legacy_data, + backend_name="gpt_sovits", + timeout=timeout + ) as response: + if response.status == 200: + audio_data = await response.read() + + # 验证音频数据 + is_valid, error_msg = TTSFileManager.validate_audio_data(audio_data) + if not is_valid: + return TTSResult(False, f"GPT-SoVITS{error_msg}", backend_name=self.backend_name) + + return await self.send_audio( + audio_data=audio_data, + audio_format="wav", + prefix="tts_gpt_sovits", + voice_info=f"风格: {voice_style}" + ) + else: + error_info = await response.text() + logger.error(f"{self.log_prefix} GPT-SoVITS API失败[{response.status}]: {error_info[:200]}") + return TTSResult( + False, + f"GPT-SoVITS API调用失败: {response.status}", + backend_name=self.backend_name + ) + + except asyncio.TimeoutError: + return TTSResult(False, "GPT-SoVITS API调用超时", backend_name=self.backend_name) + except Exception as e: + logger.error(f"{self.log_prefix} GPT-SoVITS执行错误: {e}") + return TTSResult(False, f"GPT-SoVITS执行错误: {e}", backend_name=self.backend_name) diff --git a/backends/gsv2p.py b/backends/gsv2p.py new file mode 100644 index 00000000..8837d881 --- /dev/null +++ b/backends/gsv2p.py @@ -0,0 +1,186 @@ +""" +GSV2P 后端实现 +使用 GSV2P 云端 API 进行语音合成 +""" + +import asyncio +import json +from typing import Optional, Dict, Any, Tuple +from .base import TTSBackendBase, TTSResult +from ..utils.file import TTSFileManager +from ..utils.session import TTSSessionManager +from ..config_keys import ConfigKeys +from src.common.logger import get_logger + +logger = get_logger("tts_gsv2p") + +# 重试配置 +MAX_RETRIES = 5 # 最大重试次数 +RETRY_DELAY = 3.0 # 重试间隔(秒) + + +class GSV2PBackend(TTSBackendBase): + """ + GSV2P 后端 + + 使用 GSV2P 云端 API 进行高质量语音合成 + """ + + backend_name = "gsv2p" + backend_description = "GSV2P云端API语音合成" + support_private_chat = True + default_audio_format = "mp3" + + def get_default_voice(self) -> str: + """获取默认音色""" + return self.get_config(ConfigKeys.GSV2P_DEFAULT_VOICE, "原神-中文-派蒙_ZH") + + def validate_config(self) -> Tuple[bool, str]: + """验证配置""" + api_token = self.get_config(ConfigKeys.GSV2P_API_TOKEN, "") + if not api_token: + return False, "GSV2P后端缺少API Token配置" + return True, "" + + async def _make_request( + self, + api_url: str, + request_data: Dict[str, Any], + headers: Dict[str, str], + timeout: int + ) -> Tuple[bool, Any, str]: + """ + 发送单次API请求 + + Returns: + (成功标志, 音频数据或None, 错误信息) + """ + session_manager = await TTSSessionManager.get_instance() + async with session_manager.post( + api_url, + json=request_data, + headers=headers, + backend_name="gsv2p", + timeout=timeout + ) as response: + if response.status == 200: + content_type = response.headers.get('Content-Type', '') + audio_data = await response.read() + + # 检查是否返回了JSON错误(服务端不稳定时会返回参数错误) + if 'application/json' in content_type: + try: + error_json = json.loads(audio_data.decode('utf-8')) + error_msg = error_json.get('error', {}).get('message', str(error_json)) + # 参数错误通常是服务端临时问题,可以重试 + return False, None, f"API返回错误: {error_msg}" + except Exception: + return False, None, "API返回异常响应" + + # 验证音频数据 + is_valid, error_msg = TTSFileManager.validate_audio_data(audio_data) + if not is_valid: + return False, None, f"音频数据无效: {error_msg}" + + return True, audio_data, "" + else: + error_text = await response.text() + return False, None, f"API调用失败: {response.status} - {error_text[:100]}" + + async def execute( + self, + text: str, + voice: Optional[str] = None, + **kwargs + ) -> TTSResult: + """ + 执行GSV2P语音合成(带重试机制) + + Args: + text: 待转换的文本 + voice: 音色名称 + + Returns: + TTSResult + """ + # 验证配置 + is_valid, error_msg = self.validate_config() + if not is_valid: + return TTSResult(False, error_msg, backend_name=self.backend_name) + + # 验证文本 + if not text or not text.strip(): + return TTSResult(False, "待合成的文本为空", backend_name=self.backend_name) + + # 获取配置 + api_url = self.get_config(ConfigKeys.GSV2P_API_URL, "https://gsv2p.acgnai.top/v1/audio/speech") + api_token = self.get_config(ConfigKeys.GSV2P_API_TOKEN, "") + timeout = self.get_config(ConfigKeys.GSV2P_TIMEOUT, 30) + + if not voice: + voice = self.get_default_voice() + + # 构建请求参数(注意:other_params 已被 API 废弃,不再支持) + request_data: Dict[str, Any] = { + "model": self.get_config(ConfigKeys.GSV2P_MODEL, "tts-v4"), + "input": text, + "voice": voice, + "response_format": self.get_config(ConfigKeys.GSV2P_RESPONSE_FORMAT, "mp3"), + "speed": self.get_config(ConfigKeys.GSV2P_SPEED, 1) + } + + headers = { + "accept": "application/json", + "Authorization": f"Bearer {api_token}", + "Content-Type": "application/json" + } + + logger.info(f"{self.log_prefix} GSV2P请求: text='{text[:50]}...', voice={voice}") + logger.debug(f"{self.log_prefix} GSV2P完整请求参数: {json.dumps(request_data, ensure_ascii=False, indent=2)}") + + last_error = "" + for attempt in range(1, MAX_RETRIES + 1): + try: + success, audio_data, error_msg = await self._make_request( + api_url, request_data, headers, timeout + ) + + if success and audio_data: + if attempt > 1: + logger.info(f"{self.log_prefix} GSV2P第{attempt}次重试成功") + + logger.info(f"{self.log_prefix} GSV2P响应: 数据大小={len(audio_data)}字节") + + # 使用统一的发送方法 + audio_format = self.get_config(ConfigKeys.GSV2P_RESPONSE_FORMAT, "mp3") + return await self.send_audio( + audio_data=audio_data, + audio_format=audio_format, + prefix="tts_gsv2p", + voice_info=f"音色: {voice}" + ) + else: + last_error = error_msg + if attempt < MAX_RETRIES: + logger.warning(f"{self.log_prefix} GSV2P请求失败 ({error_msg}), {RETRY_DELAY}秒后重试 (尝试 {attempt}/{MAX_RETRIES})") + await asyncio.sleep(RETRY_DELAY) + else: + logger.error(f"{self.log_prefix} GSV2P请求失败,已达最大重试次数: {error_msg}") + + except asyncio.TimeoutError: + last_error = "API调用超时" + if attempt < MAX_RETRIES: + logger.warning(f"{self.log_prefix} GSV2P超时, {RETRY_DELAY}秒后重试 (尝试 {attempt}/{MAX_RETRIES})") + await asyncio.sleep(RETRY_DELAY) + else: + logger.error(f"{self.log_prefix} GSV2P超时,已达最大重试次数") + + except Exception as e: + last_error = str(e) + logger.error(f"{self.log_prefix} GSV2P执行错误: {e}") + if attempt < MAX_RETRIES: + await asyncio.sleep(RETRY_DELAY) + else: + break + + return TTSResult(False, f"GSV2P {last_error} (已重试{MAX_RETRIES}次)", backend_name=self.backend_name) diff --git a/config.toml b/config.toml new file mode 100644 index 00000000..9c045560 --- /dev/null +++ b/config.toml @@ -0,0 +1,292 @@ +# tts_voice_plugin - 自动生成的配置文件 +# 统一TTS语音合成插件,整合AI Voice、GSV2P、GPT-SoVITS、豆包语音、CosyVoice五种后端引擎,提供灵活的语音合成能力。 + +# 插件基本配置 +[plugin] + +# 是否启用插件 +enabled = true + +# 配置文件版本 +config_version = "3.2.3" + +# 通用设置 + +[general] + +# 默认TTS后端 (ai_voice/gsv2p/gpt_sovits/doubao/cosyvoice/comfyui) +# 可选: ai_voice/gsv2p/gpt_sovits/doubao/cosyvoice/comfyui/comfyui_voiceclone/comfyui_customvoice +default_backend = "comfyui_customvoice" + +# 请求超时时间(秒) +timeout = 60 + +# 最大文本长度(该限制会在调用LLM时注入到prompt中,让LLM直接生成符合长度的回复,而不是被动截断) +max_text_length = 200 + +# 是否使用replyer润色语音内容 +use_replyer_rewrite = true + +# 音频文件输出目录(支持相对路径和绝对路径,留空使用项目根目录) +audio_output_dir = "" + +# 是否使用base64编码发送音频(备选方案) +use_base64_audio = true + +# 是否分段发送语音(每句话单独发送一条语音,避免长语音播放问题) +split_sentences = true + +# 分段发送时每条语音之间的延迟(秒) +split_delay = 0.3 + +# 自动分段启用阈值:文本长度小于该值时不分段(避免短句被切成多段) +split_min_total_chars = 120 + +# 句子最小长度:过短片段会合并到前一句(用于减少碎片段) +split_min_sentence_chars = 6 + +# 自动分段最大段数(避免刷屏式多段语音)。0 表示不限制。 +split_max_segments = 3 + +# 自动分段打包目标长度(字符)。用于把多句合并成更少段。 +split_chunk_chars = 110 + +# 是否发送错误提示消息(关闭后语音合成失败时不会发送错误信息给用户) +send_error_messages = true + +# 组件启用控制 + +[components] + +# 是否启用Action组件 +action_enabled = true + +# 是否启用Command组件 +command_enabled = true + +# 是否启用 instruct 调试命令组件(/tts_instruct) +instruct_command_enabled = true + +# 概率控制配置 + +[probability] + +# 是否启用概率控制 +enabled = true + +# 基础触发概率 +base_probability = 1 + +# 关键词强制触发 +keyword_force_trigger = true + +# 强制触发关键词 +force_keywords = [ + "一定要用语音", + "必须语音", + "语音回复我", + "务必用语音", +] + +# AI Voice后端配置 + +[ai_voice] + +# 默认音色(可选:小新、猴哥、四郎、东北老妹儿、广西大表哥、妲己、霸道总裁、酥心御姐、说书先生、憨憨小弟、憨厚老哥、吕布、元气少女、文艺少女、磁性大叔、邻家小妹、低沉男声、傲娇少女、爹系男友、暖心姐姐、温柔妹妹、书香少女) +default_character = "邻家小妹" + +# GSV2P后端配置 + +[gsv2p] + +# GSV2P API地址 +api_url = "https://gsv2p.acgnai.top/v1/audio/speech" + +# API认证Token +api_token = "" + +# 默认音色 +default_voice = "原神-中文-派蒙_ZH" + +# API请求超时(秒) +timeout = 149 + +# TTS模型 +model = "tts-v4" + +# 音频格式 +response_format = "wav" + +# 语音速度 +speed = 1 + +# GPT-SoVITS后端配置 + +[gpt_sovits] + +# GPT-SoVITS服务地址 +server = "http://127.0.0.1:9880" + +# 语音风格配置 + +# 豆包语音后端配置 + +[[gpt_sovits.styles]] +name = "default" +refer_wav = "/Users/xenon/Downloads/seiun_tts/qingyun_tiankong_voice/s978ztt245c3jxms6apadwgna4e7hmb.mp3" +prompt_text = "私にしてはがんばった方ではないでしょーか?" +prompt_language = "ja" +gpt_weights = "/Users/xenon/Downloads/GPT-SoVITS/GPT_weights_v4/seiun-e15.ckpt" +sovits_weights = "/Users/xenon/Downloads/GPT-SoVITS/SoVITS_weights_v4/seiun_e2_s144_l32.pth" + +[[gpt_sovits.styles]] +name = "" +refer_wav = "" +prompt_text = "" +prompt_language = "zh" +gpt_weights = "" +sovits_weights = "" + +[doubao] + +# 豆包语音API地址 +api_url = "https://openspeech.bytedance.com/api/v3/tts/unidirectional" + +# 豆包APP ID +app_id = "" + +# 豆包Access Key +access_key = "" + +# 豆包Resource ID +resource_id = "seed-tts-2.0" + +# 默认音色 +default_voice = "zh_female_vv_uranus_bigtts" + +# API请求超时(秒) +timeout = 60 + +# 音频格式 +audio_format = "wav" + +# 采样率 +sample_rate = 24000 + +# 比特率 +bitrate = 128000 + +# CosyVoice后端配置 + +[cosyvoice] + +# Gradio API地址 +gradio_url = "https://funaudiollm-fun-cosyvoice3-0-5b.ms.show/" + +# 推理模式(3s极速复刻/自然语言控制) +default_mode = "3s极速复刻" + +# 默认指令(用于自然语言控制模式) +default_instruct = "You are a helpful assistant. 请用广东话表达。<|endofprompt|>" + +# 参考音频路径(用于3s极速复刻模式) +reference_audio = "" + +# 提示文本(用于3s极速复刻模式) +prompt_text = "" + +# API请求超时(秒) +timeout = 300 + +# 音频格式 +audio_format = "wav" + +[comfyui] +server = "http://127.0.0.1:8188" +# 必须是 ComfyUI 的 input 目录, backend 会把 refer_wav 复制进去, 再用 LoadAudio 读取 +input_dir = "/Users/xenon/Downloads/seiun_tts/ComfyUI/ComfyUI/input" +timeout = 120 +audio_quality = "128k" # SaveAudioMP3: V0/128k/320k +mlx_python = "/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/.venv/bin/python" +mlx_cli = "/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/mlx_voice_clone_cli.py" +default_style = "default" +# Split comfyui backend into two convenient aliases: +# - comfyui_voiceclone: only uses styles whose mode is voice_clone (or absent) +# - comfyui_customvoice: only uses styles whose mode is custom_voice +# These keys let you pick different defaults without duplicating comfyui.styles. +voiceclone_default_style = "default" +customvoice_default_style = "seiun" +auto_instruct_enabled = true +auto_instruct_max_chars = 320 + +# 自动推断 instruct 时固定附加的“基调”(persona)。会作为 `基调=...;` 前缀插入。 +# 注意:值里不要包含 ';' 或 '='(backend 会做清洗,但建议从源头避免)。 +auto_instruct_base_tone = "女性约15-16岁,清澈透亮但慵懒的轻女高音,句尾元音随意拉长且略带鼻腔撒娇,咬字松弛像刚睡醒,可在慵懒与冷静锐利间切换,带戏谑亲和" + +# 可选:完整基调原文(保留备份,当前不启用) +# auto_instruct_base_tone = """ +# 女性,外表约15-16岁,音色是清澈透亮却带有慵懒感的轻女高音(Light Soprano)。 +# +# 嗓音轻盈飘逸,带有明显的“云朵般”的漂浮感,起初是漫不经心的拖沓语调,其特征在于句尾元音的随意拉长(Drawl)以及略带鼻腔共鸣的撒娇感。咬字呈现出一种仿佛刚睡醒般的松弛,甚至伴有刻意为之的含糊,像是一只在阳光下伸懒腰的猫。 +# +# 随后,这种慵懒被一种狡黠的机敏所取代,声音在毫无干劲的叹息与看穿一切的通透感之间自如切换。在表现谋略或胜负欲的瞬间,音色会瞬间收紧,去除了所有的气声装饰与慵懒拖音,转为冷静、干练且直击要害的中高频。 +# +# 表现风格既显得捉摸不透又带有戏谑的亲和力,伴随着轻巧的换气声和偶尔出现的、带有试探意味的升调尾音。仿佛在脱力系(Listless)的无害表象之下,潜藏着绝顶聪明的头脑与绝不让步的自尊。 +# """ + +auto_instruct_prompt = """ +你是精通声学特征与戏剧表演的 AI 配音导演。你的任务是根据「待朗读文本」生成一行 TTS instruct(用于 Qwen3-TTS CustomVoice 的语音表演控制)。 + +硬性要求: +- 只输出一行(单行 KV),不要解释,不要引号/代码块,不要复述原文。 +- 必须同时包含以下字段,并用英文分号 ';' 分隔:情绪、强度、语速、停顿、表现 +- 输出格式固定为:情绪=<...>;强度=<...>;语速=<...>;停顿=<...>;表现=<...> +- 语速可选:很慢/稍慢/正常/稍快/很快 +- 停顿可选:很少/自然/稍多/很多 +- 强度可选:很低/低/中/高/很高 +- 表现:用 3-6 个短提示词,使用逗号分隔(不要用分号),如:声压高,咬字重,重音强,尾音下压 +- 长度 <= {max_chars} 字 + +强制增强规则(避免“生气但听起来不够生气”): +- 如果文本出现:非常/极其/真的/气死/怒/吼/滚/闭嘴/你再说一次 等强烈信号,情绪优先用「愤怒」,强度至少「高」,表现要包含“声压高/咬字重/重音强/尾音下压”中的至少 2 项。 +- 如果是嘲讽或冷笑式的怒气:情绪写「愤怒(冷)」或「愤怒+嘲讽」,表现包含“冷硬/压低/咬字利落/少气声”。 + +文本语言: {lang} +待朗读文本: {text} +""" + +# 基础停顿(秒)。当 instruct 包含“停顿=...”时,会按 很少/自然/稍多/很多 做倍率缩放。 +pause_linebreak = 0.18 +period_pause = 0.22 +comma_pause = 0.1 +question_pause = 0.2 +hyphen_pause = 0.06 + +[[comfyui.styles]] +name = "default" +refer_wav = "/Users/xenon/Downloads/seiun_tts/qingyun_tiankong_voice/default_ref_24k_mono.wav" +prompt_text = "私にしてはがんばった方ではないでしょーか?" +language = "Auto" +model_choice = "1.7B" +precision = "bf16" +seed = 0 +max_new_tokens = 2048 +top_p = 0.8 +top_k = 20 +temperature = 1 +repetition_penalty = 1.05 + +[[comfyui.styles]] +name = "seiun" +mode = "custom_voice" +model_path = "/Users/xenon/Downloads/checkpoint-epoch-9" +speaker = "seiun" +instruct = "__AUTO__" +speed = 1 +language = "Auto" +seed = 0 +max_new_tokens = 2048 +top_p = 0.9 +top_k = 20 +temperature = 0.9 +repetition_penalty = 1.05 diff --git a/config_keys.py b/config_keys.py new file mode 100644 index 00000000..b7993eca --- /dev/null +++ b/config_keys.py @@ -0,0 +1,103 @@ +""" +配置键常量定义 +集中管理所有配置键,避免硬编码 +""" + + +class ConfigKeys: + """配置键常量类""" + + # ========== Plugin 配置 ========== + PLUGIN_ENABLED = "plugin.enabled" + PLUGIN_CONFIG_VERSION = "plugin.config_version" + + # ========== General 通用配置 ========== + GENERAL_DEFAULT_BACKEND = "general.default_backend" + GENERAL_TIMEOUT = "general.timeout" + GENERAL_MAX_TEXT_LENGTH = "general.max_text_length" + GENERAL_USE_REPLYER_REWRITE = "general.use_replyer_rewrite" + GENERAL_AUDIO_OUTPUT_DIR = "general.audio_output_dir" + GENERAL_USE_BASE64_AUDIO = "general.use_base64_audio" + GENERAL_SPLIT_SENTENCES = "general.split_sentences" + GENERAL_SPLIT_DELAY = "general.split_delay" + GENERAL_SPLIT_MIN_TOTAL_CHARS = "general.split_min_total_chars" + GENERAL_SPLIT_MIN_SENTENCE_CHARS = "general.split_min_sentence_chars" + GENERAL_SPLIT_MAX_SEGMENTS = "general.split_max_segments" + GENERAL_SPLIT_CHUNK_CHARS = "general.split_chunk_chars" + GENERAL_SEND_ERROR_MESSAGES = "general.send_error_messages" + + # ========== Components 组件配置 ========== + COMPONENTS_ACTION_ENABLED = "components.action_enabled" + COMPONENTS_COMMAND_ENABLED = "components.command_enabled" + COMPONENTS_INSTRUCT_COMMAND_ENABLED = "components.instruct_command_enabled" + + # ========== Probability 概率控制配置 ========== + PROBABILITY_ENABLED = "probability.enabled" + PROBABILITY_BASE_PROBABILITY = "probability.base_probability" + PROBABILITY_KEYWORD_FORCE_TRIGGER = "probability.keyword_force_trigger" + PROBABILITY_FORCE_KEYWORDS = "probability.force_keywords" + + # ========== AI Voice 配置 ========== + AI_VOICE_DEFAULT_CHARACTER = "ai_voice.default_character" + AI_VOICE_ALIAS_MAP = "ai_voice.alias_map" + + # ========== GSV2P 配置 ========== + GSV2P_API_URL = "gsv2p.api_url" + GSV2P_API_TOKEN = "gsv2p.api_token" + GSV2P_DEFAULT_VOICE = "gsv2p.default_voice" + GSV2P_TIMEOUT = "gsv2p.timeout" + GSV2P_MODEL = "gsv2p.model" + GSV2P_RESPONSE_FORMAT = "gsv2p.response_format" + GSV2P_SPEED = "gsv2p.speed" + + # ========== GPT-SoVITS 配置 ========== + GPT_SOVITS_SERVER = "gpt_sovits.server" + GPT_SOVITS_STYLES = "gpt_sovits.styles" + + # ========== Doubao 豆包配置 ========== + DOUBAO_API_URL = "doubao.api_url" + DOUBAO_APP_ID = "doubao.app_id" + DOUBAO_ACCESS_KEY = "doubao.access_key" + DOUBAO_RESOURCE_ID = "doubao.resource_id" + DOUBAO_DEFAULT_VOICE = "doubao.default_voice" + DOUBAO_TIMEOUT = "doubao.timeout" + DOUBAO_AUDIO_FORMAT = "doubao.audio_format" + DOUBAO_SAMPLE_RATE = "doubao.sample_rate" + DOUBAO_BITRATE = "doubao.bitrate" + DOUBAO_SPEED = "doubao.speed" + DOUBAO_VOLUME = "doubao.volume" + DOUBAO_CONTEXT_TEXTS = "doubao.context_texts" + + # ========== CosyVoice 配置 ========== + COSYVOICE_GRADIO_URL = "cosyvoice.gradio_url" + COSYVOICE_DEFAULT_MODE = "cosyvoice.default_mode" + COSYVOICE_DEFAULT_INSTRUCT = "cosyvoice.default_instruct" + COSYVOICE_REFERENCE_AUDIO = "cosyvoice.reference_audio" + COSYVOICE_PROMPT_TEXT = "cosyvoice.prompt_text" + COSYVOICE_TIMEOUT = "cosyvoice.timeout" + COSYVOICE_AUDIO_FORMAT = "cosyvoice.audio_format" + + # ========== ComfyUI (Workflow API) 配置 ========== + COMFYUI_SERVER = "comfyui.server" + COMFYUI_INPUT_DIR = "comfyui.input_dir" + COMFYUI_TIMEOUT = "comfyui.timeout" + COMFYUI_DEFAULT_STYLE = "comfyui.default_style" + COMFYUI_STYLES = "comfyui.styles" + # Convenience aliases to split voiceclone/customvoice at the plugin level. + # Both backends still use comfyui.styles, but these keys let you pick different defaults. + COMFYUI_VOICECLONE_DEFAULT_STYLE = "comfyui.voiceclone_default_style" + COMFYUI_CUSTOMVOICE_DEFAULT_STYLE = "comfyui.customvoice_default_style" + COMFYUI_AUDIO_QUALITY = "comfyui.audio_quality" + COMFYUI_MLX_PYTHON = "comfyui.mlx_python" + COMFYUI_MLX_CLI = "comfyui.mlx_cli" + COMFYUI_PAUSE_LINEBREAK = "comfyui.pause_linebreak" + COMFYUI_PERIOD_PAUSE = "comfyui.period_pause" + COMFYUI_COMMA_PAUSE = "comfyui.comma_pause" + COMFYUI_QUESTION_PAUSE = "comfyui.question_pause" + COMFYUI_HYPHEN_PAUSE = "comfyui.hyphen_pause" + + # Auto instruct (CustomVoice) + COMFYUI_AUTO_INSTRUCT_ENABLED = "comfyui.auto_instruct_enabled" + COMFYUI_AUTO_INSTRUCT_BASE_TONE = "comfyui.auto_instruct_base_tone" + COMFYUI_AUTO_INSTRUCT_PROMPT = "comfyui.auto_instruct_prompt" + COMFYUI_AUTO_INSTRUCT_MAX_CHARS = "comfyui.auto_instruct_max_chars" diff --git a/plugin.py b/plugin.py new file mode 100644 index 00000000..8ee2b155 --- /dev/null +++ b/plugin.py @@ -0,0 +1,972 @@ +""" +统一TTS语音合成插件 +支持五种后端:AI Voice (MaiCore内置) / GSV2P (云API) / GPT-SoVITS (本地服务) / 豆包语音 (云API) / CosyVoice (ModelScope Gradio) + +Version: 3.2.3 +Author: 靓仔 +""" + +import sys +sys.dont_write_bytecode = True + +import asyncio +import random +from typing import List, Tuple, Type, Optional + +from src.common.logger import get_logger +from src.plugin_system.base.base_plugin import BasePlugin +from src.plugin_system.apis.plugin_register_api import register_plugin +from src.plugin_system.base.base_action import BaseAction, ActionActivationType +from src.plugin_system.base.base_command import BaseCommand +from src.plugin_system.base.component_types import ComponentInfo, ChatMode +from src.plugin_system.base.config_types import ConfigField +from src.plugin_system.apis import generator_api + +# 导入模块化的后端和工具 +from .backends import TTSBackendRegistry, TTSResult +from .backends.ai_voice import AI_VOICE_ALIAS_MAP +from .backends.doubao import DOUBAO_EMOTION_MAP +from .utils.text import TTSTextUtils +from .config_keys import ConfigKeys + +logger = get_logger("tts_voice_plugin") + +# 有效后端列表 +VALID_BACKENDS = [ + "ai_voice", + "gsv2p", + "gpt_sovits", + "doubao", + "cosyvoice", + "comfyui", + "comfyui_voiceclone", + "comfyui_customvoice", +] + + +class TTSExecutorMixin: + """ + TTS执行器混入类 + + 提供 Action 和 Command 共享的后端执行逻辑 + """ + + def _create_backend(self, backend_name: str): + """ + 创建后端实例 + + Args: + backend_name: 后端名称 + + Returns: + 后端实例 + """ + backend = TTSBackendRegistry.create( + backend_name, + self.get_config, + self.log_prefix + ) + + if backend: + # 注入必要的回调函数 + if hasattr(backend, 'set_send_custom'): + backend.set_send_custom(self.send_custom) + if hasattr(backend, 'set_send_command'): + backend.set_send_command(self.send_command) + + return backend + + async def _execute_backend( + self, + backend_name: str, + text: str, + voice: str = "", + emotion: str = "" + ) -> TTSResult: + """ + 执行指定后端 + + Args: + backend_name: 后端名称 + text: 待转换文本 + voice: 音色 + emotion: 情感(豆包后端) + + Returns: + TTSResult + """ + backend = self._create_backend(backend_name) + + if not backend: + return TTSResult( + success=False, + message=f"未知的TTS后端: {backend_name}" + ) + + # AI Voice 私聊限制检查 + if backend_name == "ai_voice": + is_private = self._check_is_private_chat() + if is_private: + logger.info(f"{self.log_prefix} AI语音仅支持群聊,自动切换到GSV2P后端") + return await self._execute_backend("gsv2p", text, voice, emotion) + + # Pass chat context through for backends that need MaiBot LLM APIs (e.g., comfyui auto_instruct). + chat_stream = None + if hasattr(self, "chat_stream"): + chat_stream = getattr(self, "chat_stream", None) + elif hasattr(self, "message"): + chat_stream = getattr(getattr(self, "message", None), "chat_stream", None) + + return await backend.execute(text, voice, emotion=emotion, chat_stream=chat_stream) + + def _check_is_private_chat(self) -> bool: + """检查是否是私聊""" + # Action 中使用 chat_stream + if hasattr(self, 'chat_stream'): + return not getattr(self.chat_stream, 'group_info', None) + # Command 中使用 message + if hasattr(self, 'message'): + msg_info = getattr(self.message, 'message_info', None) + if msg_info: + return not getattr(msg_info, 'group_info', None) + return False + + def _get_default_backend(self) -> str: + """获取配置的默认后端""" + backend = self.get_config(ConfigKeys.GENERAL_DEFAULT_BACKEND, "gsv2p") + if backend not in VALID_BACKENDS: + logger.warning(f"{self.log_prefix} 配置的默认后端 '{backend}' 无效,使用 gsv2p") + return "gsv2p" + return backend + + async def _send_error(self, message: str) -> None: + """ + 发送错误提示信息(受全局配置控制) + + Args: + message: 错误消息 + """ + if self.get_config(ConfigKeys.GENERAL_SEND_ERROR_MESSAGES, True): + await self.send_text(message) + + +class UnifiedTTSAction(BaseAction, TTSExecutorMixin): + """统一TTS Action - LLM自动触发""" + + action_name = "unified_tts_action" + action_description = "用语音回复(支持AI Voice/GSV2P/GPT-SoVITS/豆包语音多后端)" + activation_type = ActionActivationType.KEYWORD + mode_enable = ChatMode.ALL + parallel_action = False + + activation_keywords = [ + "语音", "说话", "朗读", "念一下", "读出来", + "voice", "speak", "tts", "语音回复", "用语音说", "播报" + ] + keyword_case_sensitive = False + + action_parameters = { + "text": "要转换为语音的文本内容(必填)", + "backend": "TTS后端引擎 (ai_voice/gsv2p/gpt_sovits/doubao/cosyvoice/comfyui/comfyui_voiceclone/comfyui_customvoice,可选,建议省略让系统自动使用配置的默认后端)", + "voice": "音色/风格参数(可选)", + "emotion": "情感/语气参数(可选,仅豆包后端有效)。支持:开心/兴奋/温柔/骄傲/生气/愤怒/伤心/失望/委屈/平静/严肃/疑惑/慢速/快速/小声/大声等" + } + + action_require = [ + "当用户要求用语音回复时使用", + "当回复简短问候语时使用(如早上好、晚安、你好等)", + "当想让回复更活泼生动时可以使用", + "注意:回复内容过长或者过短不适合用语音", + "注意:backend参数建议省略,系统会自动使用配置的默认后端" + ] + + associated_types = ["text", "command"] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.timeout = self.get_config(ConfigKeys.GENERAL_TIMEOUT, 60) + self.max_text_length = self.get_config(ConfigKeys.GENERAL_MAX_TEXT_LENGTH, 500) + + def _check_force_trigger(self, text: str) -> bool: + """检查是否强制触发""" + if not self.get_config(ConfigKeys.PROBABILITY_KEYWORD_FORCE_TRIGGER, True): + return False + force_keywords = self.get_config( + ConfigKeys.PROBABILITY_FORCE_KEYWORDS, + ["一定要用语音", "必须语音", "语音回复我", "务必用语音"] + ) + return any(kw in text for kw in force_keywords) + + def _probability_check(self, text: str) -> bool: + """概率控制检查""" + if not self.get_config(ConfigKeys.PROBABILITY_ENABLED, True): + return True + + base_prob = self.get_config(ConfigKeys.PROBABILITY_BASE_PROBABILITY, 1.0) + base_prob = max(0.0, min(1.0, base_prob)) + result = random.random() < base_prob + logger.info(f"{self.log_prefix} 概率检查: {base_prob:.2f}, 结果={'通过' if result else '未通过'}") + return result + + async def _get_final_text(self, raw_text: str, reason: str, use_replyer: bool) -> Tuple[bool, str]: + """获取最终要转语音的文本(使用与正常回复一致的prompt参数)""" + max_text_length = self.get_config(ConfigKeys.GENERAL_MAX_TEXT_LENGTH, 200) + + if not use_replyer: + if not raw_text: + return False, "" + return True, raw_text + + try: + # 统一使用 generate_reply 以确保触发 POST_LLM 事件(日程注入) + # rewrite_reply 不会触发 POST_LLM 事件,因此不适用 + # 注意:长度约束放在末尾,利用 LLM 的"近因效应"提高遵守率 + extra_info_parts = [] + if raw_text: + extra_info_parts.append(f"期望的回复内容:{raw_text}") + # 长度约束放在最后,使用更强的表述 + extra_info_parts.append( + f"【重要】你的回复必须控制在{max_text_length}字以内,这是硬性要求。" + f"超过此长度将无法转换为语音。请直接回复核心内容,不要啰嗦。" + ) + + success, llm_response = await generator_api.generate_reply( + chat_stream=self.chat_stream, + reply_message=self.action_message, + reply_reason=reason, + extra_info="\n".join(extra_info_parts), + request_type="tts_voice_plugin", + from_plugin=False # 允许触发POST_LLM事件,使日程注入生效 + ) + if success and llm_response and llm_response.content: + logger.info(f"{self.log_prefix} 语音内容生成成功") + return True, llm_response.content.strip() + + # 如果生成失败但有原始文本,则使用原始文本 + if raw_text: + logger.warning(f"{self.log_prefix} 内容生成失败,使用原始文本") + return True, raw_text + + return False, "" + except Exception as e: + logger.error(f"{self.log_prefix} 调用 replyer 出错: {e}") + return bool(raw_text), raw_text + + async def execute(self) -> Tuple[bool, str]: + def _chunk_sentences( + parts: List[str], target_chars: int, max_chunks: int + ) -> List[str]: + # Greedy packing: reduces tiny fragments into fewer, longer segments. + if not parts: + return [] + if target_chars <= 0: + target_chars = 120 + + def pack(tgt: int) -> List[str]: + out: List[str] = [] + cur = "" + for s in parts: + s = (s or "").strip() + if not s: + continue + if not cur: + cur = s + continue + if len(cur) + len(s) <= tgt: + cur += s + else: + out.append(cur) + cur = s + if cur: + out.append(cur) + return out + + packed = pack(target_chars) + if max_chunks and max_chunks > 0 and len(packed) > max_chunks: + total = len("".join(parts)) + new_target = max(target_chars, int(total / max_chunks) + 1) + packed = pack(new_target) + return packed + + async def send_message_single_sentences() -> Tuple[bool, str]: + result = await self._execute_backend(backend, clean_text, voice, emotion) + if result.success: + # 生成更详细的动作记录,帮助 planner 避免重复执行 + text_preview = clean_text[:80] + "..." if len(clean_text) > 80 else clean_text + await self.store_action_info( + action_build_into_prompt=True, + action_prompt_display=f"已用语音回复:{text_preview}", + action_done=True + ) + else: + await self._send_error(f"语音合成失败: {result.message}") + + return result.success, result.message + async def send_message_with_splited_sentences() -> Tuple[bool, str]: + # 分段发送模式:将文本分割成句子,逐句发送语音 + if len(sentences) > 1: + logger.info(f"{self.log_prefix} 分段发送模式:共 {len(sentences)} 句") + + success_count = 0 + all_sentences_text = [] + + for i, sentence in enumerate(sentences): + if not sentence.strip(): + continue + + logger.debug(f"{self.log_prefix} 发送第 {i + 1}/{len(sentences)} 句: {sentence[:30]}...") + result = await self._execute_backend(backend, sentence, voice, emotion) + + if result.success: + success_count += 1 + all_sentences_text.append(sentence) + else: + logger.warning(f"{self.log_prefix} 第 {i + 1} 句发送失败: {result.message}") + + # 句子之间添加延迟 + if i < len(sentences) - 1 and split_delay > 0: + await asyncio.sleep(split_delay) + + # 记录动作信息 + if success_count > 0: + # 生成更详细的动作记录,帮助 planner 避免重复执行 + display_text = "".join(all_sentences_text) + text_preview = display_text[:80] + "..." if len(display_text) > 80 else display_text + await self.store_action_info( + action_build_into_prompt=True, + action_prompt_display=f"已用语音回复({success_count}段):{text_preview}", + action_done=True + ) + return True, f"成功发送 {success_count}/{len(sentences)} 条语音" + else: + await self._send_error("语音合成失败") + return False, "所有语音发送失败" + else: + # 只有一句,正常发送 + return await send_message_single_sentences() + + """执行TTS语音合成""" + try: + raw_text = self.action_data.get("text", "").strip() + voice = self.action_data.get("voice", "") + reason = self.action_data.get("reason", "") + emotion = self.action_data.get("emotion", "") + + use_replyer = self.get_config(ConfigKeys.GENERAL_USE_REPLYER_REWRITE, True) + + # 获取最终文本 + success, final_text = await self._get_final_text(raw_text, reason, use_replyer) + if not success or not final_text: + await self._send_error("无法生成语音内容") + return False, "文本为空" + + # 概率检查 + force_trigger = self._check_force_trigger(final_text) + if not force_trigger and not self._probability_check(final_text): + logger.info(f"{self.log_prefix} 概率检查未通过,使用文字回复") + await self.send_text(final_text) + text_preview = final_text[:80] + "..." if len(final_text) > 80 else final_text + await self.store_action_info( + action_build_into_prompt=True, + action_prompt_display=f"已用文字回复(语音概率未触发):{text_preview}", + action_done=True + ) + return True, "概率检查未通过,已发送文字回复" + + # 清理文本(移除特殊字符,替换网络用语) + # 注意:长度应该由LLM在生成时就遵守,这里只做字符清理 + clean_text = TTSTextUtils.clean_text(final_text, self.max_text_length) + if not clean_text: + await self._send_error("文本处理后为空") + return False, "文本处理后为空" + + # 如果清理后的文本仍然超过限制,说明LLM未遵守约束 + if len(clean_text) > self.max_text_length: + logger.warning( + f"{self.log_prefix} LLM生成的文本超过长度限制 " + f"({len(clean_text)} > {self.max_text_length}字符),降级为文字回复" + ) + await self.send_text(clean_text) + text_preview = clean_text[:80] + "..." if len(clean_text) > 80 else clean_text + await self.store_action_info( + action_build_into_prompt=True, + action_prompt_display=f"已用文字回复(内容过长):{text_preview}", + action_done=True + ) + return True, "内容超过语音长度限制,已改为文字回复" + + # 获取后端并执行 + backend = self._get_default_backend() + logger.info(f"{self.log_prefix} 使用配置的默认后端: {backend}") + + # 检查是否启用分段发送 + split_sentences = self.get_config(ConfigKeys.GENERAL_SPLIT_SENTENCES, True) + split_delay = self.get_config(ConfigKeys.GENERAL_SPLIT_DELAY, 0.3) + + sentences = None + + # 优先使用智能分割插件的分隔符 + if '|||SPLIT|||' in clean_text: + logger.info("found split marker from smart segmentation plugin") + sentences = [s.strip() for s in clean_text.split("|||SPLIT|||") if s.strip()] + # If the upstream splitter is too aggressive, pack back into fewer segments. + max_segments = int(self.get_config(ConfigKeys.GENERAL_SPLIT_MAX_SEGMENTS, 3) or 3) + chunk_chars = int(self.get_config(ConfigKeys.GENERAL_SPLIT_CHUNK_CHARS, 110) or 110) + if max_segments and max_segments > 0 and len(sentences) > max_segments: + sentences = _chunk_sentences(sentences, target_chars=chunk_chars, max_chunks=max_segments) + return await send_message_with_splited_sentences() + elif split_sentences: + # 自动分段:短文本不分段;长文本最多分成 N 段,避免刷屏式多段语音。 + min_total = int(self.get_config(ConfigKeys.GENERAL_SPLIT_MIN_TOTAL_CHARS, 120) or 120) + min_sentence = int(self.get_config(ConfigKeys.GENERAL_SPLIT_MIN_SENTENCE_CHARS, 6) or 6) + max_segments = int(self.get_config(ConfigKeys.GENERAL_SPLIT_MAX_SEGMENTS, 3) or 3) + chunk_chars = int(self.get_config(ConfigKeys.GENERAL_SPLIT_CHUNK_CHARS, 110) or 110) + + if len(clean_text) < min_total: + sentences = [clean_text] + else: + sentences = TTSTextUtils.split_sentences(clean_text, min_length=min_sentence) + if max_segments and max_segments > 0: + sentences = _chunk_sentences(sentences, target_chars=chunk_chars, max_chunks=max_segments) + return await send_message_with_splited_sentences() + else: + # 单句发送 + return await send_message_single_sentences() + + except Exception as e: + error_msg = str(e) + logger.error(f"{self.log_prefix} TTS语音合成出错: {error_msg}") + await self._send_error(f"语音合成出错: {error_msg}") + return False, error_msg + + +class UnifiedTTSCommand(BaseCommand, TTSExecutorMixin): + """统一TTS Command - 用户手动触发""" + + command_name = "unified_tts_command" + command_description = "将文本转换为语音,支持多种后端和音色" + command_pattern = r"^/(?:tts|voice|gsv2p|gptsovits|doubao|cosyvoice|comfyui|comfyui_voiceclone|comfyui_customvoice)\s+(?P.+?)(?:\s+-v\s+(?P\S+))?(?:\s+(?Pai_voice|gsv2p|gpt_sovits|doubao|cosyvoice|comfyui|comfyui_voiceclone|comfyui_customvoice))?$" + command_help = "将文本转换为语音。用法:/tts 你好世界 [-v 音色] [后端]" + command_examples = [ + "/tts 你好,世界!", + "/tts 今天天气不错 -v 小新", + "/gptsovits 你好世界 -v default", + "/cosyvoice 你好世界 -v 四川话", + "/tts 试试 -v 温柔妹妹 ai_voice", + "/gsv2p 你好世界", + "/doubao 你好世界 -v 开心" + ] + intercept_message = True + + async def _send_help(self): + """发送帮助信息""" + default_backend = self._get_default_backend() + + help_text = """【TTS语音合成插件帮助】 + +📝 基本语法: +/tts <文本> [-v <音色>] [后端] + + 🎯 快捷命令: + /tts <文本> 使用默认后端 + /voice <文本> 使用 AI Voice + /gsv2p <文本> 使用 GSV2P + /gptsovits <文本> 使用 GPT-SoVITS + /doubao <文本> 使用 豆包语音 + /cosyvoice <文本> 使用 CosyVoice + /comfyui <文本> 使用 ComfyUI(本地工作流) + /comfyui_voiceclone <文本> 使用 ComfyUI VoiceClone + /comfyui_customvoice <文本> 使用 ComfyUI CustomVoice + + 🔊 可用后端: + • ai_voice - MaiCore内置(仅群聊) + • gsv2p - 云端API,高质量 + • gpt_sovits - 本地服务,可定制 + • doubao - 火山引擎,支持情感 + • cosyvoice - 阿里云,支持方言 + • comfyui - 本地ComfyUI工作流(自动按 style.mode 选择) + • comfyui_voiceclone - 本地ComfyUI工作流(仅 VoiceClone) + • comfyui_customvoice - 本地ComfyUI工作流(仅 CustomVoice) + +🎭 音色/情感参数(-v): +• AI Voice: 小新、温柔妹妹、霸道总裁、妲己 等22种 +• GSV2P: 原神-中文-派蒙_ZH 等(见API文档) +• 豆包: 开心、生气、伤心、撒娇、严肃 等 +• CosyVoice: 广东话、四川话、东北话、开心、慢速 等 + +📌 示例: +/tts 你好世界 +/tts 今天真开心 -v 开心 +/gptsovits 这是本地语音合成 +/doubao 我生气了 -v 生气 +/cosyvoice 你好 -v 广东话 +/voice 测试一下 -v 温柔妹妹 + +⚙️ 当前默认后端:""" + default_backend + + await self.send_text(help_text) + + def _determine_backend(self, user_backend: str) -> Tuple[str, str]: + """ + 确定使用的后端 + + Returns: + (backend_name, source_description) + """ + # 1. 检查命令前缀 + raw_text = self.message.raw_message if self.message.raw_message else self.message.processed_plain_text + if raw_text: + # 命令前缀到后端的映射 + prefix_backend_map = { + "/gsv2p": "gsv2p", + "/gptsovits": "gpt_sovits", + "/doubao": "doubao", + "/cosyvoice": "cosyvoice", + "/voice": "ai_voice", + "/comfyui": "comfyui", + "/comfyui_voiceclone": "comfyui_voiceclone", + "/comfyui_customvoice": "comfyui_customvoice", + } + for prefix, backend in prefix_backend_map.items(): + if raw_text.startswith(prefix): + return backend, f"命令前缀 {prefix}" + + # 2. 检查命令参数 + if user_backend and user_backend in VALID_BACKENDS: + return user_backend, f"命令参数 {user_backend}" + + # 3. 使用配置文件默认值 + return self._get_default_backend(), "配置文件" + + async def execute(self) -> Tuple[bool, str, bool]: + """执行TTS命令""" + try: + text = self.matched_groups.get("text", "").strip() + voice = self.matched_groups.get("voice", "") + user_backend = self.matched_groups.get("backend", "") + + # 处理帮助命令 + if text.lower() == "help": + await self._send_help() + return True, "显示帮助信息", True + + if not text: + await self._send_error("请输入要转换为语音的文本内容") + return False, "缺少文本内容", True + + # 确定后端 + backend, backend_source = self._determine_backend(user_backend) + + # 清理文本 + max_length = self.get_config(ConfigKeys.GENERAL_MAX_TEXT_LENGTH, 500) + clean_text = TTSTextUtils.clean_text(text, max_length) + + if not clean_text: + await self._send_error("文本处理后为空") + return False, "文本处理后为空", True + + # 检查长度限制 + if len(clean_text) > max_length: + await self.send_text( + f"文本过长({len(clean_text)}字符)," + f"超过语音合成限制({max_length}字符)," + f"已改为文字发送。\n\n{clean_text}" + ) + return True, "文本过长,已改为文字发送", True + + logger.info(f"{self.log_prefix} 执行TTS命令 (后端: {backend} [来源: {backend_source}], 音色: {voice})") + + # 执行后端 + # 对于 CosyVoice 和豆包,voice 参数实际上是情感/方言 + if backend in ["cosyvoice", "doubao"]: + result = await self._execute_backend(backend, clean_text, voice="", emotion=voice) + else: + result = await self._execute_backend(backend, clean_text, voice) + + if not result.success: + await self._send_error(f"语音合成失败: {result.message}") + + return result.success, result.message, True + + except Exception as e: + logger.error(f"{self.log_prefix} TTS命令执行出错: {e}") + await self._send_error(f"语音合成出错: {e}") + return False, f"执行出错: {e}", True + + +class TTSInstructCommand(BaseCommand): + """生成 CustomVoice instruct(调试/预览用)""" + + command_name = "tts_instruct_command" + command_description = "根据待朗读文本生成 CustomVoice 的 instruct(情绪/语速/停顿)" + command_pattern = r"^/tts_instruct\\s+(?P.+?)$" + command_help = "用法:/tts_instruct <文本>" + command_examples = [ + "/tts_instruct 早上好,今天也要加油。", + "/tts_instruct えっ?本当にそうなの?", + ] + intercept_message = True + + async def execute(self) -> Tuple[bool, str, int]: + try: + text = (self.matched_groups.get("text") or "").strip() + if not text: + await self.send_text("请输入要生成 instruct 的文本") + return False, "缺少文本", 2 + + # Use the same logic as ComfyUI backend auto_instruct. + from .backends.comfyui import ComfyUIBackend + from .utils.text import TTSTextUtils + + detected = TTSTextUtils.detect_language(text) + chat_stream = getattr(self.message, "chat_stream", None) + chat_id = getattr(chat_stream, "stream_id", None) if chat_stream else None + + backend = ComfyUIBackend(self.get_config, log_prefix=self.log_prefix) + instruct = await backend._infer_instruct( + text=text, + detected_lang=detected, + chat_stream=chat_stream, + chat_id=chat_id, + style_name="__command__", + ) + + if not instruct: + await self.send_text("instruct 生成失败(可能未启用 comfyui.auto_instruct_enabled 或 LLM 不可用)") + return False, "instruct 生成失败", 2 + + await self.send_text(instruct) + return True, "instruct 已生成", 2 + except Exception as e: + await self.send_text(f"instruct 生成异常: {e}") + return False, str(e), 2 + + +@register_plugin +class UnifiedTTSPlugin(BasePlugin): + """统一TTS语音合成插件 - 支持多后端的文本转语音插件""" + + plugin_name = "tts_voice_plugin" + plugin_description = "统一TTS语音合成插件,支持AI Voice、GSV2P、GPT-SoVITS、豆包语音多种后端" + plugin_version = "3.2.3" + plugin_author = "靓仔" + enable_plugin = True + config_file_name = "config.toml" + dependencies = [] + python_dependencies = ["aiohttp"] + + config_section_descriptions = { + "plugin": "插件基本配置", + "general": "通用设置", + "components": "组件启用控制", + "probability": "概率控制配置", + "ai_voice": "AI Voice后端配置", + "gsv2p": "GSV2P后端配置", + "gpt_sovits": "GPT-SoVITS后端配置", + "doubao": "豆包语音后端配置", + "cosyvoice": "CosyVoice后端配置", + "comfyui": "ComfyUI工作流API后端配置" + } + + config_schema = { + "plugin": { + "enabled": ConfigField(type=bool, default=True, description="是否启用插件"), + "config_version": ConfigField(type=str, default="3.2.3", description="配置文件版本") + }, + "general": { + "default_backend": ConfigField( + type=str, default="cosyvoice", + description="默认TTS后端 (ai_voice/gsv2p/gpt_sovits/doubao/cosyvoice/comfyui/comfyui_voiceclone/comfyui_customvoice)" + ), + "timeout": ConfigField(type=int, default=60, description="请求超时时间(秒)"), + "max_text_length": ConfigField( + type=int, default=200, + description="最大文本长度(该限制会在调用LLM时注入到prompt中,让LLM直接生成符合长度的回复,而不是被动截断)" + ), + "use_replyer_rewrite": ConfigField( + type=bool, default=True, + description="是否使用replyer润色语音内容" + ), + "audio_output_dir": ConfigField( + type=str, default="", + description="音频文件输出目录(支持相对路径和绝对路径,留空使用项目根目录)" + ), + "use_base64_audio": ConfigField( + type=bool, default=True, + description="是否使用base64编码发送音频(备选方案)" + ), + "split_sentences": ConfigField( + type=bool, default=True, + description="是否分段发送语音(每句话单独发送一条语音,避免长语音播放问题)" + ), + "split_delay": ConfigField( + type=float, default=0.3, + description="分段发送时每条语音之间的延迟(秒)" + ), + "split_min_total_chars": ConfigField( + type=int, default=120, + description="自动分段启用阈值:文本长度小于该值时不分段(避免短句被切成多段)", + ), + "split_min_sentence_chars": ConfigField( + type=int, default=6, + description="句子最小长度:过短片段会合并到前一句(用于减少碎片段)", + ), + "split_max_segments": ConfigField( + type=int, default=3, + description="自动分段最大段数(避免刷屏式多段语音)。0 表示不限制。", + ), + "split_chunk_chars": ConfigField( + type=int, default=110, + description="自动分段打包目标长度(字符)。用于把多句合并成更少段。", + ), + "send_error_messages": ConfigField( + type=bool, default=True, + description="是否发送错误提示消息(关闭后语音合成失败时不会发送错误信息给用户)" + ) + }, + "components": { + "action_enabled": ConfigField(type=bool, default=True, description="是否启用Action组件"), + "command_enabled": ConfigField(type=bool, default=True, description="是否启用Command组件"), + "instruct_command_enabled": ConfigField(type=bool, default=True, description="是否启用instruct调试命令组件(/tts_instruct)") + }, + "probability": { + "enabled": ConfigField(type=bool, default=False, description="是否启用概率控制"), + "base_probability": ConfigField(type=float, default=1.0, description="基础触发概率"), + "keyword_force_trigger": ConfigField(type=bool, default=True, description="关键词强制触发"), + "force_keywords": ConfigField( + type=list, + default=["一定要用语音", "必须语音", "语音回复我", "务必用语音"], + description="强制触发关键词" + ) + }, + "ai_voice": { + "default_character": ConfigField( + type=str, + default="邻家小妹", + description="默认音色(可选:小新、猴哥、四郎、东北老妹儿、广西大表哥、妲己、霸道总裁、酥心御姐、说书先生、憨憨小弟、憨厚老哥、吕布、元气少女、文艺少女、磁性大叔、邻家小妹、低沉男声、傲娇少女、爹系男友、暖心姐姐、温柔妹妹、书香少女)" + ) + }, + "gsv2p": { + "api_url": ConfigField( + type=str, default="https://gsv2p.acgnai.top/v1/audio/speech", + description="GSV2P API地址" + ), + "api_token": ConfigField(type=str, default="", description="API认证Token"), + "default_voice": ConfigField(type=str, default="原神-中文-派蒙_ZH", description="默认音色"), + "timeout": ConfigField(type=int, default=120, description="API请求超时(秒)"), + "model": ConfigField(type=str, default="tts-v4", description="TTS模型"), + "response_format": ConfigField(type=str, default="wav", description="音频格式"), + "speed": ConfigField(type=float, default=1.0, description="语音速度") + }, + "gpt_sovits": { + "server": ConfigField( + type=str, default="http://127.0.0.1:9880", + description="GPT-SoVITS服务地址" + ), + "styles": ConfigField( + type=list, + default=[ + { + "name": "default", + "refer_wav": "", + "prompt_text": "", + "prompt_language": "zh", + "gpt_weights": "", + "sovits_weights": "" + } + ], + description="语音风格配置", + item_type="object", + item_fields={ + "name": {"type": "string", "label": "风格名称", "required": True}, + "refer_wav": {"type": "string", "label": "参考音频路径", "required": True}, + "prompt_text": {"type": "string", "label": "参考文本", "required": True}, + "prompt_language": {"type": "string", "label": "参考语言", "default": "zh"}, + "gpt_weights": {"type": "string", "label": "GPT模型权重路径(可选)", "required": False}, + "sovits_weights": {"type": "string", "label": "SoVITS模型权重路径(可选)", "required": False} + } + ) + }, + "doubao": { + "api_url": ConfigField( + type=str, + default="https://openspeech.bytedance.com/api/v3/tts/unidirectional", + description="豆包语音API地址" + ), + "app_id": ConfigField(type=str, default="", description="豆包APP ID"), + "access_key": ConfigField(type=str, default="", description="豆包Access Key"), + "resource_id": ConfigField(type=str, default="seed-tts-2.0", description="豆包Resource ID"), + "default_voice": ConfigField( + type=str, default="zh_female_vv_uranus_bigtts", + description="默认音色" + ), + "timeout": ConfigField(type=int, default=60, description="API请求超时(秒)"), + "audio_format": ConfigField(type=str, default="wav", description="音频格式"), + "sample_rate": ConfigField(type=int, default=24000, description="采样率"), + "bitrate": ConfigField(type=int, default=128000, description="比特率"), + "speed": ConfigField(type=float, default=None, description="语音速度(可选)"), + "volume": ConfigField(type=float, default=None, description="音量(可选)"), + "context_texts": ConfigField( + type=list, default=None, + description="上下文辅助文本(可选,仅豆包2.0模型)" + ) + }, + "cosyvoice": { + "gradio_url": ConfigField( + type=str, + default="https://funaudiollm-fun-cosyvoice3-0-5b.ms.show/", + description="Gradio API地址" + ), + "default_mode": ConfigField( + type=str, + default="3s极速复刻", + description="推理模式(3s极速复刻/自然语言控制)" + ), + "default_instruct": ConfigField( + type=str, + default="You are a helpful assistant. 请用广东话表达。<|endofprompt|>", + description="默认指令(用于自然语言控制模式)" + ), + "reference_audio": ConfigField( + type=str, + default="", + description="参考音频路径(用于3s极速复刻模式)" + ), + "prompt_text": ConfigField( + type=str, + default="", + description="提示文本(用于3s极速复刻模式)" + ), + "timeout": ConfigField(type=int, default=300, description="API请求超时(秒)"), + "audio_format": ConfigField(type=str, default="wav", description="音频格式") + }, + "comfyui": { + "server": ConfigField( + type=str, + default="http://127.0.0.1:8188", + description="ComfyUI 服务地址(示例: http://127.0.0.1:8188)", + ), + "input_dir": ConfigField( + type=str, + default="/Users/xenon/Downloads/seiun_tts/ComfyUI/ComfyUI/input", + description="ComfyUI input 目录(用于放参考音频,LoadAudio 会从这里读)", + ), + "timeout": ConfigField(type=int, default=120, description="ComfyUI 请求超时(秒)"), + "audio_quality": ConfigField( + type=str, + default="128k", + description="输出 MP3 质量(SaveAudioMP3 quality: V0/128k/320k)", + ), + "mlx_python": ConfigField( + type=str, + default="/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/.venv/bin/python", + description="MLX Qwen3-TTS venv python 路径(用于 ComfyUI-MLX 节点子进程)", + ), + "mlx_cli": ConfigField( + type=str, + default="/Users/xenon/Downloads/seiun_tts/qwen3-tts-apple-silicon/mlx_voice_clone_cli.py", + description="mlx_voice_clone_cli.py 路径", + ), + "default_style": ConfigField(type=str, default="default", description="默认风格名称"), + "voiceclone_default_style": ConfigField( + type=str, + default="", + description="VoiceClone 专用默认风格名称(用于 comfyui_voiceclone 后端;留空则回退到 default_style)", + ), + "customvoice_default_style": ConfigField( + type=str, + default="", + description="CustomVoice 专用默认风格名称(用于 comfyui_customvoice 后端;留空则回退到 default_style)", + ), + "auto_instruct_enabled": ConfigField( + type=bool, + default=False, + description="是否启用 CustomVoice instruct 自动推断(使用 MaiBot 的 LLM 接口)", + ), + "auto_instruct_max_chars": ConfigField( + type=int, + default=120, + description="自动推断 instruct 的最大长度(字符)。建议 80-160,太短会导致情绪/表演提示被截断。", + ), + "auto_instruct_prompt": ConfigField( + type=str, + default="", + description="自定义 instruct 推断 prompt(留空使用内置模板)", + ), + "auto_instruct_base_tone": ConfigField( + type=str, + default="", + description="自动推断 instruct 时固定附加的基调描述(会作为 `基调=...;` 前缀插入;会自动清洗为单行,且不会包含 `;`/`=`)", + ), + "pause_linebreak": ConfigField(type=float, default=0.0, description="换行停顿(秒)"), + "period_pause": ConfigField(type=float, default=0.0, description="句号停顿(秒)"), + "comma_pause": ConfigField(type=float, default=0.0, description="逗号停顿(秒)"), + "question_pause": ConfigField(type=float, default=0.0, description="问号停顿(秒)"), + "hyphen_pause": ConfigField(type=float, default=0.0, description="连字符停顿(秒)"), + "styles": ConfigField( + type=list, + default=[ + { + "name": "default", + "refer_wav": "", + "prompt_text": "", + "language": "", + "model_choice": "1.7B", + "precision": "bf16", + "seed": 0, + "max_new_tokens": 2048, + "top_p": 0.8, + "top_k": 20, + "temperature": 1.0, + "repetition_penalty": 1.05, + } + ], + description="ComfyUI VoiceClone 风格配置(参考音频+逐字稿)", + item_type="object", + item_fields={ + "name": {"type": "string", "label": "风格名称", "required": True}, + "mode": {"type": "string", "label": "模式(voice_clone/custom_voice)", "required": False}, + "refer_wav": {"type": "string", "label": "参考音频路径", "required": True}, + "prompt_text": {"type": "string", "label": "参考文本(逐字稿)", "required": True}, + "language": {"type": "string", "label": "语言(可选: Auto/Chinese/English/...) ", "required": False}, + "model_choice": {"type": "string", "label": "模型(0.6B/1.7B)", "required": False}, + "precision": {"type": "string", "label": "精度(bf16/fp32)", "required": False}, + "model_path": {"type": "string", "label": "CustomVoice模型路径", "required": False}, + "speaker": {"type": "string", "label": "CustomVoice说话人", "required": False}, + "instruct": {"type": "string", "label": "CustomVoice指令(或__AUTO__)", "required": False}, + "auto_instruct": {"type": "boolean", "label": "按style启用auto_instruct", "required": False}, + "speed": {"type": "number", "label": "speed", "required": False}, + "seed": {"type": "number", "label": "seed", "required": False}, + "max_new_tokens": {"type": "number", "label": "max_new_tokens", "required": False}, + "top_p": {"type": "number", "label": "top_p", "required": False}, + "top_k": {"type": "number", "label": "top_k", "required": False}, + "temperature": {"type": "number", "label": "temperature", "required": False}, + "repetition_penalty": {"type": "number", "label": "repetition_penalty", "required": False}, + }, + ), + } + } + + def get_plugin_components(self) -> List[Tuple[ComponentInfo, Type]]: + """返回插件组件列表""" + components = [] + + try: + action_enabled = self.get_config(ConfigKeys.COMPONENTS_ACTION_ENABLED, True) + command_enabled = self.get_config(ConfigKeys.COMPONENTS_COMMAND_ENABLED, True) + instruct_enabled = self.get_config(ConfigKeys.COMPONENTS_INSTRUCT_COMMAND_ENABLED, True) + except AttributeError: + action_enabled = True + command_enabled = True + instruct_enabled = True + + if action_enabled: + components.append((UnifiedTTSAction.get_action_info(), UnifiedTTSAction)) + + if command_enabled: + components.append((UnifiedTTSCommand.get_command_info(), UnifiedTTSCommand)) + + if instruct_enabled: + components.append((TTSInstructCommand.get_command_info(), TTSInstructCommand)) + + return components diff --git a/test.wav b/test.wav new file mode 100644 index 0000000000000000000000000000000000000000..3755070182871f8d6cefc623a99125c7638d7334 GIT binary patch literal 889100 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�?|J3`*@Pf>e(Hyp}Lp)VN*YW1{YMz&#`<@q`FP;p3X`bTVX5Q}Jq2Afv)!tp+J6?;g zl&`$6A#TJ6I9s})F*+F7rM?bU3tx!zBYXawZjsPjdTpqx%rt&6Rkd`r4uvT+h*X%9 z&J>=GS_wrGtO@U&OPocVyB(z*`|UOD7i@!VrEzKdXnkOPWPNVEU|nPV!RoYbv=p+e z2kkk-Y-Sdmy_e{$M&7F4Y~I&6z+drP@Z9tSP?{9SIdZUfvGEg6U}AoYF6%Q7tx-3wLe1YozOTG?1w|A+x zwl~Bb*v_6i5C+{8&mzySe7=gm(>%4jOT2pSLM|%Fv4QW@ui+R?4Zn}Hi5-lm;0$|F z$P^`mRTh#vR8mY7-jl?5Gk!C60*w4E zbG7E7Eg*fX)CQ_Aa5C^)pkJU$z#jPQf5G*C&V0NM6a95`kvTvwN8_IULXE1qNts?B zObylqJ&(YWdK4ZS$q_vn9U3be&x~*7%*diYt?w-8#r0xQX}461ex$a%P1Y+_m5!WX zlQ_u+DBYBAm9Laf^561A)Td#?QF@nBhJWcivq^`@(>hC%>kg7JHzqd8}R6(!9o8m2sM@aox{({-MNSFhMtFfW5Y*TKtFEucIHvMG2 zYc68>-4d}Bw|2K~wmz|nwo*7KF2x)4rA@S#wtvUn7;c}yeW-2!Y+GonWV?nQ3W@SH0klWHzbl7k8uXP_Z9a@I=@IY?C$XXXp39k)R3B87YP%{`*kHMVi zp*B$~f*mzho2qR=IOc;kYynp~#Q(j3n$;ex0;A>cpgGi^`o3oPdbndGGqNyRlvCo@ zcp2@g_9Hs^_4+Ep9if-_PV5BVpdd=hkQI@K6lKp#V~`vYi7t{c+BKwlvEb) zr7dD-(TFa(IZg{JsGRrf+K>-93mwu@I=)k}8sw6e;7QOpu@8rGhDHXjs0C4#x_NF* z{++&IzOQ{|-$(C#G=Y!2L3Y-TzHL6qKZc!WPhdDI({iD&!llqA*Nc4{Z>SYuc6}IR zEL5d_;0$atfcPoy)cbe<0!Nz z(&~SltwziP*M>TQ*uD&2WNpu)9vsJ{Xligya3+765*!WgzZ{;{;o$qAGgLh^lIxxq z-oeXom&hYn4`-syn4)x#KZMQlkJdr=jO6pH`fp**Bcrpuv~IMxtC#;bVF3c8bV)~ zT3_&b*c{Iae>wrSR!b1JHO!~}bb?2;_%P zS}OP<_*ZCLxHq$jI4vW+N5FddoYD6SY}2Ye_1fTb9X|rj{s5W6``3w&kxz!8lC0 z3df_hVYT#JG>Fx3l)8d8{9A259usR~d17axqgeUZnR3>S1Yp68WbPv~`MLc+Zp!b> zHdlmx;p5lPRQlH;p}t)4aiK*ZL64bnwh6CdV(=Xkm~zq0(R}bclH)Vu;W(U5tvnOm zY~W!J_1}Sks6q{Ky0}d|4YK%*U)T6-2b_T^_)%0Aom}-xWGZ%p5fIV;t?!L9)P3C~ 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

1nA88Phru=u;s-sf&4<(6M9as_ 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 literal 0 HcmV?d00001 diff --git a/utils/__init__.py b/utils/__init__.py new file mode 100644 index 00000000..1c0e5cd4 --- /dev/null +++ b/utils/__init__.py @@ -0,0 +1,12 @@ +""" +TTS工具模块 +""" + +import sys +sys.dont_write_bytecode = True + +from .text import TTSTextUtils +from .session import TTSSessionManager +from .file import TTSFileManager + +__all__ = ["TTSTextUtils", "TTSSessionManager", "TTSFileManager"] diff --git a/utils/file.py b/utils/file.py new file mode 100644 index 00000000..c56469a6 --- /dev/null +++ b/utils/file.py @@ -0,0 +1,280 @@ +""" +文件操作工具类 +提供异步文件操作、临时文件管理等功能 +""" + +import os +import uuid +import tempfile +import asyncio +import base64 +from typing import Optional +from src.common.logger import get_logger + +logger = get_logger("tts_file_manager") + +# 音频数据最小有效大小(字节) +MIN_AUDIO_SIZE = 100 + + +class TTSFileManager: + """ + TTS文件管理器 + + 提供: + - 临时文件创建(避免并发冲突) + - 异步文件写入 + - 自动清理 + - 相对路径和绝对路径支持 + """ + + # 临时文件目录(兼容旧代码) + _temp_dir: Optional[str] = None + + # 项目根目录(用于解析相对路径) + _project_root: Optional[str] = None + + @classmethod + def set_project_root(cls, root_path: str): + """设置项目根目录""" + if os.path.isdir(root_path): + cls._project_root = root_path + logger.debug(f"设置项目根目录: {root_path}") + else: + logger.warning(f"项目根目录不存在: {root_path}") + + @classmethod + def get_project_root(cls) -> str: + """获取项目根目录""" + if cls._project_root is None: + # 尝试从当前文件位置推断项目根目录 + current_file = os.path.abspath(__file__) + # 假设结构是: project_root/plugins/tts_voice_plugin/utils/file.py + cls._project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(current_file)))) + logger.debug(f"自动推断项目根目录: {cls._project_root}") + return cls._project_root + + @classmethod + def resolve_path(cls, path: str) -> str: + """ + 解析路径(支持相对路径和绝对路径) + + Args: + path: 路径字符串 + + Returns: + 解析后的绝对路径 + """ + if os.path.isabs(path): + # 已经是绝对路径 + return path + else: + # 相对路径,相对于项目根目录 + return os.path.join(cls.get_project_root(), path) + + @classmethod + def ensure_dir(cls, dir_path: str) -> bool: + """ + 确保目录存在,不存在则创建 + + Args: + dir_path: 目录路径 + + Returns: + 是否成功 + """ + try: + os.makedirs(dir_path, exist_ok=True) + return True + except Exception as e: + logger.error(f"创建目录失败: {dir_path}, 错误: {e}") + return False + + @classmethod + def get_temp_dir(cls) -> str: + """ + 获取临时文件目录(已废弃,保留兼容性) + + Returns: + 临时目录路径 + """ + if cls._temp_dir is None: + cls._temp_dir = tempfile.gettempdir() + return cls._temp_dir + + @classmethod + def set_temp_dir(cls, path: str): + """ + 设置临时文件目录(已废弃,保留兼容性) + + Args: + path: 目录路径 + """ + if os.path.isdir(path): + cls._temp_dir = path + else: + raise ValueError(f"目录不存在: {path}") + + @classmethod + def generate_temp_path(cls, prefix: str = "tts", suffix: str = ".mp3", output_dir: str = "") -> str: + """ + 生成唯一的临时文件路径 + + Args: + prefix: 文件名前缀 + suffix: 文件扩展名 + output_dir: 输出目录(支持相对路径和绝对路径,留空使用项目根目录) + + Returns: + 临时文件的绝对路径 + """ + # 确定输出目录 + if not output_dir: + # 默认使用项目根目录 + resolved_dir = cls.get_project_root() + else: + # 解析用户配置的路径 + resolved_dir = cls.resolve_path(output_dir) + # 确保目录存在 + if not cls.ensure_dir(resolved_dir): + # 如果创建失败,降级到项目根目录 + logger.warning(f"无法创建输出目录 {resolved_dir},使用项目根目录") + resolved_dir = cls.get_project_root() + + # 生成唯一文件名 + unique_id = uuid.uuid4().hex[:12] + filename = f"{prefix}_{unique_id}{suffix}" + return os.path.join(resolved_dir, filename) + + @classmethod + async def write_audio_async(cls, path: str, data: bytes) -> bool: + """ + 异步写入音频数据到文件 + + Args: + path: 文件路径 + data: 音频二进制数据 + + Returns: + 是否写入成功 + """ + try: + # 使用线程池执行同步文件写入,避免阻塞事件循环 + loop = asyncio.get_event_loop() + await loop.run_in_executor(None, cls._write_file_sync, path, data) + logger.debug(f"音频文件写入成功: {path} ({len(data)} bytes)") + return True + except IOError as e: + logger.error(f"写入音频文件失败: {path}, 错误: {e}") + return False + except Exception as e: + logger.error(f"写入音频文件时发生未知错误: {path}, 错误: {e}") + return False + + @staticmethod + def _write_file_sync(path: str, data: bytes): + """同步写入文件(内部方法)""" + with open(path, "wb") as f: + f.write(data) + + @classmethod + def write_audio_sync(cls, path: str, data: bytes) -> bool: + """ + 同步写入音频数据到文件 + + Args: + path: 文件路径 + data: 音频二进制数据 + + Returns: + 是否写入成功 + """ + try: + cls._write_file_sync(path, data) + logger.debug(f"音频文件写入成功: {path} ({len(data)} bytes)") + return True + except IOError as e: + logger.error(f"写入音频文件失败: {path}, 错误: {e}") + return False + except Exception as e: + logger.error(f"写入音频文件时发生未知错误: {path}, 错误: {e}") + return False + + @classmethod + def cleanup_file(cls, path: str, silent: bool = True) -> bool: + """ + 清理临时文件 + + Args: + path: 文件路径 + silent: 是否静默处理错误 + + Returns: + 是否清理成功 + """ + try: + if path and os.path.exists(path): + os.remove(path) + logger.debug(f"临时文件已清理: {path}") + return True + return False + except Exception as e: + if not silent: + logger.warning(f"清理临时文件失败: {path}, 错误: {e}") + return False + + @classmethod + async def cleanup_file_async(cls, path: str, delay: float = 0) -> bool: + """ + 异步清理临时文件(可延迟) + + Args: + path: 文件路径 + delay: 延迟秒数 + + Returns: + 是否清理成功 + """ + if delay > 0: + await asyncio.sleep(delay) + loop = asyncio.get_event_loop() + return await loop.run_in_executor(None, cls.cleanup_file, path, True) + + @classmethod + def validate_audio_data(cls, data: bytes, min_size: int = None) -> tuple: + """ + 验证音频数据有效性 + + Args: + data: 音频二进制数据 + min_size: 最小有效大小 + + Returns: + (is_valid, error_message) + """ + if data is None: + return False, "音频数据为空" + + min_size = min_size or MIN_AUDIO_SIZE + + if len(data) < min_size: + return False, f"音频数据过小({len(data)}字节 < {min_size}字节)" + + return True, "" + + @classmethod + def audio_to_base64(cls, data: bytes) -> str: + """ + 将音频数据转换为base64字符串 + + Args: + data: 音频二进制数据 + + Returns: + base64编码的字符串 + """ + try: + return base64.b64encode(data).decode('utf-8') + except Exception as e: + logger.error(f"音频数据转base64失败: {e}") + return "" diff --git a/utils/session.py b/utils/session.py new file mode 100644 index 00000000..8535b04c --- /dev/null +++ b/utils/session.py @@ -0,0 +1,186 @@ +""" +HTTP Session 管理器 +提供连接池复用,避免每次请求创建新连接 +""" + +import asyncio +import aiohttp +from typing import Optional, Dict, Any +from contextlib import asynccontextmanager +from src.common.logger import get_logger + +logger = get_logger("tts_session_manager") + + +class TTSSessionManager: + """ + TTS HTTP Session 管理器 + + 提供: + - 连接池复用 + - 自动超时管理 + - 优雅关闭 + """ + + _instance: Optional["TTSSessionManager"] = None + _lock = asyncio.Lock() + + def __init__(self): + self._sessions: Dict[str, aiohttp.ClientSession] = {} + self._default_timeout = 60 + + @classmethod + async def get_instance(cls) -> "TTSSessionManager": + """获取单例实例""" + if cls._instance is None: + async with cls._lock: + if cls._instance is None: + cls._instance = cls() + return cls._instance + + async def get_session( + self, + backend_name: str = "default", + timeout: int = None + ) -> aiohttp.ClientSession: + """ + 获取或创建 HTTP Session + + Args: + backend_name: 后端名称,用于区分不同的session + timeout: 超时时间(秒) + + Returns: + aiohttp.ClientSession 实例 + """ + if backend_name not in self._sessions or self._sessions[backend_name].closed: + timeout_val = timeout or self._default_timeout + connector = aiohttp.TCPConnector( + limit=10, # 每个主机最大连接数 + limit_per_host=5, + ttl_dns_cache=300, # DNS缓存5分钟 + force_close=True, # 禁用连接复用,修复GSV2P等API的兼容性问题 + ) + self._sessions[backend_name] = aiohttp.ClientSession( + connector=connector, + timeout=aiohttp.ClientTimeout(total=timeout_val) + ) + logger.debug(f"创建新的HTTP Session: {backend_name}") + + return self._sessions[backend_name] + + async def close_session(self, backend_name: str = None): + """ + 关闭指定或所有 Session + + Args: + backend_name: 后端名称,为None时关闭所有 + """ + if backend_name: + if backend_name in self._sessions: + await self._sessions[backend_name].close() + del self._sessions[backend_name] + logger.debug(f"关闭HTTP Session: {backend_name}") + else: + for name, session in self._sessions.items(): + if not session.closed: + await session.close() + logger.debug(f"关闭HTTP Session: {name}") + self._sessions.clear() + + @asynccontextmanager + async def post( + self, + url: str, + json: Dict[str, Any] = None, + headers: Dict[str, str] = None, + data: Any = None, + backend_name: str = "default", + timeout: int = None + ): + """ + 发送POST请求(异步上下文管理器) + + Args: + url: 请求URL + json: JSON请求体 + headers: 请求头 + data: 表单数据 + backend_name: 后端名称 + timeout: 超时时间 + + Yields: + aiohttp.ClientResponse + + Usage: + async with session_manager.post(url, json=data) as response: + ... + """ + session = await self.get_session(backend_name, timeout) + + # 如果指定了不同的超时时间,创建新的超时对象 + req_timeout = None + if timeout: + req_timeout = aiohttp.ClientTimeout(total=timeout) + + response = await session.post( + url, + json=json, + headers=headers, + data=data, + timeout=req_timeout + ) + try: + yield response + finally: + response.release() + + @asynccontextmanager + async def get( + self, + url: str, + headers: Dict[str, str] = None, + params: Dict[str, Any] = None, + backend_name: str = "default", + timeout: int = None + ): + """ + 发送GET请求(异步上下文管理器) + + Args: + url: 请求URL + headers: 请求头 + params: URL参数 + backend_name: 后端名称 + timeout: 超时时间 + + Yields: + aiohttp.ClientResponse + + Usage: + async with session_manager.get(url) as response: + ... + """ + session = await self.get_session(backend_name, timeout) + + # 如果指定了不同的超时时间,创建新的超时对象 + req_timeout = None + if timeout: + req_timeout = aiohttp.ClientTimeout(total=timeout) + + response = await session.get( + url, + headers=headers, + params=params, + timeout=req_timeout + ) + try: + yield response + finally: + response.release() + + async def __aenter__(self): + return self + + async def __aexit__(self, exc_type, exc_val, exc_tb): + await self.close_session() diff --git a/utils/text.py b/utils/text.py new file mode 100644 index 00000000..93524c08 --- /dev/null +++ b/utils/text.py @@ -0,0 +1,181 @@ +""" +文本处理工具类 +""" + +import re +from typing import Optional, List + + +class TTSTextUtils: + """TTS文本处理工具类""" + + # 网络用语替换映射 + NETWORK_SLANG_MAP = { + 'www': '哈哈哈', + 'hhh': '哈哈', + '233': '哈哈', + '666': '厉害', + '88': '拜拜', + '...': '。', + '……': '。' + } + + # 需要移除的特殊字符正则 + SPECIAL_CHAR_PATTERN = re.compile( + r'[^\u4e00-\u9fff\u3040-\u309f\u30a0-\u30ffa-zA-Z0-9\s,。!?、;:()【】"\'.,!?;:()\[\]`-]' + ) + + # 语言检测正则 + CHINESE_PATTERN = re.compile(r'[\u4e00-\u9fff]') + ENGLISH_PATTERN = re.compile(r'[a-zA-Z]') + JAPANESE_PATTERN = re.compile(r'[\u3040-\u309f\u30a0-\u30ff]') + + @classmethod + def clean_text(cls, text: str, max_length: int = 500) -> str: + """ + 清理文本,移除特殊字符,替换网络用语 + + Args: + text: 原始文本 + max_length: 最大长度限制(此参数已不用于硬截断,仅用于参考) + + Returns: + 清理后的文本(不会硬截断,保留完整内容以便上层决策) + """ + if not text: + return "" + + # 注释掉文本清理功能,保留原始格式 + # 移除不支持的特殊字符 + # text = cls.SPECIAL_CHAR_PATTERN.sub('', text) + + # 替换常见网络用语 + # for old, new in cls.NETWORK_SLANG_MAP.items(): + # text = text.replace(old, new) + + return text.strip() + + @classmethod + def detect_language(cls, text: str) -> str: + """ + 检测文本语言 + + Args: + text: 待检测文本 + + Returns: + 语言代码 (zh/ja/en) + """ + if not text: + return "zh" + + chinese_chars = len(cls.CHINESE_PATTERN.findall(text)) + english_chars = len(cls.ENGLISH_PATTERN.findall(text)) + japanese_chars = len(cls.JAPANESE_PATTERN.findall(text)) + total_chars = chinese_chars + english_chars + japanese_chars + + if total_chars == 0: + return "zh" + + chinese_ratio = chinese_chars / total_chars + japanese_ratio = japanese_chars / total_chars + english_ratio = english_chars / total_chars + + if chinese_ratio > 0.3: + return "zh" + elif japanese_ratio > 0.3: + return "ja" + elif english_ratio > 0.8: + return "en" + else: + return "zh" + + @classmethod + def resolve_voice_alias( + cls, + voice: Optional[str], + alias_map: dict, + default: str, + prefix: str = "" + ) -> str: + """ + 解析音色别名 + + Args: + voice: 用户指定的音色 + alias_map: 别名映射表 + default: 默认音色 + prefix: 内部音色ID前缀(如 "lucy-voice-") + + Returns: + 解析后的音色ID + """ + if not voice: + voice = default + + # 如果已经是内部ID格式,直接返回 + if prefix and voice.startswith(prefix): + return voice + + # 尝试从别名映射查找 + if voice in alias_map: + return alias_map[voice] + + # 尝试使用默认值的别名 + if default in alias_map: + return alias_map[default] + + return default + + @classmethod + def split_sentences(cls, text: str, min_length: int = 2) -> List[str]: + """ + 将文本分割成句子 + + Args: + text: 待分割文本 + min_length: 最小句子长度,过短的句子会合并到前一句 + + Returns: + 句子列表 + """ + if not text: + return [] + + # 使用中英文标点分割 + # 保留分隔符以便后续处理 + pattern = r'([。!?!?;;])' + parts = re.split(pattern, text) + + sentences = [] + current = "" + + for i, part in enumerate(parts): + if not part: + continue + + # 如果是标点符号,附加到当前句子 + if re.match(pattern, part): + current += part + else: + # 如果当前句子不为空,先保存 + if current.strip(): + sentences.append(current.strip()) + current = part + + # 处理最后一段 + if current.strip(): + sentences.append(current.strip()) + + # 合并过短的句子 + if min_length > 0 and len(sentences) > 1: + merged = [] + for sent in sentences: + if merged and len(sent) < min_length: + # 合并到前一句 + merged[-1] += sent + else: + merged.append(sent) + sentences = merged + + return sentences

TW}x#**Ex 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%0DOIa}E)^K#^nUcxF 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�XyEKZ@D65}8j!A0}X%Ci8qQ$6v+FJC2S$=2KtL?bKuv%5ilKv1pAsax;E6 zZhH2>y|1v|q3^oI~G^GJp4T-GamC4EEz*!d!`F-U(g|(Zeu1(kYlw z30{zE%f)@CM5Du)+o_O$Dx@IzIt1HPJkphUCzAKXxCq7>!L^YJ+5W^aL=AUlUKQLi zf_oqhpNS-n7{}xWWwBrtFM|;9p9@bqM|oGogmx<=JN} z-c25Nk?h755b0%copwC z(xZeCd&x7wYb0!tU&d`(^!nW zV0}pB6iMW45u+Q!xxVlayf)(MU*c;%z|7e6Ff=DxC+5}65{jX8pNnPOjyzH zqW=&1??J-7z2SU99|TK{;QA5VB2*W$3YB4mize8O?2J)vbVzXaq++y%<|JzH7i5yi zawM2*K5?A^=4s;G5E>{rY;rTsC9pR|m|ud!M(|A~viPJyPJ&rRaOMbRBf*-Kc)vm# zf@3K0zJo}e1%OWqHV`o@lO;T&coxb3UhY%yqqt;r1dEH{c}dg*i|>i=L?q0uWZYj0 z#w-mF!JUwms}s7HDq$w4NVs0XbR_s$1ecTGfDt;PF_NK#EAa5DcnHQA@s2pMV6qWc zkjNe*7?8vmedi9|BK1U0m)AUh!+$TBw=a19k$X$ztq~e07+&I$srX(ZtB!a@urLW8 zB_U}cXEDQtT*NFDf5mU{nqYkr-xk`Dc$I?HMsWLxA0aiN`+_4$@cYGa2EivKp8t=d zO7MD#GYj?@p{rsZC2E@(6~Q(Z&(Ra_TpUSUr;x8Wl6e0+S0e894caSarMR>2{1wjy zH;}`q*c?IVvpA1ngi8FLIGfOSaU^jE!kUR0Dwu<`gmD&Qk;r2t#$7OhMWHo`W@3NMz>{pA+8{-g1afvekbxGiTJ2s8WKnM za9qJX6oEDfYbn1pky^%n~bv&{1&|!AK=O zn;M-H#}NEnIq~}h`(Hl(=H_<+Y-;|5IVTwNaxhyG=d@sT6Sg)p8Y|A8ga5=jE;Ly1 z?}+OY$NT{aCHf1AXA(9k1)mUpp15+sa3$E}GV$%~*b2elCZ6Zu{JFRqaV?p7U#uBo zo{IZR&oRY}7HgeY*M!|nZr`Tbn2i26 zONGr9d}9A&krFIhLf60WN}~1)tq{5)zUAF?ZGvosB@yd{umc~Fl$c+_dJCqn zMCK{FPH}{kd|S+4Aw82be&MdJb4S;?4|}0momaRXA$7qbB$x=J`Mj_rf{R1U z7vcQ~Ry-jq9Ssl+j{&4`lRFWsuh>rrX(nCB4YIvvpN!ui{cZ)9t$?RD9)V7OO+0N6@G)5!RgV`92_?T zztf|gNqAMT=!v5w>Z!0nf$Du8P3sZ1T`4d*3@5n~*dI@H>c)lsv&QdWtLX!pK zSP~>6&LNm0#hM{F&IBJ|l7usfF>sJXB2$?7E11Uw<5Uq=7UK1lF7_v(9QxXl##*u}M z5$tn0crKVVg+C;CwZuB}0u2|sa~WNKhxCL8Exbg*Q72d%tFnt|$*!*#etJdx^WWGZ zHDiZSjH9LHT*4{}352+o$LuiAapX^2Z!E`-=bGPeHsLd>T&1u>DH(}mT&rM#6MGS{ z?mcH$AZFPOzWaoq*L+9t=y~|0U=&Q2U>lQi*FqO%M*kbfz0G_SoLPIAlLy%i>||$f zo>_XCyTseZ~<^N~R(eJP%cgIB!EE;;Fy-l`$U!vxY*H zzbDx`8RTqlaMssBe><|5Tw*TjS8`Fc-iRzgZY8Ud4McJ_r5LEZoC*vYWDoKv$*KQ$ z<)D0@DEvXPzXL#rl#s)zPF+ouIT!KejmT9nP18?<*kxG|v8N~D*`fB)GU^BQ_TFs1x4wm8 zIl_m8&kmm)UN`)1Sog4kVOrQpUoT%u-x{ytZK>bUCTVpwS6!<%0yWVe#O)7pcXX07$=M+#vJ3I@!a@gsAfeF{vZN0{Zt~e|B-2*N$$BanVs{JO1Jw-@(no$9N-I-drA?|1as-cuoYav zDiG@{)E;VDP;kGHbH4yKwKCOL+lkVx!!J0?@p=+B&q3vHAM&3DRdVl$+>dn%(6?%d zJp>F>W~y^O(j{-Q)tP)#BdeX&g3b(cL9yB}LhQF=?YzWQAAn}QP4$`J$oYl*qzy*> zK2_g+iBq4YYQ&T?QeUwgl+|t?$CQ7_0G6b`#DDSz;@7R@+F*+|k+IOF6KGjU=Jt8C zIwjejQN(UFa+X`1A;jIYI!T;3`?-CRzBdc)m2}`fNKN7!kQNW@JN75AQKjiq)q~8# zI->SZsAEV16;E>qLy4Ib zVeSnEiMWs%JA_!yFd~}E;q|#oeDflatB=I2kMsOBKfA#J?U+ z^}ZUVB?EIjNUcOy+vG5#EK~+EpN`8D_-)9x5WPu-!{Hc ze3AID_&}T#pD(^^{QCGP|7w2)`by6V)-~FgXRM)4n@~w`tfulxU8I%JlX?sIT7>lt z|0UvPM0n)qh+z>wL}ZTWNAJbhh^mqOBFjeJh!`0$GvaZ?$B2s&ry}}9tO>syRv_$< zuYj+=_o)6*o23>~LQ-~V0T{n*p+W94XFC;|n_+=CW7apl=5^z5W=JO^itdtS=|}0( zOeTu1f;H(Wm^Juo@K~@iec~6JIq4g6!5VJYqi%E=IIa%~ynsu|C2ge#;x)Of^1Cui znT`HkA^)76*^yNHRqI6+SYa)S8oXb%*8Dx9j%5T+kn5H~NVFl(Jy1G`2eO8YU|485 zDE{%zVP^2}Rt{^u`N}9kr{-=!o9?VX1g`l1^f&jX^S_IKfg_yP-^}0J-^V}DKimI` z&f~`eVZoBYespW=ZR|55%!$;AOrxqS7L;R4HzgkKK6o^e{yk^4 z`Fe9|!{+&7eLsiw30p)5#;EWn;lsk`htCPG7ydY`Y}gWC2VZwz1)uCYna9RKhB1^#>f)Pcr#TT9*L<*;8=(z58s^y7LTy_-&_M(=&!_pl4$StA1Bo5CN2{~qxq zLW@iuc|M{+gc@->d|CK}@SWi|!rO;84J+Vl>W!o45@{Hm1nzk9EOq_^bySkvUV%g97Dh!l_Dc~3S3cVkfX!p)$$4Ecn7d2vGiTZPc>_V zGL;JLWgs0>utKht$rWPx#*B+7Y_yPSG#v>Am~B%Y6OA9)~>*I~KMutXo*Gur*=V!d{2H2)i1#F|2mj zbKgGSB41};3g2|Exjx>-O0de!dE`d7l9J=A4gxY8&#to;Xyhnkq%`s?^5&~yMJa*Bo`Ro~ z4PF4j?C~BBue)Sk+kJnR%rW|7S<5Bjf;$}x zFoh!w=h=EPzn?&kt8nLi;hc}irHZPo#&~Z1@l3~(MeIWUaXNm%cGle^?3niuuYXML zF&Fo{h}Co?o@Ef`!#3mFb5&RFb%p-p^miG?u|5;vL!8nP` z>z`ycrt$L+_FHEL3y$E^d_qJA;zA-KDmdd!?mCJchlsk07)}oSi{k7X8nc_|N=|rI zLI$iZSKkqDV=(_s1EanHeVxtUt#}v5@hxtGjfms%9_x5ZFa+U!d?I6gotnAhpk4MQ zcq0Gu{0fiTyz>N~WF^Nr!aK{!v&}?O4aiOH1C6kr9ZgHFL$LmfD4^Kc7h!*tnHrR9 z>@gg8HU+cvH*EVEGE&p=%MB37KJMr&zUXwcbRzpM4R6v<=4c4=*+DEquxP(z&wPcy z*O1gs^!he?va1REx=UoYHX!#roXcUa7t22FCi}G)NKLRGi!Kz0*xMZ9JIB$To9rUR zUhfsw^Z=g{5&t(F_Y(WF{Oq7jH94P% zTjyb?En;UC$YoU~do_uSY<_mIDtDiq?DQ!f|FL^b%MQIfJI8A5f*sa5v7;3IZ$ykr z^h^-^>d&~l{RtVUSnO*Bj$`v(aj)yp>b2}duOX2=U_eFBrd#OvG_E~eLM$X3vVBKv zB?HI#l%O3ixL45&;vHwVk#j+=N-$oRW4~R4U3@BhyOd~AdS1`OPV*Ob#$S-1h(mk0 z_8RC?W%kFSN8!hWeSA9h=!FvQ?F*wY9o_y&p3+1^;ou>!UKZUKy)8r@CIr@`J5u`r z@8AIYa0l#ZET0eKl{m)o8lT9@u}ogOOnz?%qwBCY%*h?3X8i9FXA<2{a-u(ZxZ20; zsjsri%$ zX5(_cBjVBDxn98!em`MEL}bR#EX$7$iz^G~ZwMQ691o=xIpYtEV_A096^V)ncKWN# z*JE()b|ZgT&vT8;a#xNO!8lLF-lSnfpCSthO)19RpJ3dR5Ge@bj!F`N5d7UA7^}jZ z#b%^FaCM)k@65&3pXRt<7&Xyv$02^P2`xX*=%qk=E#o6_5YITmN9q{zF^VvN zFg_)*H(!_+ExG>WX!AFY+@AI2ACD~M!1vqAU4LPw8mtgL#&jL1=l8?1a69+|1w*?}z6vya+{W!60#(8uT4<&i`~N@J0yP;W7TYQ7%eWu6i* zi6I8@-I+lBL;uhw5NTAgP@S`%O2=4yW-rFY&v_kq@G=%T5e*a#(A#tN;1#C_*g5DT9$;Uyu>kwvQlkE-a_^woAH!!O^4Q` zXZ2ZtB|6Ml?n*$|W#zgAH@e`FUj#1ZEfvTWnR$LRWd)kG72Wp0^KyXaqlrg}Sgoit zNrhf*VH9`s{&zHBFYnaC7A59Ko}xo3m_@l6r^D<&+cIu%m2SycO7oQiA}@5tQ(OL7{(z=#rWV0+nuMOP3O{gv zhoRvodf~0cv)aup8tX0vkJ=}+9Bph3+sJDoAr;`D+6K1u5_}5jKwQ6YQ^FH{nfOH) z;%mj>inswA=uvR(U%BHysK0Ft&a`4^5%Gl==wn*utHTTk;`g=!F?zpe_$ZmJQI(5mJ9Ts}_)#@q9n^>FX80 zx<<+CY2aRg+wLYDC0P`|=Qdc_NHjeKx_C2`0u1F@&yUJFWsY=~YJ|U>1MUh>UTIzE zPq#DH=?r!%9xr!&CZ={e%27OM~c0yV$v5*LVBawXAV&6_AhnrOTncb{RNt$HQz;L%Qg8vYXh$ z-LY_Nyb7Iwk?2Qe>j03IFP-`JQulY*p|8Q8)DIMA(-3vcFdY`~lyGHi;6$$VB&&Bd z=F|I7dw7ca%2h%~>`YEpVra!-;93uIZLqxG)5iJ`9AQ3l(#rp^pPuB2W9Pipc@QcF zPW5jot*58E-fm|7YOf6CVW)IhUMdxL2e1dU>~3yltYZmQlr#9RQ80K7c7CLGub^|@ zX&Tzdjv&8t#d_xSKrdaBB$l}S=G>;;9T zPM)h$cQ{S+gqp!!`NYU&n(kvILND!|a#xj5XLg|#8tdYRa>^_xA`iJ(UPitBf7 zdUg@-Ud%VXd8jLd{e3$KeMNe&ckqqSE=#|-^{kpi3hvv5r83$G{kHzQw%(J5detnU z4^->U@Wjill%(u3My;#>iQfdedwh5 z!aU&CkRPc_w1!H0&u8bj{VSHSrhCA%0i<^-`8MpMW98JInND7MT2BjIl)j=*L$HCX zVE*kQk5a}fcce9L4lCApW>=BME4M`qUrK_FZ^J5AkjUv$k5_rE-qG`WH!4@1v_|JZ zWy5w#D6x85UnXya`q4AaEenTCT_;kWq8?PT%P>O{OAcU{4#WO>g8GZ?F1tPXs?tyC z1{YUGsu+q<;bf}y$gHNgSs-~{D5brr zybY9+&WS)p|LtH?=dcu19OWna8&{G8^n!k2*Rh(}pWVHlXHtM_wbW9>&=F@N6+g>i zOA3TGQ9Tm^4gWIq5A%GdbHjRV_P0-m$|~K}&u~yam2QU8us?nY8hAA968T)eRnwUv zCDSfwSL8y@BqFAUC zPEjHwGaX5Ks=ShOhn`yhnjfs??h|RXxMXSIKFbAmt9)EsTq29ZJ{Tp zlZ`d%6>MOUq4CZ+v#?dzJqO$ASgnJ%wmK%HTWtgN{G)>%of~pNVw~mF;_`6EG>#dS ztQzh%=^*u~Z9OmCbfMp{4nsn9=|Zkhqrcd*mpbAFaEg_d%fNE-h}dUeB9iSF`F zD*Kbw$gMBWP+zNAi0A$6&7kgpA+ua)3LK8X&?q^HHp!dQ*Gv1&Q_cR}YU?PvD>9IS*ZV$8ZW%nIxT?wiq zn@F`h&)w$E0z0RZk2&!W4x`DTc}_IlrZ?E>+(q>C?&*2OTAUFsmZfeca(2_%$-M#P zd4Vk3Byiu+?o-zw+VQvBj7~4GRZ#i+P})X+j*>7!?g)j;pNR@hVKtcGREM+RsI!7P zZH4;xfU;Z7szxZ2rFXDpnlNQ_amzDTD#3-*4(_SPp=(r%7NlmSnq*MTf7>Y>y3Bt~ zJt8mjABP2BCHea(utR=_Cn)k;P!OLu2(=()5?`IVekyxd%B8tUL|w?>-X%t-q< z)tip}$?Yf6otM7d=aey03wMGYZTYQf&Oe@=aB@wAQ)ela+>7ng&h$_PIknbYf2{3P zTPRuNBc2Mb4>skzp0i4S{f76xx1+vY{i>$aFKU0Pd6gnkAy&&L?oH1%CCb~}SIoOq z+pqMH`cZ+=Ng5_^Qh$KcVuaE_PS3rbCnHsaj7%$d;zlbYsFyXA!NmW=n8nGYzV0o% zI-}jhGfl3k>e>(5C^fy3Uuw*FoVB|Uy&PmOcNXEF-X_9!hFe^gZ-`(f5(z$fbQ( zTTu(SUR|mErgw+k{(_cOuSKq40-Sldm0Hy3cckVp1>V98;Z1o~OLyc;N`7^Yl3NZE zBe_K#PY2?PgXnWIBs80<%SNzKe)k-tuA`f0p*!4(#X8J|7v(=z^OsJ0>_``TkDZR3 z;z299wb<%wZ?@CI73NK^vRQr2 zq~<201zFufW=l9G*V#j*|nT%C9>FUVN!UnUe#*pX#gJ<_BHl?(QLSY$|+HDMhR3(XdD&E$3sn|b#f!B z<_qEzH;@}hm8oe@#jY%)r&nl*`$;i2 z+-mGGQkiAVYUCfL*i+ok>=^IBxxUe=XvPO4$$hmTqa89FvyU~$%3}2~Pna*Qk>qPn zkdGaPWOG^bj2yu!CpB zC~={hp6*hd{FnMgtF0e}4ZN1NR{IEl-zI$$KhyQ4+Aa08nnnxL?|2u5{T%)=tYcU! z-xYm=wok3D)>jv)m(jeU+D%-bL{Ww+^6f-nL>zA^5uL;A zp7#MaONEbffc^FfYBWkv!&Ntwg-F6%*r{u?`}{;CTnarRf7_Y&w^EHKyG@)Hc6qCl zncPfbHYbmt)+}V~58ft2xye{-OeDuYj%P99b?X2%uQ$oP zM}rYK8T=fm7$_7l0*#IRShcM%{T;VT!;rDp{KHyf?{^G#S$BwNCu7f$mHcrEnAP@3 z6XcFq5b{WBK5e(wR9~p~)jPwyVe&Ii_jx;c7kHEUe)KJZKfk$N9O;$wPVi3gF8AK_ zUiAL$?dx5v|DnaJ*U8kcSN~Kyk>3qhU8OKGe69Wkw{$0Epd1btdpD||vlGoKfh6(} zJ(&PTL}0^evCAJpe;_<^xS6+5r8}Gs0GH`N@|8Tk=r7)!O1l{9ISX**L#Z$yX-~AC zk&SC<&M^No*PA)bzl@Sb7Nb0V>Yxi)$>1D) zVQw=QnXz<`sA=!DWhbR`9oE`qRIQh^y|AyngV!vxZPQ;O1^rd7xJ9rXSKw=Y38=G< zx(DxhJ(M)H3TSy)V2!_=fsYgyjrN6IL|rldqsJhc~_co3=r{ z15;ET&OuV<`V#!A6;q$c$%y}e1OJ{H?|u2%`oe()x%DP zA2u0#9Zlv%ax>%Um}Yybtee5guEOK7i&6O%j=`DO(sPai?&f*utY?+f5q^Zu$_*s5 zQJKQeH>Ec0c*QhZ8>`3Z^Svv)rruhgsdd8FP7P0YM!I)I`PTZ*`P%xLcz;JC?N}QJ zG84}!Ghw}Gtv1BpC_&Y`q?DwdxFNgzviL@?>L**ima2*Yt4>R91XA-O0BC>gZTcfN=RtGDy^~xM> zrZ8_9`;C`IEPXld7^TdE%%V}YHN5Nd0^9+Kps;go3W5Rc}m#ZD{FbRO=^Gj4%*dR z8=(!=n!(aW$*-npx78PF3+=S_nl2N`^gs3I`YNQ?mQ}9>e56J7V)}gTuDTfB<6Tq) zH&eXIQM~*|7(SY7c_Zbt1l0b{+$moh`{m z^_GfDFNiT-rSdNm9B#evh_A9r-Dh7W+YPMQ<}sMZY8#)8?Ph)}FW7+qR;ryb*+>bi zS2kh`)vfwge^}`5TR($u3F7PZqh@-YvjgAKX9!(kyanLX+MHT+6_zQ5G71KLzHf>wnw|H<<|S@ zl~@;RYrlgpS)goD0?JT8*g~!`c>PPzqYm)j#lV2)<<%?d4|Ha@ubfZ{koC=t*ZmnE zcqrIFiL6m#K1SqiL~nK(TeX!al7mdfphab=k}OXCvMn5IXQ|LvCKHnfM`;j{aI=CmWv+ya(}b#yOSL-y?makvIBvv;HF{4iDZE#-?+Ye|+q zd42@@G>^!91k6~4sJzTX)mw8i3O?d_o5+McX2qOCgn2C1e6#xq+uNN^JGHFaW>+)2 zdCll-WH)jctd99jW zUr(bS)N*PU>G`yrmFya8+9vgZ+DKci&D7c;y+YvP9;x?Wy=$OVL#Ac56xtFsw|bSx z&N#UzjBUH|IUB;OlwH0Dqnsa(k|xBfMpBpk08h^HM3D`Sq4GB;?0-RY=@R(`4{>}4 zZs^5Sgtx_`sLrTfU`!7&8y35FL9!eqB6i&BZ6&cLo3?S;_+)%Et{L~SH&Gxt-Wnf_ zG-hf1tTJFa>YDvo+a8+9>1(qRyIvPmLP3}n2B1-8!5TCGbD&|Zv$|m2oUg>H?!m*L zF+0E0vtlTm1{c^(WkqV^hy%a~OvgG$n!%p0I+&y5N;P%2dI7!K$j??)(~dIlD(OA+ zj`&G0;2;h|tM06W?=bY~v1a~~K#*X>B=V=URF4`kl{BKmz1 zG=S_5fd}}Fc>;eaxsl%(WUMph8!e6YcmxNSbH&XcnSIGw<*u8V;Nn?Cgx$x!WDYTs zaQ3jd?0)uDyS%dze)>{y0OSKl^VqqM|6d$Wt)}Smfvqa!++$ZT%7O2SnBy_7r3(3< zl6W&a*kjxSc~=XY>w(?Bui{mE!~OXLPV6dbbA0S}c$L+(->^_c@yAsyjW$e+)k^BN zHcM-w{fO-PX@&J>aP&rKf2&uNH()Qj!Uq0LdCH@%G8|5k;?#m+I-;tNY!v2J6 z>^_ zN*D$3oLU&Yj74BLZ-U;eVV*ZLTY0P!*rjhUbL`@dqbWuUIy;^0WG*CUs*?>p*+A|2 zR2Z%v(haW^nV3%Ck1m0^m`siSXc*Ow!`HV3M!VIpCp>m{z~o#{V*QrC$`y&Dzktss zEo=OA^$2~qZmSA@dQB~$9$-H^TpbMl^OD+CORiUDjVrF_MZY>Dw{+TJI;N@M+D6hn zX{~ZjIRIZ~4fZK@XtfgXnX6#A%Ixf7bss|irsLRb-CSc-1+SzUpMqEL!s`)fio*AtgZCY8 zHnGOD&m91leF-a!M}Dg$T`@jevq5v_ph`dJR0EfM5N?tU?6`A+e7Osbvl1NzX5&R% zgg;}H-NL?N_jMM+pF7$u&dTQ{S0VCQ=ZSz020eFIS%r@jk4-A3dhvrstI4rPX|y}4 ztrmxY(*&*is~S`WC<^l@ost(0nnye;lY>x{=Ad||!lfUrq*wn?Z^F-Bhn4RpxYfmA zIcE?}sDNM4o329}$lA@O0=_W5RcR?TwkkWee;852$8eKQlE%=nGcEC(v0#@bI(u2; znp$(rd?1w@o8`?`=2)<0QLJ$b%?D-#n8G+%dG?z>V8PF`u8n8iZ-s{)jYUdk&*q+A z*=d|Qcm#*Ybj@`l@zZBvkIKWjWDqe&mb*UW?VXw6^+0kaAOa^w6{Fx3wkOQtgiR4)1+|R#h{w zUrn?>*h#0+u7XsJQX><73V~8RPM@$OFcy^qSG9o51o>FlRknkX>IOTf2}8puP_b3; z2x7=P?aM+g54jx?H?x%hlZnA$R+~qi8NZZxDNcC@abUoBqFxTLSN9QBaF00m{GAOcU&Ua8owMQWd2uKxtSdkE2!h=r?uOE6kDK-lT1c#h$Pm9_K1*1`e>U)qz*%7uZ_5%dbGo z4PtIpfR#@P z+e>4)F&(M=U>0S@jfDd*2Pi}jR{axb`)Ba%zOhp9z0UA=PQ!0sYcEGCot)#a78NI! zdKrGvv8<=tz^Xl^56oESlzj$9vwfhAr_#CgDZ4!{-da~r9y+5wm-oQAyjuN18>}tX z9%z;HT>2OyaMj2m{h?je>grAO5_&84BeB}=S}Sd`_7D4%dio#iPulB0>OHlYYJ|Fq zXk~I@EBBRrtcZKmUiem+$+Ji z!3st=tNyRnF7|o-tTfgwb1N}`o8YXM(2wMdbrkz_!ET9<)PQ*T7S_q3aOE_0t|7%M zMD8|QGwij_6tbxI!5`FR#n=q<@N%iYENtymC7$jV_31)*Qk|#PW^N1y@!n2Lp}*9B z_0}cZV}MMZ$SU?x>!Y1jyD@W0sO{;Okv~CuW-A?)eai1@3ay;>3!eFAHM`nC?Srp0 z02_W%&JPz_I%P6_U{>*eQCX4Nvr{O5l^~nMzVJ4M3wT>x9Yli$vnv} zf3x|`%zz(xj^1I-tesY7d%K;_X@kxAlj@3N*zIpl8M0(U;oM5@USW^dkKOTCCl9EV zYUo!l7~$?n^XMHK$qIF!aZitjb4aU-rK#dA^649GJg4J^k^Lsl!8h|{KlUsDSQd1<2Lf_Gw>)rk%0@rz#R_S zy$-AY48^2(LOck}BV_(P^f&gvj+PpZUJDM!3wV9&x!bYkzo3z~8XJvTbcs3;%pP14 zm=g#D1_VC_ml@^QmGoopA2hvq18J>DOXl~lM9Lq*r}q#($Hg4uiRqd{i1=ovk5Ira zKri1zFy+pohNFqo-1$sh&larFJLiiV0m7jV6&pps3AOR$!jIdg99De-ru~scZ^;}Z=i3}vtzf@QLVF4_vuG8KR%;ZH?`_| zI=vh7GF~l@lr}5fVJJQ#Ka$tLt#q5mQvQBLkKWN^rZvp3s}qpCJMoD^?6=3b1IcK1 zum{@zQbY6!o4m_x2i`p=z@GlbzF@xKi9naY;DCZ{?tvEd3N{XQXKocW+8Dp#Wv4M> zf)$M$Mswng*Ui7p0p=8V_*Pg$$%Qv3f3lKQYd)O}y7NeG53^kJEZQ{%?%s;{mBm3A zRAPmH6G{bx++I2!kHy#Z%C99axbnfoh$gBTv_aYcEm}LFyZSdhH&MuC-um7!Zw#wf zdhTD*pJ`*YS9munak;`+=yB-UU4F<|;vY@Mrz}N>s1@X>N+^ewG-^nBPIPL!d|w(4 z0=EElP7$yv=98;SJ&Aj?!+#!t4I;A34z?E9cd}HNN5Lpf@-+ zFfx!Lc$sPl7oPa~W(D(Ca};dE%i)0@$$zoNW8(?&wiU$J7PEWnVy3c!7PU$2$(D*t z3^?ZY@QuxJGC6aR{%HJeFWIER&PiBX&%(#tAKQG_eMoP>7vw4zu*;kXSA0<_k!sWb zudBKZPq~QxN#E~n>YMJH;;Zg^;GOC%;5|*esE3{d@29OkR3D%ZCURs_<26Q$(K<52 zvU)Xdr2YiIXBMm1HzIB2S<@@h;khDA-P`3F#FPBsWo-1Nx742)z(gslv=AJe;J*08 zDqo-az(Jv5ZagcjLmWqP9^&VnvMlqGF+4am5bIw|)kw5|T0qD0#0T>jig7D=Ab2!* z8vThdej$3jn|w$GGicaGUg{K@6Qdjl-a>Y|(AnUMv)&n>(2XhRJj1>$#>2W`@56Im z#;WxreozOuOQ<8fpz%^!a87yY%p1fftj|uehf-Qi$@)D@KdrCUQ|J}7kKlEpwSV=M z-b%i*zI)!Z-ZR>McC$~^jM_bIDYL7neo~vD?c|?(u?Tl{2R!L`otR_B9Bepn!Z6iCi}Yj&SPr^>PhsktY97WTY46B zWS8CxYco!3L@Z>f)|Q=GeIiNG#M17vo~=;+qQh?wY66m@l{bhyy~BTA$j-Dibpegx z+}sI{F0(vBItlXc92ui@@b*nchejfwc(R|z;nWKUkFwBQYa}zW5l`Gl70pp>PeCI4 zd5yYwJlE*;^pH4qTO+4o1mmcM{Mndg6g1zOL#-3|ggaQNJ6Q`YjXt!`;3XVEq;`dK z6UP0yj!JI?&2DEGbvnAM*+ICliCu%Y@gtokdV?LEM$JQiB7jdlqolbo?{6hW_*@-I z5AdDD$3_yfPVHOaZ9)g#`56vz>>hqz=c4XV4Yxx;JV;5dR#|gjn@!Y z?1KfWW=5FzsJLmz`dv<-XV@{=*y6_YYraKnc0G~UX!|BHkS_2!w&b15wrRH_&ar|$ z*&z4;m$3(}!+!b?xTd>d4@%JE;hcJiYPkkfAT2=?#%de2y!u65VJ`Xgk$N`jY5I{1 z`NzA(`;&LGo>^~?Or~fD(X%+b!<%?LyOmqYO7(Z`1~YA&I+^%u0cuffc?4{}-RS3% zpA~7MXQy;V&Zk_!K5vEta0|J;2=-a+=~DHE=u1-fEU27UbOzW+1iz4V7oWv7%UF`d ze$;3eTp#!|kTQ5bxSP(8Da<9*&@K;7BZoHCxN5vLzLHC%hbWoa{qU22V?Ir@=F=Zl zWsmR+43}r%fZc8vWha*p#^1_#J0Yh8)yH)~RFq=36=MG|3l{7&(ic3Oj8tJwzz^I@ z%qKru(|~*3tNlg1;vBXmr*@6qRt@hD-a+~-qG9XQ5#&K~c=LOg>f^O)UO3lFR`tXkq+CXi6kxtskd9XBDV+c*c^;;W~y-B5tps&X%@OdRc#({ zz^%zh774Y%6I(_sArrfv^Ug6WO)6^*>+yU#BJDPNn{QaLa}e#>$m}{!_UA7iPmQ06 z+?ORsw$CibCmdrIkqyo62>z?Coy+b8lWtS`SnA~B_7lk&N~K*_$ZR&*lZZ|)L635? zN);vkIt=99PES8piBd4=g%L?O3x>fjcT$qFd(`kumazgS2mjDh+r(btKRup$wi9}8 zy$$iN>*_QzV|U2AX4H16y4psWq?A;Lsk7A5+CCz#n}~trRiDwvx`uk4I7dscCLZdU z-qEjaFwzN^=THIl2#kaR>LX5iPLJdRpqf7uaZW;Rtu0KOCdk{EP?Kp*8U7SEW|-vQ&}yi{n`$y`y{lJmi)ScHVYWo`0hX`3YX#CwQT6 z5IG$qUzJ5i!bf!BT1tPRw5r9Yj>Ewmj)$CEIZv0(;UFu2U>}|Ygv>DN#n#~4T=vwJ z9&zs3RI5It&Z#(A>22Vv%VLq+v)7tPW_uL>nMAKzfEzx`Zn_9PZu7dQ*&WTpk|ZM* zI0HM;fvm(qqNFyRI@7@`THh(j>#g9V+zrCw6MK=Q#Ij3=9QOdZxn0QTPvWUDNOUwi zP1kKl{%I08%06UN^1$(V3jFtGGUX5GTKO;8x&S!hkznq1YGhiHT^EcpRmkDpC4zp7 zozEg7Weu4NUMT=_`!jj?R&-k!NsMMK448pz!dyc&DX4Rv9Y&h{^!QR-JI+2-FFZFko^Sy_Ysg`Y z19jGm+-eunrhVgEK?lofUt5Ba%70C*Aj5fSdg6gU=Jnx8(Hl$*!0-vbQ>y3C` zndikBhaA+mr02L%NFp821iP2u!%2pWBB{I)ta5^T?E&=#AE>u@17bsr;~nabjuLZN zfJ~Ni?KilWO(F(C1=@1z^)_=~qBe0or~o0qC17Kh5KWpJ8iq8cBHc|?t?Y#xaU6cn z3bH1b$rS9Re&a6E*vOCI{&`H5-xpr_#5yag!dxmgyu@Boaowf4*HS!Bikt+uXi6%F zS`xMDj}HCH{fX{f1KHblNZ{0Li53juy}_Qb=vo)z5~4P+JNv0I)YJ^1-m3(fIE?p& zg!=Png=Cu{%WBB3CbDb5H;Pj^kc_kbh@>)74JP9JTsvz5}FE{ ze=$`lqnW1V|@$rewgkV{Nt|ofO!W zyWk^FQ%xees05Muc5+L%sCg-X1O!WuV1)d@Ck0<+M#e0H8YaPWmIRc!sQOBQOa%L2 z7G%_nd#*)AO#wccfzKCW{?+8(s`Gw%?ztVV!fK)VDlO$S~X#=I$yjmyKa^Kc|l z`PTt``)NIM01^joltPiiCRXRD;Eq>g2yKnvrMocU8J5z)K;D6 z=TgG&vy8o9DirK~cfd&8;T~^eL3V))JxjIPUUcUV?CnZq@gFD(x+3%J2(mrOF~E1A zKg&QoU1RQE<>vy&y~KH5aBflY_=Zp2M~Z?8Cyp8Rh1_p8v|aFR3BJ92TzNL`Qt(L$ z*4v!OB^U1s=9nntEEvtQGWNOoFB>*Xu!0Gm9Ki!roN*V{zci10NU|w&t0=D*<9<^i zGcjjHU1StTO-I$6L(Shus=VUCS_l@UA9yDgdE94iC8tK@E7$atJ3EA|?xIDnx#L}E z$0_dODR(I9o3=2!wqRASGwc3ihRx*pO=izcQD4CQzUTN?`ScUMB`W8(@cMI(`8U@1 z1Vg`rDEJ| zDr%|TbFA;65q{#`oM@I{Wy^&`yhyA%5)0$ok<_#4{4Y4y3h+6>ZdjD#h+_-Jw7h&? z@b(F&NWsmVmU;e#Q9R0Vb0B9?m6wX|WZ-qd6_^%ze&XIgp;@tL${DoBkK8ix*~@${ zj%&@ybBjB@&u0X)v0$f+L-xoRla1sMCx%(s%rL)5=EV{Vm3 zyCS&X+6fv_0DZ}f?iA%N)1XKBnM-+*YEC3qlD~opP8>IpS1Ocn{n?mR8h4t4`%{oz zQ9kGAjs$yhX7(Xl8Gj*bh0NFi@E0}l1@@yQg5UT$SDTjOJz`D?_T#JQz*{s?Mep7s zKL<$(wlW-8WG6D&C;8?Ev`FacLnI`4lD;R*)KeVe6Guye?5-m%Q5&2T4VU<)U?Tg< z47`qH)9}C0bHR})*h-(Fb%NbfuvT3}C-A1=H8{S| z)MC7@b2X2+=Tht}1s|HIHNA;FIKy15LiNaMw5>c>W?;p{O!~1fz5=PE@?U2>hb>6G9PfuheOTGE;p5FE(zTe50TY=W+Zl_-tjTp*)kh+| z%gpLNcmnNM!vtUDZ2ZPS3D-Un?RWszY!dS{nxmfM?Ag%fn`p}s#^Voi8I4)({sb91 zh4E_&%JDc777Vr9@eQZrRc}OcN11^p@(ZDP|8fsLP|B59z5Mva--zoJ;O^<&OOKSV zc!879@!HJhVO;xN=ILp?f^!_F1TtyD?r=e9822B`Oja3(d(;;k;%>5`dkfex9_QZL zQD^PC&%v(?90djm8+V;j2Oi{PD>w;6`^U^ zz4Fu`#=vRu6ife&Ucb*7tESZJ=8-xPQJ5R5?m2@t2rum@yNxCE;Jt>uyA}EbKE4H! z&0@%B24{`H%KqeO$UJXCALf5KQ)NaoYp9AFqPFlSIeS8nxk2H2< zJIGUC!jpL7&I*l&HL3z#-(o_YsD9i?+#m-vnFqm0Y0|HrA3`HRmHxur6b*HE-($V1 zdos$IJ@eh4q%l<64R;UI9}K<`vdX$=KGiDCK{ve%4VHh^V%3uJ2=MAT*@yi~N7I&} z7F78CE0Fypz5;r`!v4{A>UkzB3W` z{?vpNao*XxU4HM0MR@>IjY#i3KDv}F+yrcWbTobq!+-SA7 zi(0LW-ofVPVCR85#^X_rN~7Ftp&g#^&}1@jFTnLYx2IV@86^TG17*y8ROys<3pkS9 z!ksHuQX-_(Zf|N0_F)YNfqyIRJPO7b<3Ut7^op(LJa$jY_vNhUb3ds^$WNB0uXEas z3gxEjP2bQKr@uW6`P=R<^qjrvyduBY5{Vr2oOiPmoA2givn1Q`+?7*>deT+osWU%R zPkQTyk>NRPe|4sN7Rn2#Cw%TX3Th;;^p8B1TA#v1V)Ek84hv-j+f_-*FL#hmQ|ixN#0U1su|UF7FPFHT@j+SC2)g8Z58r>#B3Lvy9R+C;6ATvDnj7n1VRiSH;m z(lk;=c@A1aIFc~k^Hl2gbpWS?4@Zd4QH9mIrwk|of+)1Ov!_=qL` zvO<0Ve(4h2XMTEgFH*XxNtFU111?ETJcUEy?gjg`Q%X9jG?Yiv+3PQNV5laT!aZ~d zx=p0wIn_&hL4tI3>Jpu5fEImXM|huZCeJWeyf_8`hx;sOg5DN%S^uV9$Wt z=@-vj$#&n`f4dE^9LGbKon>^xo<{}!7S@j}PNZ8nlpL0VjBsIyzNPsjk7tN`f=EtA z7`~E87d&I#@y-C^pwF0j{}37K9jfT=vkMZl2)Nzxxo)~O`IhM9t$P}U-V#6B4GMEH zIf+!%uS=k0e{;{!?{^97$VSgtX5x8j+>hC9o%`g#dRgC$qGmBNsio;Ahqq6>Ybe#J z<*A%#&KiD^8r92iGS#6b?2uCvG};cL!Qt$2K7g{?@77@Lza84bX;zYcf!fr#D14}srLItJY zLhtN`*xwbQw$2EPJdIjpi@yGoSg7=2ENdBEdvNbVv{qH|;udQJ?Z z<5m;u=|rVdCeKON#ipMn`_P!&87%Rh9Zq(edQZ3&W_b>TYPr3L4UP$wBK8*JdZbwS zp=SWt>1}pi`;k+FisORlPXSMN*30CcTA>lh_7~VkzK{p|hjnxTYa!hdLjQsvI^ou0 z9Hx-LyXz^5M21o~aFz)2Nbsnol?v)grJOv>vkD(%Bh>|)L%&k7-IGfCEYk1t3gsNt z@1;X4-3%ZxGBIcWlpe{mlv486P(8P6sDs=@9iYsBjiVu}Tq_TiiE<0i2(p>gsKU8K zo!Yeo7M3Q|>b8_KNpC!1@(TD4zB%Vz(QnBQ14e4>z2D6MPeF1i51!8e>|b9x+k641 z`#va74#o$`!%yz~{M$UmM|tlK|>+}W)ZRq9g774DfNXHtJx@<`)CWjuGKYM_?e z)3bXV1YAwzJoEJL;Ybfw+tRi zR{EyiV)Yvi{&fT%L6%TDH!XPLH%@ZUI9=>y?sWEdABlwDCm#IO{f39t(~Yy=QMX(k z-wBK{b#w!>DJSUA?)$@P|t^(Gf85qa+;I3!U5ip*t{#)|Dv(+5>bnklaLu%w6 zP+vIH=L@?WwmZCWc;B$!!&-&;eBJfR+H&<@@;3FooqV%=JAJ9BPI0|+^`gYtSAi=$ z0r%()ZOG)z?!8c1a(|k=prM`94x#cinr`+s4~TKdiQd&(4rW5M4e; zZsoH**jy598>sIu>`zM0zer$_|9pJW_}tVPElk?A5^M9zxL8hJJ1 zeniiR58>q^tcWdT69NbFWVc`{=WMuYGx`7~H8Jf%;e_tBgC+@#EGwxJe z+qk50f!GFda(p1(@%Ib-9@rn473l6S9Dh45ZG7wazhVDd>woI+9mpKa6>Jxn=kMuX z;eYNYzZuL9TW1tm(2~^o=Jm{%k}D=z$YuL!$ zXfxH_d#GN^ZohQ8d&((AwPyNZ@BA=5B2VP*Bo(7FCp(#}YVtrbGwMRp>Pe18%nzR* zHa^T75sW;Mbak>R$&F-llXXdcD8;svol|{HH7`}llo^uOi+Y-*Y2>W%L17ntExbuV zfA)ZfAh%u_JCfHMB)=N~b+thWS4%3#JvrR{R#(FfJPT9?1vEA|I5=2t7(y`YZkpAX2kc--{*WkA6p?lec-V%*PiXlWL&-z`%>K;uy@XKYvJv= z)RLD6OIbl_rTwR0@|}uUk+fE_xMX(n|HslffXS6Tf4{r$ZF`uR*tTuk+>LE*>||pn z8{5e*-f&~v)$wr&$KKGoeI#pjpM)r<4Z2D$wX*{7ngFfp5O`7_E z>XvGfW}SA9c7=9_uB*XgJZT;kc{;LOL<`eWgH@NPEvRjz8Ln=s+NdZfUk__h2X~>i z@;~MOlw-hPRa1NuT{5%O5o#6a$8>Z%>Ki7{BUc@#(y`Cp(lN?e*0mnoVV0|@tGu&^ zBbOtOqpYL7L+R*5EO=)7&(_~Q(DB~U##z+$-L(Lf&@7ML+rxL!d)(u3-E?%eueGIH z?^;7vk9EJby>+-X#@5kZ+quB~%=;1v`r*OEU;@m#?Eda(sf|`tC*hg+MJ@+nxkY(N zRa3oO(?q|@xX~1C_LOanlM?%f zrG_E;Bf7KN@tTk7?R@&Him8fPin2_hvym?aYkTwrZ^xuV9ao95w zwc4ZZ7q0rw8FsI2sQrk&ljFSeoa>q^%9XdNa!8g82YiWn0)Ix27Ux2Oq``OQxZ zr*(}ry;ZqXBUO7^$~wZoHt8NlXW+hg~iFTIq0+Y zAjdYqSM*o=fk1=UC@>LZtiP@H>aQQd|?= z39b~U=-TWGxN5pRE{C(M!)`5Lsh?FP>wVT6OPaN~eVaq?igw?2PxsvLe0Gm=O>n+) zG;rLo7qj=Vt+xImR$vJF=k4!r34$dLH`WL$%fhm8f*wqpA9U6@@JBzz zC~$!~RS&gC^GJ8r5H|KUH8ia?ZZ#}06g2*0j5Ree6*G>~$LTI#XG1Z$DxyX`5N6>TWot^n`3W= zykjYQA^Us#M#lkXLw6fbjAy62o4bHZbd0nuw4SoGvox@L&q~gEZ+U6mXxm|TIX<}- zd3yzRq8t&6KeGa+NJlug3&md4a0OsEOc(1Y%BXT^dh3=MdYc}aM@9^f=o(QZVy(HT zxmR}NGX!*Y?Idi+_pATbUeb-ys||Mz{~Es;<CwhMO;$YMLII3?{#>vu2vQfyyoa zgUTn&4e*`pt5`*G4SZO-px}02h0aC`x_4(oPyE9@EnK;sukBIxy!H%Rs;#i&qtogd z#%I~)dhNX9^f|SzJ+438Iow5E&m30UOlvOdE^AHu1ZPY4CeK0d4qrb14sfOlZy}G( z_1L-G(bC?{cEMWQnwixk^J#`JQ)azkH@Q3e8U_FNTfu7vch7>{O)Cfk#CGy;iu0Rjs9s^`jQ$}6e|+Tx}@k+IPqqTfaxiKuU`W^xz;hOVZdX_2Y9@s6&#W{i5H`mB1G zriiwgR;Kgn3hO`WFB|6QmlFs6R##STQ4DMm9wwM>U$APlZ+GIiYw$ExdL87bLBeK8?{Q?K}1$3pg#Wi}3N%KQ3YRYL2s;8@t zp`g?WJqevEzbdElAH^xf5qSzo;qTH@;Wn_}n!vp~925ilyqiJ09`OwJjs`h2(;akl zwAZ!ovv0Sbus^h)vL#viSZY}F+h*9t+ltv1Su-p}to3c9?OuCM#~McgXIJMHXAjo_ zSAt9L&O&$mtn<2knDszw11@8G5U}o8hM6m*IwCnxVGggCWtBH_{Y!EAnnc6LUY~C;eu9 zy8fJglHR1BrroVxt!kqT$m=NPDs!TC+*z|otI!IX+?p?%7n-V?lA2TMxylCegJNN^ z1Nv7?CqiF+^F1rwo!lebm%;c>aMyFaVP79`?sD3l^PG>k>lx{tc%`lg0h zD&3;`rCN`=nkoxq-an{qpOLSiqOU-ws0H2nEN+!c;m)q68@Lvpbt*UK`%}w=I($?Chu${MQdAi3P3g>^+`HyU4Y@+SGb+Rp*JRfNd~43+P`%z^kwu4eHZ;-`V;yWhU%sw<`3pB5uePBh;O-#AC1FJh0HU|qfI*v zQ}lv%3Fp{O0K6sA6wwn{S@d7B zSPiQTR}DVn3-g&sS@itq^3h3=LnEe`o0@7E+UtsGO`2b-ekz4ZqO`$7X-dWNT+vK* zgWKL6?NM!4?N!ZlwO>_5B~#9jCkWB9ITBMiXRwg}rgxR+u)Cc*&K-1>c29L*aogPm zJ+(ppyWNM}-&{|f_Z=VY3VTIcLu)-tzpVUOTeE6eE?T-%owc!Tuobgs*l#;_JNuwf ze%e*db=q0adCSq(kzyZbPvj{tvfi`IwD>K*thwzH=P36X?`8kDU_MC)*%WcN;<@UP zri<=`{-AuNgOg8K_>@&McXrklE$ROTmUt2tl9gNShC@aUc~(_%VD zmx!!r?rL=Fo@{Yy>Nbx=04Z}?$$u%0d#VH!E+lUzeazwmv}|? zTJk1TGMI@*$`tM_VQ!WOT+LmjU6WmY*MIKD9=WHOySnSJbF|aP{p^?RhV{JVc~)j- zbmoPOHkqTcnp z?>kdn%{`C3*ZpULP3d%&lid~SqR`Wc+w~JwYt3zKrmlry0vY+c@r7}|@v~u$;j3Yo z@u4xo6m5E7EN9$gIA&TVOqBjVFgSv;AeOXlrE6VUc8g%g|?}q&Lqfo;f6Iv1NcY)2g+Z zZ5?e-Z2RoVj;gLE?ksn_C&As9J(J|x>^|*L`^M4N_!jIDE+iF&c=>Lnpn0UNuWxUt zWSnSvWKM`!61h3DbL69lJLa2IA#;rFjjfEIh+{LU)%)|6Uw>0Kj*5MX?!7LbzJNZU zYpx4uwyXbC%~j@89#KdY`N`H^I1z(ob-?p!&~y{26ZXhzqmwa>&s|EEB{@MiQypp& ztP;5C%k6!GPeCPDe`4BcyOABLwGX#nvnSf~I4ZNx$Jo2tm)PIf)9kBwmNMH^Yh$ay zdVt!jw57UbnI)Po#%F7PTRUzre>ms5F1kl~E_mM4)4AvYW$WAPzZF;+ECS=#5xN_e zO8=vd%B5_gE}%WBt7=$m++#X!UKG(OGBNT@WW~sP5xpboN5n<6HCHkv85-(uYcFeR zX*y~yYw~MrYTs(|XcnQwGex}|?S74>vL>JAsQQL#yz-;G8G45KWviq!Q3ACxP5cus z&%EHrz_&mxaF^>tl|l4qP$sHPkFHAaM4)FNk?vA!pWJ(bd=%jt>D=K+EfM&lHJH48n2T7P+s#31<+x7uLvl2s~2j6x}*9B`u+Od`VV@${$KrCz0@$@ zFwyW4W35PCeeEsHHO+NR7mZHSTr*k|rJ18Psz0bcs2-_$sqQJK!u*L)w&E~tJ zJr~@q+(vf+;-lN$58U*AkKi2&JA8)kBD$A_(dqC=TFbf#1wryYMU`r$vYjfw`UP$t z)isMWYc)MIWi$meUiEbPj1yHlbh}Sn_Q}s&q zQDswoQ!P-vR+dp_;#M?O(TKj>J222ks7-Ik`g5L_q5PVUr$2>R_AL|u2SkN*XEB_|8q=RA+E(p7Xi^6mKT6{tw*n;EW zk~ES}g;RM~9+vl}5segF+N@hA3u6PVl!oL0cDuCGZbEAO<0VSAHQ%u;S8T=XP}yb%$u7Eb0#(g&DBZ z61dkzi#5nxcm`oas_<&M6^oM&}`Ww_7!uBw?RM`U;@|= zUERAlTg*bSO(%T@5_JO@Lj_ZlO<)7I^PYMz6F$n^rFiHa+5^jR*y@e`!3AcU*8)0L zDhOWt9*FGaJkf3N()$Mb!At9k)@aM6>`;tktjaoy!fZ)Fd)U?oZgqIty!{QfkU5}#ll zrDHEyCeRMP;9qbaH}U`F4E7724r-Z(Tno8F6+zu@WfJ!uq*G2X6k9+QUuD+j1Z^Oo zG>{jb_;O|ocR4>It|ZM^jcLr-U$Jw_z&`5?FYlW0ldfZFv>rN&-C^}r6@##3cfhvV zE!;y7<32wh2h-C8Lu416iE(()jFPp)&iSTvBML`(Kro+xZ#kLiVs)^QH<^o01@q7q z25|u}3Z=kL$FVv;(YJcZyWR&+d<6W4Dj_B3DJ}Rocrv&>I3w62*bJvLF_?ln$SyRT z#=wyr!k%ams0gD-g>qkxKza7hSd<)A!q7j!&THQ+?$5#l*(Iw6MNYao=zwQjJ`3I;$LZfd7t?hNJC{WmX7D!U}z1lGMX z7>gR{k{hJr?;Vo>;(HG}cP5zd#-Nlsd`QQ~_&tS>Ef|vE)F9xaw+6MlBhyIosSqNo} zimYkHU>BH;>x2J+Be=s~9C5B`Otzl}Y!hu2BC zG+UUuk0Bc6g5T(b8T$hq$_d#dc!MQnTDW}Qh-a_REjWzMLt8ikG2l@Iuo=lro=-Aa z><4P39=O}@;OZ8#s}y(+j0Ag?7`zmm!UQj0(8IYnKny7ZGv9~LTqd#hATeY!T%$?E z+@WY>Er(ma&wmESzKt_gn7(KQcvuTqsf*~$!#k-; zhbkUUpH7y-IX;N8*fhA-d0`X30$sG4Jzb3{_%BdCd&$-9;E^0*()lMioOkdNN1_J) z4gJgBL|a|J29x>>E3*P0rMc*Z^e1OEhs!sPb(&93+6mA9vj02L$I3c}{AOZvPh#^1 z_TGm;kgVJqt*m9NQYI{|g=pFPLfJU5eIT6jalRIVm;1uZyry)ZbTRMsHBNR$VsJxQ zM^qX9fj`^3^(+2l3FPau}1MP{zKA1>n{CmmA?8X3RE}awiigSC8e{m^_b#-M1 zS%UN$-WkhL$>;+ArZS3{{rP!3lF=WRAN)$YbgUSsb?0jgGTb|PhHr`|0jE@H>Yk5t9XLw6d;?2{6-uFo1i$lC2$G% z#YDJn!GM8VL{CoM4ZIig;W;{&werH?=?M1y9W_rkkdK#HtNhaDSR?xB$FEO=+a`JN{BzP@@_K z`Xk%T<25+PmDB+p;0p!GKPzFc#f82yOZ@{at8m~cJLFH!V73y=26*R#Q0{9=-B;UR z9Yv$Er~>yOPEA9{?hbk13f4>w9^m!^AcJLl zu~uQVskm$0OV+09@BEh?mx{4&ah$!_-=|d}giwKSu-cDU{bM|XY3!_i zMD=1ss!Zv9=>f1+z1ds&Kv7{gYqlL$pDQe=YdZ1dzUZ zK0yP}HG|o<&ZYMEX>*YoGr`0? zW=GzZoo8*%vpa9{<6)E`mhi9kqYlf)!qwug8Bb^74II<$?Cn3uyE&x+;`$LVQT;fF zl~}KA2cUB>WafaLtw$y0WOto|8QY(#TZ)Fw4l1X-!3=I9TTxbP#ahS$3H~eoT_}{V zCWfuyMzxPS$64wG8xg${HPvwHtNHB6Q)It8-0i&}zlx%N)Q0Fj4_50nDufy!XSUF( zPelWD1c;?1xb5TMo;`-8r$NoCCuiXhJ1kMEMu)G4tQFPIAoS*Dk`YhwdEan9dB?hC zN1n&v3u#o#ezE7WU!P@f`Q2N;cVYJaIl(G#MfYj3Yz?@hrL59?@Pe~>&Eel0#?Ea) z)G8^ z5xA4j(KzTy)ff(Z=hIK8x-N$bnG2<(C!D?OFx;=eRlenaOBEhXJ=Ka;-Aa{y5=__y z&SAEHY$ml;PP`wBqdn4#Sig?C${6Y#S`NQ3n{PM?#B>0x`ve@*?xX*!CuaNsM{+&< z$HzSHM5^&z?6b;zs`h-o$<&XVi8hajJa>uq-&v`z{OUTd+pN^n-#h367}wpb(<*Yq z3VvM6f2R}w{^GSj2L6-RR{otOJcZWmuF_NuChqfA=@;VWO6dTiLT+wy5~&OH+(EF) zLqL<21u>omn*Jltcqr(vc+TWocGzl^pNpV2k*y6@D<}moxDfVw>p;%HXaB$Ks@eX9 z)C_;)$9Nt;Mj6#tqreDUV^?z1yTTc~PRHa6asDkOhZoJd!oW>`-oG2Yck=q-|I>_pwIM)u)lNgwrR|$UJgq=E!NH~RcpTfWP2hX80 zRh9r^&_RuL8nvJ7+C9Ww>LMDP2k`e@NDYzAILmgR_k+Yd4Dx+2x~U;Jq&ulcJBDha z&GQs(j@md5@8|B)hUk?>rLg;V6*`{W*bS`Z|NM{GX(a>G0^8Y5Z@2+w-vzZn4L6_s zAdDMx3Y+4s+7v~C{$!6E!C%3GI58gP92Vp|KA{d>1Y6X=3G7Urvl`8`Us4UbsVvyL z$()*n?2NhWfMHbaJLnS3;7pw(n|;idxE1U&8@2m4_E~m(I!8>pM1`@9lQw{uRF;27 zi3Um5Z>|*E$JK>LgBK z1Mu`F(2+-|3^#HL=YeG}ANHcN*^J8lDZJ)k^_co%qr z#zb9yUZ3?|NtK(e)3GFYk1q0JP=3Xz+tb4>VPf2oltiy_2XUerJ(K3d+8N}$Q|yg* zvOM$%X45q}fC^+!w6#}ozdMf_&NFTi{}qd4&V4Z+$**#)*CL;YskEJIX$*<80 z^P`K9C$N#aJg5ISikfY~gr%cFn%{fIGt2Xbr@Y7PDd*YYse(SmLEkj=wN3>3aSu-8 zeB}fS{U#6&)a1M-1v}Hdxx%e@_wRT#2KDBnc&5%I|89^LC5Jaf=ef2xPu$2SZ;L+L z2s(-<#S3Ws*ORZ5XUGep>(>FD*Y*>?3hhu^XoG+5 zce2*L{~zJjQvK(UzJl%4lxjQM8Sg&4g(0lOH%UB*{+(os{}B;S5PJ%vVRwl?e+!DM zA?x#!UQ{G%pxHIkFzU=dsWvz9)t`v%M{A=cr>k6GIy%Rr(J#609fIb~NzZhT#xu^X z`0aJxn`uS5t1AxTPLITw%O8)H%U-JQ_8}X$mwWig$FP?s1nZ#0kO-rrAAI_Cum`6} zYElQ^<8HT6wjKqbH1VXoDOzlU(8=ts_=x)2U9e^8sI`wp{im$*ld`v}lIlNH|7R(O zD7!Iv`=MCJ-;7b5Kz-DXvfB{UYMTmcWKZZXJ(34-zPZMYXidYQ) zK*d8AtQ?Ti>-`zH5=;qY;XOb?BMFMFgiFYu#9MY*xQ|n=T7Gq z$345vHo(@)w$moDZ?bQ2q=GnE=gIK)MJ4Jb45|loKdXbQs}T5?dyCsYJ8&o%32Uy4 zq_uQ~?66=H*DBhmHmTj}M0GKyJI6qgn6;&~iJGpO&+3JEwwJ+UyNBkhrkOTTyGR$Q zKc)}sH|kgE+G_i1E~{Ut&MO})KFB|c60x8#iF)}BH=B1b-d|E>6=z){!ZSm+xfPuZ zIsF#D0zFuQ)P2? zIZbKJBeg?4m329zxue;kX{S+usI;p~Xm)FMYqx+Z{DJ*cOgKqJ@~i1FX>uJJ5!@4+WMk1N2e za-XZ8JBeAO*4xoLg*lhYI}pXj1L#_Q_WkLv$SuGdJPCJaChW-RMDD3*br{L{kEjRE zplW-cj&BR5sB*mRj`=nILcW8ZPp&_mQyq8helRbKY);!tdrjwQ*JpRY)5b^t4J`6l zPGEd+cwnKwy)Q&$UhGx+p9b!Q=1F9-1;Q65@HNqPtfN}2&aVlnyQ$x*{Hj*$kTkV{ zeQ;mhUz4n9qm2NM7H2rjiaanpH+aA`ebJB69nttyPnBBbR1_cg$?M90;Zv6mv-KA@ zh*()?=^&Jj{tTU?22BlA4|MeJMh$J4cY^06SdNk)@!PrQx(!6am)^Nl9`8^g9*91w z4s}o?YJ9o;bpsoMHducrC0)q22VX<#f9`GQ zdFYz%lso>iEw}ctRi)TFe<;`rGzUSBAEA3MH^vqV4+qRv~k8YXQ=+$}Fxb`@6xCVFz2c}8=iu}6E z#`@-g=74Ff$!S^@aWkq=%*W_$QKKVoMW`Z6L~V*L8ap<}(Hy5^BV)!y<&G>IG00rY zBp8}#jp`k!h;5aZ7Hi06pmBPGUTCFYjX*RWUK00O$8=jQYnnv^4qstyZP8oyTb^5Y z*$+EwxND#Qd&BeHz0VbP_Hw1Thxn=l2T78JWJN{wX3a!RS@nAq%KlYWP#@ByX}joG z7-|`}7$+L{8~)Xw(!J2`&^8BKw@GzK*;8>tY%YwK%EDsBp_Fc@zHmGVRO7FO3qM35&kTewI%PB$r6Nn7%%%fqko6?jIg#81VSwy&m@h z&wPJvX(`oJ!=R{e?3Wxha!igb5qmv$d7LX}$K3sM-HFr0mW@6bbu>CNws8EncvF1$ z9I}`-k^haL2j>&Y_O&w*OiDnUymK zW_|>V*&}O2)~u{zmY>#&jyTsm_c`?8D)_4T&jt2|E=gX9$#l=rbh`lut&b!&wAJtP{Ox+< z=xR4xO_@Ln?Ic`e)@?7)sOw5y+^RFEJqhChu zkFv&O)k=eA$Qd>#EGoU|p? zp5d_kvd6n?`Z@&1OAc}uZh`M$YH&dKkZ@MBA);{H=iCMJoy&V6clVsv;*#Pz<$RZ` zWbSbM_LzPV4Na{~SIj>mS4A(19v7L%l&qVpNmL1{&x-59)zB*Mci2ajU2{Ds;CY9* z)11E?{T+W%M|O84+E>}OSUj0)G9xT&Z7&@!Ttz(#zyqK1_X>@cT#>eCx)Y`|J6Lv0 z*eBntT%jHhwk^gm)OgDDhqJ*vt&|9ismYWs2g5yoh*M znj3y~U%Cy?{S&-C=XTo)%h#+?mR{DH){>TQnOoA$zYZjZzR&+U{ma15gFm(Sc;sWb zFE_t=5?7|S$V{=EwKsN~{cl5KWKHCUaFJ*)m?eEeAH%Q3DBYaMlW{fk49oW^uQpHJ zT>Iin$J^t3=NuT{EOtP|Aj2`;-!P(17`L0cn&OOF{bx-9^?hXx#cd%yyw}&=nG-}@ zl>Mu-vgfWR=za;K;fu4SYZ-XQ8LnvOH=EMh)iS~Q%|5|((KFJQh(l*R=}57YG6`;B zVP#Xf9@a#0X@YE@e6%V}Q%f%xZLm|y5y=J9DZ?rKG2Q<(^OOz5^7vQ$Pi7a6$@R)& z%8!c8ic0dCvWwwIR6P$kw_f*4=Tv)&bq%QU6l-f+58Ggy-8wPrNt)r;t)$C8&V1eS zCGpeRk4-)ePgwS&P>L!e&f3rM*j>lJD)d46Sk%Jfi&UJGe-5mG7Vhl zf|62rj%^ihqPSjDzChd}43y2oi(s0hTX2@=J*=@~wy^EHy^`aLy_>y?{j*)-SZNz# zxtAfNZcd#2t@W2%pZa`0kg(u;?Zg+!|D~?U9Axk6SrTxE-^d(zD(+FtP}CEbOEkDE zeUl7S)YJEidJ?}Tk1_Ay+-u|i7i)=@#`KN-9@{NiZ~8+s5#;by`8L%|?K*BdCA8bs z8&tQH#}!TG4rz{n#C6pAIxA$^?%3ej=j-Du>TQC4{{*i{bO;L3?9(4PH9efH6|vsq;`Kc`!M6-_GjL;bC1LWzVL-}?V-mE111N@fLH8)s|J5C64rs*s@^ zs9CS+t`bDLsKK<5O5CL>VLlntB))mh=J988jE;RCGc(qfBPQ-hOr|+nH(EJ}&OsME z7@Ls^6BP#)dSx1S$Mebx^7azH_k=@Y%V*o|08i)riOiG9IVLQCx56- zV5Cp)-Q~&UeFOe1!RPRQ3|^4Li?x*#)d=yZXDKC$cyK^bifPnn6%-BSZ^hvtou8_H zYWnJa=;rB$YgejkD2?*PIO!CVRg~7G2h&`7Qr3@N&>+-9`@&#;O8?<5{-l-t)x8^C zKVcmHXL)aFZS81#WUFm8W)03*nKs~;GWpfdUOyUr*MHyk<40ogl&G{mnd_}L9iQ9{ z{H?-Ugfq(1nhM(Yst;lw>0;cmcgrhl7nmMI^^AQUdpTxybgt-^(Tii7#Px`~6B9OX z(+yJPSBwLjyl&f(k`7xV5X5t>vpFP5u4c)13F5Tih|IAphYW;9TUG>CA9f z#Y;DeZte4M_0ZbDW4f)qa8xPlUq)~7AAkSQ7im-ZPvtwD;{H*lqi!uxzE<{y!#Z8* zl@Ar0;WJQLUQp>$tFl zy1V(XZjic%vZKNU(r=b{gQ;CbVY2v5zDqGzu}wTKSs0L`Ve9aAXD;UQt@1>=E`Yw> z=w9qw6TFG4j~gE(d8i#2&SxAKOd{1&4eTFlEej&5e z$CSQ;^l9iHe@V|?XCcQVdqMjKTb!-0b$FI5{c75bwE3y)Q{>6Hlj`cwDa@W`~?T-$ulbOYAv-H1Tc zj+j$1=cBadw)(>`vpXqE5p|w3z1$-kAgJVp6o(bt6gS11(r3Xr{x!am{?UQYxUALj zo^Vxn_JA>4!Iv4h9NG=eO9|$C7?`U>I?I+oX|MpvsG-!BG?mQ-J=U4&`%58C{!!6a z6{DW7x~{k{HWWHDndl_+5S!5r%up;>A=^sKav>@T60 zycwF;>G;W>$5HRLFcHLEb9_LW$rI&9dLfQJB*o!E*R*o)#w1}j3 z=wNVds4xn%HHbge!fS%p{o{PU(4}7Px#jxH+0#+l_B!iD=G%+K}L(rN?BDcVe4h+>bSp!a!9v<3OppM14C;`SRq|03{$vO)wRX+B@HzUISrLz ziD*nW&FvzyBDX{&89V81niHy$%2A3c3LARUPvjHe{+v`iLzlXvs6cC|5sK{Xv-_~2 zqQOf3;@*GUGu=NuuY7CJt2w|7B7*5+!H}Nb%Os{=S5WtL1U8`x9ScUM16rg~@Lv^V zT}3IX*UuF>6(7ZagajtXIYFCk7m8#nqRUU>7+V!x@Oz5t3I|-a(TWOiiND|_J4Xyl zKZR3Jd)Ob&kd$P)lV1j)W<}2;1Mz6PycfPx*Gu`&kay+wmhBSR;YR+H%Qud^5 z{Uu4;oo>#QWi86e$jV_|O#L<9do(a8{1^n^xUdpUAyY_{pD@sFYZ?ha<*MWCgRDyQE#2YgZ&yfn7p4H6CvX1+5L_njrd zOQC_1fwF>PqWB3!YX|X*a91dXj`1VWNS{4ZJcb)X8-Bkp(}`R#Z7V1WDWxh8o)<3p zWHA|}#&(dcCMH@-rMD%k!v*l{ZbEnPU+~LMd|q!}&rJBolkE+x1G7G5G*2&=RxRyn znl^n#dclmD8G(#qS;sBMY*U?mJg0mM*xg$=4Fl=XoaRrTR!_jMu2+f$np%zSuG6D)_^xc_VqhN#2 zOchplIWwlypcYDja$3bK70m=R!)IY2&F1@9&fQiMs=y9xCrg zI%`@`iM#PyI)TT48(*rzU=i~KVmZBWpr;f}d^^*PJdS!@C8~kuxVIf=MmPC4;$#x@ z>|US?Eix<9Zj<1LA$eHnh;z_E=2ETY711MjD&9t;VH6If`#1qX=H_3RXTL|`ye-a> z??4dZNG2V|RP-XKic6qUk5K=1ViItc`P=+(E~Zg0h`((?mUvNSGs_sr{P`o5{7By4YToTNNp7b6=a|v1p{hM79SRcj zpiovUE2?X>3GfF zEce?5N~`1f$yg;TTf|TATKjQ3BHP# zLLGU+(P(AXV(J)+W??&27`>9FU{XfI7nw@8zc~o7Zo&yX+g`xQd4~IW4RJ0G1GC9T z--P+#3U%Nvv(bhPVIKVguX9YMp(ox2>|rk9AuDI6=6l0zcPxyHGvETspeI_CAOGOl zWUE+rL?sKAFz^cxIkmHyy)2WQ;@PRdkAGs7vhf2UNpBD`VcamgGIh_-&8;5sezdFy zXrDREPG1n|+OSer(GP79PG?3Mi5k=j)+$GEN#K#+!wD?QE0@mz(y9V7~3w`)=ck(rW(UpjE=R2>Gxlv2j`oG*?7=92jH=^1sAyi4}pVl1ge6G+k!_`d;DH1i6K}k zqlok&Q7gYM))Fs*PN@kJx)~VpGH^Gaf`yyGXSs}yi(YsRk}#L-ENGw+I6hdwghxq^ zfG8OR4s{?AWhoQ;P2dV{qmNk<)bUKodQjR2Ks$@i0mRO zE5~UiUNR;8J+zg`q6n?#5~v#X4NYt!a(-B4{2xXKfiw%Wpmnj8zYQUpt8UeL0ogS+k?eU%vZS1yCsf z{nRBC3|&Brt|t{qcT`#Czy*3hX08qj=PFrw1zdrh6IwTFjr>)@Z&H`2b2y~(V)59w*08XeQRm>{t_e79c z8Su9jftG5-4i;tqW3Bg+mn3jlS5Pr%V6hrPD7kWvN@SOGXYxGV_Y*uwcXrhcoY7{n ze*gJ0h*m-T7>nWZ^}sisDer#oTJKA5UA&qX`OAVa_u%p!3_cI7r9V23&(MMI(v8!2 zoNOHl^JFStd5D(-*<)8^U3iL($Z(a3@doh-zUKeoyIfa%iIY(&!AX=&<+N@BS?B~S zlp!4mVp>j|zYeOm>~B7ZR(2lL+|}ReWG~4k3#sQXqlN#GSmmZxuK+V?8|=)ryoYsY zj7mX7O#@NZfN0eVeCBBsPxBDPYf&TUSg(7yHjg3$kK_q{Cf>KFnln&CoZ*=iN5{7? zoR79tZ@WTnaF_4F6;=-%@#n@3Ybu%WfVa6<{#joC(gs$eYboO_+QQ(7zHz`bck3J1jws*^RqQ8ytH&b2C2*X66Ft zZ90B(dQga?ahOwjn|j}(MRoer@7gQ(rPpS#P{*a_1717$t%K0$qal zgPpJqI2i5&OkG94y{wd4AZ? zoy7aUd7I^_ru^W53v>1^ad+DX=CA=c&CO)Q>arMqKbI^GG;dkyCXn+tQ7)eVGIS&39dct;`jP`(*E)v*=GwM*^C!8BQ(FLjJ?c!aJ zLwaN1MqeuT)4m|JF8No&mig!#3fklYHy{nZYx{hqV1YCaD8Yet48_Cis6l32K=$5C zRa1z1bQaI)0?)S#5xN`EyDIFuLfq#|60K$k=LBvyu*zL{4vvBOdH^I$1*)EZ$)z4J z^P`EoMFdrvG-P_=L{QSN7UJpfR6=2I@uaV1S>{ zle4&*nAMuK89~3H1}Dt~$~y5kMkpKqnI%=q`f}UJqL!$@`zlCf@rFE*Lw1#Se39?4 z8y#;Cox}#A&B3%l zzo36CSwZ3}fRE;S&g?{Z4Hxh&%nh@=1UH_;HyV$_WX~1P8GJFHdTgH7WXa9Gp)jrr!bCU0zHS7IbdNtjbC6=bNGh@a`MSdN zI~rIP91OC2Ht+YIq&v?}!VTgpvGp=2=DNSJ;TqX?6s+fxonFd@Q=Jcmc~%0B@J=C4 zT!16IO8!!;BJKwRyjS)&cjjl@M0QC_O4CsMtw3f=<6z~bD{>OPM?ZYh*TIMJz}fByf-b=?r}t0|tl(Z$1=q=zfd_to zM{{AtUd2j97lo);jsCzmdXsm>KH_zhR95lc;)&;f;%0e}e#3aNkobgic!oas8Ft-% z*-`HOOT#<3!_KBp?4^rt4Aw-6p&VHM+|=#2P{hB*ZaPfoY8_mIis1uHTerfV2nCOX zR-xP9QCf`8UJ2)LHLU-m@~etP%G1iN$|dw2SK!(Dh^~jIn5&% zH^qYT^7ORUh~tG4vRcw|sH@LK)2X<>E4Q5Mp4x7|bB^ORQ~dds%~`KA2V`bsxYG-y zzfC)rRx^EjM$4=<))kHk?pnU&0C-eMMR*1}R0v9v)$)N}DI`wh34E0fhe(l;3r6n32&8pfhnogRz>LRK{MGJWo6zQL%{=5)v?K8nZ@E5w@I;jGL=U-st zmomoO!riwzuCbNF=Yj>dpsy|qz*BT2mu1(6?pa(XK1DQqalFz`~ z)+b*qDupuC7hCA8UV|49C6q_Y_%7=Bng0L4R70P32heaDbbOpq6Ue>PqTo>DTBl>J#+CzdEi_GpOfI(1}jf2uVR{BkGNiU=fbWmPzu4EdGVKzn1qagC)YEv<_K+vQSYh zEbpT@sNA6{r!KATjm}jwc~@bzR43U5#_vDWEqVvH;+UY~R#1!k;4{H59#TwKIn<9) z#jULNDYlFEU^hIG7J{2&rtj>f(tE=__oJjEn)GGlmvMM~!1~pb$U=n!HeZG}&O603 z#a+f#%vs#=(DtXbzNKtdRA#@7U+Fc{$D}n)?VeIP>EEBbf96jTf91{iWzBF^53G|e zRwQT!7+RSxMplg89sOtY#HhNF8RqB42fF?0rHYQiXM7~yNXiTE6`eFux?kEh8l7sj zVx(dNYH*9?Z+2f@+#k>nYWBN`vIAhD0&K>MFw?P zn4Dsi6(PU(Tr)VvzuDK@_Xb~VohR(N<9vW#R&Sff5@V^F<kb`=yVpJs{nt2$0;MZt*xs~*SuB7sZPifW$h$gL!;?QNW}XJ#L%v~w^P$1gx56`d2W3mu9khJ5 zqM!VYDZg5ITW%Jo$!bc^lR?YMBGDBv$_FbNDJ_c0@)YWvJ#+vL;NQxlQcSoCWh#&AT{Hsa!jAER52b`xt6yyC_=;G2uFXKWLqHJ`j0=M!ivY zMqf#HP}NqxTi77$DUFoO2;T8bvTx2@lA4^-Idx73_z`Cf?}C6Q+*GBj!hZ)M zyoFp79Mv68M?Lh9*LqL*BSHrxg9L{>Ms-kqUeiTu(ne`i>hVgoe3@)3o>BWGJ!R#@ zXYx+UJE|S1xDQv=LpLc^)k2e^ZlkO%bO=um^zcpa6mbjSSz~-F{5?VUZNW{t5LLqx ze=A>QPjOdc$7Ac-%;IU`P+f%VMR#p)44mis(B^_O3N(DWbF;zY0WjoG}(J1 zbDL0);7xxo&pG?3tPg4Le!WVqnz_!l!M!RlO%fL3RDSIx!{4TSs1*(}PBwJZ>vi)$ zHLsHIl-&xygTMJU_%6Idc2_(nKTqy$CH7?6FOijy7Lq)mIrGZb!eey#9Ffjyu3DZY zK1X0$_@Z>TuvtD>IaYN~bxk!|^$b0@Me`p@+Viu3qVm)SPKMGrxLj1$$^K#e#BP^LAVAa9h;h z(O09(Mh}jf9N9bKu475qAxmlFK`~07h)%AII!!yP|H!!73_W5RPQ!=PgJ$x94xt<^ z5k!*(^J=NTZLqJhQky~k!ZAZ{;|9}3^Ce4eYnXM1WgkkERC%buDiw!ve~IU}S1Kv% z#-Mo!9){+&DOQ(xKe^7IjJ1q6nKbSYO6rBx9HCEvuEE7hG5xzRO#Dw+q_@(3;|cZ% zRSKs0Mc+_&^~}qu4LKEVCoW3dl-M^hTjIdPsHDG>3MSW0mXixItzDG*CH;)6OJJDL z(b6iiQ|$4a+4A(vyEo6sgi-Mgvk%D{7Bk`pq1hBI%nC^E5gEtQ1?OY$8D)aF1BOH! zArH#Qo60gRoX&AMZAkDJ?*wO0&WPnMi?2|qhCW}aY^-R}!rn#*F{Z3jvL4N{C+6>H zbJSnqW5aHmj~YJfR`q+ZPvGZ3{$N48!iRC5&!qFa2-oxm@>cJWLQz!R82TkxA68h^ zpoQ#>i~1(9oZ+c_&$JRY?M+*kunJ*4Y(=a)&EJi2az}DHQt$=d&}XAjdnJ7~^x`&> zNKfUgVY@uX_y*pWi@XJsp}06gKZoDxg#KRmCdyKrcwOI2F2+f`knhp+ID+^)JVw{* zjLB)X)JiFjk|!kRN)9H)CHGH$ogB-LJ0>S4ok%K@Ts|c&^+Luuck^JR6dQIbrbzs` zJRkF~E)bsoR_-V9#j{t;IyKrGe#*K{IuktPnw$1Ic}B{ljGA6&sEN=)x-VYSOKN$^ z8)+&IqvC3*H3>fPly%xN6P#n*7Jolwh;YvkZeC&=6y7Czd)Dc(Cu4VK6SAhGt@YUx zEji@2`k$fQ{*T`3-cjBvzDfRn1DAs9Li?2as!t10<*uQ#F-xzjIn=wM!_eslhOR3M zw5`H=X`#Ht)YoFS^$5#q?{2SRFBjI+8fTs=zZBc?$@zd zx9qZ=4a)=D_n)xMHYd#TQSxT#m9SG=r*!3ZbUCy}DGduG6TQYO(nU<#P-RtcwttNG zcXtKn$Mg@WRZ>1D1rz^F?3Q>f@l(>OlvZg=({p9G(z~R;OFNNvCv9VTymO*=t1?Oc z#jz`EQqD&Cz8APyU}?V0gmrNrvsK74D5{#{XLA?*jyEoSP~wrVAHJPWneUQ=E45X0 z4HwWmn5!3)66I~COyg4tM{B_6Y3R0ls`)AfH>taY!iHpHXKTFUa^&AJQCW*+U6y5c zOk{N3i0xs!%>@iIwPV4nzU7|9?n~|!o`YV$uUcSfu$9u8jFZ}QEYq3Ut&r}DQ-n-y zI}`glc-E-{gdEZv!y#j9^DfIR>oiEXJ#B-~?-wyulOK`5Bd8v#-FbnVxIvntgzX~; zhU3PfmUvsQFpIqu%{ZcNiU~rl522xyVwQP{URh@~R_PF& z;_vP4?mp^tWKK>mk*20JNNJyvnDRPxNc!N+O3ccedK!D?yC=BJ&LSBr()OqBOzo3C z!Ic)6Dp~C@Su=B9$v388p@K{EwN03kqjA=>sHNfGtg6&1xG?ihqW;PGVcF*^Nr#+G zf=BdvxZoEsWqEGsYo3jJrkKrYS|j8MMWVD_<0<6R1C7<7K3ZyN9B0XCw?-<_&9d~) zvO1=6bnD2uj@Q<$MuRwAN%8meo_CjpQ~k^{#@8kACD@v$`KORu+J0*^~G>~HF+?dLP>!h_!Zv;t|*%J zf?oM@<=^0mKnZ^yZxQ!AXUoh=84uISq(-Nx$zp13`hm>jkVY?hT6^bvYj6s_ajwlc zp0+#nMe3aN5iVQss3vwx3i8`;TjGC$Ds`(~z%`IhU` z@Q)Y2)Jk!IOaI=hg~zZN5R|GKhzuJ9mwl?P{}}>TT@On ze+nBG@jS{Ktw#5a9v-zX;-0;*^}SqH&_maGqTk$qxRc#KdE@+%!Ka~z>Nov}Sl_T) zo(#S37h`eio;b0QzC(SBcd@$KUb~`eLKSJ3AshAIM)PLqK@osx3nP zfF&@&zuw<6FeLb^l1Cpdoiv`ZvaM1lN7Lt~4NS|G@x+B@S}D_9JMylP(mE>9JY z(_{005B61G>n^F6Da^LoktK3iRIcb(QJW(_g?F-_wp@^33vZPMftTLjJs$UR&qHq& zf6icYr3n=LcwW*i!;F=+YD>N&-&61^Ma8Bl_ zv@|v^F%C175Yx%_Y8Q$RMg$J{vj;u~ib33-t|y6WYST=>+8RtEnf>H=W(?N6_IYi`EP8#Y}!w{%jPhj zy^vk77M2HTZ35Z7f4FD3*LgPwnkg>rwzyaR$x^^xJmOvClPG)i2q@WA!av(CnHEdq zwU1QD0k42#GLP?^e{`^pqN-Q*17asMliQ8gj9%PsN2P#Z)Ca1+C?`?d8q^}%R6Rwg z&XXT&{LE9mYx!nrL{3l_V^+gfp|Vy)xxn0SRG@R?poN`4QC{~hHG@Jggg^r2g zcj2=acKE|;*cO^c$wx#clj`YEM9>m&`G+ulKEw2394yHpN)$7nii#yPJfQl{ddquU zu4(9wO1c)hzPqx!&$)MaMti%#U%f}JUrFy0=*&N!>VK(qQah*qlh)oD@@3Q4nb$>b z%kE9MldnAD5dhRQQ4GYbMttTvN zEWPlpezGaH#@1)XL1I58%{Ra^+CAP~+FL7NP|j$brJ|;a#DTwr<7tbA6>2+Jj# z@j0sVVvbl;utL?;dwsXWop}X;)I) zrESibrzO74+ zc8&`)6gC>mLmE#s&$k@4mL;vAN>~nyO|Guj4j%Jy6G9pWOv#`zPK87%TedzbVE8k7;P48c<)^5Ry$^kV}PZQ2c9}QdN7jho? zBMDt21yP@&c2~YLky)<&aEdcv5U()3G~cmgSn60>n~RwS%RQxG!T@c7GCcHz zne-pQ#i2B1uy#yXZRlun@K#N8TnVoq(LcO{{gyS>d{CY#6%f9wot3_!B>M42=Cy-^ zZ$oR;ROrh4(Zps`|HJQC$Uo9M+4CJbaxPbE=i|(z%+Jor?h@X0zPJ8(=G@g$I*kvU z^{pozrfa4#{c1|no^DVB_3p1+h*#-ZU^V8b*5w*AsUW z|B_G(EnWO(>}pN3*Nlvdo)G;xYEvR6YFakH7q1{!6+VQD z`wF_JyZ&>H_eg<3IAl9WVWw)DL&?`nC_p3^SX@x zN?>BBgBqp(CL9(&NY4$Ue<(Z9ndK5^>h16nEDtHc@}Uc%&&pxk;^ibsK4}b?UQ-Ep zETb&L%@s^@gSL6(JR0=yb{`}kSAONmOUoSK@x)Lk$XZ+H;aIm?3hp*-3C zdFSNPW7DIYVZBU^#4gH0U$`q*`lu92q11)W+JQd82-7ZGPJ5=Ujj&0X-sWFgZl&h(F5((tF4p&vkp+#Etg5;unH`eh-KPCzZ=B-049%lw{Hl=1kv zUKnOd?Z}mEp`XyaP?P(irHUk<(1!kE9)ECp@~cc%VnR;>i~VhU-MmA{yXfJb;Qq^P z^L*#o4)B%qzw(zy9eR&!yPMvwo=vVtnOQPgrg>3k=Sm%%{>kMC{wChG=8JBeV`IX= zyfJyh6B_227_;8d+)~=`PIdb?x>sjhNiCInJ?)V5jenH>Nq%lAXM1TWY>py}s}B>= zXY>qRN{v8IPtY~QT^SAYfzTB4dUMFN%{Q%|?EABII}&w!&&RXBzej)77iN zSkfPEb z3zmNL;$&+T%R5t1;{rn}X~|~244sw*IAn)wWAzO}ia6TvSbk+(XZnIWU@>V7JLQ>% z=8_XqY>4}PZJ3@vsXdqh9oHH_vviO;{txURn|5Cr9P$Nb`3v}b9;>I0`nY+zScFJ?e-PLtDvwKGG^e<_>(>rHs?#99QLK(~Th&$QBbG}L_ zn%kFiUG`!zI~=_&Lkvf>gy4Hmd*|o$xb%q`+1$MYt@VrYRZA~2b#|H4jPX3tk#uSg zX$6#_fll5_?gY;--nsr5rL=xnJSy)nyR3ced&Ad642n1nxxZAH*}BGb%y3?KtF{Y0 z3iN`JVF+2d@$V3Rk-8eZhP84rV-e$gd9dNG_+B?@^Oerbdw&l86FkR?o~$nvyBdla zPn+JDPg*Kii?dgLGVd~FHx4vh5@821Q#SI)IIRk4-hS>5#hDJ8;e($vZbAjzNN#3m zCgm4%kZ1}KkSAIZ(v4r8g|e{`8s7vSg+OBiJYH-c*7@nH<1pJ%k?yKWJZnjZ)u0ppJv|k3=Bm}9j(hF-)7qv-zQ;G zLgSpHvv-U+;aFn%U?`&R4?g$qb)Cz+o_WO8!Z$#VgiZn$WPTq4R zWnUoZ-ALNPPIm)uhJU!SM(-~5G$vSD*ml?thj)%JNAwQ2I6m9fTUwY-8a|Tq?NH7K zf1+2CMCS52eW|EOHw`V&o9snVILFXZ8ZS)L@DtE$`#Z2HfVU^~NV%)IgzV5-n$d;! z!sCyz%z@N%&)8j#HT)}%7gjQ@cWMPtVa|uwUJdTyZw4bIBt`b1{ISTT4N+1W9L!Ss zSf2b#auveic|X%i>2vj)>t*f&rQJDP2oo~PW;{&qlY!scb2%6iu9zo=KgzNrN5Pz1bLNU48oMs~ zrX$umTP`icD^vY@JbstrdgbXG$fl)9mCP+|_OM0P0p^$TLvf>CLo1h#9dJXmF;+GnLQU+HUNHB6iH0yj+l&`& zGn3A@+B7{IdZUvlL6)HvUW+2&v^raf3SA9s@K5mV@)l)Uw8*oB?4`$^2Hun2ptl0# zin6}*P>#~v2V4W45t-N1Kc%fttCF6OIo4exP(wGFT=t4Fxw8KfUm@qMxHYluV)}-U zvVM_=2`!blzzVO`GuE@;=MQ$)^UD%v|CX@nwirt{VJPf5 zbF`n)98`wVco>~oJz>VZ_>MKV{1dt{H>9p-7^x!}p^txNjNWHNB> zd767VxFcNWGrMKPq*qFdOnZ~&$yn%~6IieJF;#Swj5!+nM_i%!{W<1k>m2>S(b?*e zZwR&2_Q4$f+P*ygenC;2AYC`rv5mF=X76cRZf+-^7p|()LU{w1yszE$T+N-EoF?}# z-k||iDI%!S7UO1SI7!wew#l~lR-^U3`8Si@_>kn?-^A&{9TZO6^r}KxajukTNS8Mm zbDPSU_LBwSH*BOUS3#exJ`c?ao(!}K%tEuZEL2pr>rUaiG)_LwEO;|it{SGbct4BC z{rCiA=`U!JRZ-4p;&mtmv*q$6DXba9D04Svs=ON%?+Spc`9fDN?X}*`qlJ&&|h zo^CpY)A|VsXSkwF*-g<#iL8|K=wCXD0d%c<(K-3WD%_o38RwafnP!+0jj_h2{G2q_ z**n~SyZ-OWa0ey?e}jcJUMnh$6?aH?3}f-E9Yw|cAL_LmI8sb>To0pyj6^Lu4Tn)# z<6~oSQ)yEOdfZFdAeS(dmP(3!;Rn5eWLA(Q_Mf%MC<~84^(~Gr<_Gcr8~nbNxCu9e zF5~gbAE@A8OCHe6wVr}gyoF99rHG8-E1*gw?>bPknIyKlJTWjOE0CqfD~IyJ)pa#&8BR&t@cxn zB90Pal`W^_+*IqIf|dMlJwDf2a?5JEjGmFchQWGj7GX9Dj~B-2%q)kSwxI=zm+Km4 zpe1ynJKTs4vO6qE87}8p!*ltKaTp%=!=}ERD-p)hqy=6S`v^JoL+SwB8#Zp5^`TF- zBwxN9H!KLuhFU283dlE69F3G7z?n3TllntX_kuiLtF* z&Ja&+AI5rLt68-DaJZ~+OwVhT^*Q<>6wFJgmWFG0@VMEOQmo5PflmG+v`N;jhT^U zU=}TURpj4}DYjp^2W=3yku$oI$y};FPMU9gVL2AIz!4K3w2!tGGmkYq($6UN;8MEu z<=w4ZwOpMzgO2z|hl*)ac$N}p^h^0axs&{d;SfsWaB(m+?sdW$Aq(0>Gr3JScq&uL zesQoOmy=58GyZCvB_A{VhmXl6L<+2@uL1*9HFh*WyTxj}iI$>&TT4tOhPcfjg5|;`OQ6C-VPP7RM z|6Mrdz0f1=hh?5uUykE06P|T!s8FzSptJukR%KJ~4bQLKm!`P~lae&p{VSfhm#)sP zTh3a}-I;|mgCzb{c4oM?d4CH2qWveWG`|V!8j%#0FXl`1vZw(Of7$m~Q%vRMCt?X9 zTK^k`Z544Zx|vv^!F&8tFmhr;K}dA$958RSEN2vyRVwm1f@=> zXK*Abxh`K}-z;xV@{lWd-g7^4Q>_$seQ@@0KFu7K>C2dsF)TyR_{r&a&G0@6tWlSU zQ;ZI)V6Oy0W=O;wR@*1r7RxNtO4)^HVGLT$*3vnqHrXwcZS(Dh@E+kM9VxcT7LPoI zs=bY33O4aK^UWiJILbG~9}MJErjunqO+-m&z(I}1p{`I_p9z_}I#k~VqyRM5V)bw# z3`L_`x^9?<*5#&AFol_382fRC{~~WPm<*eFMky$Izo77MibH2K1kl>(PRqfo`;oSB z0@8CnX_NR9UW*NI=U1W%J_#>5J8qMOC@mkM0zQe`em4a7f6#fa6w8P~;WJ*w>o}wu z3F+L|50Vu#pR=zRUc-^vYfhml$~6?oezc>L{O5fYee1kI&uTIX7mz8t)@5<^B3W`Q z&v11{-;6&pvXeDj!2OT+ZJ?KG5tqr=%|mUi$$+d6RW99@)mqZr(s-9u)E=!N3~NJc zV^#Bb>z1(bj!z`B1spfS?AA@jO446?eKlujSKy()h+pvU@;?hS4;5Fd>X|||zRv?_ z)T=>WtB+o&q}o#11!dY3I-+b;FTvcoC>#(ENh8o~t&?L=GT2!)W#z5t9=~vA{Lng1 zB|D)T%H~#REZ4(SsE9VY8S|L(h75?&ojGBe;rP6Wui&=eMX&!eYU+XF3|Mtme2sHa z=-tL6=|snwRa^+|qz6v3D3l@_;D}U)KU)#<;b=}8oi`*7A8-iQW%tlZe46S07=L@; zVQ&%d8BbNues@*(9al4`Pb;0xoiWb;GB0QPGG{ygb~W(~@!5i^5+Q^cb{g-R$5_YN zj@gRY6sT5FrUNLSbQ}O}AVhqU8=E}lTh?u1tsPUsuae)ljf4nXB^