From bf8cedc9dd165e87fbe8849adb0c73bf31985d94 Mon Sep 17 00:00:00 2001 From: mrq Date: Wed, 2 Aug 2023 21:53:35 +0000 Subject: [PATCH] Rewrite init --- .gitignore | 9 + LICENSE | 235 ++++++++++++ README.md | 150 ++++++++ data/config.yaml | 99 ++++++ scripts/download_libritts-small.sh | 9 + scripts/plot.py | 106 ++++++ scripts/prepare_libri.py | 72 ++++ scripts/prepare_libri.sh | 27 ++ scripts/prepare_libritts.py | 18 + scripts/run.sh | 3 + setup.py | 64 ++++ vall-e.png | Bin 0 -> 523519 bytes vall_e/__init__.py | 0 vall_e/__main__.py | 23 ++ vall_e/config.py | 450 +++++++++++++++++++++++ vall_e/data.py | 550 +++++++++++++++++++++++++++++ vall_e/emb/__init__.py | 0 vall_e/emb/g2p.py | 79 +++++ vall_e/emb/qnt.py | 198 +++++++++++ vall_e/export.py | 34 ++ vall_e/inference.py | 82 +++++ vall_e/train.py | 267 ++++++++++++++ vall_e/utils/__init__.py | 10 + vall_e/utils/distributed.py | 81 +++++ vall_e/utils/engines.py | 252 +++++++++++++ vall_e/utils/sampler.py | 48 +++ vall_e/utils/trainer.py | 253 +++++++++++++ vall_e/utils/utils.py | 159 +++++++++ vall_e/utils/wrapper.py | 60 ++++ vall_e/vall_e/__init__.py | 24 ++ vall_e/vall_e/adaln.py | 30 ++ vall_e/vall_e/ar.py | 221 ++++++++++++ vall_e/vall_e/base.py | 512 +++++++++++++++++++++++++++ vall_e/vall_e/nar.py | 214 +++++++++++ vall_e/vall_e/retnet.py | 19 + vall_e/vall_e/transformer.py | 195 ++++++++++ 36 files changed, 4553 insertions(+) create mode 100755 .gitignore create mode 100755 LICENSE create mode 100755 README.md create mode 100755 data/config.yaml create mode 100755 scripts/download_libritts-small.sh create mode 100755 scripts/plot.py create mode 100755 scripts/prepare_libri.py create mode 100755 scripts/prepare_libri.sh create mode 100755 scripts/prepare_libritts.py create mode 100755 scripts/run.sh create mode 100755 setup.py create mode 100755 vall-e.png create mode 100755 vall_e/__init__.py create mode 100755 vall_e/__main__.py create mode 100755 vall_e/config.py create mode 100755 vall_e/data.py create mode 100755 vall_e/emb/__init__.py create mode 100755 vall_e/emb/g2p.py create mode 100755 vall_e/emb/qnt.py create mode 100755 vall_e/export.py create mode 100755 vall_e/inference.py create mode 100755 vall_e/train.py create mode 100755 vall_e/utils/__init__.py create mode 100755 vall_e/utils/distributed.py create mode 100755 vall_e/utils/engines.py create mode 100755 vall_e/utils/sampler.py create mode 100755 vall_e/utils/trainer.py create mode 100755 vall_e/utils/utils.py create mode 100755 vall_e/utils/wrapper.py create mode 100755 vall_e/vall_e/__init__.py create mode 100755 vall_e/vall_e/adaln.py create mode 100755 vall_e/vall_e/ar.py create mode 100755 vall_e/vall_e/base.py create mode 100755 vall_e/vall_e/nar.py create mode 100755 vall_e/vall_e/retnet.py create mode 100755 vall_e/vall_e/transformer.py diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..bcb0023 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +__pycache__ +/data +/logs +/ckpts +/.cache +/config +/*.egg-info +/vall_e/version.py +/build diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..4e2755a --- /dev/null +++ b/LICENSE @@ -0,0 +1,235 @@ +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 . \ No newline at end of file diff --git a/README.md b/README.md new file mode 100755 index 0000000..74aac24 --- /dev/null +++ b/README.md @@ -0,0 +1,150 @@ +

+ +

+ +# VALL'Ecker + +An unofficial PyTorch implementation of [VALL-E](https://valle-demo.github.io/), based on the [EnCodec](https://github.com/facebookresearch/encodec) tokenizer. + +> **Note** this is highly experimental. While I've seem to have audited and tighened down as much as I can, I'm still trying to produce a decent model out of it. You're free to train your own model if you happen to have the massive compute for it, but it's quite the beast to properly feed. + +> **Note** This README won't get much love until I truly nail out a quasi-decent model. + +* **Note** Distributed training seems broken? I'm not really sure how to test it, as my two 6800XTs have been redistributed for now, and the last time I tried using them for this, things weren't good. + +* **Note** You can follow along with my pseudo-blog in an issue [here](https://git.ecker.tech/mrq/ai-voice-cloning/issues/152). I currently have a dataset clocking in at 3400+ trimmed hours. + +### Requirements + +Since the trainer is based on [DeepSpeed](https://github.com/microsoft/DeepSpeed#requirements), you will need to have a GPU that DeepSpeed has developed and tested against, as well as a CUDA or ROCm compiler pre-installed to install this package. + +### Install + +``` +pip install git+https://git.ecker.tech/mrq/vall-e +``` + +Or you may clone by: + +``` +git clone --recurse-submodules https://git.ecker.tech/mrq/vall-e.git +``` + +Note that the code is only tested under `Python 3.10.9`. + +### Train + +Training is very dependent on: +* the quality of your dataset. +* how much data you have. +* the bandwidth you quantized your audio to. + +#### Quick Preparations + +##### Prepared Dataset + +Under `./scripts/download_libritts-small.sh` is a script that will quickly set up an already prepared dataset to train. This leverages a repo I've published to HuggingFace that contains everything processsed, straight from the below method. + +##### Prepare It Yourself + +Under `./scripts/prepare_libri.sh` is a small script to quickly set up a dataset based on LibriSpeech-Finetuning. It'll handle everything from downloading, to extracting, to preparing, to quantizing and phonemizing. + +Afterwards, simply use `./config/libri/config.yaml` as your target YAML. + +However, you'll only train against a small subset of the data with the default settings, due to the maximum phoneme length configured. Increasing this will not only drastically increase VRAM usage, but also reduce iteration rates. It's recommended to further process your files by slicing them down (for example, through [mrq/ai-voice-cloning](https://git.ecker.tech/mrq/ai-voice-cloning)). + +#### Leverage Your Own + +1. Put your data into a folder, e.g. `./data/custom`. Audio files should be named with the suffix `.wav` and text files with `.normalized.txt`. + +2. Quantize the data: + +``` +python -m vall_e.emb.qnt ./data/custom +``` + +3. Generate phonemes based on the text: + +``` +python -m vall_e.emb.g2p data/custom +``` + +4. Customize your configuration by creating `./config/custom.yml`. Refer to the example configs in `./config/libri-quarter.yaml` and `./vall_e/config.py` for details. If you want to choose between different model presets, check `./vall_e/models/__init__.py`. + +5. Train the AR and NAR models using the following scripts: + +``` +python -m vall_e.train yaml=config/custom/config.yml +``` + +You may quit your training any time by just typing `quit` in your CLI. The latest checkpoint will be automatically saved. + +### Dataset Formats + +Two dataset formats are supported: +* the standard way: + - data is stored under `${speaker}/${id}.phn.txt` and `${speaker}/${id}.qnt.pt` +* using an HDF5 dataset: + - you can convert from the standard way with the following command: `python3 -m vall_e.data yaml="./path/to/your/config.yaml"` + - this will shove everything into a single HDF5 file and store some metadata alongside (for now, the symbol map generated, and text/audio lengths) + - be sure to also define `use_hdf5` in your config YAML. + +### Training Tip + +Training a VALL-E model is very, very meticulous. I've fiddled with a lot of """clever""" tricks, but it seems the best is just to pick the highest LR you can get (this heavily depends on your batch size, but hyperparameters of bs=64 * ga=16 on the quarter sized model has an LR of 1.0e-3 stable, while the full size model with hyperparameters of bs=16 * ga=64 needed smaller). Like typical training, it entirely depends on your tradeoff betweeen stability and time. + +### Export + +Both trained models *can* be exported, but is only required if loading them on systems without DeepSpeed for inferencing (Windows systems). To export the models, run: + +``` +python -m vall_e.export ./models/ yaml=./config/custom.yml +``` + +This will export the latest checkpoint. + +### Synthesis + +To synthesize speech, invoke either (if exported the models): + +``` +python -m vall_e --ar-ckpt ./models/ar.pt --nar-ckpt ./models/nar.pt +``` + +or: + +``` +python -m vall_e yaml= +``` + +Some additional flags you can pass are: +* `--max-ar-steps`: maximum steps for inferencing through the AR model. Each second is 75 steps. +* `--ar-temp`: sampling temperature to use for the AR pass. +* `--nar-temp`: sampling temperature to use for the NAR pass. +* `--device`: device to use (default: `cuda`, examples: `cuda:0`, `cuda:1`, `cpu`) + +## Notice + +- [EnCodec](https://github.com/facebookresearch/encodec) is licensed under CC-BY-NC 4.0. If you use the code to generate audio quantization or perform decoding, it is important to adhere to the terms of their license. + +Unless otherwise credited/noted, this repository is [licensed](LICENSE) under AGPLv3. + +## Citations + +```bibtex +@article{wang2023neural, + title={Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers}, + author={Wang, Chengyi and Chen, Sanyuan and Wu, Yu and Zhang, Ziqiang and Zhou, Long and Liu, Shujie and Chen, Zhuo and Liu, Yanqing and Wang, Huaming and Li, Jinyu and others}, + journal={arXiv preprint arXiv:2301.02111}, + year={2023} +} +``` + +```bibtex +@article{defossez2022highfi, + title={High Fidelity Neural Audio Compression}, + author={Défossez, Alexandre and Copet, Jade and Synnaeve, Gabriel and Adi, Yossi}, + journal={arXiv preprint arXiv:2210.13438}, + year={2022} +} +``` diff --git a/data/config.yaml b/data/config.yaml new file mode 100755 index 0000000..e0eeabe --- /dev/null +++ b/data/config.yaml @@ -0,0 +1,99 @@ +dataset: + training: [ + + ] + + validation: [ + + ] + + speaker_name_getter: "lambda p: f'{p.parts[-3]}_{p.parts[-2]}'" + + use_hdf5: True + validate: True + + workers: 8 + cache: True + + phones_range: [4, 192] + duration_range: [1.0, 10.0] + + random_utterance: 1.0 + max_prompts: 3 + prompt_duration: 3.0 + +models: + _models: + - name: "ar" + size: "full" + resp_levels: 1 + use_retnet: True + full_retnet: True + use_torchscale: True + + - name: "nar" + size: "full" + resp_levels: 1 + use_retnet: True + full_retnet: True + use_torchscale: True + + prom_levels: 2 + +hyperparameters: + batch_size: 16 + gradient_accumulation_steps: 8 + gradient_clipping: 100 + + optimizer: Adamw + learning_rate: 1.0e-4 + + scheduler_type: "" + #scheduler_type: OneCycle + #scheduler_params: + # cycle_first_step_size: 10_000 + # cycle_first_stair_count: 10_000 + + # cycle_second_step_size: 15_000 + # cycle_second_stair_count: 15_000 + + # decay_step_size: 5_000 + + # cycle_min_lr: 2.5e-4 # 1.0e-5 + # cycle_max_lr: 2.5e-4 # 1.0e-4 + # decay_lr_rate: 0.0 + + # cycle_min_mom: 0.90 + # cycle_max_mom: 0.99 + # decay_mom_rate: 0.0 + +evaluation: + batch_size: 64 + frequency: 250 + size: 64 + + steps: 500 + temperature: 1.0 + +trainer: + iterations: 100_000 + + save_tag: step + save_on_oom: True + save_on_quit: True + save_frequency: 100 + + aggressive_optimizations: False + + #load_tag: "9500" + #load_state_dict: True + #load_states: False + #strict_loading: False + #restart_step_count: True + + gc_mode: None # "global_step" + + weight_dtype: bfloat16 + + zero_optimization_level: 2 + use_compression_training: True \ No newline at end of file diff --git a/scripts/download_libritts-small.sh b/scripts/download_libritts-small.sh new file mode 100755 index 0000000..1f5ca9a --- /dev/null +++ b/scripts/download_libritts-small.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# do not invoke directly in scripts +if [[ ${PWD##*/} == 'scripts' ]]; then + cd .. +fi + +# download training data +git clone https://huggingface.co/datasets/ecker/libritts-small ./data/libritts-small \ No newline at end of file diff --git a/scripts/plot.py b/scripts/plot.py new file mode 100755 index 0000000..e46ffc2 --- /dev/null +++ b/scripts/plot.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 + +import argparse +import json +import re +from pathlib import Path + +import matplotlib.pyplot as plt +import pandas as pd + + +def plot(paths, args): + dfs = [] + + for path in paths: + with open(path, "r") as f: + text = f.read() + + rows = [] + + pattern = r"(\{.+?\})" + + for row in re.findall(pattern, text, re.DOTALL): + try: + row = json.loads(row) + except Exception as e: + continue + + if "global_step" in row: + rows.append(row) + + df = pd.DataFrame(rows) + + if "name" in df: + df["name"] = df["name"].fillna("train") + else: + df["name"] = "train" + + df["group"] = str(path.parents[args.group_level]) + df["group"] = df["group"] + "/" + df["name"] + + dfs.append(df) + + df = pd.concat(dfs) + + if args.max_y is not None: + df = df[df["global_step"] < args.max_x] + + for gtag, gdf in sorted( + df.groupby("group"), + key=lambda p: (p[0].split("/")[-1], p[0]), + ): + for y in args.ys: + gdf = gdf.sort_values("global_step") + + if gdf[y].isna().all(): + continue + + if args.max_y is not None: + gdf = gdf[gdf[y] < args.max_y] + + gdf[y] = gdf[y].ewm(10).mean() + + gdf.plot( + x="global_step", + y=y, + label=f"{gtag}/{y}", + ax=plt.gca(), + marker="x" if len(gdf) < 100 else None, + alpha=0.7, + ) + + plt.gca().legend( + loc="center left", + fancybox=True, + shadow=True, + bbox_to_anchor=(1.04, 0.5), + ) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("ys", nargs="+") + parser.add_argument("--log-dir", default="logs", type=Path) + parser.add_argument("--out-dir", default="logs", type=Path) + parser.add_argument("--filename", default="log.txt") + parser.add_argument("--max-x", type=float, default=float("inf")) + parser.add_argument("--max-y", type=float, default=float("inf")) + parser.add_argument("--group-level", default=1) + parser.add_argument("--filter", default=None) + args = parser.parse_args() + + paths = args.log_dir.rglob(f"**/{args.filename}") + + if args.filter: + paths = filter(lambda p: re.match(".*" + args.filter + ".*", str(p)), paths) + + plot(paths, args) + + name = "-".join(args.ys) + out_path = (args.out_dir / name).with_suffix(".png") + plt.savefig(out_path, bbox_inches="tight") + + +if __name__ == "__main__": + main() diff --git a/scripts/prepare_libri.py b/scripts/prepare_libri.py new file mode 100755 index 0000000..0843308 --- /dev/null +++ b/scripts/prepare_libri.py @@ -0,0 +1,72 @@ +import os +import json + +for f in os.listdir(f'./data/librispeech_finetuning/1h/'): + for j in os.listdir(f'./data/librispeech_finetuning/1h/{f}/clean'): + for z in os.listdir(f'./data/librispeech_finetuning/1h/{f}/clean/{j}'): + for i in os.listdir(f'./data/librispeech_finetuning/1h/{f}/clean/{j}/{z}'): + os.rename(f'./data/librispeech_finetuning/1h/{f}/clean/{j}/{z}/{i}', f'./data/librilight-tts/{i}') + +for j in os.listdir('./data/librispeech_finetuning/9h/clean'): + for z in os.listdir(f'./data/librispeech_finetuning/9h/clean/{j}'): + for i in os.listdir(f'./data/librispeech_finetuning/9h/clean/{j}/{z}'): + os.rename(f'./data/librispeech_finetuning/9h/clean/{j}/{z}/{i}', f'./data/librilight-tts/{i}') + +lst = [] +for i in os.listdir('./data/librilight-tts/'): + try: + if 'trans' not in i: + continue + with open(f'./data/librilight-tts/{i}') as f: + for row in f: + z = row.split('-') + name = z[0]+'-'+z[1]+ '-' + z[2].split(' ')[0] + text = " ".join(z[2].split(' ')[1:]) + lst.append([name, text]) + except Exception as e: + pass + +for i in lst: + try: + with open(f'./data/librilight-tts/{i[0]}.txt', 'x') as file: + file.write(i[1]) + except: + with open(f'./data/librilight-tts/{i[0]}.txt', 'w+') as file: + file.write(i[1]) + +phoneme_map = {} +phoneme_transcript = {} + +with open('./data/librispeech_finetuning/phones/phones_mapping.json', 'r') as f: + phoneme_map_rev = json.load(f) + for k, v in phoneme_map_rev.items(): + phoneme_map[f'{v}'] = k + +with open('./data/librispeech_finetuning/phones/10h_phones.txt', 'r') as f: + lines = f.readlines() + for line in lines: + split = line.strip().split(" ") + key = split[0] + tokens = split[1:] + + phonemes = [] + for token in tokens: + phoneme = phoneme_map[f'{token}'] + phonemes.append( phoneme ) + + phoneme_transcript[key] = " ".join(phonemes) + +for filename in sorted(os.listdir('./data/librilight-tts')): + split = filename.split('.') + + key = split[0] + extension = split[1] # covers double duty of culling .normalized.txt and .phn.txt + + if extension != 'txt': + continue + + os.rename(f'./data/librilight-tts/{filename}', f'./data/librilight-tts/{key}.normalized.txt') + + if key in phoneme_transcript: + with open(f'./data/librilight-tts/{key}.phn.txt', 'w', encoding='utf-8') as f: + f.write(phoneme_transcript[key]) \ No newline at end of file diff --git a/scripts/prepare_libri.sh b/scripts/prepare_libri.sh new file mode 100755 index 0000000..d044278 --- /dev/null +++ b/scripts/prepare_libri.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# do not invoke directly in scripts +if [[ ${PWD##*/} == 'scripts' ]]; then + cd .. +fi + +# download training data +cd data +mkdir librilight-tts +if [ ! -e ./librispeech_finetuning.tgz ]; then + wget https://dl.fbaipublicfiles.com/librilight/data/librispeech_finetuning.tgz +fi +tar -xzf librispeech_finetuning.tgz +cd .. + +# clean it up +python3 ./scripts/prepare_libri.py + +# convert to wav +pip3 install AudioConverter +audioconvert convert ./data/librilight-tts/ ./data/librilight-tts --output-format .wav + +# process data +ulimit -Sn `ulimit -Hn` # ROCm is a bitch +python3 -m vall_e.emb.g2p ./data/librilight-tts # phonemizes anything that might have been amiss in the phoneme transcription +python3 -m vall_e.emb.qnt ./data/librilight-tts \ No newline at end of file diff --git a/scripts/prepare_libritts.py b/scripts/prepare_libritts.py new file mode 100755 index 0000000..c662fe3 --- /dev/null +++ b/scripts/prepare_libritts.py @@ -0,0 +1,18 @@ +import os +import json + +for f in os.listdir(f'./LibriTTS/'): + if not os.path.isdir(f'./LibriTTS/{f}/'): + continue + for j in os.listdir(f'./LibriTTS/{f}/'): + if not os.path.isdir(f'./LibriTTS/{f}/{j}'): + continue + for z in os.listdir(f'./LibriTTS/{f}/{j}'): + if not os.path.isdir(f'./LibriTTS/{f}/{j}/{z}'): + continue + for i in os.listdir(f'./LibriTTS/{f}/{j}/{z}'): + if i[-4:] != ".wav": + continue + + os.makedirs(f'./LibriTTS-Train/{j}/', exist_ok=True) + os.rename(f'./LibriTTS/{f}/{j}/{z}/{i}', f'./LibriTTS-Train/{j}/{i}') \ No newline at end of file diff --git a/scripts/run.sh b/scripts/run.sh new file mode 100755 index 0000000..6cc6331 --- /dev/null +++ b/scripts/run.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +until $@; do echo retrying && pkill python3; done diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..203be90 --- /dev/null +++ b/setup.py @@ -0,0 +1,64 @@ +import subprocess + +from pathlib import Path +from datetime import datetime +from setuptools import setup, find_packages + +def shell(*args): + out = subprocess.check_output(args) + return out.decode("ascii").strip() + + +def write_version(version_core, pre_release=True): + if pre_release: + time = shell("git", "log", "-1", "--format=%cd", "--date=iso") + time = datetime.strptime(time, "%Y-%m-%d %H:%M:%S %z") + time = time.strftime("%Y%m%d%H%M%S") + version = f"{version_core}-dev{time}" + else: + version = version_core + + with open(Path("vall_e", "version.py"), "w") as f: + f.write('__version__ = "{}"\n'.format(version)) + + return version + + +with open("README.md", "r") as f: + long_description = f.read() + +setup( + name="vall-e", + python_requires=">=3.10.0", + version=write_version("0.0.1"), + description="An unofficial implementation of the audio LM VALL-E", + author="ecker", + author_email="mrq@ecker.tech", + long_description=long_description, + long_description_content_type="text/markdown", + packages=find_packages(), + install_requires=[ + "coloredlogs>=15.0.1", + "deepspeed>=0.7.7", + "diskcache>=5.4.0", + "einops>=0.6.0", + "encodec>=0.1.1", + "phonemizer>=2.1.0", + "matplotlib>=3.6.0", + "numpy>=1.23.3", + "omegaconf==2.0.6", + "tqdm>=4.64.1", + + "pandas>=1.5.0", + "torch>=1.13.0", + "torchaudio>=0.13.0", + "torchmetrics", + + "auraloss[all]", + "vocos", + "h5py", + "git+https://github.com/microsoft/torchscale", + "fairseq", + ], + url="https://git.ecker.tech/mrq/vall-e", +) diff --git a/vall-e.png b/vall-e.png new file mode 100755 index 0000000000000000000000000000000000000000..ed0a9cddafec2fd9a53789006d781a4baa7c533d GIT binary patch literal 523519 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 sS7R{~EK!4Rf3hbWR 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 Wq6uoA{NR0r`YFh$NLNUjeET2YSKF-s literal 0 HcmV?d00001 diff --git a/vall_e/__init__.py b/vall_e/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/vall_e/__main__.py b/vall_e/__main__.py new file mode 100755 index 0000000..113cd2d --- /dev/null +++ b/vall_e/__main__.py @@ -0,0 +1,23 @@ +import argparse +from pathlib import Path +from .inference import TTS + +def main(): + parser = argparse.ArgumentParser("VALL-E TTS") + parser.add_argument("text") + parser.add_argument("reference", type=Path) + parser.add_argument("out_path", type=Path) + parser.add_argument("--yaml", type=Path, default=None) + parser.add_argument("--ar-ckpt", type=Path, default=None) + parser.add_argument("--nar-ckpt", type=Path, default=None) + parser.add_argument("--max-ar-steps", type=int, default=6 * 75) + parser.add_argument("--ar-temp", type=float, default=1.0) + parser.add_argument("--nar-temp", type=float, default=1.0) + parser.add_argument("--device", default="cuda") + args = parser.parse_args() + + tts = TTS( config=args.yaml, ar_ckpt=args.ar_ckpt, nar_ckpt=args.nar_ckpt, device=args.device ) + tts.inference( text=args.text, reference=args.reference, out_path=args.out_path, max_ar_samples=args.max_ar_samples, ar_temp=args.ar_temp, nar_temp=args.nar_temp ) + +if __name__ == "__main__": + main() diff --git a/vall_e/config.py b/vall_e/config.py new file mode 100755 index 0000000..2c6626d --- /dev/null +++ b/vall_e/config.py @@ -0,0 +1,450 @@ +import copy +import diskcache +import h5py +import json +import os +import subprocess +import sys +import time + +from dataclasses import asdict, dataclass +from dataclasses import dataclass, field + +from functools import cached_property +from pathlib import Path + +from omegaconf import OmegaConf + +@dataclass() +class _Config: + cfg_path: str | None = None + + @property + def relpath(self): + return Path(self.cfg_path) + + @property + def ckpt_dir(self): + return self.relpath / "ckpt" + + @property + def log_dir(self): + return self.relpath / "logs" / str(self.start_time) + + @cached_property + def start_time(self): + return int(time.time()) + + @cached_property + def git_commit(self): + try: + cmd = "git rev-parse HEAD" + return subprocess.check_output(cmd.split()).decode("utf8").strip() + except: + return "" + + @cached_property + def git_status(self): + try: + cmd = "git status" + return subprocess.check_output(cmd.split()).decode("utf8").strip() + except: + return "" + + def dumps(self): + data = {k: getattr(self, k) for k in dir(self) if not k.startswith("__")} + data = {k: v for k, v in data.items() if not callable(v)} + return json.dumps(data, indent=2, default=str) + + def dump(self, path=None): + if path is None: + path = self.log_dir / "cfg.json" + path.parent.mkdir(parents=True, exist_ok=True) + with open(path, "w") as f: + f.write(self.dumps()) + + @staticmethod + def _is_cfg_argv(s): + return "=" in s and "--" not in s + + @classmethod + def from_yaml( cls, yaml_path ): + return cls.from_cli( [f'yaml="{yaml_path}"'] ) + + @classmethod + def from_cli(cls, args=sys.argv): + cli_cfg = OmegaConf.from_cli([s for s in args if cls._is_cfg_argv(s)]) + + # Replace argv to ensure there are no omegaconf options, for compatibility with argparse. + sys.argv = [s for s in sys.argv if not cls._is_cfg_argv(s)] + + if cli_cfg.get("help"): + print(f"Configurable hyperparameters with their default values:") + print(json.dumps(asdict(cls()), indent=2, default=str)) + exit() + + if "yaml" in cli_cfg: + yaml_cfg = OmegaConf.load(cli_cfg.yaml) + yaml_path = Path(cli_cfg.yaml).absolute() + cfg_path = Path(*yaml_path.relative_to(Path.cwd()).parts[:-1]) + cfg_path = cfg_path.with_suffix("") + cfg_path = f'./{cfg_path}' + + yaml_cfg.setdefault("cfg_path", cfg_path) + cli_cfg.pop("yaml") + else: + yaml_cfg = {} + merged = OmegaConf.merge(yaml_cfg, cli_cfg) + return cls(**dict(merged)) + + def __repr__(self): + return str(self) + + def __str__(self): + return self.dumps() + +@dataclass() +class Dataset: + training: list[Path] = field(default_factory=lambda: []) + validation: list[Path] = field(default_factory=lambda: []) + + temp: list[Path] = field(default_factory=lambda: []) + + speaker_name_getter: str = "lambda p: f'{p.parts[-3]}_{p.parts[-2]}'" + + hdf5_name: str = "data.h5" + use_hdf5: bool = False + validate: bool = True + workers: int = 8 + cache: bool = True + + phones_range: list[int] = field(default_factory=lambda: [4, 256]) + duration_range: list[float] = field(default_factory=lambda: [1.0, 12.0]) + + random_utterance: float = 1.0 + max_prompts: int = 3 + prompt_duration: float = 3.0 + +@dataclass() +class Model: + name: str = "" + size: str = "full" + resp_levels: int = 1 + arch_type: str = "transformer" + + @property + def scale(self): + if self.size == "quarter": + return 0.25 + if self.size == "half": + return 0.5 + return 1.0 + + @property + def full_name(self): + name = [ self.name ] + + if self.size != "full": + name.append(self.size) + + if self.arch_type != "transformer": + name.append(self.arch_type.replace("/", "-")) + + name.append(f'{cfg.models.levels}') + + return "-".join(name) + + @property + def tokens(self): + return 1024 + + @property + def dim(self): + if self.size == "quarter": + return 256 + if self.size == "half": + return 512 + if self.size == "full": + return 1024 + raise ValueError + + @property + def heads(self): + if self.size == "quarter": + return 4 + if self.size == "half": + return 8 + if self.size == "full": + return 16 + raise ValueError + + @property + def layers(self): + return 12 + +@dataclass() +class Models: + _models: list[Model] = field(default_factory=lambda: [ + Model(name="ar", resp_levels=1), + Model(name="nar", resp_levels=7), + ]) + + def get(self, name=None): + if not name: + return [ Model(**model) for model in self._models ] + + for model in self._models: + if model.name == name: + return model + + raise ValueError + + @property + def ar(self): + return self.get("ar") + + @property + def nar(self): + return self.get("nar") + + @property + def levels(self): + return self.prom_levels + + prom_levels: int = 8 + +@dataclass() +class Hyperparameters: + batch_size: int = 8 + gradient_accumulation_steps: int = 32 + gradient_clipping: int = 100 + + optimizer: str = "Adamw" + learning_rate: float = 3.25e-4 + + scheduler_type: str = "" + scheduler_params: dict = field(default_factory=lambda: {}) + +@dataclass() +class Evaluation: + batch_size: int = 64 + frequency: int = 250 + size: int = 64 + + steps: int = 500 + temperature: float = 1.0 + +@dataclass() +class Trainer: + iterations: int = 100_000 + + save_tag: str = "step" + load_tag: str | None = None + + save_on_oom: bool = True + save_on_quit: bool = True + save_frequency: int = 100 + + load_state_dict: bool = False + load_states: bool = True + strict_loading: bool = True + restart_step_count: bool = False + + aggressive_optimizations: bool = False + + gc_mode: str | None = None + + weight_dtype: str = "float16" + + zero_optimization_level: int = 0 + use_compression_training: bool = False + +@dataclass() +class Config(_Config): + device: str = "cuda" + + dataset: Dataset = field(default_factory=lambda: Dataset) + models: Models = field(default_factory=lambda: Models) + hyperparameters: Hyperparameters = field(default_factory=lambda: Hyperparameters) + evaluation: Evaluation = field(default_factory=lambda: Evaluation) + trainer: Trainer = field(default_factory=lambda: Trainer) + + use_vocos: bool = True + + @property + def sample_rate(self): + return 24_000 + + @cached_property + def get_spkr(self): + return eval(self.dataset.speaker_name_getter) + + @property + def scheduler(self): + cfg = { + "type": self.hyperparameters.scheduler_type, + "params": {}, + } + + for k in self.hyperparameters.scheduler_params: + cfg['params'][k] = self.hyperparameters.scheduler_params[k] + + if self.hyperparameters.scheduler_type == "WarmupDecayLR" and 'total_num_steps' not in cfg['params']: + cfg['params']['total_num_steps'] = self.trainer.iterations + return cfg + + @property + def fp16_cfg(self): + if self.trainer.weight_dtype.lower() != "float16": + return None + return { + "enabled": True, + "auto_cast": True, + } + + @property + def bf16_cfg(self): + return { + "enabled": self.trainer.weight_dtype.lower() == "bfloat16" + } + + def get_compression_cfg(self, model): + if not self.trainer.use_compression_training: + return None + + weights = [ name[0] for name in model.named_parameters() ] + bits = 8 + + return { + "weight_quantization": { + "shared_parameters":{ + "enabled": True, + "quantizer_kernel": True, + "schedule_offset": 0, + "quantize_groups": 64, + "quantize_verbose": True, + "quantization_type": "symmetric", + "rounding": "nearest", + "quantize_weight_in_forward": True, + "fp16_mixed_quantize":{ + "enabled": False, + "quantize_change_ratio": 1 + } + }, + "different_groups": { + "wq1": { + "params": { + "start_bits": bits, + "target_bits": bits, + "quantization_period": 0 + }, + "modules": weights + } + } + }, + "activation_quantization": { + "shared_parameters":{ + "enabled": True, + "quantization_type": "symmetric", + "range_calibration": "dynamic", + "schedule_offset": 0 + }, + "different_groups": { + "aq1": { + "params": { + "bits": bits + }, + "modules": weights + } + } + } + } + + @property + def zero_cfg(self): + if self.trainer.zero_optimization_level == 0: + return None + + return { + "stage": self.trainer.zero_optimization_level, + "contiguous_gradients": True, + "overlap_comm": True, + "reduce_scatter": True, + "reduce_bucket_size": 5e8, + "allgather_bucket_size": 5e8, + "sub_group_size": 5e8, + "round_robin_gradients": True, + "offload_optimizer": { + "device": "cpu", + "pin_memory": True + }, + "offload_param": { + "device": "cpu", + "pin_memory": True + } + } + + def get_ds_cfg(self, model): + cfg = { + "train_micro_batch_size_per_gpu": self.hyperparameters.batch_size, + "gradient_accumulation_steps": self.hyperparameters.gradient_accumulation_steps, + "optimizer": { + "type": self.hyperparameters.optimizer, + "params": { + "lr": self.hyperparameters.learning_rate, + } + }, + "scheduler": self.hyperparameters.scheduler if self.hyperparameters.scheduler_type != "" else None, + "gradient_clipping": self.hyperparameters.gradient_clipping, + "fp16": self.fp16_cfg, + "bf16": self.bf16_cfg, + "compression_training": self.get_compression_cfg(model), + "zero_optimization": self.zero_cfg, + "comms_logger": { + "enabled": False + } + } + + null_keys = [ k for k in cfg if not cfg[k] ] + for k in null_keys: + del cfg[k] + + if os.path.exists("./config/ds_config.json"): + ds_cfg = json.load(open("./config/ds_config.json", "r", encoding="utf-8")) + cfg.update(ds_cfg) + + return cfg + + @property + def cache_dir(self): + return ".cache" / self.relpath + + @cached_property + def diskcache(self): + if self.dataset.cache: + return diskcache.Cache(self.cache_dir).memoize + return lambda: lambda x: x + + def load_yaml( self, config_path ): + tmp = Config.from_yaml( config_path ) + self.__dict__.update(tmp.__dict__) + + +cfg = Config.from_cli() + +# OmegaConf doesn't actually coerce the dicts into the @dataclass decorated classes, for some god forsaken reason, so we coerce them ourselves +cfg.dataset = Dataset(**cfg.dataset) +cfg.models = Models(**cfg.models) +cfg.hyperparameters = Hyperparameters(**cfg.hyperparameters) +cfg.evaluation = Evaluation(**cfg.evaluation) +cfg.trainer = Trainer(**cfg.trainer) + +# cached_property stopped working... +if cfg.dataset.use_hdf5: + try: + cfg.hdf5 = h5py.File(f'{cfg.cfg_path}/{cfg.dataset.hdf5_name}', 'a') + except Exception as e: + print("Error while opening HDF5 file:", f'{cfg.cfg_path}/{cfg.dataset.hdf5_name}', str(e)) + +if __name__ == "__main__": + print(cfg) \ No newline at end of file diff --git a/vall_e/data.py b/vall_e/data.py new file mode 100755 index 0000000..53388f1 --- /dev/null +++ b/vall_e/data.py @@ -0,0 +1,550 @@ +# todo: clean this mess up + +import copy +import h5py +import json +import logging +import numpy as np +import os +import random +import torch + +from .config import cfg +from .utils.sampler import Sampler + +from collections import defaultdict +from functools import cache, cached_property +from itertools import groupby, zip_longest +from pathlib import Path +from typing import Any + +from torch import Tensor +from torch.utils.data import DataLoader, Dataset as _Dataset +from tqdm.auto import tqdm + +# torch.multiprocessing.set_sharing_strategy("file_system") + +_logger = logging.getLogger(__name__) + +def get_phone_symmap(): + if cfg.dataset.use_hdf5 and 'symmap' in cfg.hdf5: + return json.loads( cfg.hdf5['symmap'].asstr()[()] ) + + symmap = {'': 1, '': 2, ' ': 3, '.': 4, ',': 5, '!': 6, '?': 7, 'p': 7, 'iː': 8, 'ɚ': 9, 'ˌ': 10, 'dˌ': 11, 'mˌ': 12, 'd': 13, 'ɹ': 14, 'tˈ': 15, 'pˌ': 16, 'uː': 17, 'l': 18, 'æ': 19, 'ɛ': 20, 'ɪ': 21, 'j': 22, 'ʊ': 23, 't': 24, 'n': 25, 'v': 26, 'a': 27, 'o': 28, 'ŋ': 29, 'w': 30, 'ʌ': 31, 'hˈ': 32, 'ɡˈ': 33, 'ə': 34, 'θˈ': 35, 'dˈ': 36, 'wˌ': 37, 'h': 38, 'z': 39, 'k': 40, 'ð': 41, 'ɡˌ': 42, 'ˈ': 43, 'fˈ': 44, 'i': 45, 's': 46, 'ʃ': 47, 'wˈ': 48, 'ðˈ': 49, 'ɹˈ': 50, 'lˈ': 51, 'ɡ': 52, 'oː': 53, 'mˈ': 54, 'e': 55, 'ɑː': 56, 'nˈ': 57, 'm': 58, 'θˌ': 59, 'sˈ': 60, 'f': 61, 'ɔː': 62, 'hˌ': 63, 'b': 64, 'jˈ': 65, 'ɐ': 66, 'ʒˈ': 67, 'θ': 68, 'bˈ': 69, 'ɾ': 70, 'ɜː': 71, 'ʌˈ': 72, 'ʃˌ': 73, 'bˌ': 74, 'kˈ': 75, 'ɔ': 76, 'zˈ': 77, 'ᵻ': 78, 'kˌ': 79, 'vˈ': 80, 'fˌ': 81, 'ʒ': 82, 'ʃˈ': 83, 'ɹˌ': 84, 'tˌ': 85, 'pˈ': 86, 'ðˌ': 87, 'sˌ': 88, 'nˌ': 89, 'lˌ': 90, '̩': 91, 'ʔ': 92, 'vˌ': 93, 'ɪˈ': 94, '"': 95, 'ɪˌ': 96, 'ʒˌ': 97, 'uːˌ': 98, 'ʊˈ': 99, 'jˌ': 100, 'uːˈ': 101, 'iːˈ': 102, 'zˌ': 103, '.ˈ': 104, '…': 105, 'ŋˌ': 106, 'ɐˌ': 107, '—ˈ': 108, 'iˌ': 109, 'iːˌ': 110, 'ɛː': 111, ')': 112, ')ˈ': 113, '(': 114, 'u': 115, '-': 116, 'ɖˈ': 117, 'iˈ': 118, 'ʰˈ': 119, 'ɟˈ': 120, '̃': 121, 'eː': 122, 'ɾˈ': 123, 'r': 124, 'ʰ': 125, '-ˌ': 126, 'ɫ': 127, 'q': 128, '—': 129, 'ʊˌ': 130, 'aː': 131, 'cˈ': 132, '…ˈ': 133, 'c': 134, 'ɳ': 135, 'ɐˈ': 136, 'x': 137, 'ʔˌ': 138, '.ˌ': 139, 'ɑ': 140, '?ˈ': 141, '̩ˈ': 142, '"ˈ': 143, ',ˈ': 144, 'ŋˈ': 145, 'əˌ': 146, '!ˈ': 147, '"ˌ': 148, '?ˌ': 149, ',ˌ': 150, '—ˌ': 151, '̩ˌ': 152, 'əˈ': 153, '!ˌ': 154, 'ɬ': 155, 'ʲ': 156, '¡': 157, 'ɯ': 158, 'qˌ': 159, 'ʑ': 160, 'ʑˈ': 161, '¿': 162, 'ɑːˈ': 163, 'iːː': 164, 'ɛˈ': 165, '¡ˈ': 166, 'æˈ': 167, 'ç': 168, 'ɾˌ': 169, 'ᵻˈ': 170, 'xˈ': 171, 'ɔːˈ': 172, ';': 173, 'ɬˌ': 174, ':': 175, 'ʔˈ': 176, 'ɑːˌ': 177, 'ɬˈ': 178} + return symmap + +def _replace_file_extension(path, suffix): + return (path.parent / path.name.split(".")[0]).with_suffix(suffix) + +def _get_hdf5_path(path): + path = str(path) + if path[:2] != "./": + path = f'./{path}' + return path.replace(cfg.cfg_path, "") + +def _get_quant_path(path): + return _replace_file_extension(path, ".qnt.pt") + +def _get_phone_path(path): + return _replace_file_extension(path, ".phn.txt") + + +def _load_quants(path) -> Tensor: + path = _get_quant_path(path) + return torch.load(path)[0][:cfg.models.levels, :].t().to(torch.int16) + + +@cache +def _get_phones(path, lang_marker="en"): + path = _get_phone_path(path) + with open(path, "r", encoding="utf8") as f: + content = f.read() + split = content.split(" ") + return [f""] + [ " " if not p else p for p in split ] + [f""] + + +def _interleaved_reorder(l, fn): + groups = defaultdict(list) + for e in l: + groups[fn(e)].append(e) + groups = {k: groups[k] for k in sorted(groups)} + for interleaved in zip_longest(*groups.values()): + for value in interleaved: + if value is not None: + yield value + + +@cache +def _validate(path, min_phones, max_phones, min_duration, max_duration): + if cfg.dataset.use_hdf5: + key = _get_hdf5_path(path) + if key not in cfg.hdf5: + return False + + phones = cfg.hdf5[key].attrs['phonemes'] + duration = cfg.hdf5[key].attrs['duration'] + + if phones < min_phones or phones > max_phones: + return False + + if duration < min_duration or duration > max_duration: + return False + + return True + + if not os.path.exists(_get_phone_path(path)) or not os.path.exists(_get_quant_path(path)): + return False + + phones = _get_phones(path) + unique_phones = list(set(phones)) + + if len(unique_phones) == 0: + return False + if len(unique_phones) == 1 and unique_phones[0] == " ": + return False + if len(phones) < min_phones or len(phones) > max_phones: + return False + return True + +class Dataset(_Dataset): + def __init__( + self, + paths, + phone_symmap=None, + spkr_symmap=None, + min_phones=cfg.dataset.phones_range[0], + max_phones=cfg.dataset.phones_range[1], + min_duration=cfg.dataset.duration_range[0], + max_duration=cfg.dataset.duration_range[1], + training=False, + extra_paths_by_spkr_name: dict[str, list] = {}, + ): + super().__init__() + self._head = None + self.min_phones = min_phones + self.max_phones = max_phones + self.min_duration = min_duration + self.max_duration = max_duration + + if cfg.dataset.validate: + self.paths = [ + path for path in paths if _validate(path, self.min_phones, self.max_phones, self.min_duration, self.max_duration) + ] + else: + self.paths = paths + + self.spkr_symmap = spkr_symmap or self._get_spkr_symmap() + self.phone_symmap = phone_symmap or self._get_phone_symmap() + self.training = training + + # assert len(self.phone_symmap) < 256, "Unique token count should be [0,255] to fit within uint8" + self.text_dtype = torch.uint8 if len(self.phone_symmap) < 256 else torch.int16 + + self.paths_by_spkr_name = self._get_paths_by_spkr_name(extra_paths_by_spkr_name) + + if cfg.dataset.validate: + self.paths = [ + p for p in self.paths if len(self.paths_by_spkr_name[cfg.get_spkr(p)]) > 1 + ] + + if len(self.paths) == 0 and training: + raise ValueError("No valid path is found for training.") + + self.duration = 0 + self.durations = {} + if cfg.dataset.use_hdf5: + for path in self.paths: + key = _get_hdf5_path(path) + spkr_name = cfg.get_spkr(path) + spkr_id = self.spkr_symmap[spkr_name] + duration = cfg.hdf5[key].attrs['duration'] + + self.duration += duration + + if spkr_id not in self.durations: + self.durations[spkr_id] = duration + else: + self.durations[spkr_id] += duration + + if training: + self.sampler = Sampler(self.paths, [cfg.get_spkr]) + else: + self.sampler = None + + def _get_paths_by_spkr_name(self, extra_paths_by_spkr_name: dict[str, list]): + ret = defaultdict(list) + for path in self.paths: + ret[cfg.get_spkr(path)].append(path) + for k, v in extra_paths_by_spkr_name.items(): + ret[k].extend(v) + return {**ret} + + @cached_property + def phones(self): + return sorted(set().union(*[_get_phones(path) for path in self.paths])) + + def _get_phone_symmap(self): + return get_phone_symmap() + + @cached_property + def spkrs(self): + return sorted({cfg.get_spkr(path) for path in self.paths}) + + def _get_spkr_symmap(self): + return {s: i for i, s in enumerate(self.spkrs)} + + def sample_prompts(self, spkr_name, ignore): + prom_list = [] + + choices = set(self.paths_by_spkr_name[spkr_name]) - {ignore} + choices = [*choices] + + if len(choices) == 0: + raise ValueError( + f"Failed to find another different utterance for {spkr_name}." + ) + + # shuffle it up a bit + offset = random.randint(-16, 16) + trim_length = int(cfg.dataset.prompt_duration * 75) + offset + def trim( qnt ): + length = qnt.shape[0] + start = int(length * random.random()) + end = start + trim_length + if end >= length: + start = length - trim_length + end = length + + return qnt[start:end] + + total_qnt_length = 0 + for _ in range(cfg.dataset.max_prompts): + path = random.choice(choices) + if cfg.dataset.use_hdf5: + key = _get_hdf5_path(path) + #qnt = torch.from_numpy(cfg.hdf5[key]["audio"][:]).to(torch.int16) + qnt = torch.from_numpy(cfg.hdf5[key]["audio"][:, :cfg.models.levels]).to(torch.int16) + else: + qnt = _load_quants(path) + + if cfg.dataset.prompt_duration > 0 and trim_length < qnt.shape[0]: + qnt = trim(qnt) + + prom_list.append(qnt) + total_qnt_length += qnt.shape[0] + + if total_qnt_length >= trim_length: + break + + if random.random() > cfg.dataset.random_utterance: + break + + prom = torch.cat(prom_list) + + if cfg.dataset.prompt_duration > 0 and trim_length < prom.shape[0]: + prom = trim(prom) + + return prom + + def __getitem__(self, index): + if self.training: + assert self.sampler is not None + path = self.sampler.sample() + else: + path = self.paths[index] + + spkr_name = cfg.get_spkr(path) + spkr_id = self.spkr_symmap[spkr_name] + + if cfg.dataset.use_hdf5: + key = _get_hdf5_path(path) + text = torch.from_numpy(cfg.hdf5[key]["text"][:]).to(self.text_dtype) + resps = torch.from_numpy(cfg.hdf5[key]["audio"][:, :cfg.models.levels]).to(torch.int16) + else: + text = torch.tensor([*map(self.phone_symmap.get, _get_phones(path))]).to(self.text_dtype) + resps = _load_quants(path) + + # I could probably do some logic to directly use the resps, but I'm putting my faith in python aliasing + proms = self.sample_prompts(spkr_name, ignore=path) if random.random() < cfg.dataset.random_utterance else resps + + return dict( + index=index, + path=path, + spkr_name=spkr_name, + spkr_id=spkr_id, + text=text, + proms=proms, + resps=resps, + ) + + def head_(self, n): + self._head = n + + def training_(self, value): + self.training = value + + def interleaved_reorder_(self, fn): + self.paths = [*_interleaved_reorder(self.paths, fn)] + + def __len__(self): + return min(len(self.paths), self._head or len(self.paths)) + + def pin_memory(self): + self.text = self.text.pin_memory() + self.proms = self.proms.pin_memory() + self.resps = self.resps.pin_memory() + self.resp = self.resp.pin_memory() + return self + + +def collate_fn(samples: list[dict]): + batch: dict[str, Any] = {k: [s[k] for s in samples] for k in samples[0]} + return batch + + +def _seed_worker(worker_id): + worker_seed = torch.initial_seed() % 2**32 + np.random.seed(worker_seed) + random.seed(worker_seed) + + +def _create_dataloader(dataset, training): + return DataLoader( + dataset=dataset, + batch_size=cfg.hyperparameters.batch_size if training else cfg.evaluation.batch_size, + shuffle=True, # training + drop_last=training, + num_workers=cfg.dataset.workers, + collate_fn=collate_fn, + persistent_workers=True, + pin_memory=False, # True, + worker_init_fn=_seed_worker, + ) + +def _load_dataset_paths(): + hf = cfg.hdf5 + paths = { + "training": [], + "validation": [], + } + + datasets = { + "training": [], + "validation": [], + } + + def get_paths( data_dir, type="training" ): + key = f"/{type}{_get_hdf5_path(data_dir)}" + if key not in cfg.hdf5: + return + + paths[type].extend([ f"{key}/{child.attrs['id']}" for child in cfg.hdf5[key].values() ]) + + # files = data_dir.rglob("*.qnt.pt") + #paths[type].extend([ f'/{type}{_get_hdf5_path( str(file).replace(".qnt.pt", "") )}' for file in files ]) + + for data_dir in cfg.dataset.training: + get_paths( data_dir, "training" ) + + for data_dir in cfg.dataset.validation: + get_paths( data_dir, "validation" ) + + """ + def process( entity ): + if "id" in entity.attrs: + paths[entity.attrs['type']].append( f"{entity.attrs['speaker']}{entity.attrs['id']}" ) + return + + for child in entity.values(): + process( child ) + """ + + + for _, type in enumerate(paths): + dirs = paths[type] + + if len(dirs) == 0: + continue + + dirs = [ Path(p) for p in dirs ] + + pairs = sorted([(cfg.get_spkr(p), p) for p in dirs]) + for _, group in groupby(pairs, lambda pair: pair[0]): + shuffled = sorted([p for _, p in group]) + random.seed(0) + random.shuffle(shuffled) + + datasets[type].extend(shuffled) + + return datasets["training"], datasets["validation"] + +def _load_train_val_paths(): + paths = [] + train_paths = [] + val_paths = [] + + for data_dir in cfg.dataset.training: + paths.extend(data_dir.rglob("*.qnt.pt")) + + if len(paths) > 0: + pairs = sorted([(cfg.get_spkr(p), p) for p in paths]) + del paths + + for _, group in groupby(pairs, lambda pair: pair[0]): + paths = sorted([p for _, p in group]) + random.seed(0) + random.shuffle(paths) + train_paths.extend(paths) + + for data_dir in cfg.dataset.validation: + paths.extend(data_dir.rglob("*.qnt.pt")) + + if len(paths) > 0: + pairs = sorted([(cfg.get_spkr(p), p) for p in paths]) + del paths + + for _, group in groupby(pairs, lambda pair: pair[0]): + paths = sorted([p for _, p in group]) + random.seed(0) + random.shuffle(paths) + val_paths.extend(paths) + + train_paths, val_paths = map(sorted, [train_paths, val_paths]) + + if len(train_paths) == 0: + raise RuntimeError(f"Failed to find any .qnt.pt file in {cfg.dataset.training}.") + # to get it to shut up + if len(val_paths) == 0: + val_paths = [ train_paths[0] ] + + return train_paths, val_paths + +@cfg.diskcache() +def create_datasets(): + train_paths, val_paths = _load_dataset_paths() if cfg.dataset.use_hdf5 else _load_train_val_paths() + + train_dataset = Dataset( + train_paths, + training=True, + ) + + val_dataset = Dataset( + val_paths, + train_dataset.phone_symmap, + #train_dataset.spkr_symmap, + #extra_paths_by_spkr_name=train_dataset.paths_by_spkr_name, + ) + + val_dataset.interleaved_reorder_(cfg.get_spkr) + val_dataset.head_(cfg.evaluation.size) + + return train_dataset, val_dataset + + +def create_train_val_dataloader(): + train_dataset, val_dataset = create_datasets() + + subtrain_dataset = copy.deepcopy(train_dataset) + subtrain_dataset.head_(cfg.evaluation.size) + subtrain_dataset.interleaved_reorder_(cfg.get_spkr) + #subtrain_dataset.training_(False) + + train_dl = _create_dataloader(train_dataset, training=True) + val_dl = _create_dataloader(val_dataset, training=False) + subtrain_dl = _create_dataloader(subtrain_dataset, training=False) + + _logger.info(str(train_dataset.phone_symmap)) + _logger.info(str(train_dataset.spkr_symmap)) + + + _logger.info(f"#samples (train): {len(train_dataset)}.") + _logger.info(f"#samples (val): {len(val_dataset)}.") + _logger.info(f"#samples (subtrain): {len(subtrain_dataset)}.") + + """ + _logger.info(f"#durations (train): {str(train_dataset.durations)}.") + _logger.info(f"#durations (val): {str(val_dataset.durations)}.") + _logger.info(f"#durations (subtrain): {str(subtrain_dataset.durations)}.") + """ + + _logger.info(f"#duration (train): {str(train_dataset.duration)}.") + _logger.info(f"#duration (val): {str(val_dataset.duration)}.") + _logger.info(f"#duration (subtrain): {str(subtrain_dataset.duration)}.") + + assert isinstance(subtrain_dl.dataset, Dataset) + + return train_dl, subtrain_dl, val_dl + +# parse yaml to create an hdf5 tile +def create_dataset_hdf5(): + symmap = get_phone_symmap() + + root = cfg.cfg_path + hf = cfg.hdf5 + + def add( dir, type="training" ): + dir = "./" + str(dir) + name = dir.replace(root, "") + + print( str(dir), name ) + + if not os.path.isdir(f'{root}/{name}/'): + return + # tqdm.write(f'{root}/{name}') + files = os.listdir(f'{root}/{name}/') + + # grab IDs for every file + ids = { ".".join(file.split(".")[:-2]) for file in files } + for id in tqdm(ids, desc=f"Processing {name}"): + if not os.path.exists(f'{root}/{name}/{id}.qnt.pt') or not os.path.exists(f'{root}/{name}/{id}.phn.txt'): + continue + + key = f'{type}/{name}/{id}' + if key in hf: + # print("Skipping existing entry:", key) + continue + + group = hf.create_group(key) + + # audio + qnt = torch.load(f'{root}/{name}/{id}.qnt.pt')[0].t() + group.create_dataset('audio', data=qnt.numpy(), compression='lzf') + + # text + with open(f'{root}/{name}/{id}.phn.txt', "r", encoding="utf8") as f: + content = f.read() + split = content.split(" ") + phones = [f""] + [ " " if not p else p for p in split ] + [f""] + for s in set(phones): + if s not in symmap: + symmap[s] = len(symmap.keys()) + phn = [ symmap[s] for s in phones ] + + group.create_dataset('text', data=phn, compression='lzf', chunks=True) + + # metadata + group.attrs['id'] = id + group.attrs['type'] = type + group.attrs['speaker'] = name + group.attrs['duration'] = qnt.shape[0] / 75 + group.attrs['phonemes'] = len(phn) + + # training + for data_dir in tqdm(cfg.dataset.training, desc="Processing Training"): + add( data_dir, type="training" ) + + # validation + for data_dir in tqdm(cfg.dataset.validation, desc='Processing Validation'): + add( data_dir, type="validation" ) + + # write symmap + hf.create_dataset('symmap', data=json.dumps(symmap)) + + hf.close() + +if __name__ == "__main__": + create_dataset_hdf5() + + train_dl, subtrain_dl, val_dl = create_train_val_dataloader() + sample = train_dl.dataset[0] + print(sample) diff --git a/vall_e/emb/__init__.py b/vall_e/emb/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/vall_e/emb/g2p.py b/vall_e/emb/g2p.py new file mode 100755 index 0000000..c615778 --- /dev/null +++ b/vall_e/emb/g2p.py @@ -0,0 +1,79 @@ +import argparse +import random +import string +import torch + +from functools import cache +from pathlib import Path +from phonemizer import phonemize +from phonemizer.backend import BACKENDS + +from tqdm import tqdm + +@cache +def _get_graphs(path): + with open(path, "r") as f: + graphs = f.read() + return graphs + +cached_backends = {} +def _get_backend( language="en-us", backend="espeak" ): + key = f'{language}_{backend}' + if key in cached_backends: + return cached_backends[key] + + if backend == 'espeak': + phonemizer = BACKENDS[backend]( language, preserve_punctuation=True, with_stress=True) + elif backend == 'espeak-mbrola': + phonemizer = BACKENDS[backend]( language ) + else: + phonemizer = BACKENDS[backend]( language, preserve_punctuation=True ) + + cached_backends[key] = phonemizer + return phonemizer + + +def encode(text: str, language="en-us", backend="espeak") -> list[str]: + if language == "en": + language = "en-us" + + text = [ text ] + + backend = _get_backend(language=language, backend=backend) + if backend is not None: + tokens = backend.phonemize( text, strip=True ) + else: + tokens = phonemize( text, language=language, strip=True, preserve_punctuation=True, with_stress=True ) + + tokens = list(tokens[0]) + tokenized = " ".join( tokens ) + + merges = [ "\u02C8", "\u02CC", "\u02D0" ] + for merge in merges: + tokenized = tokenized.replace( f' {merge}', merge ) + + return tokenized.split(" ") + + +@torch.no_grad() +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("folder", type=Path) + parser.add_argument("--suffix", type=str, default=".normalized.txt") + args = parser.parse_args() + + paths = list(args.folder.rglob(f"*{args.suffix}")) + random.shuffle(paths) + + for path in tqdm(paths): + phone_path = path.with_name(path.stem.split(".")[0] + ".phn.txt") + if phone_path.exists(): + continue + graphs = _get_graphs(path) + phones = encode(graphs) + with open(phone_path, "w") as f: + f.write(" ".join(phones)) + + +if __name__ == "__main__": + main() diff --git a/vall_e/emb/qnt.py b/vall_e/emb/qnt.py new file mode 100755 index 0000000..4f25aeb --- /dev/null +++ b/vall_e/emb/qnt.py @@ -0,0 +1,198 @@ +from ..config import cfg + +import argparse +import random +import torch +import torchaudio + +from functools import cache +from pathlib import Path + + +from encodec import EncodecModel +from encodec.utils import convert_audio +from einops import rearrange +from torch import Tensor +from tqdm import tqdm + +USE_VOCOS = False +try: + from vocos import Vocos + USE_VOCOS = True +except Exception as e: + USE_VOCOS = False + +@cache +def _load_encodec_model(device="cuda"): + # Instantiate a pretrained EnCodec model + assert cfg.sample_rate == 24_000 + + # too lazy to un-if ladder this shit + if cfg.models.levels == 2: + bandwidth_id = 1.5 + elif cfg.models.levels == 4: + bandwidth_id = 3.0 + elif cfg.models.levels == 8: + bandwidth_id = 6.0 + + model = EncodecModel.encodec_model_24khz() + model.set_target_bandwidth(bandwidth_id) + model.to(device) + + return model + +@cache +def _load_vocos_model(device="cuda"): + assert cfg.sample_rate == 24_000 + + model = Vocos.from_pretrained("charactr/vocos-encodec-24khz") + model = model.to(device) + + # too lazy to un-if ladder this shit + if cfg.models.levels == 2: + bandwidth_id = 0 + elif cfg.models.levels == 4: + bandwidth_id = 1 + elif cfg.models.levels == 8: + bandwidth_id = 2 + + model.bandwidth_id = torch.tensor([bandwidth_id], device=device) + model.sample_rate = cfg.sample_rate + + return model + +@cache +def _load_model(device="cuda", vocos=USE_VOCOS): + if vocos: + model = _load_vocos_model(device) + else: + model = _load_encodec_model(device) + + return model + +def unload_model(): + _load_model.cache_clear() + _load_encodec_model.cache_clear() + + +@torch.inference_mode() +def decode(codes: Tensor, device="cuda"): + """ + Args: + codes: (b q t) + """ + + # expand if we're given a raw 1-RVQ stream + if codes.dim() == 1: + codes = rearrange(codes, "t -> 1 1 t") + # expand to a batch size of one if not passed as a batch + # vocos does not do batch decoding, but encodec does, but we don't end up using this anyways *I guess* + # to-do, make this logical + elif codes.dim() == 2: + codes = rearrange(codes, "t q -> 1 q t") + + assert codes.dim() == 3, f'Requires shape (b q t) but got {codes.shape}' + model = _load_model(device) + + # upcast so it won't whine + if codes.dtype == torch.int8 or codes.dtype == torch.int16 or codes.dtype == torch.uint8: + codes = codes.to(torch.int32) + + kwargs = {} + if USE_VOCOS: + x = model.codes_to_features(codes[0]) + kwargs['bandwidth_id'] = model.bandwidth_id + else: + x = [(codes.to(device), None)] + + wav = model.decode(x, **kwargs) + + if not USE_VOCOS: + wav = wav[0] + + return wav, model.sample_rate + +# huh +def decode_to_wave(resps: Tensor, device="cuda"): + return decode(resps, device=device) + +def decode_to_file(resps: Tensor, path: Path, device="cuda"): + wavs, sr = decode(resps, device=device) + + torchaudio.save(str(path), wavs.cpu(), sr) + return wavs, sr + +def _replace_file_extension(path, suffix): + return (path.parent / path.name.split(".")[0]).with_suffix(suffix) + + +@torch.inference_mode() +def encode(wav: Tensor, sr: int, device="cuda"): + """ + Args: + wav: (t) + sr: int + """ + + model = _load_encodec_model(device) + wav = wav.unsqueeze(0) + wav = convert_audio(wav, sr, model.sample_rate, model.channels) + wav = wav.to(device) + + encoded_frames = model.encode(wav) + qnt = torch.cat([encoded[0] for encoded in encoded_frames], dim=-1) # (b q t) + + # duration = qnt.shape[-1] / 75 + + return qnt + + +def encode_from_files(paths, device="cuda"): + tuples = [ torchaudio.load(str(path)) for path in paths ] + + wavs = [] + main_sr = tuples[0][1] + for wav, sr in tuples: + assert sr == main_sr, "Mismatching sample rates" + + if wav.shape[0] == 2: + wav = wav[:1] + + wavs.append(wav) + + wav = torch.cat(wavs, dim=-1) + + return encode(wav, sr, "cpu") + +def encode_from_file(path, device="cuda"): + if isinstance( path, list ): + return encode_from_files( path, device ) + else: + wav, sr = torchaudio.load(str(path), format=path[-3:]) + + if wav.shape[0] == 2: + wav = wav[:1] + + qnt = encode(wav, sr, device) + + return qnt + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("folder", type=Path) + parser.add_argument("--suffix", default=".wav") + args = parser.parse_args() + + paths = [*args.folder.rglob(f"*{args.suffix}")] + + for path in tqdm(paths): + out_path = _replace_file_extension(path, ".qnt.pt") + if out_path.exists(): + continue + qnt = encode_from_file(path) + torch.save(qnt.cpu(), out_path) + + +if __name__ == "__main__": + main() diff --git a/vall_e/export.py b/vall_e/export.py new file mode 100755 index 0000000..f46ab15 --- /dev/null +++ b/vall_e/export.py @@ -0,0 +1,34 @@ +import argparse + +import torch + +from .data import get_phone_symmap +from .train import load_engines + +def load_models(): + models = {} + engines = load_engines() + for name in engines: + model = engines[name].module.cpu() + + model.phone_symmap = get_phone_symmap() + + models[name] = model + + return models + +def main(): + parser = argparse.ArgumentParser("Save trained model to path.") + parser.add_argument("path") + args = parser.parse_args() + + models = load_models() + for name in models: + model = models[name] + + outpath = f'{args.path}/{name}.pt' + torch.save(model, outpath) + print(f"Exported {name} to {outpath}") + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/vall_e/inference.py b/vall_e/inference.py new file mode 100755 index 0000000..944daa0 --- /dev/null +++ b/vall_e/inference.py @@ -0,0 +1,82 @@ +import torch +import torchaudio +import soundfile + +from einops import rearrange + +from .emb import g2p, qnt +from .utils import to_device + +from .config import cfg +from .export import load_models + +class TTS(): + def __init__( self, config=None, ar_ckpt=None, nar_ckpt=None, device="cuda" ): + self.loading = True + self.device = device + + self.input_sample_rate = 24000 + self.output_sample_rate = 24000 + + if ar_ckpt and nar_ckpt: + self.load_ar( ar_ckpt ) + self.load_nar( nar_ckpt ) + else: + self.load_models( config ) + + self.loading = False + + def load_models( self, config_path ): + if config_path: + cfg.load_yaml( config_path ) + + print("Loading models...") + models = load_models() + print("Loaded models") + for name in models: + model = models[name] + if name[:2] == "ar": + self.ar = model.to(self.device) + self.symmap = self.ar.phone_symmap + elif name[:3] == "nar": + self.nar = model.to(self.device) + else: + print("Unknown:", name) + + def load_ar( self, ckpt ): + self.ar_ckpt = ckpt + + self.ar = torch.load(self.ar_ckpt).to(self.device) + self.symmap = self.ar.phone_symmap + + def load_nar( self, ckpt ): + self.nar_ckpt = nar_ckpt + + self.nar = torch.load(self.nar_ckpt).to(self.device) + + def encode_text( self, text, lang_marker="en" ): + text = g2p.encode(text) + phones = [f"<{lang_marker}>"] + [ " " if not p else p for p in text ] + [f""] + mapped = [self.symmap[p] for p in phones if p in self.symmap] + return torch.tensor( mapped ) + + def encode_audio( self, path ): + enc = qnt.encode_from_file( path ) + return enc[0].t().to(torch.int16) + + + def inference( self, text, reference, mode="both", max_ar_steps=6 * 75, ar_temp=1.0, nar_temp=1.0, out_path="./.tmp.wav" ): + prom = self.encode_audio( reference ) + phns = self.encode_text(text) + + prom = to_device(prom, self.device).to(torch.int16) + phns = to_device(phns, self.device).to(torch.uint8 if len(self.symmap) < 256 else torch.int16) + + resp_list = self.ar(text_list=[phns], proms_list=[prom], max_steps=max_ar_steps, sampling_temperature=ar_temp) + resps_list = [r.unsqueeze(-1) for r in resp_list] + resps_list = self.nar(text_list=[phns], proms_list=[prom], resps_list=resps_list, sampling_temperature=nar_temp) + + wav, sr = qnt.decode_to_file(resps_list[0], out_path) + + return (wav, sr) + diff --git a/vall_e/train.py b/vall_e/train.py new file mode 100755 index 0000000..a42f135 --- /dev/null +++ b/vall_e/train.py @@ -0,0 +1,267 @@ +# todo: clean this mess up +# todo: yank deepspeed dependent code out into its own thing + +from .config import cfg +from .data import create_train_val_dataloader +from .emb import qnt + +from .utils import setup_logging, to_device, trainer, flatten_dict, do_gc +from .utils import wrapper as ml + +from .models import get_models + +import auraloss +import deepspeed +import json +import logging +import random +import torch +import torch.nn.functional as F +import traceback + +from collections import defaultdict + +from deepspeed import comm as dist +from deepspeed import DeepSpeedConfig +from deepspeed.accelerator import get_accelerator + +from tqdm import tqdm + +mel_stft_loss = auraloss.freq.MelSTFTLoss(24_000, device="cuda") + +def center_crop(x, len): + start = (x.shape[-1] - len) // 2 + stop = start + len + return x[..., start:stop] + +def left_crop(x, len): + return x[..., 0:len] + +_logger = logging.getLogger(__name__) +deepspeed._initialized_dist = False + +def load_engines(): + if not deepspeed._initialized_dist: + deepspeed._initialized_dist = True + deepspeed.init_distributed() + + models = get_models(cfg.models.get()) + engines = dict() + + for name in models: + model = models[name] + + optimizer = None + lr_scheduler = None + + Adam = ml.Adam + AdamW = ml.AdamW + + if cfg.hyperparameters.optimizer.lower() == "adamw-torch": + optimizer = AdamW( + model.parameters(), + lr=cfg.hyperparameters.learning_rate, + betas=(0.9, 0.96), + eps=1e-07, + weight_decay=0.01, + ) + + if cfg.trainer.load_state_dict: + load_dir = cfg.ckpt_dir / name / "fp32.pth" + model.load_state_dict(torch.load(load_dir)) + + ds_cfg=cfg.get_ds_cfg(model=model) + config_class=DeepSpeedConfig(ds_cfg) + engines[name] = trainer.Engine( + model=model, + config=ds_cfg, + config_class=config_class, + optimizer=optimizer, + lr_scheduler=lr_scheduler, + ) + + return trainer.load_engines(engines, cfg) + +def main(): + #dist.init_distributed(dist_backend=get_accelerator().communication_backend_name()) + if not deepspeed._initialized_dist: + deepspeed._initialized_dist = True + deepspeed.init_distributed() + + setup_logging(cfg.log_dir) + + train_dl, subtrain_dl, val_dl = create_train_val_dataloader() + + def train_feeder(engines, batch, name): + stats = {} + model = engines[name] + if name.startswith("ar"): + _ = model( + text_list=batch["text"], + proms_list=batch["proms"], + resp_list=[r[..., 0] for r in batch["resps"]], + ) + elif name.startswith("nar"): + _ = model( + text_list=batch["text"], + proms_list=batch["proms"], + resps_list=batch["resps"], + ) + else: + raise NotImplementedError(name) + + losses = model.gather_attribute("loss") + + loss = torch.stack([*losses.values()]).sum() + + stats = {} + stats |= {k: v.item() for k, v in losses.items()} + stats |= engines.gather_attribute("scalar") + + return loss, stats + + @torch.inference_mode() + def run_eval(engines, eval_name, dl): + engines_stats = { + 'eval': eval_name + } + + AR = None + NAR = None + + names = [] + for name in engines: + model = engines[name] + names.append(name) + if name[:2] == "ar": + AR = model + elif name[:3] == "nar": + NAR = model + + stats = defaultdict(list) + stats['loss'] = [] + + for batch in tqdm(dl): + batch: dict = to_device(batch, cfg.device) + + # if we're training both models, provide output for both + if AR is not None and NAR is not None: + name = "+".join(names) + + resp_list = AR(text_list=batch["text"], proms_list=batch["proms"], max_steps=cfg.evaluation.steps, sampling_temperature=cfg.evaluation.temperature) + resps_list = [ r.unsqueeze(-1) for r in resp_list ] + resps_list = NAR(text_list=batch["text"], proms_list=batch["proms"], resps_list=resps_list, sampling_temperature=cfg.evaluation.temperature) + + for speaker, path, ref, hyp, prom in zip(batch["spkr_name"], batch["path"], batch["resps"], resps_list, batch["proms"]): + if len(hyp) == 0: + continue + + filename = f'{speaker}_{path.parts[-1]}' + + # to-do, refine the output dir to be sane-er + ref_path = (cfg.log_dir / str(engines.global_step) / "ref" / filename).with_suffix(".wav") + hyp_path = (cfg.log_dir / str(engines.global_step) / name / eval_name / filename).with_suffix(".wav") + prom_path = (cfg.log_dir / str(engines.global_step) / name / "prom" / filename).with_suffix(".wav") + + hyp_path.parent.mkdir(parents=True, exist_ok=True) + ref_path.parent.mkdir(parents=True, exist_ok=True) + prom_path.parent.mkdir(parents=True, exist_ok=True) + + ref_audio, sr = qnt.decode_to_file(ref, ref_path) + hyp_audio, sr = qnt.decode_to_file(hyp, hyp_path) + prom_audio, sr = qnt.decode_to_file(prom, prom_path) + + min_length = min( ref_audio.shape[-1], hyp_audio.shape[-1] ) + ref_audio = ref_audio[..., 0:min_length] + hyp_audio = hyp_audio[..., 0:min_length] + + stats['loss'].append(mel_stft_loss(hyp_audio, ref_audio).item()) + else: + for name in engines: + model = engines[name] + + if name.startswith("ar"): + resp_list = model( + text_list=batch["text"], + proms_list=batch["proms"], + max_steps=cfg.evaluation.steps, + sampling_temperature=cfg.evaluation.temperature, + ) + resps_list = [r.unsqueeze(-1) for r in resp_list] + elif name.startswith("nar"): + resps_list = model( + text_list=batch["text"], + proms_list=batch["proms"], + resps_list=[r[..., 0].unsqueeze(-1) for r in batch["resps"]], + sampling_temperature=cfg.evaluation.temperature, + ) + else: + raise NotImplementedError(name) + + losses = model.gather_attribute("loss") + + batch_stats = {} + batch_stats |= {k: v.item() for k, v in losses.items()} + batch_stats |= engines.gather_attribute("scalar") + + for k, v in batch_stats.items(): + stats[k].append(v) + + for speaker, path, ref, hyp, prom in zip(batch["spkr_name"], batch["path"], batch["resps"], resps_list, batch["proms"]): + if len(hyp) == 0: + continue + + filename = f'{speaker}_{path.parts[-1]}' + + # to-do, refine the output dir to be sane-er + ref_path = (cfg.log_dir / str(engines.global_step) / "ref" / filename).with_suffix(".wav") + hyp_path = (cfg.log_dir / str(engines.global_step) / name / eval_name / filename).with_suffix(".wav") + prom_path = (cfg.log_dir / str(engines.global_step) / name / "prom" / filename).with_suffix(".wav") + + hyp_path.parent.mkdir(parents=True, exist_ok=True) + ref_path.parent.mkdir(parents=True, exist_ok=True) + prom_path.parent.mkdir(parents=True, exist_ok=True) + + ref_audio, sr = qnt.decode_to_file(ref, ref_path) + hyp_audio, sr = qnt.decode_to_file(hyp, hyp_path) + prom_audio, sr = qnt.decode_to_file(prom, prom_path) + + # pseudo loss calculation since we don't get the logits during eval + min_length = min( ref_audio.shape[-1], hyp_audio.shape[-1] ) + ref_audio = ref_audio[..., 0:min_length] + hyp_audio = hyp_audio[..., 0:min_length] + + stats['loss'].append(mel_stft_loss(hyp_audio, ref_audio).item()) + + stats = {k: sum(v) / len(v) for k, v in stats.items()} + engines_stats.update(flatten_dict({ name: stats })) + + iteration = engines.global_step + engines_stats['it'] = iteration + engines_stats['epoch'] = iteration * cfg.hyperparameters.gradient_accumulation_steps / len(train_dl) + + _logger.info(f"Validation Metrics: {json.dumps(engines_stats)}.") + + def eval_fn(engines): + try: + run_eval(engines, "subtrain", subtrain_dl) + run_eval(engines, "val", val_dl) + except Exception as e: + print("Error occurred while performing eval:", str(e)) + print(traceback.format_exc()) + + qnt.unload_model() + do_gc() + + qnt.unload_model() + + trainer.train( + engines_loader=load_engines, + train_dl=train_dl, + train_feeder=train_feeder, + eval_fn=eval_fn, + ) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/vall_e/utils/__init__.py b/vall_e/utils/__init__.py new file mode 100755 index 0000000..96929f3 --- /dev/null +++ b/vall_e/utils/__init__.py @@ -0,0 +1,10 @@ +from .utils import ( + dispatch_attribute, + flatten_dict, + gather_attribute, + load_state_dict_non_strict, + setup_logging, + to_device, + tree_map, + do_gc, +) \ No newline at end of file diff --git a/vall_e/utils/distributed.py b/vall_e/utils/distributed.py new file mode 100755 index 0000000..496e9a7 --- /dev/null +++ b/vall_e/utils/distributed.py @@ -0,0 +1,81 @@ +""" +# https://github.com/enhuiz/pytorch-training-utilities +""" + +import os +import socket + +from functools import cache, wraps +from typing import Callable + +def get_free_port(): + sock = socket.socket() + sock.bind(("", 0)) + return sock.getsockname()[1] + + +@cache +def fix_unset_envs(): + envs = dict( + RANK="0", + WORLD_SIZE="1", + MASTER_ADDR="localhost", + MASTER_PORT=str(get_free_port()), + LOCAL_RANK="0", + ) + + for key in envs: + value = os.getenv(key) + if value is not None: + return + + for key, value in envs.items(): + os.environ[key] = value + + +def local_rank(): + return int(os.getenv("LOCAL_RANK", 0)) + + +def global_rank(): + return int(os.getenv("RANK", 0)) + + +def is_local_leader(): + return local_rank() == 0 + + +def is_global_leader(): + return global_rank() == 0 + + +def local_leader_only(fn=None, *, default=None) -> Callable: + def wrapper(fn): + @wraps(fn) + def wrapped(*args, **kwargs): + if is_local_leader(): + return fn(*args, **kwargs) + return default + + return wrapped + + if fn is None: + return wrapper + + return wrapper(fn) + + +def global_leader_only(fn: Callable | None = None, *, default=None) -> Callable: + def wrapper(fn): + @wraps(fn) + def wrapped(*args, **kwargs): + if is_global_leader(): + return fn(*args, **kwargs) + return default + + return wrapped + + if fn is None: + return wrapper + + return wrapper(fn) \ No newline at end of file diff --git a/vall_e/utils/engines.py b/vall_e/utils/engines.py new file mode 100755 index 0000000..64afaeb --- /dev/null +++ b/vall_e/utils/engines.py @@ -0,0 +1,252 @@ +""" +# https://github.com/enhuiz/pytorch-training-utilities +""" + +# to-do: replace this +# to-do: swap out deepspeed + +from .config import Config +from .distributed import fix_unset_envs +from .utils import dispatch_attribute, flatten_dict, gather_attribute, do_gc, to_device + +import logging +import time +import torch +import torch.distributed + +from deepspeed import DeepSpeedEngine +from torch import Tensor +from torch.distributed import all_reduce +from typing import Any, Protocol + +Stats = dict[str, float] + +_logger = logging.getLogger(__name__) + + +class Engine(DeepSpeedEngine): + def __init__(self, *args, **kwargs): + fix_unset_envs() + super().__init__(None, *args, **kwargs) + self._frozen_params = set() + + def freeze(self): + for p in self.module.parameters(): + if p.requires_grad: + p.requires_grad_(False) + self._frozen_params.add(p) + + def unfreeze(self): + for p in self._frozen_params: + p.requires_grad_(True) + self._frozen_params.clear() + + @property + def global_step(self): + return self.global_steps + + def gather_attribute(self, *args, **kwargs): + return gather_attribute(self.module, *args, **kwargs) + + def dispatch_attribute(self, *args, **kwargs): + return dispatch_attribute(self.module, *args, **kwargs) + + +class TrainFeeder(Protocol): + def __call__( + self, *, engines: "Engines", batch: Any, name: str + ) -> None | tuple[Tensor, Stats]: + ... + + +class Engines(dict[str, Engine]): + def setup(self, cfg: Config): + self._cfg = cfg + self._global_step = 0 + + @property + def cfg(self) -> Config: + return self._cfg + + @property + def config(self): + return self._cfg + + @property + def global_step(self): + return self._global_step + + def gather_attribute(self, *args, **kwargs): + ret = {} + for engine in self.values(): + ret |= engine.gather_attribute(*args, **kwargs) + return ret + + def dispatch_attribute(self, *args, **kwargs): + for engine in self.values(): + engine.dispatch_attribute(*args, **kwargs) + + def save_checkpoint(self, tag=None): + if not tag: + tag = self.cfg.trainer.save_tag + tag = tag.lower() + if tag[:2] == "it" or tag[:4] == "step": + tag = self.global_step + + self.cfg.ckpt_dir.mkdir(parents=True, exist_ok=True) + for name, engine in self.items(): + engine.save_checkpoint(self.cfg.ckpt_dir / name, tag=tag) + + def load_checkpoint(self, tag=None): + if not tag: + tag = self.cfg.trainer.load_tag + + for name, engine in self.items(): + load_dir = self.cfg.ckpt_dir / name + engine.load_checkpoint( + tag=tag, + load_dir=load_dir, + load_module_strict=self.cfg.trainer.strict_loading, + load_optimizer_states=self.cfg.trainer.load_states, + load_lr_scheduler_states=self.cfg.trainer.load_states, + load_module_only=False, # not self.cfg.trainer.load_states, + ) + if self.cfg.trainer.restart_step_count: + engine.global_steps = 0 + + # update the LR because for some god awful reason it gets overwritten when loading from a checkpoint but only when it's not using a scheduler + if self.cfg.hyperparameters.scheduler_type == "": + self.set_lr(self.cfg.hyperparameters.learning_rate) + + self._update_global_step() + + def set_lr(self, lr): + try: + for engine in self.values(): + if hasattr(engine.optimizer, 'param_groups'): + print(engine.optimizer.param_groups) + for param_group in engine.optimizer.param_groups: + param_group['lr'] = lr + else: + engine.optimizer.set_lr(lr) + except Exception as e: + print(str(e)) + + def _update_global_step(self): + for engine in self.values(): + self._global_step = max(self._global_step, engine.global_step) + + def eval(self): + for engine in self.values(): + engine.eval() + + def train(self): + for engine in self.values(): + engine.train() + + def step(self, feeder: TrainFeeder, batch): + total_elapsed_time = 0 + + stats: Any = dict() + + if self.cfg.trainer.gc_mode == 'step': + do_gc() + + batch = to_device(batch, torch.cuda.current_device()) + + for name, engine in self.items(): + torch.cuda.synchronize() + if self.cfg.trainer.gc_mode == 'substep': + do_gc() + + start_time = time.time() + + tries = 4 + n_ooms = torch.zeros([], device=self.cfg.device) + if self.cfg.trainer.aggressive_optimizations: + batch = to_device(batch, torch.cuda.current_device()) + # engine = engine.to(torch.cuda.current_device()) + + while tries >= 0: + try: + res = feeder( engines=self, batch=batch, name=name ) + break + except RuntimeError as e: + print("Forward", str(e)) + + if "out of memory" not in str(e): + self.save_checkpoint() + raise e + + # shrink batch size until it's happy + for k in batch: + batch[k] = batch[k][:-1] + + if tries <= 0: + # trigger OOM + n_ooms += 1 + else: + # also do GC + do_gc() + continue + + all_reduce(n_ooms) + if n_ooms.item() > 0: + self.save_checkpoint() + raise RuntimeError("Out of memory during forward pass!") + + if res is None: + continue + + loss, engine_stats = res + + n_ooms = torch.zeros([], device=self.cfg.device) + + if self.cfg.trainer.aggressive_optimizations: + batch = to_device(batch, 'cpu') + + try: + engine.backward(loss) + except RuntimeError as e: + print("Backwards:", str(e)) + + if "out of memory" not in str(e): + self.save_checkpoint() + raise e + + n_ooms += 1 + + all_reduce(n_ooms) + if n_ooms.item() > 0: + self.save_checkpoint() + raise RuntimeError("Out of memory during backwards pass!") + + engine.step() + torch.cuda.synchronize() + elapsed_time = time.time() - start_time + total_elapsed_time += elapsed_time + + stats.update( + flatten_dict( + { + name.split("-")[0]: dict( + loss=loss.item(), + lr=engine.get_lr()[0], + grad_norm=engine.get_global_grad_norm(), # This norm is delayed but global and avoids extra computation + elapsed_time=elapsed_time, + engine_step=engine.global_step, + **engine_stats, + ) + } + ), + ) + del loss + # engine = engine.to('cpu') + + self._update_global_step() + stats["batch_size"] = len(batch["text"]) + stats["elapsed_time"] = total_elapsed_time + stats["wall_time"] = time.time() + stats["global_step"] = self.global_step + + return stats diff --git a/vall_e/utils/sampler.py b/vall_e/utils/sampler.py new file mode 100755 index 0000000..5db9606 --- /dev/null +++ b/vall_e/utils/sampler.py @@ -0,0 +1,48 @@ +""" +A sampler that balances data by key_fns. + +MIT License + +Copyright (c) 2023 Zhe Niu + +niuzhe.nz@outlook.com +""" + +import random + + +class Sampler: + def __init__(self, l, key_fns): + self.tree = self._build(l, key_fns) + + def _build(self, l, key_fns) -> dict[dict, list]: + if not key_fns: + return l + + tree = {} + + key_fn, *key_fns = key_fns + + for x in l: + k = key_fn(x) + + if k in tree: + tree[k].append(x) + else: + tree[k] = [x] + + for k in tree: + tree[k] = self._build(tree[k], key_fns) + + return tree + + def _sample(self, tree: dict | list): + if isinstance(tree, list): + ret = random.choice(tree) + else: + key = random.choice([*tree.keys()]) + ret = self._sample(tree[key]) + return ret + + def sample(self): + return self._sample(self.tree) \ No newline at end of file diff --git a/vall_e/utils/trainer.py b/vall_e/utils/trainer.py new file mode 100755 index 0000000..8e9f86c --- /dev/null +++ b/vall_e/utils/trainer.py @@ -0,0 +1,253 @@ +""" +# https://github.com/enhuiz/pytorch-training-utilities +""" + +# todo: replace this + +import logging +import time +from typing import Any, Protocol + +import torch +import torch.distributed +from deepspeed import DeepSpeedEngine +from torch import Tensor +from torch.distributed import all_reduce + +from .config import Config +from .distributed import fix_unset_envs +from .utils import dispatch_attribute, flatten_dict, gather_attribute, do_gc, to_device + +Stats = dict[str, float] + +_logger = logging.getLogger(__name__) + + +class Engine(DeepSpeedEngine): + def __init__(self, *args, **kwargs): + fix_unset_envs() + super().__init__(None, *args, **kwargs) + self._frozen_params = set() + + def freeze(self): + for p in self.module.parameters(): + if p.requires_grad: + p.requires_grad_(False) + self._frozen_params.add(p) + + def unfreeze(self): + for p in self._frozen_params: + p.requires_grad_(True) + self._frozen_params.clear() + + @property + def global_step(self): + return self.global_steps + + def gather_attribute(self, *args, **kwargs): + return gather_attribute(self.module, *args, **kwargs) + + def dispatch_attribute(self, *args, **kwargs): + return dispatch_attribute(self.module, *args, **kwargs) + + +class TrainFeeder(Protocol): + def __call__( + self, *, engines: "Engines", batch: Any, name: str + ) -> None | tuple[Tensor, Stats]: + ... + + +class Engines(dict[str, Engine]): + def setup(self, cfg: Config): + self._cfg = cfg + self._global_step = 0 + + @property + def cfg(self) -> Config: + return self._cfg + + @property + def config(self): + return self._cfg + + @property + def global_step(self): + return self._global_step + + def gather_attribute(self, *args, **kwargs): + ret = {} + for engine in self.values(): + ret |= engine.gather_attribute(*args, **kwargs) + return ret + + def dispatch_attribute(self, *args, **kwargs): + for engine in self.values(): + engine.dispatch_attribute(*args, **kwargs) + + def save_checkpoint(self, tag=None): + if not tag: + tag = self.cfg.trainer.save_tag + tag = tag.lower() + if tag[:2] == "it" or tag[:4] == "step": + tag = self.global_step + + self.cfg.ckpt_dir.mkdir(parents=True, exist_ok=True) + for name, engine in self.items(): + engine.save_checkpoint(self.cfg.ckpt_dir / name, tag=tag) + + def load_checkpoint(self, tag=None): + if not tag: + tag = self.cfg.trainer.load_tag + + for name, engine in self.items(): + load_dir = self.cfg.ckpt_dir / name + engine.load_checkpoint( + tag=tag, + load_dir=load_dir, + load_module_strict=self.cfg.trainer.strict_loading, + load_optimizer_states=self.cfg.trainer.load_states, + load_lr_scheduler_states=self.cfg.trainer.load_states, + load_module_only=False, # not self.cfg.trainer.load_states, + ) + if self.cfg.trainer.restart_step_count: + engine.global_steps = 0 + + # update the LR because for some god awful reason it gets overwritten when loading from a checkpoint but only when it's not using a scheduler + if self.cfg.hyperparameters.scheduler_type == "": + self.set_lr(self.cfg.hyperparameters.learning_rate) + + self._update_global_step() + + def set_lr(self, lr): + try: + for engine in self.values(): + if hasattr(engine.optimizer, 'param_groups'): + print(engine.optimizer.param_groups) + for param_group in engine.optimizer.param_groups: + param_group['lr'] = lr + else: + engine.optimizer.set_lr(lr) + except Exception as e: + print(str(e)) + + def _update_global_step(self): + for engine in self.values(): + self._global_step = max(self._global_step, engine.global_step) + + def eval(self): + for engine in self.values(): + engine.eval() + + def train(self): + for engine in self.values(): + engine.train() + + def step(self, feeder: TrainFeeder, batch): + total_elapsed_time = 0 + + stats: Any = dict() + + if self.cfg.trainer.gc_mode == 'step': + do_gc() + + batch = to_device(batch, torch.cuda.current_device()) + + for name, engine in self.items(): + torch.cuda.synchronize() + if self.cfg.trainer.gc_mode == 'substep': + do_gc() + + start_time = time.time() + + tries = 4 + n_ooms = torch.zeros([], device=self.cfg.device) + if self.cfg.trainer.aggressive_optimizations: + batch = to_device(batch, torch.cuda.current_device()) + # engine = engine.to(torch.cuda.current_device()) + + while tries >= 0: + try: + maybe_loss_and_engine_stats = feeder( engines=self, batch=batch, name=name ) + break + except RuntimeError as e: + print("Forward", str(e)) + + if "out of memory" not in str(e): + self.save_checkpoint() + raise e + + # shrink batch size until it's happy + for k in batch: + batch[k] = batch[k][:-1] + + if tries <= 0: + # trigger OOM + n_ooms += 1 + else: + # also do GC + do_gc() + continue + + all_reduce(n_ooms) + if n_ooms.item() > 0: + self.save_checkpoint() + raise RuntimeError("Out of memory during forward pass!") + + # Here we allow skip optimizers. It's useful when, for example, + # skipping discriminators in the begining of GAN training. + if maybe_loss_and_engine_stats is None: + continue + + loss, engine_stats = maybe_loss_and_engine_stats + + n_ooms = torch.zeros([], device=self.cfg.device) + + if self.cfg.trainer.aggressive_optimizations: + batch = to_device(batch, 'cpu') + + try: + engine.backward(loss) + except RuntimeError as e: + print("Backwards:", str(e)) + + if "out of memory" not in str(e): + self.save_checkpoint() + raise e + + n_ooms += 1 + + all_reduce(n_ooms) + if n_ooms.item() > 0: + self.save_checkpoint() + raise RuntimeError("Out of memory during backwards pass!") + + engine.step() + torch.cuda.synchronize() + elapsed_time = time.time() - start_time + total_elapsed_time += elapsed_time + + stats.update( + flatten_dict( + { + name.split("-")[0]: dict( + loss=loss.item(), + lr=engine.get_lr()[0], + grad_norm=engine.get_global_grad_norm(), # This norm is delayed but global and avoids extra computation + elapsed_time=elapsed_time, + engine_step=engine.global_step, + **engine_stats, + ) + } + ), + ) + del loss + # engine = engine.to('cpu') + + self._update_global_step() + stats["batch_size"] = len(batch["text"]) + stats["elapsed_time"] = total_elapsed_time + stats["wall_time"] = time.time() + stats["global_step"] = self.global_step + + return stats diff --git a/vall_e/utils/utils.py b/vall_e/utils/utils.py new file mode 100755 index 0000000..30d108a --- /dev/null +++ b/vall_e/utils/utils.py @@ -0,0 +1,159 @@ +""" +# https://github.com/enhuiz/pytorch-training-utilities +""" + +from .distributed import global_rank, local_rank, global_leader_only + +import gc +import logging +import pandas as pd +import re +import torch + +from coloredlogs import ColoredFormatter +from logging import StreamHandler +from pathlib import Path +from torch import Tensor, nn +from tqdm.auto import tqdm +from typing import Callable, TypeVar, overload + +T = TypeVar("T") + +def do_gc(): + gc.collect() + torch.cuda.empty_cache() + +def flatten_dict(d): + records = pd.json_normalize(d).to_dict(orient="records") + return records[0] if records else {} + + +def _get_named_modules(module, attrname): + for name, module in module.named_modules(): + if hasattr(module, attrname): + yield name, module + + +def gather_attribute(module, attrname, delete=True, prefix=True): + ret = {} + for name, module in _get_named_modules(module, attrname): + ret[name] = getattr(module, attrname) + if delete: + try: + delattr(module, attrname) + except Exception as e: + raise RuntimeError(f"{name} {module} {attrname}") from e + if prefix: + ret = {attrname: ret} + ret = flatten_dict(ret) + # remove consecutive dots + ret = {re.sub(r"\.+", ".", k): v for k, v in ret.items()} + return ret + + +def dispatch_attribute( + module, + attrname, + value, + filter_fn: Callable[[nn.Module], bool] | None = None, +): + for _, module in _get_named_modules(module, attrname): + if filter_fn is None or filter_fn(module): + setattr(module, attrname, value) + + +def load_state_dict_non_strict(model, state_dict, logger=None): + model_state_dict = model.state_dict() + provided = set(state_dict) + required = set(model_state_dict) + agreed = provided & required + for k in list(agreed): + if model_state_dict[k].shape != state_dict[k].shape: + agreed.remove(k) + provided.remove(k) + state_dict = {k: state_dict[k] for k in agreed} + if logger is not None and (diff := provided - required): + logger.warning( + f"Extra parameters are found. " + f"Provided but not required parameters: \n{diff}." + ) + if logger is not None and (diff := required - provided): + logger.warning( + f"Some parameters are missing. " + f"Required but not provided parameters: \n{diff}." + ) + model.load_state_dict(state_dict, strict=False) + +class TqdmLoggingHandler(logging.Handler): + def __init__(self, level=logging.NOTSET): + super().__init__(level) + + def emit(self, record): + try: + msg = self.format(record) + tqdm.write(msg) + self.flush() + except Exception: + self.handleError(record) + +@global_leader_only +def setup_logging(log_dir: str | Path | None = "log", log_level="info"): + handlers = [] + + #stdout_handler = StreamHandler() + stdout_handler = TqdmLoggingHandler() + stdout_handler.setLevel(logging.INFO) + formatter = ColoredFormatter( + f"%(asctime)s - %(name)s - %(levelname)s - GR={global_rank()};LR={local_rank()} - \n%(message)s" + ) + stdout_handler.setFormatter(formatter) + handlers.append(stdout_handler) + + if log_dir is not None: + filename = Path(log_dir) / f"log.txt" + filename.parent.mkdir(parents=True, exist_ok=True) + file_handler = logging.FileHandler(filename, mode="a") + file_handler.setLevel(logging.DEBUG) + handlers.append(file_handler) + + logging.basicConfig( + level=logging.getLevelName(log_level.upper()), + format="%(asctime)s - %(name)s - %(levelname)s - \n%(message)s", + handlers=handlers, + ) + + +@overload +def tree_map(fn: Callable, x: list[T]) -> list[T]: + ... + + +@overload +def tree_map(fn: Callable, x: tuple[T]) -> tuple[T]: + ... + + +@overload +def tree_map(fn: Callable, x: dict[str, T]) -> dict[str, T]: + ... + + +@overload +def tree_map(fn: Callable, x: T) -> T: + ... + + +def tree_map(fn: Callable, x): + if isinstance(x, list): + x = [tree_map(fn, xi) for xi in x] + elif isinstance(x, tuple): + x = (tree_map(fn, xi) for xi in x) + elif isinstance(x, dict): + x = {k: tree_map(fn, v) for k, v in x.items()} + elif isinstance(x, Tensor): + x = fn(x) + return x + + +def to_device(x: T, device) -> T: + return tree_map(lambda t: t.to(device), x) diff --git a/vall_e/utils/wrapper.py b/vall_e/utils/wrapper.py new file mode 100755 index 0000000..6fe7687 --- /dev/null +++ b/vall_e/utils/wrapper.py @@ -0,0 +1,60 @@ +# to-do: re-introduce bitsandbytes support + +from contextlib import contextmanager + +import torch +import torch.nn.functional as F + +Embedding = torch.nn.Embedding +Linear = torch.nn.Linear + +""" +if cfg.bitsandbytes: + import bitsandbytes as bnb + + if cfg.bitsandbytes_linear: + Linear = bnb.nn.Linear8bitLt + + if cfg.bitsandbytes_embedding: + Embedding = bnb.nn.StableEmbedding + Embedding.forward = lambda self, input: ( self.norm(F.embedding( + input, + self.weight, + self.padding_idx, + self.max_norm, + self.norm_type, + self.scale_grad_by_freq, + self.sparse, + )).to(self.weight.dtype) ) +""" + +Adam = torch.optim.Adam +AdamW = torch.optim.AdamW + +""" +if cfg.bitsandbytes: + import bitsandbytes as bnb + + Adam = bnb.optim.Adam + AdamW = bnb.optim.AdamW +""" + +# handles temporarily upcasting 'index tensors' so torch will stop bitching +def autocast_forward( func ): + def wrapper( self, input, *args, **kwargs ): + if input.dtype == torch.int16 or input.dtype == torch.int8 or input.dtype == torch.uint8: + input = input.to(torch.int32) + + return func( self, input, *args, **kwargs ) + return wrapper +Embedding.forward = autocast_forward(Embedding.forward) + +# handles generically converting to a specific tensor type and converting back (implemented solely for bfloat16) +@contextmanager +def autocast(input, from_dtype, to_dtype): + if input.dtype == from_dtype: + input = input.to(to_dtype) + yield input + input = input.to(from_dtype) + else: + yield input \ No newline at end of file diff --git a/vall_e/vall_e/__init__.py b/vall_e/vall_e/__init__.py new file mode 100755 index 0000000..dc33d91 --- /dev/null +++ b/vall_e/vall_e/__init__.py @@ -0,0 +1,24 @@ +from .ar import AR +from .nar import NAR + +def get_model(model): + if model.name == "ar": + Model = AR + elif model.name == "nar": + Model = NAR + else: + raise f"invalid model name: {model.name}" + name = model.name + model = Model( + n_tokens=model.tokens, + d_model=model.dim, + n_heads=model.heads, + n_layers=model.layers, + ) + + print(f"{name} parameter count: {sum(p.numel() for p in model.parameters() if p.requires_grad)}") + + return model + +def get_models(models): + return { model.full_name: get_model(model) for model in models } diff --git a/vall_e/vall_e/adaln.py b/vall_e/vall_e/adaln.py new file mode 100755 index 0000000..8427197 --- /dev/null +++ b/vall_e/vall_e/adaln.py @@ -0,0 +1,30 @@ +""" +# https://github.com/enhuiz/vall-e/ +""" + +import torch +import torch.nn as nn +import torch.nn.functional as F + +class AdaLN(nn.Module): + def __init__(self, d_model, n_levels, eps=1e-5, k=0.1, c=2): + super().__init__() + self.eps = eps + self.emb = nn.Embedding(n_levels, d_model * 2) + self.k = k + self.c = c + nn.init.zeros_(self.emb.weight) + + def forward(self, x, l): + h = F.layer_norm(x, x.shape[-1:], eps=self.eps) + + # The initial implementation (https://github.com/enhuiz/vall-e/blob/fbf023448c08e55c0422eefed7fc234cf8b76680/vall_e/vall_e/base.py#L135) + # performed worse than vanilla LayerNorm. + # The authors mentioned another AdaNorm paper (https://openreview.net/pdf?id=HyxndNrxLB) as they introduce AdaLN. + # Did they use AdaNorm inside AdaLN? (as follows) + h = self.c * (1 - (self.k * h).detach()) * h + + logγ, β = self.emb(l).unsqueeze(1).chunk(2, dim=-1) + y = logγ.exp() * h + β + + return y \ No newline at end of file diff --git a/vall_e/vall_e/ar.py b/vall_e/vall_e/ar.py new file mode 100755 index 0000000..4213d0b --- /dev/null +++ b/vall_e/vall_e/ar.py @@ -0,0 +1,221 @@ +from ..config import cfg +from .base import Base, list_to_tensor, Categorical + +import torch + +from einops import rearrange +from torch import Tensor +from tqdm import trange + +class AR(Base): + @property + def n_resp_levels(self) -> int: + return cfg.models.ar.resp_levels + + @property + def causal(self): + return True + + @property + def use_stop_token(self): + return True + + @property + def norm_type(self): + return "ln" + + @property + def arch_type(self) -> bool: + return cfg.models.ar.arch_type + + @property + def n_prom_levels(self) -> int: + return cfg.models.prom_levels + + @property + def resp_loss_only(self): + return False + + def _prune(self, l: Tensor): + indices = (l == self.stop_token).nonzero() + if len(indices) == 0: + return l + return l[: indices.min().item()] + + @staticmethod + def _unsqueeze_list(x_list, axis=-1): + return [x.unsqueeze(dim=axis) for x in x_list] + + def forward( + self, + text_list: list[Tensor], + proms_list: list[Tensor], + resp_list: list[Tensor] | None = None, + max_steps: int = 1000, + sampling_temperature: float = 1.0, + + naive: bool = True, + ): + if resp_list is not None: + return super().forward( + text_list, + proms_list, + self._unsqueeze_list(resp_list), + resp_list, + quant_levels=None, + shift_targ_list=True, + return_all_resp=False, + ) + else: + return self._generate( + text_list, + proms_list, + max_steps, + sampling_temperature, + + naive=naive, + ) + + def _generate( + self, + text_list: list[Tensor], + proms_list: list[Tensor], + max_steps: int, + sampling_temperature: float, + naive: bool = True, + ): + device = text_list[0].device + resp_list: list[Tensor] = [ + torch.zeros(0, device=device).to(torch.int16) for _ in text_list + ] + stopped = torch.zeros(len(text_list), device=device).bool() + + if self.arch_type == "transformer": + naive = True + + chunk_size = 1 # don't really know what to do about this desu + + state = None + start = 0 + + # prefill + if self.arch_type == "retnet/local": + # pre-process + state = [ + [ + torch.zeros(self.retnet.hidden_dim // self.retnet.heads, self.retnet.v_dim // self.retnet.heads, device=device).unsqueeze(0).repeat(len(text_list), 1, 1) + for _ in range(self.retnet.heads) + ] for _ in range(self.retnet.layers) + ] + resps_list = self._unsqueeze_list(resp_list) + x_list = self._samplewise_merge_tensors( + self.text_emb(text_list), + self.proms_emb(proms_list), + self.resps_emb(resps_list), + sep=self.sep, + ) + + x, m = list_to_tensor(x_list) + + start = x.shape[1] + + for i in trange(start-1): + _, state = self.retnet.forward_recurrent( x[:, i:i+1, :], state, i+1 ) + + for n in trange(max_steps // chunk_size): + # get next in sequence + + r, state = super().forward( + text_list, + proms_list, + self._unsqueeze_list(resp_list), + sampling_temperature=sampling_temperature, + state=state, + ) + + # append outputted token + for i, ri in enumerate(r): + resp_list[i] = torch.cat([resp_list[i], ri[None]]) + + # stop token found + stopped |= r == self.stop_token + if stopped.all().item(): + break + + pruned = [self._prune(r) for r in resp_list] + return pruned + + +def example_usage(): + from functools import partial + + from einops import repeat + + from ..emb.qnt import decode_to_file + from ..utils import gather_attribute + + device = "cpu" + + symmap = {'': 1, '': 2, ' ': 3, '.': 4, ',': 5, '!': 6, '?': 7, 'p': 7, 'iː': 8, 'ɚ': 9, 'ˌ': 10, 'dˌ': 11, 'mˌ': 12, 'd': 13, 'ɹ': 14, 'tˈ': 15, 'pˌ': 16, 'uː': 17, 'l': 18, 'æ': 19, 'ɛ': 20, 'ɪ': 21, 'j': 22, 'ʊ': 23, 't': 24, 'n': 25, 'v': 26, 'a': 27, 'o': 28, 'ŋ': 29, 'w': 30, 'ʌ': 31, 'hˈ': 32, 'ɡˈ': 33, 'ə': 34, 'θˈ': 35, 'dˈ': 36, 'wˌ': 37, 'h': 38, 'z': 39, 'k': 40, 'ð': 41, 'ɡˌ': 42, 'ˈ': 43, 'fˈ': 44, 'i': 45, 's': 46, 'ʃ': 47, 'wˈ': 48, 'ðˈ': 49, 'ɹˈ': 50, 'lˈ': 51, 'ɡ': 52, 'oː': 53, 'mˈ': 54, 'e': 55, 'ɑː': 56, 'nˈ': 57, 'm': 58, 'θˌ': 59, 'sˈ': 60, 'f': 61, 'ɔː': 62, 'hˌ': 63, 'b': 64, 'jˈ': 65, 'ɐ': 66, 'ʒˈ': 67, 'θ': 68, 'bˈ': 69, 'ɾ': 70, 'ɜː': 71, 'ʌˈ': 72, 'ʃˌ': 73, 'bˌ': 74, 'kˈ': 75, 'ɔ': 76, 'zˈ': 77, 'ᵻ': 78, 'kˌ': 79, 'vˈ': 80, 'fˌ': 81, 'ʒ': 82, 'ʃˈ': 83, 'ɹˌ': 84, 'tˌ': 85, 'pˈ': 86, 'ðˌ': 87, 'sˌ': 88, 'nˌ': 89, 'lˌ': 90, '̩': 91, 'ʔ': 92, 'vˌ': 93, 'ɪˈ': 94, '"': 95, 'ɪˌ': 96, 'ʒˌ': 97, 'uːˌ': 98, 'ʊˈ': 99, 'jˌ': 100, 'uːˈ': 101, 'iːˈ': 102, 'zˌ': 103, '.ˈ': 104, '…': 105, 'ŋˌ': 106, 'ɐˌ': 107, '—ˈ': 108, 'iˌ': 109, 'iːˌ': 110, 'ɛː': 111, ')': 112, ')ˈ': 113, '(': 114, 'u': 115, '-': 116, 'ɖˈ': 117, 'iˈ': 118, 'ʰˈ': 119, 'ɟˈ': 120, '̃': 121, 'eː': 122, 'ɾˈ': 123, 'r': 124, 'ʰ': 125, '-ˌ': 126, 'ɫ': 127, 'q': 128, '—': 129, 'ʊˌ': 130, 'aː': 131, 'cˈ': 132, '…ˈ': 133, 'c': 134, 'ɳ': 135, 'ɐˈ': 136, 'x': 137, 'ʔˌ': 138, '.ˌ': 139, 'ɑ': 140, '?ˈ': 141, '̩ˈ': 142, '"ˈ': 143, ',ˈ': 144, 'ŋˈ': 145, 'əˌ': 146, '!ˈ': 147, '"ˌ': 148, '?ˌ': 149, ',ˌ': 150, '—ˌ': 151, '̩ˌ': 152, 'əˈ': 153, '!ˌ': 154, 'ɬ': 155, 'ʲ': 156, '¡': 157, 'ɯ': 158, 'qˌ': 159, 'ʑ': 160, 'ʑˈ': 161, '¿': 162, 'ɑːˈ': 163, 'iːː': 164, 'ɛˈ': 165, '¡ˈ': 166, 'æˈ': 167, 'ç': 168, 'ɾˌ': 169, 'ᵻˈ': 170, 'xˈ': 171, 'ɔːˈ': 172, ';': 173, 'ɬˌ': 174, ':': 175, 'ʔˈ': 176, 'ɑːˌ': 177, 'ɬˈ': 178} + def tokenize(content, lang_marker="en"): + split = content.split(" ") + phones = [f""] + [ " " if not p else p for p in split ] + [f""] + return torch.tensor([*map(symmap.get, phones)]).to() + + qnt = torch.load("data/qnt.pt")[0, 0].to(device) + kwargs = { + 'n_tokens': 1024, + 'd_model': 1024, + 'n_heads': 16, + 'n_layers': 12, + } + + model = AR(**kwargs).to(device) + + x8 = partial(repeat, pattern="t -> t l", l=2) + text_list = [ + #torch.tensor([1, 2, 3], device=device), + tokenize("ˈ a ɪ w ɪ l nˌ ɑː t ˈ æ s k ɐ sˈ ɛ k ə n d tˈ a ɪ m").to(device), + ] + proms_list = [ + x8(torch.tensor([1, 2, 3], device=device)), + #qnt.to(device), + ] + resp_list = [ + qnt.to(device), + ] + + text_list = text_list[:1] + proms_list = proms_list[:1] + resp_list = resp_list[:1] + + model.eval() + out = model(text_list, proms_list, max_steps=75)[0] + print("qnt:", qnt.shape, qnt) + print("out:", out.shape, out) + wav, sr = decode_to_file(out, "data/test/test.ar.init.wav", device=device) + + optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4) + + model.train() + for i in trange(60): + optimizer.zero_grad() + _ = model(text_list, proms_list, resp_list) + + losses = gather_attribute(model, "loss") + loss = sum(losses.values()) + loss.backward() + optimizer.step() + + if i % 20 == 0: + print(f"iter={i}, {losses}.") + model.eval() + out = model(text_list, proms_list, max_steps=400) + print("qnt:", qnt.shape, qnt) + for i, o in enumerate(out): + print("out:", i, o.shape, o) + wav, sr = decode_to_file(o, f"data/test/test.ar.{i}.wav", device=device) + + +if __name__ == "__main__": + example_usage() diff --git a/vall_e/vall_e/base.py b/vall_e/vall_e/base.py new file mode 100755 index 0000000..5973cbb --- /dev/null +++ b/vall_e/vall_e/base.py @@ -0,0 +1,512 @@ +import math +import torch +import torch.nn.functional as F +import traceback + +from typing import Literal, overload +from functools import partial +from einops import rearrange + +from torch import Tensor, einsum, nn +from torch.distributions import Categorical +from torch.nn.utils.rnn import pad_sequence +from torch.utils.checkpoint import checkpoint +from torchmetrics.classification import BinaryAccuracy, MulticlassAccuracy, MulticlassPrecision + +from .retnet import RetNetDecoder, RetNetConfig +from .transformer import SinusoidalEmbedding, Block as TransformerBlock + +from ..utils import wrapper as ml + +def _create_mask(l, device): + """1 is valid region and 0 is invalid.""" + seq = torch.arange(max(l), device=device).unsqueeze(0) # (1 t) + stop = torch.tensor(l, device=device).unsqueeze(1) # (b 1) + return (seq < stop).float() # (b t) + +def _join(x: tuple[Tensor], sep: Tensor): + """ + Args: + x: (k t d) + sep: (d) + """ + ret = x[0] + for i in range(1, len(x)): + ret = torch.cat((ret, sep[None], x[i]), dim=0) + return ret + +def list_to_tensor(x_list: list[Tensor], pattern="t b c -> b t c"): + """ + Args: + x_list: [(t d)] + Returns: + x: (? ? ?) + m: (? ? ?), same as x + """ + l = list(map(len, x_list)) + x = rearrange(pad_sequence(x_list), pattern) + m = _create_mask(l, x_list[0].device) + m = m.t().unsqueeze(-1) # (t b 1) + m = rearrange(m, pattern) + m = m.to(x) + return x, m + +class Embedding(nn.Embedding): + def forward(self, x_list: list[Tensor]) -> list[Tensor]: + if len(x_list) == 0: + return [] + + return super().forward(torch.cat(x_list)).split([*map(len, x_list)]) + + +class MultiEmbedding(nn.Embedding): + """ + This embedding sums embeddings on different levels. + """ + + def __init__(self, max_n_levels, n_tokens, token_dim): + super().__init__(max_n_levels, token_dim) + self.max_n_levels = max_n_levels + self.n_tokens = n_tokens + self.weight = nn.Parameter(torch.randn(max_n_levels, n_tokens, token_dim)) + + def forward(self, x_list: list[Tensor]) -> list[Tensor]: + if len(x_list) == 0: + return [] + + w = self.weight + + padded_x_list = [] + + for xi in x_list: + xi = F.one_hot(xi.to(torch.int64), num_classes=self.n_tokens) # t l' k + xi = F.pad(xi, (0, 0, 0, w.shape[0] - xi.shape[1])) # t l k + padded_x_list.append(xi.to(w)) + + x = torch.cat(padded_x_list) # n l k + x = einsum("l k d, n l k -> n d", w, x) + + x_list = x.split([*map(len, x_list)]) + + return x_list + + +class Base(nn.Module): + @property + def causal(self) -> bool: + raise NotImplementedError + + @property + def n_resp_levels(self) -> int: + raise NotImplementedError + + @property + def use_stop_token(self) -> bool: + raise NotImplementedError + + @property + def arch_type(self) -> str: + raise NotImplementedError + + @property + def norm_type(self): + raise NotImplementedError + + @property + def n_prom_levels(self) -> int: + raise NotImplementedError + + @property + def resp_loss_only(self): + raise NotImplementedError + + def __init__( + self, + n_tokens: int, + d_model: int = 512, + n_heads: int = 8, + n_layers: int = 12, + p_dropout: float = 0.1, + ): + super().__init__() + self.n_tokens = n_tokens + self.d_model = d_model + self.n_heads = n_heads + self.n_layers = n_layers + + causal = self.causal + + # +1 to include the stop token + n_stop_tokens = 1 if self.use_stop_token else 0 + n_resp_tokens = n_tokens + n_stop_tokens + + self.text_emb = Embedding(n_tokens, d_model) + + # Here I simply use all prom levels + self.proms_emb = MultiEmbedding(self.n_prom_levels, n_tokens, d_model) + self.resps_emb = MultiEmbedding(self.n_resp_levels, n_resp_tokens, d_model) + + self.sep = nn.Parameter(torch.randn(d_model)) + + if self.arch_type == "transformer": + self.sin_emb = SinusoidalEmbedding(d_model) + self.blocks = nn.ModuleList([TransformerBlock( + d_model=d_model, + n_heads=n_heads, + p_dropout=p_dropout, + causal=causal, + norm_type=self.norm_type, + n_levels=self.n_resp_levels, + #tention="retention" if self.use_retnet else "attention" + ) for _ in range(n_layers) ]) + + elif self.arch_type == "retnet": + self.retnet_config = RetNetConfig( + vocab_size=n_tokens, + decoder_embed_dim=d_model, + decoder_retention_heads=n_heads, + decoder_ffn_embed_dim=d_model * 4, + decoder_layers=n_layers, + dropout=p_dropout, + checkpoint_activations=True, + + chunkwise_recurrent=self.causal, + recurrent_chunkwise_size=128, + no_output_layer=True, + decoder_normalize_before=True, + ) + self.retnet = RetNetDecoder( + self.retnet_config + ) + elif self.arch_type == "retnet/local": + self.retnet = RetNet( + layers=n_layers, + hidden_dim=d_model, + ffn_size=d_model * 4, + heads=n_heads, + dropout=p_dropout, + norm_type=self.norm_type, + n_levels=self.n_resp_levels, + double_v_dim=True + ) + self.classifier = nn.Linear(d_model, n_resp_tokens) + + self.accuracy_metric = MulticlassAccuracy( + n_resp_tokens, + top_k=10, + average="micro", + multidim_average="global", + ignore_index=self.ignore_index, + ) + + self.precision_metric = MulticlassPrecision( + n_resp_tokens, + top_k=10, + average="micro", + multidim_average="global", + ignore_index=self.ignore_index, + ) + + @property + def stop_token(self): + if not self.use_stop_token: + raise ValueError("Not using stop token!") + return self.n_tokens + + @property + def ignore_index(self): + return -100 + + @staticmethod + def _samplewise_merge_tensors(*l, sep: Tensor | None): + if sep is None: + cat = torch.cat + else: + cat = partial(_join, sep=sep) + return [*map(cat, zip(*l))] + + @overload + def forward( + self, + text_list: list[Tensor], + proms_list: list[Tensor], + resps_list: list[Tensor], + targ_list: list[Tensor] | None = None, + quant_levels: Tensor | None = None, + shift_targ_list: bool = False, + return_all: Literal[False] = False, + return_all_resp: Literal[False] = False, + sampling_temperature: float = 1.0, + ) -> Tensor: + ... + + @overload + def forward( + self, + text_list: list[Tensor], + proms_list: list[Tensor], + resps_list: list[Tensor], + targ_list: list[Tensor] | None = None, + quant_levels: Tensor | None = None, + shift_targ_list: bool = False, + return_all: Literal[True] = True, + return_all_resp: Literal[True] = True, + sampling_temperature: float = 1.0, + ) -> list[Tensor]: + ... + + def forward( + self, + text_list: list[Tensor], + proms_list: list[Tensor], + resps_list: list[Tensor], + targ_list: list[Tensor] | None = None, + quant_levels: Tensor | None = None, + shift_targ_list: bool = False, + return_all: bool = False, + return_all_resp: bool = False, + sampling_temperature: float = 1.0, + + state: list | None = None, + ): + """ + Args: + text_list: [t] * b + proms_list: [t' l] * b, l quantization levels. + resps_list: [t'' l] * b, l quantization levels. + targ_list: [t''] * b, one quantization level only, when given, loss will be computed + quant_levels: specify which quant_levels to feed forward, used in NAR mode. + shift_targ_list: whether to shift target list when computing loss. True if AR. + return_all_resp: True if NAR. + sampling_temperature: a lower temperature makes the result more robust but less diverse. + Returns: + y: sampled tokens + """ + + batch_size = len(text_list) + x_list = self._samplewise_merge_tensors( + self.text_emb(text_list), + self.proms_emb(proms_list), + self.resps_emb(resps_list), + sep=self.sep, + ) + + x, m = list_to_tensor(x_list) + + if self.arch_type == "transformer": + x = self.sin_emb.add_pe(x) + for block in self.blocks: + x = block(x, m, quant_levels) + elif self.arch_type == "retnet": + x, _ = self.retnet(x, incremental_state=state, token_embeddings=x, features_only=True) + state = self.retnet.get_incremental_state( state, 'prev_state' ) + elif self.arch_type == "retnet/local": + # recurrent inferencing + if self.causal and state is not None: + last = x.shape[1] + x, state = self.retnet.forward_recurrent( + x[:, last-1:last, :], # nasty way to grab the last embedding to forward + state, + last + ) + else: + x = self.retnet( x, quant_levels ) + + x = self.classifier(x) * m + + # Remove padding + h_list = [hi[:li] for hi, li in zip(x, map(len, x_list))] + + + # compute loss if the target is given + if targ_list is not None: + if any([l == 0 for l in map(len, targ_list)]): + raise ValueError("Cannot compute loss given empty targ_list.") + + ignore_sep = torch.tensor(self.ignore_index, device=x.device) + + # ignore the prompt when computing loss + prom_list = [ + torch.full_like(t[..., 0], self.ignore_index) for t in proms_list + ] + # remake input with ignored input prompt + text_prom_list = self._samplewise_merge_tensors( + text_list, prom_list, sep=ignore_sep + ) + + for i in range(len(text_prom_list)): + # ignore computing loss against text/prompt portion of input + # the NAR doesn't need to compute the loss for it + if self.resp_loss_only: + text_prom_list[i][:] = self.ignore_index + # roll the text/prompt for loss computing + # the AR benefits from this + else: + text_prom_list[i] = text_prom_list[i].roll(-1, dims=0) + text_prom_list[i][-1] = self.ignore_index + + # necessary to roll the target if recurrently/causally/autoregressively generating, or it won't be able to work + if shift_targ_list: + targ_list = [*targ_list] + for i in range(len(targ_list)): + targ_list[i] = targ_list[i].roll(-1, dims=0) + targ_list[i][-1] = self.stop_token + + # generate the sequence + y_list = self._samplewise_merge_tensors( text_prom_list, targ_list, sep=ignore_sep ) + + self.loss = dict( + nll=F.cross_entropy( + torch.cat(h_list), # input / predicted logits + torch.cat(y_list), # target / ground truth + ignore_index=self.ignore_index, + ) + ) + self.loss['acc'] = self.accuracy_metric( torch.cat(h_list), torch.cat(y_list) ) + self.loss['precision'] = self.precision_metric( torch.cat(h_list), torch.cat(y_list) ) + + del targ_list + del prom_list + del text_prom_list + del y_list + + # return the entire generated token string + if return_all: + logits = [hi[:] for hi, li in zip(h_list, map(len, resps_list))] + ret = [Categorical(logits=hi / sampling_temperature).sample() for hi in logits] + # return the entire generated response + elif return_all_resp: + logits = [hi[-li:] for hi, li in zip(h_list, map(len, resps_list))] + ret = [ Categorical(logits=hi / sampling_temperature).sample() for hi in logits ] + # return just the last code + else: + logits = torch.stack([hi[-1] for hi in h_list]) + ret = Categorical(logits=logits / sampling_temperature).sample() + + del x_list + del h_list + + return ret, state + +def example_usage(): + from functools import partial + + from einops import repeat + from tqdm import trange + + from ..utils import gather_attribute + from ..emb.qnt import decode_to_file + from .ar import AR + from .nar import NAR + + symmap = {'': 1, '': 2, ' ': 3, '.': 4, ',': 5, '!': 6, '?': 7, 'p': 7, 'iː': 8, 'ɚ': 9, 'ˌ': 10, 'dˌ': 11, 'mˌ': 12, 'd': 13, 'ɹ': 14, 'tˈ': 15, 'pˌ': 16, 'uː': 17, 'l': 18, 'æ': 19, 'ɛ': 20, 'ɪ': 21, 'j': 22, 'ʊ': 23, 't': 24, 'n': 25, 'v': 26, 'a': 27, 'o': 28, 'ŋ': 29, 'w': 30, 'ʌ': 31, 'hˈ': 32, 'ɡˈ': 33, 'ə': 34, 'θˈ': 35, 'dˈ': 36, 'wˌ': 37, 'h': 38, 'z': 39, 'k': 40, 'ð': 41, 'ɡˌ': 42, 'ˈ': 43, 'fˈ': 44, 'i': 45, 's': 46, 'ʃ': 47, 'wˈ': 48, 'ðˈ': 49, 'ɹˈ': 50, 'lˈ': 51, 'ɡ': 52, 'oː': 53, 'mˈ': 54, 'e': 55, 'ɑː': 56, 'nˈ': 57, 'm': 58, 'θˌ': 59, 'sˈ': 60, 'f': 61, 'ɔː': 62, 'hˌ': 63, 'b': 64, 'jˈ': 65, 'ɐ': 66, 'ʒˈ': 67, 'θ': 68, 'bˈ': 69, 'ɾ': 70, 'ɜː': 71, 'ʌˈ': 72, 'ʃˌ': 73, 'bˌ': 74, 'kˈ': 75, 'ɔ': 76, 'zˈ': 77, 'ᵻ': 78, 'kˌ': 79, 'vˈ': 80, 'fˌ': 81, 'ʒ': 82, 'ʃˈ': 83, 'ɹˌ': 84, 'tˌ': 85, 'pˈ': 86, 'ðˌ': 87, 'sˌ': 88, 'nˌ': 89, 'lˌ': 90, '̩': 91, 'ʔ': 92, 'vˌ': 93, 'ɪˈ': 94, '"': 95, 'ɪˌ': 96, 'ʒˌ': 97, 'uːˌ': 98, 'ʊˈ': 99, 'jˌ': 100, 'uːˈ': 101, 'iːˈ': 102, 'zˌ': 103, '.ˈ': 104, '…': 105, 'ŋˌ': 106, 'ɐˌ': 107, '—ˈ': 108, 'iˌ': 109, 'iːˌ': 110, 'ɛː': 111, ')': 112, ')ˈ': 113, '(': 114, 'u': 115, '-': 116, 'ɖˈ': 117, 'iˈ': 118, 'ʰˈ': 119, 'ɟˈ': 120, '̃': 121, 'eː': 122, 'ɾˈ': 123, 'r': 124, 'ʰ': 125, '-ˌ': 126, 'ɫ': 127, 'q': 128, '—': 129, 'ʊˌ': 130, 'aː': 131, 'cˈ': 132, '…ˈ': 133, 'c': 134, 'ɳ': 135, 'ɐˈ': 136, 'x': 137, 'ʔˌ': 138, '.ˌ': 139, 'ɑ': 140, '?ˈ': 141, '̩ˈ': 142, '"ˈ': 143, ',ˈ': 144, 'ŋˈ': 145, 'əˌ': 146, '!ˈ': 147, '"ˌ': 148, '?ˌ': 149, ',ˌ': 150, '—ˌ': 151, '̩ˌ': 152, 'əˈ': 153, '!ˌ': 154, 'ɬ': 155, 'ʲ': 156, '¡': 157, 'ɯ': 158, 'qˌ': 159, 'ʑ': 160, 'ʑˈ': 161, '¿': 162, 'ɑːˈ': 163, 'iːː': 164, 'ɛˈ': 165, '¡ˈ': 166, 'æˈ': 167, 'ç': 168, 'ɾˌ': 169, 'ᵻˈ': 170, 'xˈ': 171, 'ɔːˈ': 172, ';': 173, 'ɬˌ': 174, ':': 175, 'ʔˈ': 176, 'ɑːˌ': 177, 'ɬˈ': 178} + def tokenize(content, lang_marker="en"): + split = content.split(" ") + phones = [f""] + [ " " if not p else p for p in split ] + [f""] + return torch.tensor([*map(symmap.get, phones)]).to() + + device = "cpu" + + kwargs = { + 'n_tokens': 1024, + 'd_model': 1024, + 'n_heads': 16, + 'n_layers': 12, + } + model_ar = AR(**kwargs).to(device) + model_nar = NAR(**kwargs).to(device) + + train = True + + if train: + qnt = torch.load("data/qnt.pt").to(device) + text_list = [ + tokenize("ˈ a ɪ w ɪ l nˌ ɑː t ˈ æ s k ɐ sˈ ɛ k ə n d tˈ a ɪ m").to(device), + #tokenize("ˌ ɔ n ɡˌ o ʊ ɪ ŋ hˈ o ʊ m ð ə tˈ uː f ɹˈ ɛ n d z fˈ a ʊ n d ɐ lˈ ɛ ɾ ɚ f ɹ ʌ m ˈ æ θ o ʊ z , hˌ uː d ɪ zˈ a ɪ ɚ d ðˌ ɛ m t ə mˈ iː t hˌ ɪ m æ t ð ə ɡ ɹˈ æ n d t ʃˈ ɑː ɹ l ɪ mˌ æ ɡ n i ɔ n ð ə fˈ ɑː l o ʊ ɪ ŋ dˈ e ɪ .").to(device), + ] + + x8 = partial(repeat, pattern="t -> t l", l=2) + proms_list = [ + qnt[0][:2,:].t().to(device), + #x8(torch.tensor([1, 2, 3], device=device)), + # x8(torch.tensor([2, 3], device=device)), + ] + + resp_list_ar = [ + qnt[0,0].to(device), + # qnt[0,0].to(device), + ] + + resp_list_nar = [ + qnt[0][:2,:].t().to(device), + # qnt[0][:2,:].t().to(device), + ] + + model_ar.train() + optimizer = torch.optim.AdamW(model_ar.parameters(), lr=1e-4) + for i in trange(60): + optimizer.zero_grad() + _ = model_ar(text_list, proms_list, resp_list_ar) + + losses = gather_attribute(model_ar, "loss") + loss = sum(losses.values()) + loss.backward() + optimizer.step() + + if i % 20 == 0: + print(f"iter={i}, {losses}.") + + model_nar.train() + optimizer = torch.optim.AdamW(model_nar.parameters(), lr=1e-4) + for i in trange(60): + optimizer.zero_grad() + + _ = model_nar(text_list, proms_list, resps_list=resp_list_nar) + + losses = gather_attribute(model_nar, "loss") + loss = sum(losses.values()) + loss.backward() + optimizer.step() + + if i % 20 == 0: + stats = {k: v.item() for k, v in losses.items()} + stats["loss"] = loss.item() + print(f"iter={i}, {stats}.") + else: + qnt = torch.load("data/test/test.qnt.pt")[0][:2,:].t().to(device) + text_list = [ + #tokenize("ˈ a ɪ w ɪ l nˌ ɑː t ˈ æ s k ɐ sˈ ɛ k ə n d tˈ a ɪ m").to(device), + tokenize("ˌ ɔ n ɡˌ o ʊ ɪ ŋ hˈ o ʊ m ð ə tˈ uː f ɹˈ ɛ n d z fˈ a ʊ n d ɐ lˈ ɛ ɾ ɚ f ɹ ʌ m ˈ æ θ o ʊ z , hˌ uː d ɪ zˈ a ɪ ɚ d ðˌ ɛ m t ə mˈ iː t hˌ ɪ m æ t ð ə ɡ ɹˈ æ n d t ʃˈ ɑː ɹ l ɪ mˌ æ ɡ n i ɔ n ð ə fˈ ɑː l o ʊ ɪ ŋ dˈ e ɪ .").to(device), + ] + proms_list = [ + qnt.to(device), + ] + model_ar.load_state_dict(torch.load("data/test/ar.pth")) + model_nar.load_state_dict(torch.load("data/test/nar.pth")) + + model_ar.eval() + resp_list = model_ar(text_list, proms_list, max_steps=300, sampling_temperature=1.0) + resps_list = [r.unsqueeze(-1) for r in resp_list] + + print("qnt:", qnt.shape, qnt) + print("out:", resp_list[0].shape, resp_list[0]) + wav, sr = decode_to_file(resp_list[0], "data/test/test.ar.init.wav", device=device) + print(wav, sr) + + model_nar.eval() + codes = model_nar( + text_list, + proms_list, + resps_list=resps_list, + sampling_temperature=1.0, + )[0] + + + print("qnt:", qnt.shape, qnt) + print("codes:", codes.shape, codes) + + wav, sr = decode_to_file(codes, "data/test/test.ar+nar.init.wav", device=device) + print(wav, sr) + +if __name__ == "__main__": + example_usage() diff --git a/vall_e/vall_e/nar.py b/vall_e/vall_e/nar.py new file mode 100755 index 0000000..2cba56e --- /dev/null +++ b/vall_e/vall_e/nar.py @@ -0,0 +1,214 @@ +from ..config import cfg +from .base import Base + +import torch + +from torch import Tensor +from tqdm import trange + +class NAR(Base): + @property + def n_resp_levels(self) -> int: + return cfg.models.nar.resp_levels + + @property + def causal(self): + return False + + @property + def use_stop_token(self): + return False + + @property + def arch_type(self) -> bool: + return cfg.models.nar.arch_type + + @property + def norm_type(self): + return "ln" if self.n_resp_levels == 1 else "adaln" + + @property + def n_prom_levels(self) -> int: + return cfg.models.prom_levels + + @property + def resp_loss_only(self): + return True + + def forward( + self, + text_list: list[Tensor], + proms_list: list[Tensor], + resps_list: list[Tensor], + sampling_temperature: float = 0.2, + ): + """ + Args: + text_list: [t] * b + proms_list: [t' l] * b, l=8 + resps_list: [t'' l] * b, l=1 or 8, 1 for testing and 8 for training. + Returns: + [t'' l], l=8 if testing. empty list will be returned during training. + """ + + n_levels_set = {r.shape[-1] for r in resps_list} + + if len(n_levels_set) > 1: + raise ValueError(f"Please give only one level, got {n_levels_set}.") + + n_levels = next(iter(n_levels_set)) + + device = text_list[0].device + + if n_levels == self.n_resp_levels + 1: + assert resps_list is not None + + quant_levels = torch.randint(0, self.n_resp_levels, (len(resps_list),)) + + prev_list = [o[..., : l + 1] for o, l in zip(resps_list, quant_levels)] + targ_list = [o[..., l + 1] for o, l in zip(resps_list, quant_levels)] + + quant_levels = quant_levels.to(device=device) + + _ = super().forward( + text_list, + proms_list, + prev_list, + targ_list, + return_all_resp=True, + shift_targ_list=False, + quant_levels=quant_levels, + ) + + # Yes, just nothing as we are training + prev_list = [] + else: + prev_list = resps_list + + while True: + level = prev_list[0].shape[-1] - 1 + + if level >= self.n_resp_levels: + break + + quant_levels = torch.full((len(text_list),), level, device=device) + + resp_list, _ = super().forward( + text_list, + proms_list, + prev_list, + return_all_resp=True, + shift_targ_list=False, + quant_levels=quant_levels, + sampling_temperature=sampling_temperature, + ) + + prev_list = [ + torch.cat([rs, r.unsqueeze(-1)], dim=-1) + for rs, r in zip(prev_list, resp_list) + ] + + return prev_list + + +def example_usage(): + from functools import partial + from pathlib import Path + + from einops import repeat + + from ..emb.qnt import decode_to_file + from ..utils import gather_attribute + from ..config import cfg + + device = "cpu" + + x8 = partial(repeat, pattern="t -> t l", l=cfg.models.prom_levels) + symmap = {'': 1, '': 2, ' ': 3, '.': 4, ',': 5, '!': 6, '?': 7, 'p': 7, 'iː': 8, 'ɚ': 9, 'ˌ': 10, 'dˌ': 11, 'mˌ': 12, 'd': 13, 'ɹ': 14, 'tˈ': 15, 'pˌ': 16, 'uː': 17, 'l': 18, 'æ': 19, 'ɛ': 20, 'ɪ': 21, 'j': 22, 'ʊ': 23, 't': 24, 'n': 25, 'v': 26, 'a': 27, 'o': 28, 'ŋ': 29, 'w': 30, 'ʌ': 31, 'hˈ': 32, 'ɡˈ': 33, 'ə': 34, 'θˈ': 35, 'dˈ': 36, 'wˌ': 37, 'h': 38, 'z': 39, 'k': 40, 'ð': 41, 'ɡˌ': 42, 'ˈ': 43, 'fˈ': 44, 'i': 45, 's': 46, 'ʃ': 47, 'wˈ': 48, 'ðˈ': 49, 'ɹˈ': 50, 'lˈ': 51, 'ɡ': 52, 'oː': 53, 'mˈ': 54, 'e': 55, 'ɑː': 56, 'nˈ': 57, 'm': 58, 'θˌ': 59, 'sˈ': 60, 'f': 61, 'ɔː': 62, 'hˌ': 63, 'b': 64, 'jˈ': 65, 'ɐ': 66, 'ʒˈ': 67, 'θ': 68, 'bˈ': 69, 'ɾ': 70, 'ɜː': 71, 'ʌˈ': 72, 'ʃˌ': 73, 'bˌ': 74, 'kˈ': 75, 'ɔ': 76, 'zˈ': 77, 'ᵻ': 78, 'kˌ': 79, 'vˈ': 80, 'fˌ': 81, 'ʒ': 82, 'ʃˈ': 83, 'ɹˌ': 84, 'tˌ': 85, 'pˈ': 86, 'ðˌ': 87, 'sˌ': 88, 'nˌ': 89, 'lˌ': 90, '̩': 91, 'ʔ': 92, 'vˌ': 93, 'ɪˈ': 94, '"': 95, 'ɪˌ': 96, 'ʒˌ': 97, 'uːˌ': 98, 'ʊˈ': 99, 'jˌ': 100, 'uːˈ': 101, 'iːˈ': 102, 'zˌ': 103, '.ˈ': 104, '…': 105, 'ŋˌ': 106, 'ɐˌ': 107, '—ˈ': 108, 'iˌ': 109, 'iːˌ': 110, 'ɛː': 111, ')': 112, ')ˈ': 113, '(': 114, 'u': 115, '-': 116, 'ɖˈ': 117, 'iˈ': 118, 'ʰˈ': 119, 'ɟˈ': 120, '̃': 121, 'eː': 122, 'ɾˈ': 123, 'r': 124, 'ʰ': 125, '-ˌ': 126, 'ɫ': 127, 'q': 128, '—': 129, 'ʊˌ': 130, 'aː': 131, 'cˈ': 132, '…ˈ': 133, 'c': 134, 'ɳ': 135, 'ɐˈ': 136, 'x': 137, 'ʔˌ': 138, '.ˌ': 139, 'ɑ': 140, '?ˈ': 141, '̩ˈ': 142, '"ˈ': 143, ',ˈ': 144, 'ŋˈ': 145, 'əˌ': 146, '!ˈ': 147, '"ˌ': 148, '?ˌ': 149, ',ˌ': 150, '—ˌ': 151, '̩ˌ': 152, 'əˈ': 153, '!ˌ': 154, 'ɬ': 155, 'ʲ': 156, '¡': 157, 'ɯ': 158, 'qˌ': 159, 'ʑ': 160, 'ʑˈ': 161, '¿': 162, 'ɑːˈ': 163, 'iːː': 164, 'ɛˈ': 165, '¡ˈ': 166, 'æˈ': 167, 'ç': 168, 'ɾˌ': 169, 'ᵻˈ': 170, 'xˈ': 171, 'ɔːˈ': 172, ';': 173, 'ɬˌ': 174, ':': 175, 'ʔˈ': 176, 'ɑːˌ': 177, 'ɬˈ': 178} + def tokenize(content, lang_marker="en"): + split = content.split(" ") + phones = [f""] + [ " " if not p else p for p in split ] + [f""] + return torch.tensor([*map(symmap.get, phones)]).to() + + resps = torch.load("data/qnt.pt")[0][:2, :].to(device) + kwargs = { + 'n_tokens': 1024, + 'd_model': 1024, + 'n_heads': 16, + 'n_layers': 12, + } + + model = NAR(**kwargs).to(device) + + text_list = [ + #torch.tensor([1, 2, 3], device=device), + tokenize("ˈ a ɪ w ɪ l nˌ ɑː t ˈ æ s k ɐ sˈ ɛ k ə n d tˈ a ɪ m").to(device), + ] + + proms_list = [ + x8(torch.tensor([2, 3], device=device)), + ] + + resps_x1_list = [ + resps[:1].t().to(device), + ] + + resps_x8_list = [ + resps.t().to(device), + ] + + model.eval() + codes = model( + text_list, + proms_list, + resps_list=resps_x1_list, + sampling_temperature=0.2, + )[0] + + decode_to_file( + codes, + Path("data/test/test.nar.init.wav"), + device + ) + + optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4) + + model.train() + for i in trange(50): + optimizer.zero_grad() + + _ = model(text_list, proms_list, resps_list=resps_x8_list) + + losses = gather_attribute(model, "loss") + loss = sum(losses.values()) + loss.backward() + + optimizer.step() + + if i % 20 == 0: + stats = {k: v.item() for k, v in losses.items()} + stats["loss"] = loss.item() + print(f"iter={i}, {stats}.") + + model.eval() + for i in trange(1, 2): # cfg.models.prom_levels): + resps_list = [ + resps[:i].t().to(device), + ] + + codes = model( + text_list, + proms_list, + resps_list=resps_list, + sampling_temperature=0.2, + )[0] + + decode_to_file( + codes, + Path(f"data/test/test.nar.1-{i}.wav"), + device + ) + + +if __name__ == "__main__": + example_usage() diff --git a/vall_e/vall_e/retnet.py b/vall_e/vall_e/retnet.py new file mode 100755 index 0000000..6938e4b --- /dev/null +++ b/vall_e/vall_e/retnet.py @@ -0,0 +1,19 @@ +from fairseq.models import FairseqIncrementalDecoder +from fairseq.incremental_decoding_utils import with_incremental_state + +from torchscale.architecture.config import RetNetConfig +from torchscale.architecture.retnet import RetNetDecoder as Decoder + +@with_incremental_state +class RetNetDecoder(Decoder): + def forward(self, src_tokens, **kwargs): + return super().forward(src_tokens, **kwargs) + + def max_positions(self): + return self.args.max_token_positions + + def reorder_incremental_state( self, incremental_state, new_order ): + for module in incremental_state: + for key in incremental_state[module]: + result = incremental_state[module][key].index_select(0, new_order) + incremental_state[module][key] = result \ No newline at end of file diff --git a/vall_e/vall_e/transformer.py b/vall_e/vall_e/transformer.py new file mode 100755 index 0000000..e65620b --- /dev/null +++ b/vall_e/vall_e/transformer.py @@ -0,0 +1,195 @@ +""" +# https://github.com/enhuiz/vall-e/ +""" + +import math +import torch +import torch.nn.functional as F +import traceback + +from typing import Literal, overload +from functools import partial +from einops import rearrange + +from torch import Tensor, einsum, nn +from torch.utils.checkpoint import checkpoint + +from ..utils import wrapper as ml +from .adaln import AdaLN + +class SinusoidalEmbedding(nn.Module): + def __init__(self, d_model): + super().__init__() + self.d_model = d_model + exponent = torch.arange(self.d_half, dtype=torch.float32) + exponent = exponent / self.d_half + omega = torch.exp(-math.log(1e4) * exponent) + self.omega: torch.Tensor + self.register_buffer("omega", omega, persistent=False) + + @property + def d_half(self): + assert self.d_model % 2 == 0, "Only support even d_model." + return self.d_model // 2 + + def forward(self, x): + """ + Args: + x: (...) + Returns: + pe: (... d) + """ + omega = self.omega + + while omega.dim() <= x.dim(): + omega = omega.unsqueeze(0) # (... d) + + x = x.unsqueeze(-1) # (... 1) + x = omega * x + x = torch.cat([x.sin(), x.cos()], dim=-1) + + return x + + def get_pe(self, n: int): + """ + Args: + n: int + Returns: + pe: (n d) + """ + device = self.omega.device + return self.forward(torch.arange(n, device=device)) + + def add_pe(self, x): + """ + Args: + x: (b t c) + """ + e = self.get_pe(x.shape[1]) # t d + e = e[None] # b t d + x = x + e + return x + + +class Attention(nn.Module): + def __init__(self, d_model, n_heads, causal): + super().__init__() + assert d_model % n_heads == 0 + dim_head = d_model // n_heads + self.causal = causal + self.n_heads = n_heads + self.scale = dim_head**-0.5 + + self.to_qkv = nn.Linear(d_model, d_model * 3, bias=False) + self.to_out = nn.Linear(d_model, d_model) + + def forward(self, x, m): + """ + Args: + x: (b t c) + m: (b t c), 1 is data, 0 is padding + Returns: + x: (b t c) + """ + h = self.n_heads + + q, k, v = self.to_qkv(x).chunk(3, dim=-1) + q, k, v = map(lambda t: rearrange(t, "b t (h d) -> b t h d", h=h), (q, k, v)) + + e = einsum("b i h d, b j h d -> b i j h", q, k) + e = e * self.scale + + kpm = m.unsqueeze(1) * m.unsqueeze(2) # b i j 1 + + if self.causal: + with ml.autocast(kpm, torch.bfloat16, torch.float16) as k: + kpm = k.squeeze(-1).tril().unsqueeze(-1) # b i j 1 + + e = e.masked_fill(kpm == 0, -torch.finfo(e.dtype).max) + a = e.softmax(dim=2) # Normalize on j, i.e. key + + o = einsum("b i j h, b j h d -> b i h d", a, v) + o = o.flatten(-2) + o = self.to_out(o) # b t c + + o = o * m + + return o + +class PrenormResidual(nn.Module): + def __init__( + self, + block, + d_model, + p_dropout, + requires_mask=False, + norm_type="ln", + n_levels: int | None = None, + ): + super().__init__() + self.block = block + self.requires_mask = requires_mask + self.norm_type = norm_type + if norm_type == "ln": + self.norm = nn.LayerNorm(d_model) + elif norm_type == "adaln": + assert n_levels is not None + self.norm = AdaLN(d_model, n_levels) + else: + raise NotImplementedError(norm_type) + self.dropout = nn.Dropout(p_dropout) + + def forward(self, x, m, l): + """ + Args: + x: input (b t d) + m: mask (b t 1), 1 is valuable and 0 is padding + l: level to use, required only for AdaLN + """ + nopts = {"l": l} if self.norm_type == "adaln" else {} + bopts = {"m": m} if self.requires_mask else {} + x = x + self.dropout(self.block(self.norm(x, **nopts) * m, **bopts)) + return x * m + + +class Block(nn.Sequential): + def __init__(self, d_model, n_heads, p_dropout, causal, norm_type, n_levels): + super().__init__() + + self.attn = PrenormResidual( + Attention(d_model, n_heads, causal), + d_model=d_model, + p_dropout=p_dropout, + requires_mask=True, + norm_type=norm_type, + n_levels=n_levels, + ) + + n_ff = d_model * 4 # 1024 * 4 = 4096 feed-forwards + self.ffn = PrenormResidual( + nn.Sequential( + nn.Linear(d_model, n_ff), + nn.GELU(), + nn.Dropout(p_dropout), + nn.Linear(n_ff, d_model), + ), + d_model=d_model, + p_dropout=p_dropout, + norm_type=norm_type, + n_levels=n_levels, + ) + + def forward(self, x, m, l): + """ + Args: + x: (b t c) + m: (b t 1) + l: (b) + """ + poor_in_vram = True + if x.requires_grad and poor_in_vram: + x = checkpoint(self.attn, x, m, l, use_reentrant=False) + else: + x = self.attn(x, m, l) + x = self.ffn(x, m, l) + return x \ No newline at end of file

2m+)e7WL>*p~_fDm>O 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