master c695d4d3f49f cached
40 files
3.1 MB
804.3k tokens
167 symbols
1 requests
Download .txt
Showing preview only (3,217K chars total). Download the full file or copy to clipboard to get everything.
Repository: nl8590687/ASRT_SpeechRecognition
Branch: master
Commit: c695d4d3f49f
Files: 40
Total size: 3.1 MB

Directory structure:
gitextract_hjpms6fl/

├── .github/
│   ├── FUNDING.yml
│   └── donate.md
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── README_EN.md
├── asrserver_grpc.py
├── asrserver_http.py
├── asrt_config.json
├── assets/
│   ├── asrt.proto
│   ├── asrt_pb2.py
│   ├── asrt_pb2_grpc.py
│   └── default.html
├── client_grpc.py
├── client_http.py
├── data_loader.py
├── dict.txt
├── download_default_datalist.py
├── evaluate_speech_model.py
├── language_model3.py
├── model_language/
│   ├── language_model1.txt
│   └── language_model2.txt
├── model_zoo/
│   └── speech_model/
│       ├── keras_backend.py
│       └── pytorch_backend.py
├── predict_speech_file.py
├── requirements.txt
├── speech_features/
│   ├── __init__.py
│   ├── base.py
│   ├── sigproc.py
│   └── speech_features.py
├── speech_model.py
├── speech_recorder.py
├── torch_speech_model.py
├── train_speech_model.py
├── train_speech_model_pytorch.py
└── utils/
    ├── config.py
    ├── ops.py
    ├── ops_test.py
    └── thread.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

github: nl8590687 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
custom: https://github.com/nl8590687/ASRT_SpeechRecognition/wiki/donate # Replace with a single custom sponsorship URL


================================================
FILE: .github/donate.md
================================================
# Donate 打赏作者

本项目的作者@nl8590687 (repo owner)现在其实还是一名学生...

如果您觉得本项目给您的学习和工作带来了一些帮助,可以考虑给作者一些打赏,用来给他在炎热的夏天买一瓶冰可乐,或者寒冷的冬天买一杯热奶茶,以鼓励其创作出更好的代码和项目。

二维码:

| 支付宝收款码   |微信收款码    |
| --------   | -----   |
| <img src="https://raw.githubusercontent.com/wiki/nl8590687/ASRT_SpeechRecognition/assets/Alipay_QRCODE.png" width = "300" height = "300" alt="支付宝收款二维码" />        | <img src="https://raw.githubusercontent.com/wiki/nl8590687/ASRT_SpeechRecognition/assets/Wechat_QRCODE.png" width = "300" height = "300" alt="微信收款二维码" />
 


================================================
FILE: .gitignore
================================================
## Ignore some files and folders for copyright and other reasons. 

*.model
*.model.base
[Mm]odel_speech/

__pycache__
*.wav
*.model_yaml
Test_Report_*

dataset
data_pinyin.txt

testClient.py

webapi/
save_models/
datalist/

================================================
FILE: Dockerfile
================================================
# Ubuntu 20.04
FROM ubuntu:focal

# 切换默认shell为bash
SHELL ["/bin/bash", "-c"]

ADD ./ /asrt_server

WORKDIR /asrt_server

# 最小化源,缩短apt update时间(ca-certificates必须先安装才支持换tsinghua源)
RUN echo 'deb http://archive.ubuntu.com/ubuntu/ focal main restricted' > /etc/apt/sources.list

RUN apt update && apt install -y ca-certificates

RUN echo $'\
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse\
\n# deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse\n\
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse\
\n# deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse\n\
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse\
\n# deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse\n\
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse\
\n# deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse\n\
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse\
\n# deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse'\
> /etc/apt/sources.list

RUN apt update && apt install -y python3 python3-pip 

RUN pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

RUN pip3 install wave scipy matplotlib tensorflow-cpu==2.5.3 numpy==1.19.2 requests flask waitress grpcio==1.34.0 grpcio-tools==1.34.0 protobuf

RUN echo $'cd /asrt_server \n python3 asrserver_http.py & \n python3 asrserver_grpc.py' > /asrt_server/start.sh && chmod +x /asrt_server/start.sh

# refer: https://docs.docker.com/engine/reference/builder/#expose
EXPOSE 20001/tcp 20002/tcp

ENTRYPOINT ["/bin/bash", "/asrt_server/start.sh"]

# https://docs.docker.com/engine/reference/commandline/build/#options
# docker build --progress plain --rm --build-arg TAG=1.3.0 --tag asrt/api_server:1.3.0 .
# https://docs.docker.com/engine/reference/commandline/run/#options
# docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt -d asrt/api_server:1.3.0


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is 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.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  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.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  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 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. Use with the GNU Affero General Public License.

  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 Affero 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 special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU 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 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 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 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.

    {one line to give the program's name and a brief idea of what it does.}
    Copyright (C) {year}  {name of author}

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU 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 General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    ASRT_SpeechRecognition  Copyright (C) 2017  nl8590687
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  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 GPL, see
<http://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

================================================
FILE: README.md
================================================
![](assets/asrt_title_header.png)

[![GPL-3.0 Licensed](https://img.shields.io/badge/License-GPL3.0-blue.svg?style=flat)](https://opensource.org/licenses/GPL-3.0) 
[![Stars](https://img.shields.io/github/stars/nl8590687/ASRT_SpeechRecognition)](https://github.com/nl8590687/ASRT_SpeechRecognition) 
[![TensorFlow Version](https://img.shields.io/badge/Tensorflow-2.5+-blue.svg)](https://www.tensorflow.org/) 
[![Python Version](https://img.shields.io/badge/Python-3.9+-blue.svg)](https://www.python.org/) 
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5808434.svg)](https://doi.org/10.5281/zenodo.5808434)

ASRT是一个基于深度学习的中文语音识别系统,如果您觉得喜欢,请点一个 **"Star"** 吧~

**ReadMe Language** | 中文版 | [English](https://github.com/nl8590687/ASRT_SpeechRecognition/blob/master/README_EN.md) |

[**ASRT项目主页**](https://asrt.ailemon.net/) | 
[**发布版下载**](https://wiki.ailemon.net/docs/asrt-doc/download) | 
[**查看本项目的Wiki文档**](https://wiki.ailemon.net/docs/asrt-doc) | 
[**实用效果体验Demo**](https://asrt.ailemon.net/demo) | 
[**打赏作者**](https://wiki.ailemon.net/docs/asrt-doc/asrt-doc-1deo9u61unti9)

如果程序运行期间或使用中有什么问题,可以及时在issue中提出来,我将尽快做出答复。本项目作者交流QQ群:**894112051** ,加微信群请先加AI柠檬微信号:**ailemon-me** ,并备注“ASRT语音识别”

<center><img src="https://res.ailemon.net/common/ailemon-me-wechat-qrcode.jpg?x-oss-process=style/ailemon-blog-webp" height="100rem"/></center>

提问前请仔细查看[项目文档](https://wiki.ailemon.net/docs/asrt-doc)、 
[FAQ常见问题](https://wiki.ailemon.net/docs/asrt-doc/asrt-doc-1deoeud494h4f)
以及[Issues](https://github.com/nl8590687/ASRT_SpeechRecognition/issues) 避免重复提问

如果程序运行时有任何异常情况,在提问时请发出完整截图,并注明所使用的CPU架构,GPU型号,操作系统、Python,TensorFlow和CUDA版本,以及是否修改过任何代码或增删数据集等。

## Introduction 简介

本项目使用tensorFlow.keras基于深度卷积神经网络和长短时记忆神经网络、注意力机制以及CTC实现。

## 训练模型的最低软硬件要求
### 硬件
* CPU: 4核 (x86_64, amd64) +
* RAM: 16 GB +
* GPU: NVIDIA, Graph Memory 11GB+ (1080ti起步)
* 硬盘: 500 GB 机械硬盘(或固态硬盘)

### 软件
* Linux: Ubuntu 20.04+ / CentOS 7+ (训练+推理) 或 Windows: 10/11(仅推理)
* Python: 3.9 - 3.11 及后续版本
* TensorFlow: 2.5 - 2.11 及后续版本

## 快速开始

以在Linux系统下的操作为例:

首先通过Git将本项目克隆到您的计算机上,然后下载本项目训练所需要的数据集,下载链接详见[文档末尾部分](https://github.com/nl8590687/ASRT_SpeechRecognition#data-sets-%E6%95%B0%E6%8D%AE%E9%9B%86)。
```shell
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
```

或者您也可以通过 "Fork" 按钮,将本项目Copy一份副本,然后通过您自己的SSH密钥克隆到本地。

通过git克隆仓库以后,进入项目根目录;并创建一个存储数据的子目录, 例如 `/data/speech_data` (可使用软链接代替),然后将下载好的数据集直接解压进去

注意,当前版本中,在配置文件里,默认添加了Thchs30、ST-CMDS、Primewords、aishell-1、aidatatang200、MagicData 六个数据集,如果不需要请自行删除。如果要使用其他数据集需要自行添加数据配置,并提前使用ASRT支持的标准格式整理数据。

```shell
$ cd ASRT_SpeechRecognition

$ mkdir /data/speech_data

$ tar zxf <数据集压缩文件名> -C /data/speech_data/ 
```

下载默认数据集的拼音标签文件:
```shell
$ python download_default_datalist.py
```

目前可用的模型有24、25、251和251bn

运行本项目之前,请安装必要的[Python3版依赖库](https://github.com/nl8590687/ASRT_SpeechRecognition#python-import)

本项目开始训练请执行:
```shell
$ python3 train_speech_model.py
```
本项目开始测试请执行:
```shell
$ python3 evaluate_speech_model.py
```
测试之前,请确保代码中填写的模型文件路径存在。

预测单条音频文件的语音识别文本:
```shell
$ python3 predict_speech_file.py
```

启动ASRT HTTP协议的API服务器启动请执行:
```shell
$ python3 asrserver_http.py
```

本地测试调用HTTP协议API服务是否成功:
```shell
$ python3 client_http.py
```

启动ASRT GRPC协议的API服务器启动请执行:
```shell
$ python3 asrserver_grpc.py
```

本地测试调用GRPC协议API服务是否成功:
```shell
$ python3 client_grpc.py
```

请注意,开启API服务器之后,需要使用本ASRT项目对应的客户端软件来进行语音识别,详见Wiki文档[下载ASRT语音识别客户端SDK和Demo](https://wiki.ailemon.net/docs/asrt-doc/download)。

如果要训练和使用非251bn版模型,请在代码中 `from speech_model.xxx import xxx` 的相应位置做修改。

使用docker直接部署ASRT:
```shell
$ docker pull ailemondocker/asrt_service:1.3.0
$ docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0
```
仅CPU运行推理识别,不作训练

## Model 模型

### Speech Model 语音模型

DCNN + CTC

其中,输入的音频的最大时间长度为16秒,输出为对应的汉语拼音序列

* 关于下载已经训练好的模型的问题

已经训练好的模型包含在发布版服务端程序压缩包里面,发布版成品服务端程序可以在此下载:[ASRT下载页面](https://wiki.ailemon.net/docs/asrt-doc/download)。

Github本仓库下[Releases](https://github.com/nl8590687/ASRT_SpeechRecognition/releases)页面里面还包括各个不同版本的介绍信息,每个版本下方的zip压缩包也是包含已经训练好的模型的发布版服务端程序压缩包。

### Language Model 语言模型

基于概率图的最大熵隐马尔可夫模型

输入为汉语拼音序列,输出为对应的汉字文本

## About Accuracy 关于准确率

当前,最好的模型在测试集上基本能达到85%的汉语拼音正确率

## Python依赖库

* tensorFlow (2.5-2.11+)
* numpy
* wave
* matplotlib
* scipy
* requests
* flask
* waitress
* grpcio / grpcio-tools / protobuf

不会安装环境的同学请直接运行以下命令(前提是有GPU且已经安装好 Python3.9、CUDA 11.2 和 cudnn 8.1):

```shell
$ pip install -r requirements.txt
```

[依赖环境和性能配置要求](https://wiki.ailemon.net/docs/asrt-doc/asrt-doc-1deobk7bmlgd6)

## Data Sets 数据集

完整内容请查看:[几个最新免费开源的中文语音数据集](https://blog.ailemon.net/2018/11/21/free-open-source-chinese-speech-datasets/)

|数据集|时长|大小|国内下载|国外下载|
|-|-|-|-|-|
|THCHS30|40h|6.01G|[data_thchs30.tgz](<http://openslr.magicdatatech.com/resources/18/data_thchs30.tgz>)|[data_thchs30.tgz](<http://www.openslr.org/resources/18/data_thchs30.tgz>)|
|ST-CMDS|100h|7.67G|[ST-CMDS-20170001_1-OS.tar.gz](<http://openslr.magicdatatech.com/resources/38/ST-CMDS-20170001_1-OS.tar.gz>)|[ST-CMDS-20170001_1-OS.tar.gz](<http://www.openslr.org/resources/38/ST-CMDS-20170001_1-OS.tar.gz>)|
|AIShell-1|178h|14.51G|[data_aishell.tgz](<http://openslr.magicdatatech.com/resources/33/data_aishell.tgz>)|[data_aishell.tgz](<http://www.openslr.org/resources/33/data_aishell.tgz>)|
|Primewords|100h|8.44G|[primewords_md_2018_set1.tar.gz](<http://openslr.magicdatatech.com/resources/47/primewords_md_2018_set1.tar.gz>)|[primewords_md_2018_set1.tar.gz](<http://www.openslr.org/resources/47/primewords_md_2018_set1.tar.gz>)|
|MagicData|755h|52G/1.0G/2.2G| [train_set.tar.gz](<http://openslr.magicdatatech.com/resources/68/train_set.tar.gz>) / [dev_set.tar.gz](<http://openslr.magicdatatech.com/resources/68/dev_set.tar.gz>) / [test_set.tar.gz](<http://openslr.magicdatatech.com/resources/68/test_set.tar.gz>)|[train_set.tar.gz](<http://www.openslr.org/resources/68/train_set.tar.gz>) / [dev_set.tar.gz](<http://www.openslr.org/resources/68/dev_set.tar.gz>) / [test_set.tar.gz](<http://www.openslr.org/resources/68/test_set.tar.gz>)|

  注:AISHELL-1 数据集解压方法

  ```
  $ tar xzf data_aishell.tgz
  $ cd data_aishell/wav
  $ for tar in *.tar.gz;  do tar xvf $tar; done
  ```

特别鸣谢!感谢前辈们的公开语音数据集

如果提供的数据集链接无法打开和下载,请点击该链接 [OpenSLR](http://www.openslr.org)

## ASRT语音识别API客户端调用SDK

ASRT为客户端通过RPC方式调用开发语音识别功能提供了不同平台和编程语言的SDK接入能力,对于其他平台,可直接通过调用通用RESTful Open API方式进行语音识别功能接入。具体接入步骤请看ASRT项目文档。

|客户端平台|项目仓库链接|
|-|-|
|Windows客户端SDK和Demo|[ASRT_SDK_WinClient](https://github.com/nl8590687/ASRT_SDK_WinClient)|
|跨平台Python3客户端SDK和Demo|[ASRT_SDK_Python3](https://github.com/nl8590687/ASRT_SDK_Python3)|
|跨平台Golang客户端SDK和Demo|[asrt-sdk-go](https://github.com/nl8590687/asrt-sdk-go)|
|Java客户端SDK和Demo|[ASRT_SDK_Java](https://github.com/nl8590687/ASRT_SDK_Java)|

## ASRT相关资料 
* [查看ASRT项目的Wiki文档](https://wiki.ailemon.net/docs/asrt-doc)

ASRT的原理请查看本文:
* [ASRT:一个中文语音识别系统](https://blog.ailemon.net/2018/08/29/asrt-a-chinese-speech-recognition-system/)

ASRT训练和部署教程请看:
* [教你如何使用ASRT训练中文语音识别模型](<https://blog.ailemon.net/2020/08/20/teach-you-how-use-asrt-train-chinese-asr-model/>)
* [教你如何使用ASRT部署中文语音识别API服务器](<https://blog.ailemon.net/2020/08/27/teach-you-how-use-asrt-deploy-chinese-asr-api-server/>)

关于经常被问到的统计语言模型原理的问题,请看:

* [统计语言模型:从中文拼音到文本](https://blog.ailemon.net/2017/04/27/statistical-language-model-chinese-pinyin-to-words/)
* [统计N元语言模型生成算法:简单中文词频统计](https://blog.ailemon.net/2017/02/20/simple-words-frequency-statistic-without-segmentation-algorithm/)

关于CTC的问题请看:

* [[翻译]使用CTC进行序列建模](<https://blog.ailemon.net/2019/07/18/sequence-modeling-with-ctc/>)

更多内容请访问作者的博客:[AI柠檬博客](https://blog.ailemon.net/)

或使用[AI柠檬站内搜索引擎](https://s.ailemon.net/)进行相关信息的搜索

## License 开源许可协议

[GPL v3.0](LICENSE) © [nl8590687](https://github.com/nl8590687) 作者:[AI柠檬](https://www.ailemon.net/)

## 参考引用本项目

[DOI: 10.5281/zenodo.5808434](https://doi.org/10.5281/zenodo.5808434)

## Contributors 贡献者们

[贡献者页面](https://github.com/nl8590687/ASRT_SpeechRecognition/graphs/contributors)

@nl8590687 (repo owner)


================================================
FILE: README_EN.md
================================================
![](assets/asrt_title_header_en.png)

[![GPL-3.0 Licensed](https://img.shields.io/badge/License-GPL3.0-blue.svg?style=flat)](https://opensource.org/licenses/GPL-3.0) 
[![Stars](https://img.shields.io/github/stars/nl8590687/ASRT_SpeechRecognition)](https://github.com/nl8590687/ASRT_SpeechRecognition) 
[![TensorFlow Version](https://img.shields.io/badge/Tensorflow-2.5+-blue.svg)](https://www.tensorflow.org/) 
[![Python Version](https://img.shields.io/badge/Python-3.9+-blue.svg)](https://www.python.org/) 
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5808434.svg)](https://doi.org/10.5281/zenodo.5808434)

ASRT is A Deep-Learning-Based Chinese Speech Recognition System. If you like this project, please **star** it. 

**ReadMe Language** | [中文版](https://github.com/nl8590687/ASRT_SpeechRecognition/blob/master/README.md) | English |

[**ASRT Project Home Page**](https://asrt.ailemon.net/) | 
[**Released Download**](https://wiki.ailemon.net/docs/asrt-doc/download) | 
[**View this project's wiki document (Chinese)**](https://wiki.ailemon.net/docs/asrt-doc) | 
[**Experience Demo**](https://asrt.ailemon.net/demo) | 
[**Donate**](https://wiki.ailemon.net/docs/asrt-doc/asrt-doc-1deo9u61unti9)

If you have any questions in your works with this project, welcome to put up issues in this repo and I will response as soon as possible. 

You can check the [FAQ Page (Chinese)](https://wiki.ailemon.net/docs/asrt-doc/asrt-doc-1deoeud494h4f) first before asking questions to avoid repeating questions.

If there is any abnormality when the program is running, please send a complete screenshot when asking questions, and indicate the CPU architecture, GPU model, operating system, Python, TensorFlow and CUDA versions used, and whether any code has been modified or data sets have been added or deleted, etc. .

## Introduction

This project uses tensorFlow.keras based on deep convolutional neural network and long-short memory neural network, attention mechanism and CTC to implement. 

## Minimum requirements for training
### Hardware
* CPU: 4 Core (x86_64, amd64) +
* RAM: 16 GB +
* GPU: NVIDIA, Graph Memory 11GB+ (>1080ti)
* 硬盘: 500 GB HDD(or SSD)

### Software
* Linux: Ubuntu 20.04+ / CentOS 7+ (train & predict) or Windows: 10/11 (only to predict)
* Python: 3.9 - 3.11 and later
* TensorFlow: 2.5 - 2.11 and later

## Quick Start
Take the operation under the Linux system as an example:

First, clone the project to your computer through Git, and then download the data sets needed for the training of this project. For the download links, please refer to [End of Document](https://github.com/nl8590687/ASRT_SpeechRecognition/blob/master/README_EN.md#data-sets)
```shell
$ git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
```

Or you can use the "Fork" button to copy a copy of the project and then clone it locally with your own SSH key.

After cloning the repository via git, go to the project root directory; create a subdirectory `/data/speech_data` (you can use a soft link instead) for datasets, and then extract the downloaded datasets directly into it.

```shell
$ cd ASRT_SpeechRecognition

$ mkdir /data/speech_data

$ tar zxf <dataset zip files name> -C /data/speech_data/ 
```

Note that in the current version, in the configuration file, six data sets, Thchs30, ST-CMDS, Primewords, aishell-1, aidatatang200, MagicData, are added by default, please delete them if you don’t need them. If you want to use other data sets, you need to add data configuration yourself, and use the standard format supported by ASRT to organize the data in advance.

To download pinyin syllable list files for default dataset:
```shell
$ python download_default_datalist.py
```

Currently available models are 24, 25, 251 and 251bn

Before running this project, please install the necessary [Python3 version dependent library](https://github.com/nl8590687/ASRT_SpeechRecognition#python-import)

To start training this project, please execute:
```shell
$ python3 train_speech_model.py
```
To start the test of this project, please execute:
```shell
$ python3 evaluate_speech_model.py
```
Before testing, make sure the model file path filled in the code files exists.

To predict one wave audio file for speech recognition:
```shell
$ python3 predict_speech_file.py
```

To startup ASRT API Server with HTTP protocol please execute:
```shell
$ python3 asrserver_http.py
```

Please note that after opening the API server, you need to use the client software corresponding to this ASRT project for voice recognition. For details, see the Wiki documentation to [download ASRT Client SDK & Demo](https://wiki.ailemon.net/docs/asrt-doc/download).


To test whether it is successful or not that calls api service interface with HTTP protocol:
```shell
$ python3 client_http.py
```

To startup ASRT API Server with GRPC protocol please execute:
```shell
$ python3 asrserver_grpc.py
```

To test whether it is successful or not that calls api service interface with GRPC protocol:
```shell
$ python3 client_grpc.py
```

If you want to train and use other model(not Model 251bn), make changes in the corresponding position of the `from speech_model.xxx import xxx` in the code files.

If there is any problem during the execution of the program or during use, it can be promptly put forward in the issue, and I will reply as soon as possible.

Deploy ASRT by docker:
```shell
$ docker pull ailemondocker/asrt_service:1.3.0
$ docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0
```
It will start a api server for recognition rather than training.

## Model

### Speech Model

DCNN + CTC

The maximum length of the input audio is 16 seconds, and the output is the corresponding Chinese pinyin sequence. 

* Questions about downloading trained models

The released finished software that includes trained model weights can be downloaded from [ASRT download page](https://wiki.ailemon.net/docs/asrt-doc/download). 

Github [Releases](https://github.com/nl8590687/ASRT_SpeechRecognition/releases) page includes the archives of the various versions of the software released and it's introduction. Under each version module, there is a zip file that includes trained model weights files. 

### Language Model 

Maximum Entropy Hidden Markov Model Based on Probability Graph. 

The input is a Chinese pinyin sequence, and the output is the corresponding Chinese character text. 

## About Accuracy

At present, the best model can basically reach 85% of Pinyin correct rate on the test set. 

## Python Dependency Library

* tensorFlow (2.5-2.11+)
* numpy
* wave
* matplotlib
* math
* scipy
* requests
* flask
* waitress
* grpcio / grpcio-tools / protobuf

If you have trouble when install those packages, please run the following script to do it as long as you have a GPU and python 3.9, CUDA 11.2 and cudnn 8.1 have been installed:

```shell
$ pip install -r requirements.txt
```

[Dependent Environment Details and Hardware Requirement](https://wiki.ailemon.net/docs/asrt-doc/asrt-doc-1deobk7bmlgd6)

## ASRT Client SDK for Calling Speech Recognition API

ASRT provides the abilities to import client SDKs for several platform and programing language for client develop speech recognition features , which work by RPC. Please refer ASRT project documents for detail.

|Client Platform|Project Repos Link|
|-|-|
|Windows Client SDK & Demo|[ASRT_SDK_WinClient](https://github.com/nl8590687/ASRT_SDK_WinClient)|
|Python3 Client SDK & Demo (Any Platform)|[ASRT_SDK_Python3](https://github.com/nl8590687/ASRT_SDK_Python3)|
|Golang Client SDK & Demo|[asrt-sdk-go](https://github.com/nl8590687/asrt-sdk-go)|
|Java Client SDK & Demo|[ASRT_SDK_Java](https://github.com/nl8590687/ASRT_SDK_Java)|

## Data Sets 

For full content please refer: [Some free Chinese speech datasets (Chinese)](https://blog.ailemon.net/2018/11/21/free-open-source-chinese-speech-datasets/)

|Dataset|Time|Size|Download (CN Mirrors)|Download (Source)|
|-|-|-|-|-|
|THCHS30|40h|6.01G|[data_thchs30.tgz](<http://openslr.magicdatatech.com/resources/18/data_thchs30.tgz>)|[data_thchs30.tgz](<http://www.openslr.org/resources/18/data_thchs30.tgz>)|
|ST-CMDS|100h|7.67G|[ST-CMDS-20170001_1-OS.tar.gz](<http://openslr.magicdatatech.com/resources/38/ST-CMDS-20170001_1-OS.tar.gz>)|[ST-CMDS-20170001_1-OS.tar.gz](<http://www.openslr.org/resources/38/ST-CMDS-20170001_1-OS.tar.gz>)|
|AIShell-1|178h|14.51G|[data_aishell.tgz](<http://openslr.magicdatatech.com/resources/33/data_aishell.tgz>)|[data_aishell.tgz](<http://www.openslr.org/resources/33/data_aishell.tgz>)|
|Primewords|100h|8.44G|[primewords_md_2018_set1.tar.gz](<http://openslr.magicdatatech.com/resources/47/primewords_md_2018_set1.tar.gz>)|[primewords_md_2018_set1.tar.gz](<http://www.openslr.org/resources/47/primewords_md_2018_set1.tar.gz>)|
|MagicData|755h|52G/1.0G/2.2G| [train_set.tar.gz](<http://openslr.magicdatatech.com/resources/68/train_set.tar.gz>) / [dev_set.tar.gz](<http://openslr.magicdatatech.com/resources/68/dev_set.tar.gz>) / [test_set.tar.gz](<http://openslr.magicdatatech.com/resources/68/test_set.tar.gz>)|[train_set.tar.gz](<http://www.openslr.org/resources/68/train_set.tar.gz>) / [dev_set.tar.gz](<http://www.openslr.org/resources/68/dev_set.tar.gz>) / [test_set.tar.gz](<http://www.openslr.org/resources/68/test_set.tar.gz>)|


  Note:The way to unzip AISHELL-1 dataset

  ```
  $ tar xzf data_aishell.tgz
  $ cd data_aishell/wav
  $ for tar in *.tar.gz;  do tar xvf $tar; done
  ```

Special thanks! Thanks to the predecessors' public voice data set. 

If the provided dataset link cannot be opened and downloaded, click this link [OpenSLR](http://www.openslr.org)

## ASRT Docuemnts

* [ASRT project's Wiki document](https://wiki.ailemon.net/docs/asrt-doc)

A post about ASRT's introduction 
* [ASRT: Chinese Speech Recognition System (Chinese)](https://blog.ailemon.net/2018/08/29/asrt-a-chinese-speech-recognition-system/)

About how to use ASRT to train and deploy:
* [Teach you how to use ASRT to train Chinese ASR model (Chinese)](<https://blog.ailemon.net/2020/08/20/teach-you-how-use-asrt-train-chinese-asr-model/>)
* [Teach you how to use ASRT to deploy Chinese ASR API Server (Chinese)](<https://blog.ailemon.net/2020/08/27/teach-you-how-use-asrt-deploy-chinese-asr-api-server/>)

For questions about the principles of the statistical language model that are often asked, see: 
* [Simple Chinese word frequency statistics to generate N-gram language model (Chinese)](https://blog.ailemon.net/2017/02/20/simple-words-frequency-statistic-without-segmentation-algorithm/)
* [Statistical Language Model: Chinese Pinyin to Words (Chinese)](https://blog.ailemon.net/2017/04/27/statistical-language-model-chinese-pinyin-to-words/)

For questions about CTC, see: 

* [[Translation] Sequence Modeling with CTC (Chinese)](<https://blog.ailemon.net/2019/07/18/sequence-modeling-with-ctc/>)

For more infomation please refer to author's blog website: [AILemon Blog](https://blog.ailemon.net/) (Chinese)

## License

[GPL v3.0](LICENSE) © [nl8590687](https://github.com/nl8590687) Author: [ailemon](https://www.ailemon.net/)

## Cite this project

[DOI: 10.5281/zenodo.5808434](https://doi.org/10.5281/zenodo.5808434)

## Contributors

[Contributors Page](https://github.com/nl8590687/ASRT_SpeechRecognition/graphs/contributors)

@nl8590687 (repo owner)


================================================
FILE: asrserver_grpc.py
================================================
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
ASRT语音识别基于gRPC协议的API服务器程序
"""

import argparse
import time
from concurrent import futures
import grpc

from assets.asrt_pb2_grpc import AsrtGrpcServiceServicer, add_AsrtGrpcServiceServicer_to_server
from assets.asrt_pb2 import SpeechResponse, TextResponse
from speech_model import ModelSpeech
from model_zoo.speech_model.keras_backend import SpeechModel251BN
from speech_features import Spectrogram
from language_model3 import ModelLanguage
from utils.ops import decode_wav_bytes

API_STATUS_CODE_OK = 200000  # OK
API_STATUS_CODE_OK_PART = 206000  # 部分结果OK,用于stream
API_STATUS_CODE_CLIENT_ERROR = 400000
API_STATUS_CODE_CLIENT_ERROR_FORMAT = 400001  # 请求数据格式错误
API_STATUS_CODE_CLIENT_ERROR_CONFIG = 400002  # 请求数据配置不支持
API_STATUS_CODE_SERVER_ERROR = 500000
API_STATUS_CODE_SERVER_ERROR_RUNNING = 500001  # 服务器运行中出错

parser = argparse.ArgumentParser(description='ASRT gRPC Protocol API Service')
parser.add_argument('--listen', default='0.0.0.0', type=str, help='the network to listen')
parser.add_argument('--port', default='20002', type=str, help='the port to listen')
args = parser.parse_args()

AUDIO_LENGTH = 1600
AUDIO_FEATURE_LENGTH = 200
CHANNELS = 1
# 默认输出的拼音的表示大小是1428,即1427个拼音+1个空白块
OUTPUT_SIZE = 1428
sm251bn = SpeechModel251BN(
    input_shape=(AUDIO_LENGTH, AUDIO_FEATURE_LENGTH, CHANNELS),
    output_size=OUTPUT_SIZE
)
feat = Spectrogram()
ms = ModelSpeech(sm251bn, feat, max_label_length=64)
ms.load_model('save_models/' + sm251bn.get_model_name() + '.model.h5')

ml = ModelLanguage('model_language')
ml.load_model()

_ONE_DAY_IN_SECONDS = 60 * 60 * 24


class ApiService(AsrtGrpcServiceServicer):
    """
    继承AsrtGrpcServiceServicer,实现hello方法
    """

    def __init__(self):
        pass

    def Speech(self, request, context):
        """
        具体实现Speech的方法, 并按照pb的返回对象构造SpeechResponse返回
        :param request:
        :param context:
        :return:
        """
        wav_data = request.wav_data
        wav_samples = decode_wav_bytes(samples_data=wav_data.samples,
                                       channels=wav_data.channels, byte_width=wav_data.byte_width)
        result = ms.recognize_speech(wav_samples, wav_data.sample_rate)
        print("语音识别声学模型结果:", result)
        return SpeechResponse(status_code=API_STATUS_CODE_OK, status_message='',
                              result_data=result)

    def Language(self, request, context):
        """
        具体实现Language的方法, 并按照pb的返回对象构造TextResponse返回
        :param request:
        :param context:
        :return:
        """
        print('Language收到了请求:', request)
        result = ml.pinyin_to_text(list(request.pinyins))
        print('Language结果:', result)
        return TextResponse(status_code=API_STATUS_CODE_OK, status_message='',
                            text_result=result)

    def All(self, request, context):
        """
        具体实现All的方法, 并按照pb的返回对象构造TextResponse返回
        :param request:
        :param context:
        :return:
        """
        wav_data = request.wav_data
        wav_samples = decode_wav_bytes(samples_data=wav_data.samples,
                                       channels=wav_data.channels, byte_width=wav_data.byte_width)
        result_speech = ms.recognize_speech(wav_samples, wav_data.sample_rate)
        result = ml.pinyin_to_text(result_speech)
        print("语音识别结果:", result)
        return TextResponse(status_code=API_STATUS_CODE_OK, status_message='',
                            text_result=result)

    def Stream(self, request_iterator, context):
        """
        具体实现Stream的方法, 并按照pb的返回对象构造TextResponse返回
        :param request_iterator:
        :param context:
        :return:
        """
        result = list()
        tmp_result_last = list()
        beam_size = 100

        for request in request_iterator:
            wav_data = request.wav_data
            wav_samples = decode_wav_bytes(samples_data=wav_data.samples,
                                           channels=wav_data.channels,
                                           byte_width=wav_data.byte_width)
            result_speech = ms.recognize_speech(wav_samples, wav_data.sample_rate)

            for item_pinyin in result_speech:
                tmp_result = ml.pinyin_stream_decode(tmp_result_last, item_pinyin, beam_size)
                if len(tmp_result) == 0 and len(tmp_result_last) > 0:
                    result.append(tmp_result_last[0][0])
                    print("流式语音识别结果:", ''.join(result))
                    yield TextResponse(status_code=API_STATUS_CODE_OK, status_message='',
                                       text_result=''.join(result))
                    result = list()

                    tmp_result = ml.pinyin_stream_decode([], item_pinyin, beam_size)
                tmp_result_last = tmp_result
                yield TextResponse(status_code=API_STATUS_CODE_OK_PART, status_message='',
                                   text_result=''.join(tmp_result[0][0]))

        if len(tmp_result_last) > 0:
            result.append(tmp_result_last[0][0])
            print("流式语音识别结果:", ''.join(result))
            yield TextResponse(status_code=API_STATUS_CODE_OK, status_message='',
                               text_result=''.join(result))


def run(host, port):
    """
    gRPC API服务启动
    :return:
    """
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    add_AsrtGrpcServiceServicer_to_server(ApiService(), server)
    server.add_insecure_port(''.join([host, ':', port]))
    server.start()
    print("start service...")
    try:
        while True:
            time.sleep(_ONE_DAY_IN_SECONDS)
    except KeyboardInterrupt:
        server.stop(0)


if __name__ == '__main__':
    run(host=args.listen, port=args.port)


================================================
FILE: asrserver_http.py
================================================
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
ASRT语音识别基于HTTP协议的API服务器程序
"""

import argparse
import base64
import json
from flask import Flask, Response, request

from speech_model import ModelSpeech
from model_zoo.speech_model.keras_backend import SpeechModel251BN
from speech_features import Spectrogram
from language_model3 import ModelLanguage
from utils.ops import decode_wav_bytes

API_STATUS_CODE_OK = 200000  # OK
API_STATUS_CODE_CLIENT_ERROR = 400000
API_STATUS_CODE_CLIENT_ERROR_FORMAT = 400001  # 请求数据格式错误
API_STATUS_CODE_CLIENT_ERROR_CONFIG = 400002  # 请求数据配置不支持
API_STATUS_CODE_SERVER_ERROR = 500000
API_STATUS_CODE_SERVER_ERROR_RUNNING = 500001  # 服务器运行中出错

parser = argparse.ArgumentParser(description='ASRT HTTP+Json RESTful API Service')
parser.add_argument('--listen', default='0.0.0.0', type=str, help='the network to listen')
parser.add_argument('--port', default='20001', type=str, help='the port to listen')
args = parser.parse_args()

app = Flask("ASRT API Service")

AUDIO_LENGTH = 1600
AUDIO_FEATURE_LENGTH = 200
CHANNELS = 1
# 默认输出的拼音的表示大小是1428,即1427个拼音+1个空白块
OUTPUT_SIZE = 1428
sm251bn = SpeechModel251BN(
    input_shape=(AUDIO_LENGTH, AUDIO_FEATURE_LENGTH, CHANNELS),
    output_size=OUTPUT_SIZE
)
feat = Spectrogram()
ms = ModelSpeech(sm251bn, feat, max_label_length=64)
ms.load_model('save_models/' + sm251bn.get_model_name() + '.model.h5')

ml = ModelLanguage('model_language')
ml.load_model()


class AsrtApiResponse:
    """
    ASRT语音识别基于HTTP协议的API接口响应类
    """

    def __init__(self, status_code, status_message='', result=''):
        self.status_code = status_code
        self.status_message = status_message
        self.result = result

    def to_json(self):
        """
        类转json
        """
        return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True)


# api接口根url:GET
@app.route('/', methods=["GET"])
def index_get():
    """
    根路径handle GET方法
    """
    buffer = ''
    with open('assets/default.html', 'r', encoding='utf-8') as file_handle:
        buffer = file_handle.read()
    return Response(buffer, mimetype='text/html; charset=utf-8')


# api接口根url:POST
@app.route('/', methods=["POST"])
def index_post():
    """
    根路径handle POST方法
    """
    json_data = AsrtApiResponse(API_STATUS_CODE_OK, 'ok')
    buffer = json_data.to_json()
    return Response(buffer, mimetype='application/json')


# 获取分类列表
@app.route('/<level>', methods=["POST"])
def recognition_post(level):
    """
    其他路径 POST方法
    """
    # 读取json文件内容
    try:
        if level == 'speech':
            request_data = request.get_json()
            samples = request_data['samples']
            wavdata_bytes = base64.urlsafe_b64decode(bytes(samples, encoding='utf-8'))
            sample_rate = request_data['sample_rate']
            channels = request_data['channels']
            byte_width = request_data['byte_width']

            wavdata = decode_wav_bytes(samples_data=wavdata_bytes,
                                       channels=channels, byte_width=byte_width)
            result = ms.recognize_speech(wavdata, sample_rate)

            json_data = AsrtApiResponse(API_STATUS_CODE_OK, 'speech level')
            json_data.result = result
            buffer = json_data.to_json()
            print('output:', buffer)
            return Response(buffer, mimetype='application/json')
        elif level == 'language':
            request_data = request.get_json()

            seq_pinyin = request_data['sequence_pinyin']

            result = ml.pinyin_to_text(seq_pinyin)

            json_data = AsrtApiResponse(API_STATUS_CODE_OK, 'language level')
            json_data.result = result
            buffer = json_data.to_json()
            print('output:', buffer)
            return Response(buffer, mimetype='application/json')
        elif level == 'all':
            request_data = request.get_json()

            samples = request_data['samples']
            wavdata_bytes = base64.urlsafe_b64decode(samples)
            sample_rate = request_data['sample_rate']
            channels = request_data['channels']
            byte_width = request_data['byte_width']

            wavdata = decode_wav_bytes(samples_data=wavdata_bytes,
                                       channels=channels, byte_width=byte_width)
            result_speech = ms.recognize_speech(wavdata, sample_rate)
            result = ml.pinyin_to_text(result_speech)

            json_data = AsrtApiResponse(API_STATUS_CODE_OK, 'all level')
            json_data.result = result
            buffer = json_data.to_json()
            print('ASRT Result:', result, 'output:', buffer)
            return Response(buffer, mimetype='application/json')
        else:
            request_data = request.get_json()
            print('input:', request_data)
            json_data = AsrtApiResponse(API_STATUS_CODE_CLIENT_ERROR, '')
            buffer = json_data.to_json()
            print('output:', buffer)
            return Response(buffer, mimetype='application/json')
    except Exception as except_general:
        request_data = request.get_json()
        # print(request_data['sample_rate'], request_data['channels'],
        # request_data['byte_width'], len(request_data['samples']),
        # request_data['samples'][-100:])
        json_data = AsrtApiResponse(API_STATUS_CODE_SERVER_ERROR, str(except_general))
        buffer = json_data.to_json()
        # print("input:", request_data, "\n", "output:", buffer)
        print("output:", buffer, "error:", except_general)
        return Response(buffer, mimetype='application/json')


if __name__ == '__main__':
    # for development env
    # app.run(host='0.0.0.0', port=20001)
    # for production env
    import waitress

    waitress.serve(app, host=args.listen, port=args.port)


================================================
FILE: asrt_config.json
================================================
{
    "dict_filename": "dict.txt",

    "dataset":{
        "train":[
            {
                "name": "thchs30_train",
                "data_list": "datalist/thchs30/train.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/thchs30/train.syllable.txt"
            },
            {
                "name": "stcmds_train",
                "data_list": "datalist/st-cmds/train.wav.txt",
                "data_path": "/data/speech_data",
                "label_list": "datalist/st-cmds/train.syllable.txt"
            },
            {
                "name": "primewords_train",
                "data_list": "datalist/primewords/train.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/primewords/train.syllable.txt"
            },
            {
                "name": "aishell_train",
                "data_list": "datalist/aishell/train.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/aishell/train.syllable.txt"
            },
            {
                "name": "aidatatang_train",
                "data_list": "datalist/aidatatang_lst/train.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/aidatatang_lst/train.syllable.txt"
            },
            {
                "name": "magicdata_train",
                "data_list": "datalist/magicdata_lst/train.wav.lst",
                "data_path": "/data/speech_data/magicdata",
                "label_list": "datalist/magicdata_lst/train.syllable.txt"
            }
        ],

        "dev":[
            {
                "name": "thchs30_dev",
                "data_list": "datalist/thchs30/cv.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/thchs30/cv.syllable.txt"
            },
            {
                "name": "stcmds_dev",
                "data_list": "datalist/st-cmds/dev.wav.txt",
                "data_path": "/data/speech_data",
                "label_list": "datalist/st-cmds/dev.syllable.txt"
            },
            {
                "name": "primewords_dev",
                "data_list": "datalist/primewords/dev.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/primewords/dev.syllable.txt"
            },
            {
                "name": "aishell_dev",
                "data_list": "datalist/aishell/dev.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/aishell/dev.syllable.txt"
            },
            {
                "name": "aidatatang_dev",
                "data_list": "datalist/aidatatang_lst/dev.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/aidatatang_lst/dev.syllable.txt"
            },
            {
                "name": "magicdata_dev",
                "data_list": "datalist/magicdata_lst/dev.wav.lst",
                "data_path": "/data/speech_data/magicdata",
                "label_list": "datalist/magicdata_lst/dev.syllable.txt"
            }
        ],

        "test":[
            {
                "name": "thchs30_test",
                "data_list": "datalist/thchs30/test.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/thchs30/test.syllable.txt"
            },
            {
                "name": "stcmds_test",
                "data_list": "datalist/st-cmds/test.wav.txt",
                "data_path": "/data/speech_data",
                "label_list": "datalist/st-cmds/test.syllable.txt"
            },
            {
                "name": "primewords_test",
                "data_list": "datalist/primewords/test.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/primewords/test.syllable.txt"
            },
            {
                "name": "aishell_test",
                "data_list": "datalist/aishell/test.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/aishell/test.syllable.txt"
            },
            {
                "name": "aidatatang_test",
                "data_list": "datalist/aidatatang_lst/test.wav.lst",
                "data_path": "/data/speech_data",
                "label_list": "datalist/aidatatang_lst/test.syllable.txt"
            },
            {
                "name": "magicdata_test",
                "data_list": "datalist/magicdata_lst/test.wav.lst",
                "data_path": "/data/speech_data/magicdata",
                "label_list": "datalist/magicdata_lst/test.syllable.txt"
            }
        ]
    }
}

================================================
FILE: assets/asrt.proto
================================================
/* Copyright 2016-2099 Ailemon.net

This file is part of ASRT Speech Recognition Tool.

ASRT is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
ASRT 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 General Public License for more details.

You should have received a copy of the GNU General Public License
along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
============================================================================ */

syntax = "proto3";
package asrt;

//定义服务接口
service AsrtGrpcService {
    rpc Speech (SpeechRequest) returns (SpeechResponse) {}  //一个服务中可以定义多个接口,也就是多个函数功能
    rpc Language (LanguageRequest) returns (TextResponse) {}
    rpc All (SpeechRequest) returns (TextResponse) {}
    rpc Stream (stream SpeechRequest) returns (stream TextResponse) {}
}

message SpeechRequest {
    WavData wav_data = 1;
}

message SpeechResponse {
    int32 status_code = 1; 
    string status_message = 2; 
    repeated string result_data = 3; // 拼音结果
}

message LanguageRequest {
    repeated string pinyins = 1;
}

message TextResponse {
    int32 status_code = 1; 
    string status_message = 2; 
    string text_result = 3;
}

message WavData{
    bytes samples = 1; // wav样本点字节
    int32 sample_rate = 2; // wav采样率
    int32 channels = 3; // wav通道数
    int32 byte_width = 4; // wav样本字节宽度
}


================================================
FILE: assets/asrt_pb2.py
================================================
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: asrt.proto
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database

# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()

DESCRIPTOR = _descriptor.FileDescriptor(
    name='asrt.proto',
    package='asrt',
    syntax='proto3',
    serialized_options=None,
    create_key=_descriptor._internal_create_key,
    serialized_pb=b'\n\nasrt.proto\x12\x04\x61srt\"0\n\rSpeechRequest\x12\x1f\n\x08wav_data\x18\x01 \x01(\x0b\x32\r.asrt.WavData\"R\n\x0eSpeechResponse\x12\x13\n\x0bstatus_code\x18\x01 \x01(\x05\x12\x16\n\x0estatus_message\x18\x02 \x01(\t\x12\x13\n\x0bresult_data\x18\x03 \x03(\t\"\"\n\x0fLanguageRequest\x12\x0f\n\x07pinyins\x18\x01 \x03(\t\"P\n\x0cTextResponse\x12\x13\n\x0bstatus_code\x18\x01 \x01(\x05\x12\x16\n\x0estatus_message\x18\x02 \x01(\t\x12\x13\n\x0btext_result\x18\x03 \x01(\t\"U\n\x07WavData\x12\x0f\n\x07samples\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\x05\x12\x10\n\x08\x63hannels\x18\x03 \x01(\x05\x12\x12\n\nbyte_width\x18\x04 \x01(\x05\x32\xec\x01\n\x0f\x41srtGrpcService\x12\x35\n\x06Speech\x12\x13.asrt.SpeechRequest\x1a\x14.asrt.SpeechResponse\"\x00\x12\x37\n\x08Language\x12\x15.asrt.LanguageRequest\x1a\x12.asrt.TextResponse\"\x00\x12\x30\n\x03\x41ll\x12\x13.asrt.SpeechRequest\x1a\x12.asrt.TextResponse\"\x00\x12\x37\n\x06Stream\x12\x13.asrt.SpeechRequest\x1a\x12.asrt.TextResponse\"\x00(\x01\x30\x01\x62\x06proto3'
)

_SPEECHREQUEST = _descriptor.Descriptor(
    name='SpeechRequest',
    full_name='asrt.SpeechRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='wav_data', full_name='asrt.SpeechRequest.wav_data', index=0,
            number=1, type=11, cpp_type=10, label=1,
            has_default_value=False, default_value=None,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=20,
    serialized_end=68,
)

_SPEECHRESPONSE = _descriptor.Descriptor(
    name='SpeechResponse',
    full_name='asrt.SpeechResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='status_code', full_name='asrt.SpeechResponse.status_code', index=0,
            number=1, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='status_message', full_name='asrt.SpeechResponse.status_message', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=b"".decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='result_data', full_name='asrt.SpeechResponse.result_data', index=2,
            number=3, type=9, cpp_type=9, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=70,
    serialized_end=152,
)

_LANGUAGEREQUEST = _descriptor.Descriptor(
    name='LanguageRequest',
    full_name='asrt.LanguageRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='pinyins', full_name='asrt.LanguageRequest.pinyins', index=0,
            number=1, type=9, cpp_type=9, label=3,
            has_default_value=False, default_value=[],
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=154,
    serialized_end=188,
)

_TEXTRESPONSE = _descriptor.Descriptor(
    name='TextResponse',
    full_name='asrt.TextResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='status_code', full_name='asrt.TextResponse.status_code', index=0,
            number=1, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='status_message', full_name='asrt.TextResponse.status_message', index=1,
            number=2, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=b"".decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='text_result', full_name='asrt.TextResponse.text_result', index=2,
            number=3, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=b"".decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=190,
    serialized_end=270,
)

_WAVDATA = _descriptor.Descriptor(
    name='WavData',
    full_name='asrt.WavData',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
        _descriptor.FieldDescriptor(
            name='samples', full_name='asrt.WavData.samples', index=0,
            number=1, type=12, cpp_type=9, label=1,
            has_default_value=False, default_value=b"",
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='sample_rate', full_name='asrt.WavData.sample_rate', index=1,
            number=2, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='channels', full_name='asrt.WavData.channels', index=2,
            number=3, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
        _descriptor.FieldDescriptor(
            name='byte_width', full_name='asrt.WavData.byte_width', index=3,
            number=4, type=5, cpp_type=1, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=272,
    serialized_end=357,
)

_SPEECHREQUEST.fields_by_name['wav_data'].message_type = _WAVDATA
DESCRIPTOR.message_types_by_name['SpeechRequest'] = _SPEECHREQUEST
DESCRIPTOR.message_types_by_name['SpeechResponse'] = _SPEECHRESPONSE
DESCRIPTOR.message_types_by_name['LanguageRequest'] = _LANGUAGEREQUEST
DESCRIPTOR.message_types_by_name['TextResponse'] = _TEXTRESPONSE
DESCRIPTOR.message_types_by_name['WavData'] = _WAVDATA
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

SpeechRequest = _reflection.GeneratedProtocolMessageType('SpeechRequest', (_message.Message,), {
    'DESCRIPTOR': _SPEECHREQUEST,
    '__module__': 'asrt_pb2'
    # @@protoc_insertion_point(class_scope:asrt.SpeechRequest)
})
_sym_db.RegisterMessage(SpeechRequest)

SpeechResponse = _reflection.GeneratedProtocolMessageType('SpeechResponse', (_message.Message,), {
    'DESCRIPTOR': _SPEECHRESPONSE,
    '__module__': 'asrt_pb2'
    # @@protoc_insertion_point(class_scope:asrt.SpeechResponse)
})
_sym_db.RegisterMessage(SpeechResponse)

LanguageRequest = _reflection.GeneratedProtocolMessageType('LanguageRequest', (_message.Message,), {
    'DESCRIPTOR': _LANGUAGEREQUEST,
    '__module__': 'asrt_pb2'
    # @@protoc_insertion_point(class_scope:asrt.LanguageRequest)
})
_sym_db.RegisterMessage(LanguageRequest)

TextResponse = _reflection.GeneratedProtocolMessageType('TextResponse', (_message.Message,), {
    'DESCRIPTOR': _TEXTRESPONSE,
    '__module__': 'asrt_pb2'
    # @@protoc_insertion_point(class_scope:asrt.TextResponse)
})
_sym_db.RegisterMessage(TextResponse)

WavData = _reflection.GeneratedProtocolMessageType('WavData', (_message.Message,), {
    'DESCRIPTOR': _WAVDATA,
    '__module__': 'asrt_pb2'
    # @@protoc_insertion_point(class_scope:asrt.WavData)
})
_sym_db.RegisterMessage(WavData)

_ASRTGRPCSERVICE = _descriptor.ServiceDescriptor(
    name='AsrtGrpcService',
    full_name='asrt.AsrtGrpcService',
    file=DESCRIPTOR,
    index=0,
    serialized_options=None,
    create_key=_descriptor._internal_create_key,
    serialized_start=360,
    serialized_end=596,
    methods=[
        _descriptor.MethodDescriptor(
            name='Speech',
            full_name='asrt.AsrtGrpcService.Speech',
            index=0,
            containing_service=None,
            input_type=_SPEECHREQUEST,
            output_type=_SPEECHRESPONSE,
            serialized_options=None,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.MethodDescriptor(
            name='Language',
            full_name='asrt.AsrtGrpcService.Language',
            index=1,
            containing_service=None,
            input_type=_LANGUAGEREQUEST,
            output_type=_TEXTRESPONSE,
            serialized_options=None,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.MethodDescriptor(
            name='All',
            full_name='asrt.AsrtGrpcService.All',
            index=2,
            containing_service=None,
            input_type=_SPEECHREQUEST,
            output_type=_TEXTRESPONSE,
            serialized_options=None,
            create_key=_descriptor._internal_create_key,
        ),
        _descriptor.MethodDescriptor(
            name='Stream',
            full_name='asrt.AsrtGrpcService.Stream',
            index=3,
            containing_service=None,
            input_type=_SPEECHREQUEST,
            output_type=_TEXTRESPONSE,
            serialized_options=None,
            create_key=_descriptor._internal_create_key,
        ),
    ])
_sym_db.RegisterServiceDescriptor(_ASRTGRPCSERVICE)

DESCRIPTOR.services_by_name['AsrtGrpcService'] = _ASRTGRPCSERVICE

# @@protoc_insertion_point(module_scope)


================================================
FILE: assets/asrt_pb2_grpc.py
================================================
# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

import assets.asrt_pb2 as asrt__pb2


class AsrtGrpcServiceStub(object):
    """定义服务接口
    """

    def __init__(self, channel):
        """Constructor.

        Args:
            channel: A grpc.Channel.
        """
        self.Speech = channel.unary_unary(
            '/asrt.AsrtGrpcService/Speech',
            request_serializer=asrt__pb2.SpeechRequest.SerializeToString,
            response_deserializer=asrt__pb2.SpeechResponse.FromString,
        )
        self.Language = channel.unary_unary(
            '/asrt.AsrtGrpcService/Language',
            request_serializer=asrt__pb2.LanguageRequest.SerializeToString,
            response_deserializer=asrt__pb2.TextResponse.FromString,
        )
        self.All = channel.unary_unary(
            '/asrt.AsrtGrpcService/All',
            request_serializer=asrt__pb2.SpeechRequest.SerializeToString,
            response_deserializer=asrt__pb2.TextResponse.FromString,
        )
        self.Stream = channel.stream_stream(
            '/asrt.AsrtGrpcService/Stream',
            request_serializer=asrt__pb2.SpeechRequest.SerializeToString,
            response_deserializer=asrt__pb2.TextResponse.FromString,
        )


class AsrtGrpcServiceServicer(object):
    """定义服务接口
    """

    def Speech(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Language(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def All(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Stream(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_AsrtGrpcServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Speech': grpc.unary_unary_rpc_method_handler(
            servicer.Speech,
            request_deserializer=asrt__pb2.SpeechRequest.FromString,
            response_serializer=asrt__pb2.SpeechResponse.SerializeToString,
        ),
        'Language': grpc.unary_unary_rpc_method_handler(
            servicer.Language,
            request_deserializer=asrt__pb2.LanguageRequest.FromString,
            response_serializer=asrt__pb2.TextResponse.SerializeToString,
        ),
        'All': grpc.unary_unary_rpc_method_handler(
            servicer.All,
            request_deserializer=asrt__pb2.SpeechRequest.FromString,
            response_serializer=asrt__pb2.TextResponse.SerializeToString,
        ),
        'Stream': grpc.stream_stream_rpc_method_handler(
            servicer.Stream,
            request_deserializer=asrt__pb2.SpeechRequest.FromString,
            response_serializer=asrt__pb2.TextResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'asrt.AsrtGrpcService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


# This class is part of an EXPERIMENTAL API.
class AsrtGrpcService(object):
    """定义服务接口
    """

    @staticmethod
    def Speech(request,
               target,
               options=(),
               channel_credentials=None,
               call_credentials=None,
               insecure=False,
               compression=None,
               wait_for_ready=None,
               timeout=None,
               metadata=None):
        return grpc.experimental.unary_unary(request, target, '/asrt.AsrtGrpcService/Speech',
                                             asrt__pb2.SpeechRequest.SerializeToString,
                                             asrt__pb2.SpeechResponse.FromString,
                                             options, channel_credentials,
                                             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Language(request,
                 target,
                 options=(),
                 channel_credentials=None,
                 call_credentials=None,
                 insecure=False,
                 compression=None,
                 wait_for_ready=None,
                 timeout=None,
                 metadata=None):
        return grpc.experimental.unary_unary(request, target, '/asrt.AsrtGrpcService/Language',
                                             asrt__pb2.LanguageRequest.SerializeToString,
                                             asrt__pb2.TextResponse.FromString,
                                             options, channel_credentials,
                                             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def All(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(request, target, '/asrt.AsrtGrpcService/All',
                                             asrt__pb2.SpeechRequest.SerializeToString,
                                             asrt__pb2.TextResponse.FromString,
                                             options, channel_credentials,
                                             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Stream(request_iterator,
               target,
               options=(),
               channel_credentials=None,
               call_credentials=None,
               insecure=False,
               compression=None,
               wait_for_ready=None,
               timeout=None,
               metadata=None):
        return grpc.experimental.stream_stream(request_iterator, target, '/asrt.AsrtGrpcService/Stream',
                                               asrt__pb2.SpeechRequest.SerializeToString,
                                               asrt__pb2.TextResponse.FromString,
                                               options, channel_credentials,
                                               insecure, call_credentials, compression, wait_for_ready, timeout,
                                               metadata)


================================================
FILE: assets/default.html
================================================
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>ASRT Speech Recognition API</title>
		<style>
		body {
			width: 35em;
			margin: 0 auto;
			font-family: Tahoma, Verdana, Arial, sans-serif;
    	}
		</style>
	</head>
	<body>
		<h1>ASRT Speech Recognition API</h1>
		<h3>framework version: 1.0</h3>
		<p>If you see this page, the ASRT api server is successfully installed and working. </p>
		<p>For online documentation and support please refer to <a href="https://asrt.ailemon.net">ASRT Project Page</a>.</p>
		<p>Please call this web api by post menthod. </p>
		<em>Thank you for using ASRT.</em>
		<footer>
			<p style="text-align: center;">Copyright © <a href="https://www.ailemon.net">ailemon.net</a></p>
		</footer>
	</body>
</html>

================================================
FILE: client_grpc.py
================================================
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
ASRT语音识别asrserver grpc协议测试专用客户端
"""

import grpc
import time

from assets.asrt_pb2_grpc import AsrtGrpcServiceStub
from assets.asrt_pb2 import SpeechRequest, LanguageRequest, WavData

from utils.ops import read_wav_bytes


def run_speech():
    """
    请求ASRT服务Speech方法
    :return:
    """
    conn = grpc.insecure_channel('127.0.0.1:20002')
    client = AsrtGrpcServiceStub(channel=conn)

    wav_bytes, sample_rate, channels, sample_width = read_wav_bytes('assets/A11_0.wav')
    print('sample_width:', sample_width)
    wav_data = WavData(samples=wav_bytes, sample_rate=sample_rate,
                       channels=channels, byte_width=sample_width)

    request = SpeechRequest(wav_data=wav_data)
    time_stamp0 = time.time()
    response = client.Speech(request)
    time_stamp1 = time.time()
    print('time:', time_stamp1 - time_stamp0, 's')
    print("received:", response.result_data)


def run_lan():
    """
    请求ASRT服务Language方法
    :return:
    """
    conn = grpc.insecure_channel('127.0.0.1:20002')
    client = AsrtGrpcServiceStub(channel=conn)
    pinyin_data = ['ni3', 'hao3', 'ya5']
    request = LanguageRequest(pinyins=pinyin_data)
    time_stamp0 = time.time()
    response = client.Language(request)
    time_stamp1 = time.time()
    print('time:', time_stamp1 - time_stamp0, 's')
    print("received:", response.text_result)


def run_all():
    """
    请求ASRT服务All方法
    :return:
    """
    conn = grpc.insecure_channel('127.0.0.1:20002')
    client = AsrtGrpcServiceStub(channel=conn)

    wav_bytes, sample_rate, channels, sample_width = read_wav_bytes('assets/A11_0.wav')
    print('sample_width:', sample_width)
    wav_data = WavData(samples=wav_bytes, sample_rate=sample_rate,
                       channels=channels, byte_width=sample_width)

    request = SpeechRequest(wav_data=wav_data)
    time_stamp0 = time.time()
    response = client.All(request)
    time_stamp1 = time.time()
    print("received:", response.text_result)
    print('time:', time_stamp1 - time_stamp0, 's')


def run_stream():
    """
    请求ASRT服务Stream方法
    :return:
    """
    conn = grpc.insecure_channel('127.0.0.1:20002')
    client = AsrtGrpcServiceStub(channel=conn)

    wav_bytes, sample_rate, channels, sample_width = read_wav_bytes('assets/A11_0.wav')
    print('sample_width:', sample_width)
    wav_data = WavData(samples=wav_bytes, sample_rate=sample_rate,
                       channels=channels, byte_width=sample_width)

    # 先制造一些客户端能发送的数据
    def make_some_data():
        for _ in range(1):
            time.sleep(1)
            yield SpeechRequest(wav_data=wav_data)

    try:
        status_response = client.Stream(make_some_data())
        for ret in status_response:
            print("received:", ret.text_result, " , status:", ret.status_code)
            time.sleep(0.1)
    except Exception as any_exception:
        print(f'err in send_status:{any_exception}')
        return


if __name__ == '__main__':
    # run_all()
    run_stream()


================================================
FILE: client_http.py
================================================
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

'''
@author: nl8590687
ASRT语音识别asrserver http协议测试专用客户端
'''
import base64
import json
import time
import requests
from utils.ops import read_wav_bytes

URL = 'http://127.0.0.1:20001/all'

wav_bytes, sample_rate, channels, sample_width = read_wav_bytes('assets/A11_0.wav')
datas = {
    'channels': channels,
    'sample_rate': sample_rate,
    'byte_width': sample_width,
    'samples': str(base64.urlsafe_b64encode(wav_bytes), encoding='utf-8')
}
headers = {'Content-Type': 'application/json'}

t0=time.time()
r = requests.post(URL, headers=headers, data=json.dumps(datas))
t1=time.time()
r.encoding='utf-8'

result = json.loads(r.text)
print(result)
print('time:', t1-t0, 's')


================================================
FILE: data_loader.py
================================================
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
加载语音数据集用的数据加载器的定义
"""
import os
import random
import numpy as np
from utils.config import load_config_file, DEFAULT_CONFIG_FILENAME, load_pinyin_dict
from utils.ops import read_wav_data


class DataLoader:
    """
    数据加载器

    参数:\\
        config: 配置信息字典
        dataset_type: 要加载的数据集类型,包含('train', 'dev', 'test')三种
    """
    def __init__(self, dataset_type:str):
        self.dataset_type = dataset_type

        self.data_list = list()
        self.wav_dict = dict()
        self.label_dict = dict()
        self.pinyin_list = list()
        self.pinyin_dict = dict()
        self._load_data()

    def _load_data(self):
        config = load_config_file(DEFAULT_CONFIG_FILENAME)

        self.pinyin_list, self.pinyin_dict = load_pinyin_dict(config['dict_filename'])

        for index in range(len(config['dataset'][self.dataset_type])):
            filename_datalist = config['dataset'][self.dataset_type][index]['data_list']
            filename_datapath = config['dataset'][self.dataset_type][index]['data_path']
            with open(filename_datalist, 'r', encoding='utf-8') as file_pointer:
                lines = file_pointer.read().split('\n')
                for line in lines:
                    if len(line) == 0:
                        continue
                    tokens = line.split(' ')
                    self.data_list.append(tokens[0])
                    self.wav_dict[tokens[0]] = os.path.join(filename_datapath, tokens[1])

            filename_labellist = config['dataset'][self.dataset_type][index]['label_list']
            with open(filename_labellist, 'r', encoding='utf-8') as file_pointer:
                lines = file_pointer.read().split('\n')
                for line in lines:
                    if len(line) == 0:
                        continue
                    tokens = line.split(' ')
                    self.label_dict[tokens[0]] = tokens[1:]

    def get_data_count(self) -> int:
        """
        获取数据集总数量
        """
        return len(self.data_list)

    def get_data(self, index: int) -> tuple:
        """
        按下标获取一条数据
        """
        mark = self.data_list[index]

        wav_signal, sample_rate, _, _ = read_wav_data(self.wav_dict[mark])
        labels = list()
        for item in self.label_dict[mark]:
            if len(item) == 0:
                continue
            labels.append(self.pinyin_dict[item])

        data_label = np.array(labels)
        return wav_signal, sample_rate, data_label

    def shuffle(self) -> None:
        """
        随机打乱数据
        """
        random.shuffle(self.data_list)


================================================
FILE: dict.txt
================================================
a1	阿啊呵腌吖锕
a2	啊呵嗄
a3	啊
a4	啊呵
a5	阿啊呵
ai1	哀挨埃唉哎捱锿诶
ai2	挨癌皑呆捱矮
ai3	矮蔼哎霭嗳
ai4	爱碍艾唉哎隘暧嗳瑷嗌嫒砹
an1	安谙鞍氨庵桉鹌
an3	俺铵揞埯
an4	案按暗岸黯胺犴
ang1	肮
ang2	昂
ang4	盎
ao1	凹熬
ao2	熬敖嚣嗷鏖鳌翱獒聱螯廒遨
ao3	袄拗媪
ao4	奥澳傲懊坳拗骜岙鏊
ba1	八巴吧叭芭扒疤笆粑岜
ba2	拔跋八茇菝魃
ba3	把靶钯
ba4	爸罢霸坝把耙灞鲅壩
ba5	吧罢叭
bai1	掰
bai2	白百
bai3	百摆伯柏佰捭
bai4	败拜呗稗
ban1	般班搬斑颁扳瘢癍
ban3	版板阪坂钣舨
ban4	办半伴扮瓣拌绊
bang1	帮邦浜梆
bang3	膀榜绑
bang4	棒膀傍磅谤镑蚌蒡
bao1	包胞炮剥褒苞孢煲龅
bao2	薄雹保
bao3	保宝饱堡葆褓鸨
bao4	报暴抱爆鲍曝刨瀑豹趵
bei1	背悲杯碑卑陂埤萆鹎
bei3	北
bei4	被备背辈倍贝蓓惫悖狈焙邶钡孛碚褙鐾鞴
bei5	臂呗
ben1	奔贲锛
ben3	本苯畚
ben4	奔笨夯坌
beng1	崩绷嘣
beng2	甭
beng3	绷
beng4	绷蹦迸甏泵蚌
bi1	逼
bi2	鼻荸匕比
bi3	比笔彼鄙匕俾妣吡秕舭
bi4	必毕币秘避闭壁臂弊辟碧拂毙蔽庇璧敝泌陛弼篦婢愎痹铋裨髀哔
bian1	编边鞭砭
bian3	贬扁匾碥褊
bian4	便变遍辩辨辫卞苄汴忭弁缏
bian5	边
biao1	标彪镖膘骠镳杓飚飑飙瘭髟
biao3	表裱婊
biao4	鳔
bie1	憋瘪鳖
bie2	别蹩
bie3	瘪
bie4	别
bin1	宾滨彬斌缤濒槟傧玢豳镔
bin4	鬓殡摈膑髌
bing1	兵冰并槟
bing3	饼屏丙柄秉炳禀邴
bing4	并病摒
bo1	波播拨剥玻饽菠钵趵鲅
bo2	博伯勃薄泊柏驳魄脖搏膊舶礴帛铂箔渤钹孛亳鹁踣饽
bo3	簸跛
bo4	薄柏簸擘檗
bo5	卜啵膊
bu1	逋晡钸
bu2	不醭补
bu3	补捕堡卜哺卟
bu4	不部布步怖簿埔埠瓿钚
ca1	擦拆嚓
ca3	礤
cai1	猜
cai2	才财材裁
cai3	采彩踩睬
cai4	采菜蔡
can1	参餐骖
can2	残惭蚕
can3	惨黪
can4	灿掺璨孱粲
cang1	苍仓沧舱伧
cang2	藏
cao1	操糙
cao2	曹槽嘈漕螬艚草
cao3	草
ce4	策测侧厕册恻
cen1	参
cen2	岑涔
ceng1	噌
ceng2	曾层
ceng4	蹭
cha1	差插叉碴喳嚓杈馇锸
cha2	查察茶叉茬碴楂猹搽槎檫
cha3	叉衩镲
cha4	差刹叉诧岔衩杈汊姹
chai1	差拆钗
chai2	柴豺侪
chai4	虿瘥
chan1	搀掺觇
chan2	缠禅蝉馋潺蟾婵谗廛孱镡澶躔产单
chan3	产铲阐谄冁蒇骣
chan4	颤忏羼
chang1	昌娼猖伥阊菖鲳
chang2	长场常尝肠偿倘裳嫦徜苌厂
chang3	场厂敞氅昶惝
chang4	唱畅倡怅鬯
chao1	超抄吵钞绰剿焯怊
chao2	朝潮嘲巢晁
chao3	炒吵
chao4	耖
che1	车砗
che3	扯
che4	彻撤澈掣坼辙
chen1	郴琛嗔抻
chen2	陈沉晨沈尘臣辰橙忱谌宸陳
chen3	碜
chen4	称趁衬谶榇龀
chen5	伧
cheng1	称撑秤瞠噌铛柽蛏
cheng2	成城程承诚盛乘呈惩澄橙丞埕枨塍铖裎酲
cheng3	逞骋裎
cheng4	称秤
chi1	吃痴哧嗤蚩笞鸱媸螭眵魑
chi2	持迟池驰匙弛踟墀茌篪坻
chi3	尺齿耻侈褫豉
chi4	赤斥翅啻炽敕叱饬傺彳瘛眙
chong1	冲充涌憧忡艟舂茺衝
chong2	重崇虫
chong3	宠
chong4	冲铳
chou1	抽瘳
chou2	愁仇筹酬绸踌惆畴稠帱俦雠
chou3	丑瞅
chou4	臭
chu1	出初樗
chu2	除厨躇橱雏锄蜍刍滁蹰处
chu3	处楚储础杵褚楮
chu4	处触畜矗怵搐绌黜亍憷
chuai1	揣搋
chuai3	揣
chuai4	揣啜踹嘬膪
chuan1	穿川巛氚
chuan2	传船遄椽舡
chuan3	喘舛
chuan4	串钏
chuang1	创窗疮
chuang2	床幢
chuang3	闯
chuang4	创怆
chui1	吹炊
chui2	垂锤捶陲椎槌棰
chun1	春椿蝽
chun2	纯唇醇淳鹑莼
chun3	蠢
chuo1	戳踔
chuo4	绰啜辍龊
ci1	差刺疵呲
ci2	词辞慈磁瓷兹茨雌祠茈鹚糍
ci3	此
ci4	次刺赐伺蚝
cong1	匆聪葱囱苁骢璁枞
cong2	从丛琮淙
cou4	凑辏腠
cu1	粗
cu2	徂殂
cu4	促簇醋卒猝蹴蹙蔟酢
cuan1	蹿撺汆镩
cuan2	攒
cuan4	窜篡爨
cui1	衰催摧崔隹榱
cui3	璀
cui4	脆粹萃翠瘁悴淬毳啐
cun1	村皴
cun2	存蹲
cun3	忖
cun4	寸
cuo1	搓撮磋蹉
cuo2	嵯矬痤瘥鹾
cuo3	脞
cuo4	错措挫厝锉
da1	答搭嗒耷褡哒
da2	打达答瘩沓鞑怛笪靼妲
da3	打
da4	大
da5	塔疸瘩
dai1	待呆呔
dai3	逮歹傣
dai4	大代带待戴袋贷逮殆黛怠玳岱迨骀绐埭甙帶
dan1	单担丹耽眈殚箪儋瘅聃郸
dan3	担胆掸赕疸
dan4	但担石弹淡旦蛋诞惮啖澹氮萏瘅
dang1	当裆铛當
dang3	党挡谠档
dang4	当荡档挡宕菪凼砀
dao1	刀叨忉氘
dao2	叨导
dao3	导倒岛蹈捣祷
dao4	到道倒悼盗稻
de2	得德锝嘚
de4	嘚
de5	的地得
dei3	得
deng1	登灯蹬噔簦
deng3	等戥
deng4	邓凳瞪澄蹬磴镫嶝
di1	提低滴堤嘀氐镝羝
di2	敌笛的迪涤嘀狄嫡翟荻籴觌镝
di3	底抵诋邸砥坻柢氐骶
di4	地第帝弟递蒂缔谛睇棣娣碲
di5	弟
dia3	嗲
dian1	颠滇掂癫巅
dian3	点典碘踮丶點
dian4	电店甸淀垫殿奠惦佃玷簟坫靛钿癜阽
diao1	雕刁凋叼貂碉鲷
diao3	鸟屌
diao4	调掉吊钓铫铞調
die1	爹跌
die2	叠迭碟谍蝶喋佚牒耋蹀堞瓞揲垤鲽
ding1	丁盯钉叮町酊疔仃耵玎
ding3	顶鼎酊
ding4	定订钉铤腚锭碇啶
diu1	丢铥丟
dong1	东冬咚岽氡鸫
dong3	懂董
dong4	动洞冻栋恫侗垌峒胨胴硐動
dou1	都兜蔸篼
dou3	斗抖陡蚪
dou4	读斗豆逗窦痘
du1	都督嘟
du2	读独顿毒渎牍犊黩髑椟
du3	肚睹堵赌笃
du4	度渡肚杜妒镀芏蠹
duan1	端
duan3	短
duan4	断段锻缎煅椴簖
dui1	堆
dui4	对队兑敦碓憝怼镦對
dun1	吨敦蹲墩礅镦
dun3	盹趸
dun4	顿盾钝炖遁沌囤砘
duo1	多咄哆掇裰
duo2	度夺踱铎掇
duo3	朵躲垛哚缍
duo4	舵堕跺剁惰垛驮柁
e1	阿婀屙
e2	额俄哦鹅娥峨蛾讹莪锇
e3	恶
e4	恶饿扼愕遏噩呃厄鄂轭颚鳄谔锷萼腭垩鹗苊阏惡
e5	呃
ei2	诶
ei3	诶
ei4	诶
en1	恩蒽
en4	摁嗯
er2	而儿鸸鲕耳
er3	尔耳迩饵洱珥铒
er4	二佴
fa1	发
fa2	罚乏伐阀筏垡
fa3	法砝
fa4	发珐
fan1	翻番帆藩幡蕃
fan2	凡烦繁樊蕃燔矾蘩钒蹯
fan3	反返
fan4	饭犯范贩泛梵畈飯
fang1	方芳妨坊邡枋钫
fang2	房防妨坊肪鲂
fang3	访仿纺彷舫紡
fang4	放
fang5	坊
fei1	非飞啡菲扉霏妃绯蜚鲱
fei2	肥腓淝
fei3	菲匪诽斐蜚翡悱篚榧
fei4	费废沸肺吠痱狒镄芾砩
fen1	分纷氛芬吩酚玢
fen2	坟焚汾棼鼢
fen3	粉
fen4	分份奋愤粪忿偾瀵鲼
feng1	风封丰峰疯锋蜂枫烽酆葑沣砜鋒
feng2	逢缝冯
feng3	讽唪
feng4	奉缝凤俸葑鳳
fo2	佛
fou3	否缶
fu1	夫肤敷孵呋稃麸趺跗
fu2	夫服福佛幅伏符浮扶弗拂袱俘芙孚匐辐涪氟桴蜉苻茯莩菔幞怫艴郛绂绋凫祓砩黻罘稃蚨芾蝠
fu3	府父腐抚辅甫俯斧脯釜腑拊滏黼符莆
fu4	服复父负副富付妇附赴腹覆赋傅缚咐阜讣驸赙馥蝮鲋鳆負
fu5	咐服袱夫腐复
ga1	咖嘎胳伽旮
ga2	嘎噶轧尜钆
ga3	嘎尕
ga4	尬
gai1	该赅垓陔
gai3	改
gai4	概盖丐钙芥溉戤
gan1	干甘肝杆尴乾竿坩苷柑泔矸疳酐
gan2	赶敢
gan3	感敢赶杆橄秆擀澉
gan4	干赣淦绀旰
gang1	刚钢纲缸扛杠冈肛罡剛
gang3	港岗
gang4	钢杠戆筻
gao1	高糕膏皋羔睾篙槔
gao3	稿搞藁槁缟镐杲
gao4	告膏诰郜锆
ge1	歌格哥戈割胳搁疙咯鸽屹仡圪纥袼
ge2	革格隔葛阁胳搁蛤嗝骼颌搿膈镉塥鬲噶
ge3	个各合盖葛哿舸
ge4	个各铬硌虼個
gei3	给給
gen1	根跟
gen2	哏
gen3	艮
gen4	亘艮茛
geng1	更耕庚羹赓
geng3	耿颈梗哽鲠埂绠
geng4	更
gong1	工公共红供功攻宫恭躬龚弓肱蚣觥
gong3	巩拱汞珙
gong4	共供贡
gou1	句沟勾钩篝佝枸缑鞲
gou3	狗苟岣枸笱
gou4	够购构勾觏垢诟媾遘彀
gu1	姑骨孤估辜咕呱箍沽菇轱鸪毂菰蛄酤觚
gu2	骨古鼓谷
gu3	古股鼓骨谷贾汩蛊毂鹄牯臌诂瞽罟钴嘏蛄鹘
gu4	故顾固估雇锢梏牿崮痼鲴
gua1	括瓜刮呱栝胍鸹
gua3	寡呱剐
gua4	挂褂卦诖
guai1	乖掴
guai3	拐
guai4	怪
guan1	关观官冠棺矜莞倌纶鳏
guan3	管馆莞
guan4	观惯冠贯罐灌掼盥涫鹳
guang1	光咣胱桄
guang3	广犷
guang4	逛桄
gui1	规归瑰龟硅闺皈傀圭妫鲑
gui3	鬼轨诡癸匦庋宄晷簋
gui4	贵桂跪柜刽炔刿桧炅鳜匮
gun3	滚鲧衮绲磙辊
gun4	棍
guo1	过锅郭涡聒蝈崞埚呙
guo2	国帼掴馘虢
guo3	果裹猓椁蜾
guo4	过過
ha1	哈铪
ha2	虾蛤
ha3	哈
ha4	哈
hai1	嘿咳嗨
hai2	还孩骸海還
hai3	海胲醢
hai4	害亥骇氦
han1	酣憨顸鼾蚶
han2	含寒汗韩涵函晗焓邯邗
han3	喊罕阚
han4	汉汗憾翰撼旱捍悍瀚焊颔菡撖
hang1	夯
hang2	行航吭杭绗珩颃
hang4	行巷沆
hao1	蒿薅嚆
hao2	号毫豪嚎壕貉嗥濠蚝好
hao3	好郝
hao4	好号浩耗皓昊灏镐颢
he1	喝呵诃嗬
he2	和何合河核盒禾荷阂涸阖貉曷颌劾菏盍纥蚵翮
he4	和何喝赫吓贺荷鹤壑褐
hei1	黑嘿嗨
hen2	痕很
hen3	很狠
hen4	恨
heng1	哼亨
heng2	横衡恒蘅珩桁
heng4	横
heng5	哼
hong1	轰哄烘薨訇
hong2	红洪鸿宏虹弘泓闳蕻黉荭
hong3	哄
hong4	哄讧蕻
hou2	侯喉猴瘊篌糇骺
hou3	吼
hou4	后候後厚侯逅堠鲎
hu1	乎呼戏忽糊惚唿滹轷烀
hu2	和胡湖糊核壶狐葫弧蝴囫瑚斛鹄醐猢槲鹕觳煳鹘
hu3	虎浒唬琥
hu4	护户互糊虎沪祜扈戽笏岵怙瓠鹱冱
hua1	华化花哗砉
hua2	华划滑哗豁猾骅铧
hua4	话华化划画桦
huai2	怀徊淮槐踝
huai4	坏
huai5	划
huan1	欢獾
huan2	还环寰鬟桓圜洹郇缳锾萑
huan3	缓
huan4	换患幻唤宦焕痪涣浣奂擐豢漶逭鲩
huang1	荒慌肓
huang2	黄皇煌惶徨璜簧凰潢蝗蟥遑隍磺癀湟篁鳇黃
huang3	晃恍谎幌
huang4	晃
hui1	挥辉灰恢徽堕诙晖麾珲咴虺隳
hui2	回徊蛔茴洄
hui3	毁悔虺
hui4	会汇惠慧溃绘讳贿晦秽诲彗烩荟卉喙恚浍哕缋桧蕙蟪
hun1	婚昏荤阍
hun2	混魂浑馄珲
hun4	混诨溷
huo1	豁劐攉锪耠
huo2	和活火
huo3	火伙夥钬
huo4	和或获货祸惑霍豁藿嚯镬蠖
ji1	其几期机基击奇激积鸡迹绩饥缉圾姬矶肌讥叽稽畸跻羁嵇唧畿齑箕屐剞玑赍犄墼芨丌咭笄乩績
ji2	及即辑级极集急籍吉疾嫉藉脊棘汲岌笈瘠诘亟楫蒺殛佶戢嵴蕺给圾
ji3	几给己革济纪挤脊戟虮掎麂
ji4	记系计济寄际技纪继既齐季寂祭忌剂冀妓骥蓟悸伎暨霁稷偈鲫髻觊荠跽哜鲚洎芰迹绩
jia1	家加佳夹嘉茄挟枷珈迦伽浃痂笳葭镓袈跏
jia2	夹颊戛荚郏恝铗袷蛱浃
jia3	假甲贾胛岬钾嘏瘕
jia4	价假架驾嫁稼
jia5	家
jian1	间坚监渐兼艰肩浅尖奸溅煎歼缄笺菅蒹搛湔缣戋犍鹣鲣鞯
jian3	简减检剪捡拣俭碱茧柬蹇謇硷睑锏枧戬谫囝裥笕翦趼
jian4	见间件建监渐健剑键荐鉴践舰箭贱溅槛谏僭涧饯毽锏楗腱牮踺
jiang1	将江疆姜浆僵缰茳礓豇
jiang3	讲奖蒋桨耩蔣
jiang4	将强降酱浆虹匠犟绛洚糨
jiao1	教交焦骄郊胶椒娇浇姣跤蕉礁鲛僬鹪蛟艽茭
jiao2	嚼矫脚
jiao3	角脚搅缴绞饺矫佼狡剿侥皎挢徼湫敫铰
jiao4	教觉校叫较轿嚼窖酵噍峤徼醮
jie1	接结节街阶皆揭楷嗟秸疖喈
jie2	结节杰捷截洁劫竭睫桔拮孑诘桀碣偈颉讦婕羯鲒解結
jie3	解姐
jie4	界解价介借戒届藉诫芥疥蚧骱
jie5	姐
jin1	今金禁津斤筋巾襟矜衿
jin3	尽仅紧谨锦瑾馑卺廑堇槿
jin4	进近尽仅禁劲晋浸靳缙烬噤觐荩赆妗
jing1	经京精惊睛晶荆兢鲸泾旌茎腈菁粳
jing3	警景井颈憬阱儆刭肼
jing4	经境竟静敬镜劲竞净径靖痉迳胫弪婧獍靓
jiong1	扃
jiong3	窘炯迥炅囧
jiu1	究纠揪鸠赳啾阄鬏
jiu3	九酒久韭灸玖
jiu4	就旧救疚舅咎臼鹫僦厩桕柩
ju1	车据且居俱拘驹鞠锯趄掬疽裾苴椐锔狙琚雎鞫蜛沮
ju2	局菊桔橘锔举
ju3	举柜矩咀沮踽龃榉莒枸
ju4	据句具剧巨聚拒距俱惧沮瞿锯炬飓踞遽倨钜犋屦榘窭讵醵苣
juan1	捐圈娟鹃涓镌蠲
juan3	卷锩
juan4	圈卷倦眷隽绢狷桊鄄劵
jue1	嗟撅噘
jue2	觉绝决角脚嚼掘诀崛爵抉倔獗厥蹶攫谲矍孓橛噱珏桷劂爝镢蕨觖
jue3	蹶
jue4	倔
jun1	军均君钧筠龟菌皲麇
jun4	俊峻隽菌郡骏竣捃浚
ka1	咖喀咔
ka3	卡咯咔佧胩
kai1	开揩锎
kai3	慨凯铠楷恺蒈剀垲锴
kai4	忾
kan1	看刊堪勘龛戡
kan3	侃砍坎槛莰
kan4	看嵌瞰阚磡
kang1	康慷糠闶
kang2	扛
kang4	抗炕亢伉闶钪
kao1	尻
kao3	考烤拷栲
kao4	靠铐犒
ke1	科颗柯呵棵苛磕坷嗑瞌轲稞疴蝌钶窠颏珂髁
ke2	咳壳颏可
ke3	可渴坷轲岢
ke4	克客刻课恪嗑溘骒缂氪锞蚵科可
ken3	肯恳啃垦龈
ken4	裉
keng1	坑吭铿
kong1	空倥崆箜
kong3	恐孔倥
kong4	空控
kou1	抠芤眍
kou3	口
kou4	扣寇叩蔻筘
ku1	哭枯窟骷刳堀
ku3	苦
ku4	库裤酷喾绔
kua1	夸
kua3	垮侉
kua4	跨挎胯
kuai3	蒯
kuai4	快块筷脍会哙侩狯浍郐
kuan1	宽髋
kuan3	款
kuang1	框筐匡哐诓
kuang2	狂诳
kuang3	夼
kuang4	况矿框旷眶邝圹纩贶況
kui1	亏窥盔岿悝
kui2	魁睽逵葵奎馗夔喹隗暌揆蝰
kui3	傀跬
kui4	愧溃馈匮喟聩篑蒉愦
kun1	昆坤鲲锟醌琨髡
kun3	捆悃阃
kun4	困
kuo4	括适阔扩廓栝蛞
la1	拉啦喇垃邋
la2	拉喇旯砬
la3	拉喇
la4	落拉辣腊蜡剌瘌
la5	啦
lai2	来莱徕涞崃铼來
lai4	赖睐癞籁赉濑
lan2	兰蓝栏拦篮澜婪岚斓阑褴镧谰
lan3	懒览揽榄缆漤罱懶
lan4	烂滥
lang1	啷
lang2	狼郎廊琅螂榔锒稂阆
lang3	朗
lang4	浪郎莨蒗阆
lao1	捞
lao2	劳牢唠崂铹痨醪老
lao3	老姥佬潦栳铑
lao4	落络唠烙酪涝耢
lao5	姥
le1	肋
le4	乐勒仂叻泐鳓
le5	了
lei1	勒擂
lei2	累雷擂羸镭嫘缧檑蕾
lei3	累蕾垒磊儡诔耒
lei4	类泪累擂肋酹
lei5	嘞
leng1	棱
leng2	楞棱塄冷
leng3	冷
leng4	愣
li1	哩
li2	离丽黎璃漓狸梨篱犁厘罹藜骊蜊黧缡喱鹂嫠蠡鲡蓠理礼離嚟
li3	里理李礼哩鲤俚逦娌悝澧锂蠡醴鳢裡
li4	力利立历例丽励厉莉笠粒俐栗隶吏沥雳莅戾俪砺痢郦詈荔枥呖唳猁溧砾栎轹傈坜苈疠疬蛎鬲篥粝跞
li5	璃哩莉里
lia3	俩
lian2	联连怜莲廉帘涟镰裢濂臁奁蠊鲢
lian3	脸敛琏蔹裣
lian4	练恋炼链殓楝潋
liang2	量良梁凉粮粱踉莨椋墚两
liang3	两俩魉
liang4	量亮辆凉谅晾踉靓
liao1	撩撂
liao2	聊疗辽僚寥撩撂缭寮燎嘹獠鹩了
liao3	了潦燎蓼钌
liao4	了料廖镣撩撂尥钌
lie1	咧
lie3	裂咧
lie4	列烈裂劣猎趔冽洌捩埒躐鬣
lie5	咧
lin2	林临邻琳淋霖麟鳞磷嶙辚粼遴啉瞵
lin3	凛懔檩廪
lin4	淋吝躏赁蔺膦
lin1	拎
ling2	令灵零龄凌玲铃陵伶聆囹棱菱苓翎棂瓴绫酃泠羚蛉柃鲮领岭
ling3	领令岭
ling4	令另呤
liu1	溜熘
liu2	留流刘瘤榴浏硫琉遛馏镏旒骝鎏柳
liu3	柳绺锍
liu4	六溜碌遛馏镏鹨
lo5	咯
long1	隆
long2	龙隆笼胧咙聋珑窿茏栊泷砻癃
long3	笼拢垄陇垅
long4	弄
lou1	搂
lou2	楼喽偻娄髅蝼蒌耧
lou3	搂篓嵝
lou4	露陋漏镂瘘
lou5	喽
lu1	噜撸
lu2	卢炉庐芦颅泸轳鲈垆胪鸬舻栌
lu3	鲁芦卤虏掳橹镥
lu4	六路陆录露绿鹿碌禄辘麓赂漉戮簏鹭潞璐辂渌蓼逯
lu5	轳氇噜
lv3	旅履屡侣缕吕捋铝偻褛膂稆
lv4	律绿率虑滤氯緑
lv5	驴榈闾率
luan2	峦挛孪栾銮滦鸾娈脔
luan3	卵
luan4	乱
lve3	掠
lve4	略掠锊
lun1	抡
lun2	论轮伦沦仑抡囵纶
lun4	论
luo1	落罗捋啰
luo2	罗逻萝螺锣箩骡猡椤脶镙
luo3	裸倮蠃瘰
luo4	落络洛骆咯摞烙珞泺漯荦硌雒
luo5	罗
m2	呒
ma1	妈麻摩抹蚂嬷
ma2	吗麻蟆马玛
ma3	马吗码玛蚂犸
ma4	骂蚂唛杩犸
ma5	么吗嘛妈嗎
mai2	埋霾
mai3	买荬買
mai4	卖麦迈脉劢
man1	颟
man2	蛮馒瞒埋蔓谩鳗鞔满
man3	满螨
man4	慢漫曼蔓谩墁幔缦熳镘
mang2	忙茫盲芒氓邙硭
mang3	莽蟒漭
mao1	猫貓
mao2	毛猫矛茅髦锚牦旄蝥蟊茆
mao3	卯铆峁泖昴
mao4	冒贸帽貌茂耄瑁懋袤瞀貿
me5	么麽麼
mei2	没眉梅媒枚煤霉玫糜酶莓嵋湄楣猸镅鹛美每沒
mei3	美每镁浼
mei4	妹魅昧谜媚寐袂
men1	闷
men2	门扪钔
men4	闷懑焖
men5	们們
meng1	蒙
meng2	蒙盟朦氓萌檬瞢甍礞虻艨濛
meng3	蒙猛勐懵蠓蜢锰艋
meng4	梦孟
mi1	眯咪
mi2	迷弥谜靡糜醚麋猕祢縻蘼米
mi3	米眯靡弭敉脒芈
mi4	密秘觅蜜谧泌汨宓幂嘧
mian2	棉眠绵
mian3	免缅勉腼冕娩渑湎沔眄黾
mian4	面
miao1	喵
miao2	描苗瞄鹋
miao3	秒渺藐缈淼杪邈眇
miao4	妙庙缪
mie1	乜咩
mie4	灭蔑篾蠛
min2	民珉岷缗玟苠
min3	敏悯闽泯皿抿闵愍黾鳘
ming2	名明鸣盟铭冥茗溟瞑暝螟
ming3	酩
ming4	命
miu4	谬缪
mo1	摸
mo2	无模麽磨摸摩魔膜蘑馍摹
mo3	抹
mo4	莫陌磨末默沫漠寞没墨茉
mo5	寞沫
mu3	拇牡亩姆母姥
mu4	墓暮幕募慕木目睦牧穆沐
na2	拿哪
na3	哪
na4	呐钠那娜纳衲
na5	呐
nai3	氖乃奶妳
nai4	耐奈
nan2	南男难楠喃
nan3	腩蝻赧
nan4	难
nang2	囊
nao1	孬
nao2	挠
nao3	脑恼
nao4	闹淖
ne2	哪
ne5	呢
nei3	馁
nei4	内
nen4	嫩
neng2	能
ni1	妮
ni2	霓倪泥尼
ni3	拟你
ni4	匿腻逆溺昵
nian1	蔫拈
nian2	年粘黏拈鲶
nian3	碾撵捻
nian4	念
niang2	娘
niang4	酿
niao3	鸟袅嬲
niao4	尿
nie1	捏㖏
nie4	聂孽啮镊镍涅
nin2	您
ning2	柠狞凝宁拧咛
ning3	拧
ning4	拧泞宁
niu2	牛
niu3	扭钮纽
niu4	拗
nong1	浓脓
nong2	浓农侬
nong4	弄
nu2	奴孥
nu3	努弩
nu4	怒
nv3	女钕
nuan3	暖
nue4	虐疟
nuo2	挪傩娜
nuo4	懦糯诺
o2	哦
o5	哦
ou1	欧鸥殴瓯呕歐
ou3	藕呕偶
ou4	沤
pa1	啪趴爬葩
pa2	爬琶杷
pa4	帕怕
pa5	琶杷
pai1	拍
pai2	排牌徘
pai4	湃派
pan1	攀潘
pan2	盘胖磐
pan4	盼畔判叛
pang1	乓
pang2	庞旁螃彷
pang3	耪
pang4	胖
pao1	抛
pao2	咆袍刨庖
pao3	跑
pao4	炮泡
pei1	呸胚
pei2	培裴赔陪
pei4	配佩沛
pen1	喷
pen2	盆
peng1	砰抨烹
peng2	澎彭蓬棚硼篷膨朋鹏芃
peng3	捧
peng4	碰
peng5	篷蓬
pi1	坯砒霹批披劈丕
pi2	皮琵毗啤脾疲枇铍貔
pi3	匹痞癖
pi4	僻屁譬辟媲
pian1	篇偏片翩
pian2	骈
pian4	片骗
piao1	飘漂
piao2	瓢朴嫖漂
piao3	瞟
piao4	漂票嫖
pie1	撇瞥
pie3	撇瞥
pin1	拼拚
pin2	频贫品嫔
pin3	品
pin4	聘
ping1	乒娉
ping2	坪苹萍平凭瓶评屏
po1	坡泼颇
po2	婆鄱
po3	颇叵
po4	破魄迫粕朴珀
pou1	剖
pu1	扑铺仆噗
pu2	仆莆葡菩蒲谱濮璞
pu3	普谱埔朴圃浦
pu4	铺曝瀑
qi1	期七欺栖漆妻凄柒沏戚桼
qi2	其旗琪骑骐棋歧岐琦齐奇祁祺麒起祈淇芪锜脐綦鳍圻
qi3	起启企岂祈乞绮杞
qi4	弃气器汽戚泣砌契讫
qia1	掐葜袷恰
qia3	卡
qia4	恰洽髂
qian1	千签牵迁谦铅骞悭芊愆阡仟岍扦佥搴褰钎
qian2	前钱潜乾虔钳掮黔荨钤犍箝
qian3	浅遣谴缱肷
qian4	欠歉纤嵌倩堑茜芡慊椠
qiang1	将枪抢腔呛锵跄羌戕戗镪蜣锖
qiang2	强墙蔷樯嫱
qiang3	强抢襁镪羟
qiang4	呛跄炝戗
qiao1	悄敲雀锹跷橇缲硗劁
qiao2	桥乔侨瞧翘蕉憔樵峤谯荞鞒
qiao3	悄巧雀愀
qiao4	翘俏窍壳峭撬鞘诮谯
qie1	切
qie3	且
qie4	切窃怯趄妾砌惬锲挈郄箧慊
qin1	亲钦侵衾
qin2	琴秦勤芹擒矜覃禽噙廑溱檎嗪芩螓
qin3	寝
qin4	沁揿吣
qing1	青清轻倾卿氢蜻圊鲭
qing2	情晴擎氰檠黥
qing3	请顷謦苘
qing4	亲庆罄磬箐綮
qiong2	穷琼穹茕邛蛩筇跫銎
qiu1	秋邱丘龟蚯鳅楸湫
qiu2	求球仇囚酋裘虬俅遒赇泅逑犰蝤巯鼽
qiu3	糗
qu1	区曲屈趋驱躯觑岖蛐祛蛆麴诎黢
qu2	渠瞿衢癯劬璩氍朐磲鸲蕖蠼蘧取佢
qu3	取曲娶龋苣
qu4	去趣觑阒
qu5	戌去
quan1	圈悛
quan2	全权泉拳诠颧蜷荃铨痊醛辁筌鬈權
quan3	犬绻畎
quan4	劝券
que1	缺阙炔
que2	瘸
que4	却确雀榷鹊阕阙悫
qun1	逡
qun2	群裙麇
ran2	然燃髯蚺
ran3	染冉苒
rang1	嚷
rang2	瓤禳穰
rang3	嚷攘壤
rang4	让
rao2	饶娆桡荛
rao3	扰绕娆
rao4	绕
re3	若惹喏
re4	热
ren2	人任仁壬
ren3	忍稔荏
ren4	任认韧刃纫饪仞葚妊轫衽恁
ren5	人
reng1	扔
reng2	仍
ri4	日
rong2	容荣融蓉溶绒熔榕戎嵘茸狨肜蝾
rong3	冗
rou2	柔揉蹂糅鞣
rou4	肉
ru2	如儒茹嚅濡孺蠕薷铷襦颥乳
ru3	辱乳汝
ru4	入褥缛洳溽蓐
ruan3	软阮朊
rui2	蕤
rui3	蕊
rui4	瑞锐芮睿枘蚋
run4	润闰
ruo4	若弱偌箬
sa1	撒仨挲
sa3	洒撒
sa4	萨卅飒脎
sai1	思塞腮鳃噻
sai4	赛塞
san1	三毵
san3	散伞馓糁霰
san4	散
sang1	丧桑
sang3	嗓搡磉颡
sang4	丧
sao1	骚搔臊缲缫鳋
sao3	扫嫂
sao4	扫梢臊埽瘙
se4	色塞涩瑟啬铯穑
sen1	森
seng1	僧
sha1	杀沙刹纱杉莎煞砂挲鲨痧裟铩
sha3	傻
sha4	沙啥厦煞霎嗄歃唼
shai1	筛酾
shai3	色
shai4	晒
shan1	山衫删煽扇珊杉栅跚姗潸膻芟埏钐舢苫髟
shan3	闪陕掺
shan4	单善扇禅擅膳讪汕赡缮嬗掸骟剡苫鄯钐疝蟮鳝
shang1	商伤汤殇觞熵墒
shang3	上赏晌垧
shang4	上尚绱
shang5	裳上
shao1	烧稍梢捎鞘蛸筲艄
shao2	勺韶苕杓芍
shao3	少
shao4	少绍召稍哨邵捎潲劭
she1	奢赊猞畲
she2	折舌蛇佘
she3	舍
she4	社设舍涉射摄赦慑麝滠歙厍
shei2	谁
shen1	身深参申伸绅呻莘娠诜砷糁珅
shen2	什神
shen3	审沈婶谂哂渖矧
shen4	甚慎渗肾蜃葚胂椹
sheng1	生声胜升牲甥笙
sheng2	绳渑
sheng3	省眚
sheng4	胜圣盛乘剩嵊晟
shi1	师诗失施尸湿狮嘘虱蓍酾鲺
shi2	十时实什识食石拾蚀埘莳炻鲥
shi3	使始史驶屎矢豕
shi4	是事世市士式视似示室势试释适氏饰逝誓嗜侍峙仕恃柿轼拭噬弑谥莳贳铈螫舐筮识
shi5	殖匙识
shou1	收
shou2	熟手首
shou3	手首守艏
shou4	受授售瘦寿兽狩绶
shu1	书输殊舒叔疏抒淑梳枢蔬倏菽摅姝纾毹殳疋
shu2	熟孰赎塾秫
shu3	数属署鼠薯暑蜀黍曙
shu4	数术树述束竖恕墅漱俞戍庶澍沭腧
shua1	刷唰
shua3	耍
shua4	刷
shuai1	衰摔
shuai3	甩
shuai4	率帅蟀
shuan1	栓拴闩
shuan4	涮
shuang1	双霜孀泷
shuang3	爽
shui2	谁水
shui3	水
shui4	税睡说
shun3	吮
shun4	顺舜瞬
shuo1	说
shuo4	数朔硕烁铄妁蒴槊搠
si1	思斯司私丝撕厮嘶鸶咝澌缌锶蛳
si3	死
si4	四似食寺肆伺饲嗣巳祀驷泗俟汜兕姒耜笥
si5	司思
song1	松忪淞崧嵩凇菘
song3	耸悚怂竦
song4	送宋诵颂讼
sou1	搜艘馊嗖溲飕锼螋
sou3	擞叟薮嗾瞍
sou4	嗽擞
su1	苏稣酥
su2	俗
su4	诉速素肃宿缩塑溯粟簌夙嗉谡僳愫涑蔌觫
suan1	酸狻
suan4	算蒜
sui1	虽尿荽睢眭濉
sui2	随遂隋绥
sui3	髓
sui4	岁碎遂祟隧邃穗燧谇
sun1	孙荪狲飧
sun3	损笋榫隼
suo1	缩莎梭嗦唆挲娑睃桫嗍蓑羧
suo2	所索
suo3	所索锁琐唢
suo5	嗦
ta1	他她它踏塌遢溻铊趿
ta3	塔鳎獭
ta4	踏拓榻嗒蹋沓挞闼漯遢
tai1	台胎苔
tai2	台抬苔邰薹骀炱跆鲐
tai3	呔
tai4	太态泰汰酞肽钛
tan1	摊贪滩瘫坍
tan2	谈弹坛谭潭覃痰澹檀昙锬镡郯
tan3	坦毯忐袒钽
tan4	探叹炭碳
tan5	弹
tang1	汤趟铴镗耥羰
tang2	堂唐糖膛塘棠搪溏螳瑭樘镗螗饧醣
tang3	躺倘淌傥帑
tang4	趟烫
tao1	涛掏滔叨焘韬饕绦
tao2	逃陶桃淘萄啕洮鼗
tao3	讨
tao4	套
te4	特忑忒慝铽
tei1	忒
teng2	腾疼藤誊滕
ti1	体踢梯剔锑
ti2	提题啼蹄醍绨缇鹈荑
ti3	体
ti4	替涕剃惕屉嚏悌倜逖绨裼
tian1	天添
tian2	田填甜恬佃阗畋钿嗔
tian3	腆舔忝殄
tian4	掭
tiao1	挑佻祧
tiao2	条调迢鲦苕髫龆蜩笤
tiao3	挑窕
tiao4	跳眺粜
tie1	贴帖萜
tie3	铁帖
tie4	帖餮
ting1	听厅汀烃
ting2	停庭亭婷廷霆蜓葶莛
ting3	挺艇町铤梃
ting4	梃
tong1	通恫嗵
tong2	同童彤铜桐瞳佟酮侗仝垌茼峒潼砼硐
tong3	统筒桶捅侗
tong4	同通痛恸
tou1	偷
tou2	头投骰
tou3	钭
tou4	透
tu1	突秃凸
tu2	图途徒屠涂荼菟酴凃
tu3	土吐钍
tu4	吐兔堍菟
tuan1	湍
tuan2	团抟
tuan3	疃
tuan4	彖
tui1	推忒
tui2	颓
tui3	腿
tui4	退褪蜕煺
tun1	吞暾
tun2	屯饨臀囤豚炖
tun3	氽
tun4	饨
tuo1	托脱拖乇
tuo2	陀舵驼砣驮沱跎坨鸵橐佗铊酡柁鼍
tuo3	妥椭庹
tuo4	魄拓唾柝箨
wa1	挖哇凹娲蛙洼
wa2	娃瓦
wa3	瓦佤
wa4	瓦袜腽
wa5	哇娃
wai1	歪
wai3	崴
wai4	外
wan1	湾弯蜿剜豌灣
wan2	完玩顽丸纨芄烷碗婉
wan3	晚碗挽婉惋宛莞娩畹皖绾琬脘菀
wan4	万腕蔓
wang1	汪
wang2	王亡芒往网
wang3	往网枉惘罔辋魍
wang4	望王往忘旺妄
wei1	威微危巍萎偎薇逶煨崴葳隈委
wei2	为维围唯违韦惟帷帏圩囗潍桅嵬闱沩涠位薇
wei3	委伟唯尾玮伪炜纬萎娓苇猥痿韪洧隗诿艉鲔
wei4	为位未味卫谓遗慰魏蔚畏胃喂尉渭猬軎
wen1	温瘟
wen2	文闻纹蚊雯璺阌稳炆
wen3	稳吻紊刎
wen4	问纹汶璺紊搵
weng1	翁嗡
weng3	蓊
weng4	瓮蕹
wo1	窝涡蜗喔倭挝莴
wo2	哦我
wo3	我
wo4	握卧渥沃斡幄肟硪龌
wu1	於恶屋污乌巫呜诬兀钨邬圬
wu2	无亡吴吾捂毋梧唔芜浯蜈五舞無
wu3	五武午舞伍侮捂妩忤鹉牾迕庑怃仵
wu4	物务误恶悟乌雾勿坞戊兀晤鹜痦寤骛芴杌焐阢婺鋈
xi1	西息希吸惜稀悉析夕牺腊昔熙兮溪嘻锡晰樨熄膝栖郗犀曦奚羲唏蹊淅皙汐嬉茜熹烯翕蟋歙浠僖穸蜥螅菥舾矽粞硒醯欷鼷
xi2	席习袭媳檄隰觋
xi3	喜洗禧徙玺屣葸蓰铣
xi4	系细戏隙饩阋禊舄
xia1	瞎虾呷
xia2	峡侠狭霞暇辖遐匣黠瑕狎硖柙
xia4	下夏吓厦唬
xian1	先鲜仙掀纤暹莶锨氙祆籼酰跹
xian2	闲贤嫌咸弦娴衔涎舷鹇痫閑
xian3	显险鲜洗跣猃藓铣燹蚬筅冼癣
xian4	现见线限县献宪陷羡馅腺岘苋霰
xiang1	相香乡箱厢湘镶襄骧葙芗缃
xiang2	降详祥翔庠想
xiang3	想响享飨饷鲞
xiang4	相向象像项巷橡蟓
xiao1	消销潇肖萧宵削嚣逍硝霄哮枭骁箫枵哓蛸绡魈銷
xiao2	淆崤小
xiao3	小晓筱
xiao4	笑校效肖孝啸哮
xie1	些歇楔蝎
xie2	叶协鞋携斜胁谐邪挟偕撷勰颉缬写
xie3	写血
xie4	写解谢泄契械屑卸懈泻亵蟹邂榭瀣薤燮躞廨绁渫榍獬
xin1	心新欣辛薪馨鑫芯昕忻歆锌
xin2	寻镡
xin4	信芯衅
xing1	兴星腥惺猩
xing2	行形型刑邢陉荥饧硎
xing3	省醒擤
xing4	性兴姓幸杏悻荇
xiong1	兄胸凶匈汹芎
xiong2	雄熊
xiu1	修休羞咻馐庥鸺貅髹貅
xiu3	宿朽
xiu4	秀袖宿臭绣锈嗅岫溴
xu1	需须虚吁嘘墟戌胥砉圩盱顼虛
xu2	徐
xu3	许浒栩诩糈醑
xu4	续序绪蓄叙畜恤絮旭婿酗煦洫溆勖
xu5	蓿
xuan1	宣喧轩萱暄谖揎儇煊瑄
xuan2	旋悬玄漩璇痃选玹
xuan3	选癣
xuan4	旋券炫渲绚眩铉泫碹楦镟
xue1	削靴薛
xue2	学穴噱踅泶
xue3	雪鳕
xue4	血谑
xun1	熏勋荤醺薰埙曛窨獯
xun2	寻询巡循旬驯荀峋洵恂郇浔鲟荨
xun4	训迅讯逊熏殉巽徇汛蕈浚
ya1	压雅呀押鸦哑鸭丫垭桠
ya2	牙涯崖芽衙睚伢岈琊蚜
ya3	雅痖疋哑
ya4	亚压讶轧娅迓揠氩砑
ya5	呀
yan1	烟燕咽殷焉淹阉腌嫣胭湮阏鄢菸崦恹
yan2	言严研延沿颜炎阎盐岩蜒檐妍筵芫闫阽眼
yan3	眼演掩衍奄俨偃魇鼹兖郾琰罨厣剡
yan4	验厌燕宴咽雁焰艳谚彦研沿焱晏唁砚堰赝餍滟酽谳
yang1	央泱秧鸯殃鞅
yang2	洋阳杨扬羊疡佯烊徉炀蛘养仰
yang3	养仰痒氧
yang4	样漾恙烊怏鞅
yao1	要约邀腰夭妖吆幺么
yao2	摇遥姚陶尧谣瑶窑肴侥铫珧轺爻徭繇鳐垚
yao3	咬杳窈舀崾
yao4	要药耀钥鹞曜疟
ye1	耶噎椰掖
ye2	爷耶邪揶铘也野
ye3	也野冶
ye4	业夜叶页液咽曳拽烨掖腋谒邺靥晔
yi1	一医衣依椅伊漪咿揖噫猗铱欹黟
yi2	移疑遗宜仪蛇姨夷怡颐彝咦贻迤痍胰沂饴圯荑诒眙嶷一以谊
yi3	以已衣尾椅矣乙蚁倚迤蛾旖苡钇舣酏
yi4	意义议易衣艺译异益亦亿忆谊抑翼役艾溢毅裔逸轶弈翌疫绎佚奕熠诣弋驿懿呓屹薏噫镒缢邑臆刈羿仡峄怿悒肄佾殪挹埸劓镱瘗癔翊蜴嗌翳一
yin1	因音阴姻殷茵荫喑湮氤堙洇铟
yin2	银吟寅淫垠鄞霪狺夤圻龈饮引隐
yin3	引隐饮瘾殷尹蚓吲
yin4	印饮荫胤茚窨
ying1	应英鹰婴樱膺莺罂鹦缨瑛璎撄嘤
ying2	营迎赢盈蝇莹荧萤萦瀛楹嬴茔滢潆荥蓥影盁
ying3	影颖颍瘿郢
ying4	应硬映媵
yo1	育哟唷
yo5	哟
yong1	拥庸佣雍臃邕镛墉慵痈壅鳙饔
yong2	喁勇永
yong3	永勇涌踊泳咏俑恿甬蛹
yong4	用佣
you1	优幽忧悠攸呦
you2	由游油邮尤犹柚鱿莸尢铀猷疣蚰蝣蝤繇莜有友
you3	有友黝酉莠牖铕
you4	有又右幼诱佑柚囿鼬宥侑蚴釉祐
yu1	於吁迂淤纡瘀
yu2	于与余予鱼愚舆娱愉馀逾渔渝俞萸瑜隅揄榆虞禺谀腴竽妤臾欤觎盂窬蝓嵛狳舁雩於雨
yu3	雨与语予宇羽禹圄屿龉伛圉庾瘐窳俣禺
yu4	与语育遇狱雨欲预玉愈谷域誉吁蔚寓豫粥郁喻裕浴御驭尉谕毓妪峪芋昱煜熨燠菀蓣饫阈鬻聿钰鹆鹬蜮彧
yuan1	冤渊鸳眢鸢箢
yuan2	员元原园源圆缘援袁猿垣辕沅媛芫橼圜塬爰螈鼋远
yuan3	远
yuan4	院愿怨苑媛掾垸瑗
yue1	约曰
yue4	月越阅跃乐悦岳粤说钥刖瀹栎樾龠钺玥
yun1	晕氲
yun2	云匀筠芸耘纭昀郧允
yun3	允陨殒狁
yun4	运均韵晕孕蕴酝愠熨郓韫恽
za1	扎咂匝拶
za2	杂咱砸
za3	咋
zai1	灾哉栽
zai3	载仔宰崽
zai4	在再载
zan1	簪糌
zan2	咱
zan3	攒拶昝趱
zan4	赞暂瓒錾
zan5	咱
zang1	赃臧脏
zang3	驵
zang4	藏脏葬奘
zao1	遭糟
zao2	凿早
zao3	早澡枣蚤藻
zao4	造灶躁噪皂燥唣
ze2	则责泽择咋啧迮帻赜笮箦舴
ze4	侧仄昃
zei2	贼
zen3	怎
zen4	谮
zeng1	曾增憎缯罾
zeng4	赠缯甑锃
zha1	查扎咋渣喳揸楂哳吒齄
zha2	炸扎札喋轧闸铡
zha3	眨砟
zha4	炸咋诈乍蜡栅榨柞吒咤痄蚱
zhai1	摘侧斋
zhai2	宅翟择窄
zhai3	窄
zhai4	债祭寨砦瘵
zhan1	占沾粘瞻詹毡谵旃
zhan3	展斩辗盏崭搌
zhan4	战站占颤绽湛蘸栈
zhang1	张章彰璋蟑樟漳嫜鄣獐
zhang3	长掌涨仉
zhang4	丈涨帐障账胀仗杖瘴嶂幛
zhao1	着招朝嘲昭钊啁
zhao2	着著
zhao3	找爪沼
zhao4	照赵召罩兆肇诏棹笊
zhe1	折遮蜇
zhe2	折哲辙辄谪蛰摺磔蜇喆
zhe3	者褶锗赭
zhe4	这浙蔗鹧柘
zhe5	着
zhei4	这
zhen1	真针珍斟贞侦甄臻箴砧桢溱蓁椹榛胗祯浈禛
zhen3	诊枕疹缜畛轸稹
zhen4	阵镇震圳振赈朕鸩
zheng1	正争征丁挣症睁徵蒸怔筝铮峥狰钲鲭
zheng3	整拯
zheng4	政正证挣郑症怔铮诤帧
zhi1	之只知指支织氏枝汁掷芝吱肢脂蜘栀卮胝祗
zhi2	直指职值执植殖侄踯摭絷跖埴只纸
zhi3	只指纸止址旨徵趾咫芷枳祉轵黹酯
zhi4	知至制识治志致质智置秩滞帜稚挚掷峙窒炙痔栉桎帙轾贽痣豸陟忮彘膣雉鸷骘蛭踬郅觯
zhong1	中终钟忠衷锺盅忪螽舯
zhong2	种
zhong3	种肿踵冢
zhong4	中种重众仲
zhou1	周州洲粥舟诌啁
zhou2	轴妯碡
zhou3	肘帚
zhou4	皱骤轴宙咒昼胄纣绉荮籀繇酎
zhu1	诸朱珠猪株蛛洙诛铢茱邾潴槠橥侏
zhu2	术逐筑竹烛躅竺舳瘃主
zhu3	主属煮嘱瞩拄褚渚麈
zhu4	住注助著驻祝筑柱铸伫贮箸炷蛀杼翥苎疰
zhua1	抓挝
zhua3	爪
zhuai1	拽
zhuai3	拽
zhuai4	拽
zhuan1	专砖颛
zhuan3	转
zhuan4	传转赚撰沌篆啭馔
zhuang1	装庄妆桩
zhuang3	奘
zhuang4	状壮撞幢僮戆壵
zhui1	追锥隹椎骓
zhui4	坠缀赘惴缒
zhun1	屯谆肫窀
zhun3	准
zhuo1	桌捉卓拙涿焯倬
zhuo2	着著琢缴灼酌浊濯茁啄斫镯诼禚擢浞卓
zi1	资咨滋仔姿吱兹孜谘呲龇锱辎淄髭赀孳粢趑觜訾缁鲻嵫
zi3	子紫仔梓姊籽滓秭笫耔茈訾
zi4	自字渍恣眦
zong1	宗踪综棕鬃枞腙
zong3	总偬
zong4	纵粽
zou1	邹诹陬鄹驺鲰
zou3	走
zou4	奏揍
zu1	租菹
zu2	足族卒镞祖组
zu3	组祖阻诅俎
zuan1	钻躜
zuan3	纂缵
zuan4	赚钻攥
zui1	堆
zui3	嘴咀觜
zui4	最罪醉蕞
zun1	尊遵樽鳟
zun3	撙
zuo1	作嘬
zuo2	作昨琢笮左
zuo3	左佐撮
zuo4	作做坐座怍胙阼唑祚
zi5	子
ge5	个歌
gu5	顾咕
biao2	表
sha2	啥
er5	儿
fan5	烦
tou5	头
jing2	井
ji5	记计疾积
guo5	过
zhi5	置质制指脂
niao2	袅
xi5	息系
ying5	蝇盈
jing5	睛
liang5	量亮粮粱
mou3	某
shan2	闪
lang5	朗
fen5	分
xiong5	兄
bu5	不部
hou5	候侯
ben2	本
zong2	总
tai5	太
mou2	谋牟眸缪
lai5	来
niang5	娘
jian2	减柬
you5	友
guan2	管馆
yue5	月
diao5	掉
wu5	物务
xing5	猩
bing5	病饼
ruo5	弱
mu2	亩母
zuo5	坐做
chui5	吹
yun5	晕
nve4	疟虐
qie2	茄伽
zui2	嘴
rong5	溶
mei5	妹
kan5	看
kao2	考
he5	合
sheng5	生
yang5	鸯扬阳
cheng5	诚
lv2	驴榈旅侣
dai5	袋待
jin2	紧
yao5	药
wang5	望枉王
jiu2	九
jun3	菌
gei2	给
zheng2	整
nao5	闹
gun2	滚
tong5	同筒
dian2	点典
gui2	鬼
bei2	北
tao5	桃
lia2	俩
yi5	易议一意义
shen5	神
ling5	龄
weng5	嗡
qi5	气
qin5	亲
nai2	奶
heng5	哼
nv2	女
ju5	矩
ye5	爷
mian5	面
rou5	柔
qia5	恰
pie2	撇
guang2	广
ka2	卡
ken2	恳
si2	死
dang2	党
yu5	育裕
wo5	窝
deng2	等
fa5	发
po5	婆
kong2	孔
zhen2	诊
gai2	改
pin5	频
wan5	玩
jiang2	讲奖
nai5	奶耐
mu5	目
shun5	顺
ne4	讷呐
dao5	到
nuan2	暖
piao5	飘
su5	诉
nang5	囊
long5	咙
zhu5	住
pian5	片
yong5	用
ou2	偶
hu5	乎
zou2	走
bai5	白
zhang2	长
bang2	榜
zhan2	展
huo5	活火
tie2	铁
du5	度
zhuan2	转
chou5	酬
gan5	杆
sou5	嗽
hai5	害
jiong2	炯
jiu5	舅
duo5	朵
o1	噢喔
niu1	妞
sai5	噻
pou2	锫


================================================
FILE: download_default_datalist.py
================================================
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
用于下载ASRT语音识别系统声学模型训练默认用的数据集列表程序
"""

import os
import logging
import json
import requests
import zipfile

logging.basicConfig(
    format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
    level=logging.INFO)

DEFAULT_DATALIST_PATH = 'datalist/'
if not os.path.exists(DEFAULT_DATALIST_PATH):
    os.makedirs(DEFAULT_DATALIST_PATH)

URL_DATALIST_INDEX = "https://d.ailemon.net/asrt_assets/datalist/index.json"
rsp_index = requests.get(URL_DATALIST_INDEX)
rsp_index.encoding = 'utf-8'
if rsp_index.ok:
    logging.info('Has connected to ailemon\'s download server...')
else:
    logging.error('%s%s', 'Can not connected to ailemon\'s download server.',
                  'please check your network connection.')

index_json = json.loads(rsp_index.text)
if index_json['status_code'] != 200:
    raise Exception(index_json['status_message'])

body = index_json['body']
logging.info('start to download datalist from ailemon\'s download server...')

url_prefix = body['url_prefix']
for i in range(len(body['datalist'])):
    print(i, body['datalist'][i]['name'])
print(len(body['datalist']), 'all datalist')
num = input('Please choose which you select: (default all)')
if len(num) == 0:
    num = len(body['datalist'])
else:
    num = int(num)


def deal_download(datalist_item, url_prefix_str, datalist_path):
    """
    to deal datalist file download
    """
    logging.info('%s%s', 'start to download datalist ', datalist_item['name'])
    save_path = datalist_path
    if not os.path.exists(save_path):
        os.makedirs(save_path)
        logging.info('%s`%s`', 'Created directory ', save_path)

    zipfilename = datalist_item['zipfile']
    tmp_url = url_prefix_str + zipfilename
    save_filename = os.path.join(save_path, zipfilename)
    rsp = requests.get(tmp_url)
    with open(save_filename, "wb") as file_pointer:
        file_pointer.write(rsp.content)
    if rsp.ok:
        logging.info('%s `%s` %s', 'Download', zipfilename, 'complete')
    else:
        logging.error('%s%s%s%s%s', 'Can not download ', zipfilename,
                      ' from ailemon\'s download server. ',
                      'http status ok is ', str(rsp.ok))

    f = zipfile.ZipFile(save_filename, 'r')  # 压缩文件位置
    f.extractall(save_path)
    f.close()
    logging.info('%s `%s` %s', 'unzip', zipfilename, 'complete')


if num == len(body['datalist']):
    for i in range(len(body['datalist'])):
        deal_download(body['datalist'][i], body['url_prefix'], DEFAULT_DATALIST_PATH)
else:
    deal_download(body['datalist'][num], body['url_prefix'], DEFAULT_DATALIST_PATH)

logging.info('%s%s%s', 'Datalist files download complete. ',
             'Please remember to download these datasets from ',
             body['dataset_download_page_url'])


================================================
FILE: evaluate_speech_model.py
================================================
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
用于测试语音识别系统语音模型的程序
"""

import os

from speech_model import ModelSpeech
from model_zoo.speech_model.keras_backend import SpeechModel251BN
from data_loader import DataLoader
from speech_features import Spectrogram

os.environ["CUDA_VISIBLE_DEVICES"] = "0"

AUDIO_LENGTH = 1600
AUDIO_FEATURE_LENGTH = 200
CHANNELS = 1
# 默认输出的拼音的表示大小是1428,即1427个拼音+1个空白块
OUTPUT_SIZE = 1428
sm251bn = SpeechModel251BN(
    input_shape=(AUDIO_LENGTH, AUDIO_FEATURE_LENGTH, CHANNELS),
    output_size=OUTPUT_SIZE
)
feat = Spectrogram()
evalue_data = DataLoader('dev')
ms = ModelSpeech(sm251bn, feat, max_label_length=64)

ms.load_model('save_models/' + sm251bn.get_model_name() + '.model.h5')
ms.evaluate_model(data_loader=evalue_data, data_count=-1,
                  out_report=True, show_ratio=True, show_per_step=100)


================================================
FILE: language_model3.py
================================================
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright 2016-2099 Ailemon.net
#
# This file is part of ASRT Speech Recognition Tool.
#
# ASRT is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# ASRT 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with ASRT.  If not, see <https://www.gnu.org/licenses/>.
# ============================================================================

"""
@author: nl8590687
ASRT语音识别的语言模型

基于N-Gram的语言模型
"""

import os

from utils.ops import get_symbol_dict, get_language_model


class ModelLanguage:
    """
    ASRT专用N-Gram语言模型
    """

    def __init__(self, model_path: str):
        self.model_path = model_path
        self.dict_pinyin = dict()
        self.model1 = dict()
        self.model2 = dict()

    def load_model(self):
        """
        加载N-Gram语言模型到内存
        """
        self.dict_pinyin = get_symbol_dict('dict.txt')
        self.model1 = get_language_model(os.path.join(self.model_path, 'language_model1.txt'))
        self.model2 = get_language_model(os.path.join(self.model_path, 'language_model2.txt'))
        model = (self.dict_pinyin, self.model1, self.model2)
        return model

    def pinyin_to_text(self, list_pinyin: list, beam_size: int = 100) -> str:
        """
        拼音转文本,一次性取得全部结果
        """
        result = list()
        tmp_result_last = list()
        for item_pinyin in list_pinyin:
            tmp_result = self.pinyin_stream_decode(tmp_result_last, item_pinyin, beam_size)
            if len(tmp_result) == 0 and len(tmp_result_last) > 0:
                result.append(tmp_result_last[0][0])
                tmp_result = self.pinyin_stream_decode([], item_pinyin, beam_size)
                if len(tmp_result) > 0:
                    result.append(tmp_result[0][0])
                tmp_result = []
            tmp_result_last = tmp_result

        if len(tmp_result_last) > 0:
            result.append(tmp_result_last[0][0])

        return ''.join(result)

    def pinyin_stream_decode(self, temple_result: list,
                             item_pinyin: str,
                             beam_size: int = 100) -> list:
        """
        拼音流式解码,逐字转换,每次返回中间结果
        """
        # 如果这个拼音不在汉语拼音字典里的话,直接返回空列表,不做decode
        if item_pinyin not in self.dict_pinyin:
            return []

        # 获取拼音下属的字的列表,cur_words包含了该拼音对应的所有的字
        cur_words = self.dict_pinyin[item_pinyin]
        # 第一个字做初始处理
        if len(temple_result) == 0:
            lst_result = list()
            for word in cur_words:
                # 添加该字到可能的句子列表,设置初始概率为1.0
                lst_result.append([word, 1.0])
            return lst_result

        # 开始处理已经至少有一个字的中间结果情况
        new_result = list()
        for sequence in temple_result:
            for cur_word in cur_words:
                # 得到2-gram的汉字子序列
                tuple2_word = sequence[0][-1] + cur_word
                if tuple2_word not in self.model2:
                    # 如果2-gram子序列不存在
                    continue
                # 计算状态转移概率
                prob_origin = sequence[1]  # 原始概率
                count_two_word = float(self.model2[tuple2_word])  # 二字频数
                count_one_word = float(self.model1[tuple2_word[-2]])  # 单字频数
                cur_probility = prob_origin * count_two_word / count_one_word
                new_result.append([sequence[0] + cur_word, cur_probility])

        new_result = sorted(new_result, key=lambda x: x[1], reverse=True)
        if len(new_result) > beam_size:
            return new_result[0:beam_size]
        return new_result


if __name__ == '__main__':
    ml = ModelLanguage('model_language')
    ml.load_model()

    _str_pinyin = ['zhe4', 'zhen1', 'shi4', 'ji2', 'hao3', 'de5']
    _RESULT = ml.pinyin_to_text(_str_pinyin)
    print('语音转文字结果:\n', _RESULT)


================================================
FILE: model_language/language_model1.txt
================================================
3941753
的	213994
一	72404
是	69047
在	63563
不	61699
了	60856
有	59005
人	52706
中	52005
国	50797
我	48825
大	45439
上	39507
年	37962
为	35373
日	34764
和	34386
个	33555
你	32699
网	31057
这	30804
会	30280
新	30104
来	29692
时	29282
公	28564
发	28408
以	28300
生	27753
要	27273
业	27124
行	26852
出	26498
到	26489
能	25061
对	24333
下	23178
作	23163
家	23126
就	22752
可	22633
成	22287
用	22093
们	21609
信	21375
分	21249
多	21249
后	21091
月	20948
经	20808
于	20536
方	20097
动	20036
市	20010
者	19994
也	19903
全	19557
地	19486
学	19286
天	18970
过	18839
现	18730
他	18655
机	18457
好	18418
本	18266
报	18105
进	17950
自	17942
都	17939
|	17935
高	17912
考	17686
还	17516
场	17343
前	17327
体	17173
开	17170
车	17162
子	16765
关	16739
面	16739
最	16319
务	16141
去	16139
将	16101
力	15732
得	15534
金	15473
看	15460
电	15372
合	15351
说	15327
点	15278
资	15195
主	15175
小	15141
工	15051
部	14941
实	14817
产	14750
与	14722
司	14679
美	14551
手	14526
品	14454
比	14444
游	14057
加	14056
同	14040
而	13944
内	13931
之	13826
等	13818
联	13778
明	13741
长	13699
定	13485
法	13367
事	13354
所	13284
外	13221
理	13216
心	13150
通	13094
区	13081
文	12982
球	12976
备	12972
赛	12781
其	12732
里	12593
台	12491
没	12463
重	12370
那	12343
表	12286
道	12273
化	12249
名	12236
军	12147
期	12100
安	12079
目	12054
间	11882
海	11878
准	11769
试	11729
更	11725
第	11653
提	11624
么	11623
入	11588
万	11519
员	11509
次	11448
如	11405
民	11400
数	11353
系	11349
度	11080
院	10887
展	10865
建	10850
三	10848
元	10808
位	10720
保	10648
政	10645
平	10633
计	10538
服	10500
相	10466
起	10399
限	10343
意	10213
及	10148
性	10049
广	10041
两	10021
情	10013
当	9828
号	9805
女	9802
传	9801
息	9782
线	9724
从	9714
制	9665
北	9578
利	9571
题	9556
交	9556
任	9510
但	9471
京	9438
特	9422
二	9378
证	9330
打	9320
队	9313
很	9282
西	9218
着	9217
已	9209
然	9193
量	9191
正	9172
或	9046
据	9041
此	9017
版	8996
并	8969
视	8946
老	8925
战	8923
科	8909
价	8898
给	8861
设	8737
黄	8733
今	8657
示	8566
水	8560
被	8552
站	8549
无	8522
许	8468
式	8438
总	8416
果	8384
记	8343
单	8342
权	8297
东	8284
推	8258
专	8242
商	8237
因	8203
身	8163
强	8158
约	8129
应	8116
想	8075
图	8070
问	7972
省	7948
影	7893
路	7884
代	7858
投	7837
让	7833
基	7770
管	7766
导	7726
戏	7705
托	7679
做	7679
南	7668
儿	7627
技	7613
回	7602
群	7556
活	7544
样	7516
布	7454
友	7447
华	7413
解	7396
收	7390
接	7378
告	7360
件	7343
型	7341
首	7269
知	7246
注	7218
卡	7218
些	7215
消	7175
创	7168
玩	7168
参	7162
马	7152
持	7149
际	7104
级	7079
师	7070
增	7069
物	7059
房	7049
选	7039
门	6997
格	6970
种	6965
近	6926
直	6892
乐	6857
责	6852
股	6847
别	6831
调	6829
英	6813
户	6780
城	6768
教	6742
向	6726
标	6701
运	6681
各	6676
育	6667
达	6656
程	6641
至	6622
费	6600
局	6585
尔	6568
常	6562
社	6560
色	6516
话	6472
斯	6467
受	6434
周	6430
原	6417
山	6381
立	6379
微	6368
结	6365
转	6330
世	6323
界	6304
项	6287
少	6227
造	6211
统	6208
医	6202
感	6201
只	6189
领	6183
片	6162
张	6162
需	6152
啊	6129
款	6114
源	6101
均	6065
气	6062
带	6059
指	6047
买	6043
己	6032
风	6018
真	6007
认	5981
购	5975
研	5973
雪	5944
论	5921
放	5885
节	5867
复	5846
超	5846
查	5825
取	5776
规	5761
容	5734
该	5715
十	5714
空	5713
江	5711
求	5684
她	5675
头	5656
由	5649
再	5636
观	5622
术	5610
完	5606
招	5590
快	5585
亚	5582
深	5553
职	5551
组	5543
请	5524
把	5512
热	5481
处	5461
营	5455
星	5444
流	5436
未	5433
改	5430
演	5427
办	5418
先	5413
怀	5412
类	5378
州	5378
质	5369
变	5362
口	5355
吗	5346
易	5289
使	5270
才	5259
预	5249
排	5236
客	5223
永	5221
四	5211
续	5201
供	5184
闻	5177
济	5177
共	5175
众	5165
爱	5159
男	5158
支	5157
整	5157
配	5131
精	5107
播	5088
光	5074
讯	5065
企	5058
称	4990
每	4967
非	4940
宣	4929
圈	4925
什	4887
王	4885
值	4861
速	4840
太	4832
互	4812
红	4758
包	4749
升	4739
何	4738
集	4737
亿	4736
份	4736
德	4722
校	4718
确	4705
优	4702
团	4693
宝	4688
吧	4656
几	4638
足	4633
云	4627
媒	4611
装	4599
博	4598
拉	4566
娃	4557
远	4551
又	4548
议	4523
击	4502
财	4470
案	4462
允	4459
融	4418
条	4414
翁	4409
始	4385
显	4359
见	4336
词	4334
李	4314
克	4309
载	4305
获	4281
编	4277
声	4273
步	4270
决	4262
花	4248
环	4240
势	4238
较	4236
率	4232
牌	4226
具	4219
难	4148
委	4131
评	4130
银	4128
功	4122
住	4114
愿	4114
置	4087
效	4086
神	4068
剧	4056
录	4051
富	4042
究	4037
防	4012
官	4004
林	4001
引	3999
举	3991
细	3988
书	3986
警	3980
走	3961
兄	3960
构	3942
五	3937
反	3935
低	3926
态	3919
享	3909
连	3895
春	3893
维	3888
普	3875
治	3844
白	3831
照	3826
销	3815
险	3810
策	3781
季	3771
像	3769
听	3763
助	3760
况	3754
士	3734
验	3733
望	3726
器	3724
且	3721
划	3710
清	3700
边	3700
监	3683
识	3670
形	3654
吃	3636
百	3632
候	3618
跟	3618
佳	3600
习	3598
频	3594
随	3578
络	3562
护	3549
模	3531
晚	3521
施	3499
觉	3491
测	3455
仅	3447
呢	3443
段	3436
域	3413
越	3408
则	3405
字	3400
即	3391
奖	3386
料	3386
航	3385
历	3354
健	3352
湾	3347
龙	3347
党	3342
盖	3342
双	3337
福	3322
汽	3304
律	3275
养	3275
宁	3275
朋	3255
售	3254
协	3238
米	3222
它	3214
范	3209
音	3209
读	3208
青	3195
核	3184
欢	3165
府	3151
失	3142
河	3140
采	3134
算	3133
页	3120
阳	3114
奥	3113
弟	3111
负	3110
智	3097
班	3093
存	3082
罗	3074
控	3050
火	3048
响	3045
言	3031
苏	3030
拥	3027
致	3025
找	3022
落	3010
除	2997
某	2996
列	2987
哪	2976
简	2974
钱	2972
终	2970
根	2967
食	2959
港	2954
巴	2953
语	2952
益	2947
刚	2946
怎	2937
紧	2931
念	2926
勇	2923
干	2918
旅	2908
检	2901
介	2900
景	2894
极	2893
早	2886
争	2868
拍	2855
满	2832
座	2831
练	2828
歌	2825
依	2820
疑	2798
雄	2792
离	2790
思	2786
喜	2778
村	2769
底	2768
韩	2763
必	2762
登	2747
缺	2747
志	2740
盘	2736
胸	2736
素	2733
象	2723
训	2721
帮	2715
竞	2712
角	2712
积	2709
板	2707
付	2706
免	2703
希	2703
境	2690
聘	2686
冠	2682
农	2678
属	2678
半	2678
端	2669
波	2649
眼	2639
详	2633
飞	2627
店	2621
妈	2616
破	2614
卫	2599
孩	2595
稳	2590
园	2589
康	2581
断	2580
陆	2579
审	2578
往	2575
便	2575
阿	2575
陈	2569
绩	2568
初	2564
降	2561
按	2555
轻	2541
够	2541
床	2539
材	2538
居	2533
却	2531
继	2529
套	2518
刘	2512
县	2506
君	2501
甲	2498
岁	2495
减	2480
扫	2477
黑	2472
欧	2467
亲	2464
死	2463
拿	2461
严	2456
香	2448
访	2437
浪	2434
批	2430
适	2426
送	2424
独	2418
例	2416
码	2404
石	2402
违	2393
讲	2389
胜	2387
婚	2375
病	2370
纪	2369
充	2366
择	2345
辞	2337
曾	2336
留	2336
补	2336
略	2334
章	2329
围	2326
命	2321
攻	2316
彩	2309
层	2307
票	2306
叫	2304
届	2302
阅	2299
移	2298
承	2293
轮	2286
签	2284
辑	2282
义	2282
换	2279
艺	2258
哈	2254
熊	2252
含	2249
占	2249
奇	2249
否	2246
兰	2228
母	2224
千	2222
短	2208
突	2204
担	2189
货	2180
尼	2176
额	2175
杨	2175
左	2170
铁	2170
史	2164
丽	2162
迎	2152
古	2151
课	2149
牙	2136
荐	2135
午	2131
油	2129
腾	2128
滑	2128
血	2127
皮	2127
孕	2126
察	2114
询	2110
谈	2095
副	2094
穿	2091
钟	2084
威	2084
泳	2083
币	2082
错	2081
待	2077
另	2076
湖	2074
洲	2068
爆	2067
药	2063
衣	2063
尽	2058
良	2058
背	2058
哥	2056
楼	2049
武	2049
印	2048
兴	2044
索	2037
税	2027
密	2020
临	2020
坛	2017
松	2017
您	2017
写	2016
止	2001
键	2000
诉	1999
画	1996
状	1992
执	1989
耍	1987
姐	1986
冰	1983
切	1981
雅	1978
亮	1977
余	1963
睡	1959
停	1958
温	1952
粉	1949
差	1947
八	1944
雷	1941
跑	1932
织	1931
室	1931
申	1928
启	1923
涨	1921
坚	1921
综	1916
丝	1916
庆	1901
括	1900
夫	1898
酒	1891
追	1889
久	1889
笔	1888
假	1886
虽	1883
革	1882
秀	1881
岛	1876
弹	1867
础	1864
土	1864
搭	1861
汇	1861
培	1855
析	1846
幅	1845
答	1838
邮	1830
皇	1824
朗	1817
族	1817
故	1800
伤	1796
善	1782
须	1774
席	1770
压	1768
授	1767
券	1766
贸	1763
盟	1757
镇	1757
退	1757
谁	1749
迷	1736
右	1725
绝	1723
露	1722
藏	1719
鱼	1718
修	1717
贷	1709
妹	1708
订	1706
激	1699
似	1698
街	1698
迪	1693
贵	1691
纳	1684
陪	1681
沙	1673
卖	1672
遇	1661
挑	1658
川	1657
央	1651
六	1637
射	1631
探	1627
仍	1617
舰	1612
悉	1601
礼	1599
梦	1592
丰	1579
娱	1575
吸	1561
曲	1559
疗	1555
夏	1549
牛	1546
摄	1543
述	1538
库	1534
损	1531
尚	1530
篮	1524
杀	1522
令	1521
裙	1519
惠	1509
庭	1508
箱	1508
津	1507
婆	1506
刷	1503
竟	1501
木	1501
啦	1494
脑	1492
绍	1488
障	1485
典	1479
穷	1479
榜	1478
禁	1478
输	1476
靠	1476
荣	1476
潜	1472
毕	1471
署	1462
透	1462
梅	1456
判	1455
倍	1446
派	1442
峰	1438
困	1437
绿	1436
娟	1430
秘	1427
伦	1426
谷	1423
灵	1422
乡	1417
诺	1414
巨	1409
幕	1403
味	1402
跌	1401
鸡	1401
七	1397
谢	1395
鲁	1394
摸	1385
雨	1384
蛋	1381
夜	1378
熟	1376
森	1375
涉	1371
顾	1368
泰	1366
册	1358
镜	1355
昨	1353
借	1350
脸	1350
苹	1343
萨	1343
暴	1331
附	1330
毛	1328
链	1327
顺	1327
馆	1327
抱	1326
唱	1323
澳	1318
督	1318
贝	1317
笑	1316
扩	1314
倒	1314
厅	1313
蓝	1312
害	1311
哦	1310
舞	1307
守	1306
寻	1306
田	1304
匀	1302
逐	1299
兵	1297
聚	1296
救	1292
汉	1287
辆	1286
征	1279
阵	1270
浙	1268
洋	1268
甚	1267
菜	1263
阶	1262
恐	1261
概	1259
滚	1258
驾	1256
趣	1255
促	1253
块	1251
厂	1246
卷	1236
赵	1234
肉	1233
览	1232
魔	1232
盛	1228
乖	1228
顶	1227
搜	1223
乎	1221
冲	1221
抓	1221
途	1219
诚	1217
侧	1215
旗	1209
润	1207
归	1202
袭	1197
针	1195
狂	1195
童	1193
脚	1190
贴	1188
延	1186
惊	1186
挂	1186
架	1186
岸	1185
异	1185
隐	1183
序	1180
毒	1176
刻	1173
伴	1172
操	1165
嘛	1161
般	1160
肥	1159
赶	1159
朝	1154
耳	1153
休	1151
呼	1149
伟	1149
估	1148
颜	1147
稿	1145
杯	1145
饭	1141
晓	1135
斗	1133
俄	1124
啥	1122
翻	1119
予	1118
急	1118
抗	1118
呀	1114
鲜	1113
坐	1110
塞	1109
妇	1108
剂	1104
轩	1098
屏	1095
九	1094
豪	1092
献	1091
掉	1091
吴	1090
野	1087
恩	1087
尤	1086
挥	1084
瑞	1075
疆	1070
旧	1070
曼	1067
址	1065
篇	1063
遭	1058
赞	1058
聊	1057
静	1053
距	1050
句	1050
跳	1049
净	1047
硬	1044
剑	1043
犯	1042
截	1040
若	1040
努	1038
伙	1036
饰	1031
抢	1029
软	1028
幻	1021
淮	1018
捐	1017
肯	1015
描	1014
慢	1014
齐	1012
束	1006
船	1001
辽	1000
凡	999
父	999
赢	996
败	994
嘉	994
虑	993
脱	993
帅	993
累	991
幸	989
塔	986
援	984
封	982
徐	982
怕	980
符	976
孙	975
梁	972
扬	970
敏	967
裁	966
零	966
吉	963
草	961
措	959
贫	959
龄	957
痛	957
纸	950
洗	946
曝	945
患	944
映	940
筑	938
危	934
讨	934
赏	933
猫	932
冤	932
罪	927
堂	924
窗	922
沉	922
丹	921
凤	921
励	917
咨	913
偏	911
宽	911
亡	910
罚	909
敢	908
召	907
拟	903
纷	896
伊	895
莱	891
胡	891
递	881
蒙	881
乱	881
驶	880
嗡	878
肤	876
震	869
兽	867
冷	866
圳	863
蒂	861
刺	861
磁	860
锋	859
夺	858
巡	858
著	857
释	854
惹	849
储	845
肌	838
杰	837
厦	835
奶	833
固	832
宗	831
账	829
琼	829
烈	827
恋	827
霞	826
渐	824
宏	824
仪	819
暗	818
赚	817
桥	816
沃	815
跃	815
纯	815
捷	814
侠	814
跨	813
敦	813
慈	813
档	812
醒	811
艇	809
餐	809
舒	809
坏	809
胎	808
丁	807
遗	805
怪	803
喝	803
趋	802
触	800
避	799
莫	799
私	797
弱	796
焦	795
沿	795
掌	795
劳	789
辣	787
折	786
慧	786
凶	785
宜	782
握	780
覆	780
鼓	779
末	778
摩	778
苦	778
爸	777
租	776
宇	775
潮	774
郑	773
树	772
刊	770
玉	770
弃	769
迅	768
骗	765
忘	765
蔡	763
锦	762
枉	759
歪	757
嫌	756
灯	756
刀	752
邀	751
既	751
暖	751
污	749
桃	748
误	748
搞	748
宅	746
吻	745
夹	740
硕	734
勒	734
俊	733
饮	732
遍	732
戴	731
凯	731
鞋	730
酷	729
洛	727
宫	726
债	725
暂	725
耀	725
秒	724
沈	722
拜	722
董	721
漫	721
萌	721
扶	720
染	720
恒	718
爽	717
劲	715
唯	715
虎	713
腿	712
狗	711
懂	710
冒	709
辅	708
钢	708
散	703
岗	702
菲	702
欣	700
唐	700
撞	699
煤	699
驱	698
寸	694
甩	693
杂	692
甘	691
尊	689
猪	689
纽	688
摔	687
呈	685
横	685
籍	685
晨	685
扯	685
顿	684
池	682
渠	680
祝	680
枪	678
锁	677
麻	677
杆	676
凭	676
庄	676
抽	675
姆	670
衡	670
宾	668
偶	665
秦	665
畅	664
忙	664
疾	663
坦	662
缘	658
驻	656
茨	656
仁	655
豆	652
虚	650
屋	650
泽	649
厚	647
混	647
兼	646
拐	640
拆	639
洁	639
替	638
残	638
艾	637
甜	636
填	635
纺	634
圆	632
瓷	631
挺	630
杭	629
募	628
糖	628
壁	625
瓦	622
茶	620
骑	619
浏	618
仙	618
默	613
缓	612
麦	612
幼	611
阴	611
妻	610
泛	609
楚	609
俱	607
扣	607
珠	606
仔	606
骨	605
辉	605
绕	604
忍	604
郭	604
拼	602
卓	599
琳	597
晋	595
冬	595
敌	594
恶	593
症	591
瓜	589
沟	588
妆	586
携	585
筹	585
奔	585
磊	583
羊	583
缩	582
贯	582
淘	581
谓	578
巧	578
圣	578
帝	578
紫	577
烟	577
盗	575
羽	575
洪	575
佛	573
娜	573
逼	572
彻	571
赴	570
炫	570
返	569
摆	569
姓	568
矿	567
猛	565
尾	565
叶	565
朱	563
娘	563
徽	562
酸	561
役	560
撑	560
哭	560
拓	559
霸	559
炮	559
淡	558
悬	557
勤	557
乘	556
揭	556
剩	554
坡	551
佩	550
隔	549
乔	548
烧	548
刑	546
挖	545
诗	545
乌	542
闲	542
宋	540
颖	538
逆	537
阻	533
眠	531
扎	530
闭	529
忠	529
塑	528
迹	528
秋	524
殊	521
艳	521
葛	521
伍	518
疯	518
缴	517
忆	517
锐	515
珍	515
怖	514
侵	512
陕	511
墨	511
乏	511
抵	507
倾	507
凰	506
拔	505
匹	504
液	504
杜	503
泉	501
拒	500
毫	498
逻	498
涌	495
媛	494
燃	493
繁	493
碰	493
添	492
欲	490
誉	489
植	488
迁	484
寒	484
耗	484
桂	484
鬼	484
框	483
伯	483
胃	481
炸	481
黎	481
押	480
洞	479
嘴	478
奋	476
渔	476
墙	476
唤	475
陷	475
惨	474
径	473
宿	473
弄	473
践	472
晒	472
舍	472
摘	470
奏	470
劝	470
呵	470
湿	469
瓶	469
旋	469
峡	469
鹏	468
吐	466
敬	466
肃	465
贡	465
隆	464
偿	462
爷	462
衰	459
赖	457
耐	455
惯	453
偷	453
振	452
赔	452
尝	451
愉	451
沪	450
轨	450
彭	450
荡	449
孔	449
乳	448
迈	447
涯	447
诊	445
旬	445
鳌	442
玛	442
昌	442
祥	441
凌	440
寿	439
诸	439
裤	439
浮	437
滨	435
喊	435
柱	434
滴	434
旦	433
鉴	433
咱	433
苑	433
稍	432
昆	432
逊	431
弗	430
俗	430
栏	430
胖	430
挡	429
悦	429
胞	428
怨	428
睛	426
圾	423
冯	423
垃	422
贺	421
芳	420
轿	418
疫	418
吨	417
闹	417
俩	417
庸	414
渴	414
壮	413
煌	413
尺	412
撒	412
柔	412
盈	410
扰	410
盾	409
炉	408
脂	407
浦	407
瘦	407
磨	407
亦	406
帕	404
斤	404
穆	403
汤	403
旁	403
浓	402
貌	401
肖	398
燕	398
涛	398
琴	398
辛	397
陶	397
涵	395
柳	395
拦	394
番	393
烦	393
掘	390
踪	389
尖	389
剪	389
驰	388
捕	388
扮	387
傅	387
豹	386
哲	386
梯	386
惜	386
亏	385
咋	383
幂	382
炼	382
溪	382
薄	381
踢	381
泡	381
拖	380
削	380
祖	379
嗯	379
脏	376
卢	376
迟	376
桌	376
雾	375
循	375
辖	374
埃	373
邦	373
薪	372
昂	372
披	371
蒋	371
晶	371
渊	371
艘	369
魅	369
蜜	369
袖	368
婷	368
绪	367
翘	366
毁	366
兹	364
酱	364
芯	363
踏	363
纹	360
恢	359
械	359
粮	359
姿	358
翔	358
卦	357
姚	357
胶	357
奉	355
婴	354
臀	352
苗	352
诀	350
纲	350
鸣	350
谋	349
逃	349
胆	348
灭	348
霍	347
胁	346
憾	344
桑	342
媳	342
熏	342
戈	341
浩	341
猎	340
忧	340
垫	340
拨	338
孤	337
摇	335
矩	334
柴	334
扑	334
拳	334
逸	334
辈	334
抹	334
廉	333
鹿	332
侦	331
歉	331
蹲	331
粤	330
腹	330
铺	330
扭	329
骂	329
伸	328
牢	327
翼	327
爪	327
荒	326
玲	326
腐	325
仓	325
寨	324
咖	323
漏	323
插	323
眉	323
仿	322
译	322
契	322
泥	322
兑	321
牵	320
喷	319
醉	319
肝	318
腰	318
傻	318
薛	318
纠	317
肩	317
棒	316
辰	315
朵	315
呗	315
姻	313
糕	311
劣	309
闽	309
忽	308
诈	307
凉	307
柯	306
旺	306
岩	306
氧	305
膜	305
躺	305
毅	302
鸿	302
遵	301
鸟	301
吓	300
骅	300
骷	299
髅	299
噢	299
癌	298
魂	298
槽	298
潘	297
漂	297
炒	296
袋	296
盒	295
灰	295
馈	294
撕	294
贾	294
斌	294
狮	293
伪	293
戒	293
井	292
狼	292
δ	291
?	291
耶	291
莲	291
廷	290
丢	290
翎	289
吊	289
欠	289
?	288
碑	288
颗	288
?	287
?	287
?	287
寄	287
琪	287
勋	287
帐	286
丸	286
废	286
疼	286
箭	285
瞬	285
姑	285
晖	284
谱	284
蓉	284
坑	284
蕾	283
稀	283
猜	283
?	282
?	282
?	282
樱	282
郎	282
疏	281
轴	281
?	280
?	280
怒	280
铭	279
吹	279
?	278
莞	278
乒	277
慎	277
颇	276
赠	276
玻	275
椅	274
裂	272
锅	272
碧	272
奠	271
厉	271
芒	271
萱	271
凄	269
赫	269
颁	269
御	269
尘	269
脉	269
聪	268
鑫	268
谣	267
绑	267
齿	267
狐	266
弯	266
镑	265
纤	265
闪	265
搬	265
毙	264
鼎	264
肚	264
彼	263
璃	262
廊	261
碎	261
堆	261
涂	261
履	260
柜	260
钻	260
宴	259
灾	259
妙	259
乃	259
逛	259
昭	258
?	257
愈	257
蒸	257
鼻	257
×	256
?	256
?	256
倡	256
迫	256
姜	256
叔	256
衔	255
玄	255
茂	255
寡	255
?	254
牧	254
堪	254
挤	254
咯	254
?	253
贩	253
氛	253
墓	253
袁	253
嫁	253
?	252
旨	252
矛	252
荷	252
?	251
碍	251
贤	251
郁	251
脾	251
删	251
浅	250
滋	250
炭	250
?	249
?	249
?	249
徒	248
竹	248
莎	248
?	247
?	247
坊	247
擦	247
?	246
肺	246
堡	246
壳	246
莉	246
蛮	246
?	245
?	245
锡	245
盐	245
莹	245
寝	245
?	244
?	244
尬	244
串	244
?	243
尴	243
虫	243
卵	243
烂	243
傲	243
绘	242
铜	242
尿	242
?	241
冀	241
晰	241
轰	241
肠	241
阔	240
汗	240
溜	240
?	239
卧	239
芝	238
纱	238
÷	237
?	237
逾	237
伏	237
恰	237
函	237
乙	237
杠	236
?	235
?	235
骏	235
滩	235
.	234
?	234
耕	234
汰	234
犹	234
斑	234
疲	234
饱	233
晴	232
?	231
?	231
Э	229
?	229
曹	229
?	228
辨	227
泪	227
粗	227
剖	226
魏	226
湘	226
肿	226
邓	226
腔	226
窃	225
艰	225
丈	225
赤	225
?	224
蔬	224
卜	224
袜	224
锻	224
膝	224
卿	223
抖	223
渡	223
庞	223
?	222
?	221
?	221
?	221
滤	221
诱	221
勾	221
勿	220
坎	220
娇	220
?	218
辩	218
孟	217
á	216
妨	216
纵	216
5	215
ж	215
绰	215
骁	215
舟	215
琦	215
棋	215
悲	215
?	214
捍	214
棬	214
伞	214
妖	214
?	213
渝	213
盲	213
栋	213
踩	213
夸	213
裸	213
窝	213
哎	213
?	212
?	212
抑	211
奢	211
侣	211
汪	211
砖	211
胀	210
岳	210
萝	210
遥	209
炎	209
?	208
?	208
?	208
惑	208
垂	208
缆	207
裹	207
懒	207
暨	206
雕	206
吵	206
粒	205
泄	205
呆	205
?	204
捧	204
捞	204
侨	204
柏	204
馨	204
缝	204
妮	204
爬	204
厌	204
?	203
~	203
?	203
凑	203
瑜	203
瓮	203
?	202
?	202
绎	202
悄	202
霜	202
?	201
?	201
6	201
洽	201
殖	201
碳	201
?	200
豫	200
撤	200
冻	200
?	199
?	199
?	199
谨	199
绣	199
姨	199
?	198
?	198
?	198
匠	198
盆	198
?	197
?	197
?	197
绸	197
煮	197
帽	197
奈	196
骚	196
陌	196
浴	196
芽	196
?	195
珀	195
碗	195
慕	195
抄	195
3	194
?	194
霆	194
?	193
秩	193
枚	193
寺	193
铠	193
п	192
д	192
з	192
溢	192
伐	192
铃	192
剥	192
鸳	192
彰	191
梳	191
堵	191
斜	191
旭	191
к	190
诞	190
?	189
叹	189
凝	189
飬	188
?	188
罩	188
欺	188
?	187
?	187
霾	187
撼	187
臂	187
渤	187
?	186
?	186
?	186
乓	186
抛	186
?	185
?	185
?	185
?	185
菌	185
鹰	185
坤	185
逗	185
鸯	185
狱	184
赋	184
飘	184
哇	184
?	183
?	183
亩	183
枣	183
闯	183
腻	183
棉	182
怡	182
?	181
?	181
?	181
凸	181
淀	181
厨	181
谊	181
吕	181
?	180
邻	180
仇	180
?	179
?	179
岭	179
鼠	179
晕	179
?	178
?	178
?	178
骤	178
擅	178
?	177
拘	177
?	176
衍	176
钙	176
葡	176
?	175
沧	175
宠	175
蜂	175
?	174
▲	174
贪	174
巅	173
爵	173
窄	173
塘	173
恨	173
4	172
萄	172
慰	172
抚	172
钧	172
辕	172
?	171
剃	171
卸	171
蓬	171
仲	171
椒	171
?	170
腕	170
鹅	170
?	169
涅	169
叙	169
耿	169
●	168
?	168
?	168
屡	168
叉	168
悠	168
侯	168
в	167
?	167
愤	167
攀	167
抬	167
刮	167
妥	167
厢	167
靴	167
阎	166
逢	166
尹	166
昏	166
?	165
舆	165
掀	165
棚	165
忌	165
皆	165
?	164
?	164
?	164
敖	164
仰	164
屈	164
?	163
?	163
?	163
狠	163
巩	162
薇	162
8	161
槛	161
瘤	161
滥	161
咪	161
舌	161
?	160
9	160
弊	160
烤	160
暑	160
?	159
?	159
宪	159
佐	159
泊	159
钓	159
ó	158
?	158
娴	158
睿	158
丑	158
衫	158
?	157
γ	157
м	157
蜀	157
翰	157
囊	157
绵	157
瑟	157
垮	157
?	156
㎡	156
?	156
弥	156
?	155
擎	155
詹	155
劫	155
珊	155
陵	155
悔	155
茅	154
唇	154
鄂	154
幽	154
?	153
?	153
曦	153
萍	153
俺	153
?	152
彗	152
祸	152
?	151
?	151
钞	151
坞	151
敲	151
俏	151
仑	151
伽	151
帆	151
菠	151
?	150
睐	150
砍	150
尸	150
昔	150
咏	150
?	149
?	149
酬	149
丧	149
谐	149
啡	149
夕	149
澡	149
?	148
涡	148
挽	148
炅	148
虹	148
鸭	148
肾	148
咬	148
泼	148
「	147
」	147
Υ	147
?	147
吁	147
歼	147
橘	147
?	146
κ	146
и	146
顣	146
璧	146
崔	146
孝	146
淑	146
眷	146
н	145
?	145
б	145
谦	145
叠	145
兆	145
勃	145
嫩	145
猴	145
巾	145
?	144
?	144
?	144
弘	144
僵	144
阁	144
叵	144
?	143
?	143
?	143
?	143
筛	143
铝	143
祭	143
笼	143
膏	143
7	142
∶	142
?	142
蚁	142
曙	142
蓄	142
氏	142
邱	142
蠢	142
菱	141
讼	141
汁	141
俑	141
?	140
肪	140
韦	140
挣	140
亭	140
谭	140
瑶	140
?	139
?	139
Χ	139
秉	139
蚂	139
惩	139
掏	139
灿	139
?	138
?	138
?	138
迄	138
?	138
陇	138
纬	138
螺	138
崖	138
怜	138
颠	137
辐	137
禽	137
?	136
?	136
薯	136
寓	136
慌	136
桶	136
帖	136
莓	136
瑕	136
?	135
①	135
?	135
?	134
澎	134
鹤	134
廖	134
饼	134
?	133
μ	133
ε	133
衷	133
裕	133
竭	133
兔	133
闷	133
?	132
→	132
ο	132
谍	132
祺	132
崇	132
搏	132
愁	132
掩	132
屁	132
ú	131
堰	131
潇	131
喂	131
晃	131
烨	131
瞎	131
?	130
②	130
ù	130
扁	130
斥	130
斩	130
媚	130
糊	130
坪	130
遮	130
瘾	130
拾	130
爹	130
?	129
汛	129
磅	129
扳	129
侬	129
牺	129
醇	129
砸	129
缅	129
苍	129
菊	129
?	128
茵	128
惧	128
割	128
麟	128
盼	128
?	127
?	127
?	127
?	127
仗	127
溃	127
瑰	127
浆	127
哑	127
霉	127
嘿	127
?	126
?	126
桩	126
蹈	126
潭	126
捉	126
洒	126
饿	126
玫	126
哒	126
滞	125
枝	125
催	125
雯	125
?	124
?	124
坠	124
痕	124
渗	123
舱	123
筱	123
刹	123
沦	123
萧	123
趁	123
埋	123
?	122
厕	122
脖	122
哟	122
?	121
Ρ	121
?	121
?	121
栅	121
颈	121
宙	121
醋	121
蝶	121
踝	121
?	120
?	120
?	120
绽	120
佬	120
脆	120
埔	120
ζ	119
?	119
?	119
?	119
赁	119
葩	119
沫	119
狭	119
倩	119
雌	119
?	118
?	118
狄	118
蒜	118
湃	118
犀	118
冕	118
蛇	118
羡	118
窟	118
郅	117
溯	117
崛	117
厘	117
骄	117
熬	117
呱	117
?	116
?	116
?	116
嘲	116
芬	116
汹	116
?	115
?	115
?	115
髦	115
捂	115
罕	115
芭	115
绒	115
淋	115
捡	115
臭	115
芦	115
?	114
?	114
?	114
峻	114
糟	114
匙	114
摊	114
衬	114
熙	114
丘	114
ι	113
?	113
雇	113
茄	113
啤	113
闺	113
?	112
?	112
浸	112
飙	112
腺	112
呐	112
拌	112
搅	112
?	111
?	111
?	111
?	111
?	111
揽	111
镀	111
愧	111
咳	111
璐	111
楠	111
?	110
ɡ	110
吾	110
杉	110
锤	110
挫	110
巷	110
?	109
?	108
诠	108
朴	108
腊	108
禹	108
灌	108
?	107
?	107
磬	107
铲	107
辱	107
吞	107
葬	107
杏	107
悟	107
1	106
瞻	106
?	106
玥	106
粥	106
酮	106
贱	106
?	105
?	105
芃	105
拯	105
甸	105
枢	105
鞍	105
柿	105
澜	105
殿	105
闫	105
砂	105
誓	105
陨	105
?	104
?	104
e	104
罢	104
嗨	104
饥	104
?	103
?	103
?	103
?	103
?	103
郊	103
趟	103
?	102
?	102
遏	102
隧	102
肇	102
泌	102
淫	102
哗	102
?	101
?	101
o	101
?	101
?	101
慨	101
燥	101
缠	101
粘	101
躲	101
疵	101
?	100
匪	100
钩	100
钥	100
壤	100
缸	100
郫	99
←	99
?	99
?	99
?	99
③	99
歧	99
郡	99
粹	99
旱	99
焰	99
崩	99
臣	99
哄	99
娶	99
茴	98
?	98
?	98
а	98
?	98
籁	98
姬	98
彤	98
寂	98
?	97
?	97
?	97
彦	97
恭	97
?	96
?	96
?	96
?	96
?	96
滮	96
垒	96
邪	96
扔	96
?	95
瞩	95
?	95
?	95
侈	95
巢	95
勘	95
?	94
蕴	94
菁	94
筋	94
沁	94
彬	94
翠	94
?	93
?	93
?	93
?	93
?	93
?	93
酿	93
壬	93
宸	93
咕	93
绷	93
龚	93
戚	93
俞	93
菇	93
兜	93
靓	92
沂	92
谎	92
迭	91
凹	91
瞄	91
贬	91
邵	91
霖	91
芸	91
?	90
¥	90
祛	90
蔓	90
辟	90
噪	90
韵	90
殴	90
挨	90
贼	90
ò	89
?	89
俯	89
焕	89
壶	89
昕	89
栖	89
钦	89
躁	89
恼	89
蝴	89
驴	89
?	88
?	88
?	88
?	88
?	88
膳	88
蔚	88
橙	88
虐	88
葱	88
婉	88
喧	88
雍	88
?	87
?	87
?	87
恺	87
撰	87
瞒	87
撮	87
茫	87
跪	87
窦	87
荆	87
羞	87
罐	87
?	86
④	86
撩	86
沸	86
晗	86
β	85
ν	85
?	85
丨	85
?	85
麓	85
悍	85
牲	85
漆	85
奸	85
?	84
?	84
?	84
Я	84
?	84
/	84
谌	84
荧	84
畏	84
遂	84
敞	84
倪	84
妍	84
哀	84
坝	84
渣	84
畜	84
嫂	84
?	83
宛	83
惕	83
磷	83
掐	83
聋	83
炜	83
溶	83
雀	83
赌	83
?	82
?	82
贿	82
柄	82
侃	82
逝	82
昊	82
梨	82
绚	82
肆	82
?	81
?	81
?	81
?	81
?	81
滕	81
睹	81
竖	81
闵	81
笨	81
?	80
?	80
?	80
?	80
仕	80
皓	80
尧	80
蟹	80
痴	80
倦	80
?	79
?	79
昧	79
丫	79
?	78
?	78
?	78
哨	78
弧	78
亨	78
盯	78
棍	78
舅	78
?	77
?	77
夯	77
谜	77
湛	77
捣	77
枕	77
邹	77
屯	77
虾	77
钉	77
葵	77
蚊	77
簧	77
′	76
?	76
仯	76
?	76
篷	76
扒	76
辜	76
枫	76
佼	76
?	75
?	75
帷	75
?	75
?	75
犸	75
韧	75
沛	75
勉	75
阜	75
歇	75
绳	75
氓	75
讴	74
?	74
ü	74
?	74
苛	74
?	74
?	74
皖	74
渭	74
黏	74
遣	74
硅	74
婧	74
刃	74
甬	74
邕	74
隙	74
寞	74
晤	73
炽	73
?	73
?	73
?	73
?	73
鲸	73
懈	73
栽	73
漠	73
魄	73
脊	73
鲍	73
澄	73
椎	73
麒	73
娥	73
芹	73
焉	73
唧	73
邺	72
?	72
肢	72
玖	72
恤	72
弦	72
浑	72
咸	72
?	71
?	71
?	71
?	71
?	71
?	71
猿	71
髓	71
庚	71
牡	71
闸	71
喻	71
戳	71
咒	71
笋	71
?	70
棺	70
氨	70
垦	70
蔽	70
邢	70
槐	70
铬	69
?	69
?	69
裔	69
矶	69
驭	69
痰	69
讳	69
锣	69
琅	69
搁	69
憋	69
拢	69
郝	69
骆	69
桐	69
喉	69
儒	69
扇	69
屠	69
暇	69
钾	69
谅	69
踊	69
怂	69
★	68
?	68
?	68
?	68
?	68
阐	68
俪	68
毯	68
匆	68
扛	68
黔	68
茜	68
妃	68
?	67
?	67
?	67
?	67
?	67
橱	67
阀	67
蹭	67
淄	67
坷	67
?	66
?	66
?	66
?	66
?	66
?	66
舶	66
衢	66
悼	66
姣	66
臻	66
铅	66
驳	66
叛	66
庙	66
捏	66
?	65
?	65
豸	65
掷	65
顽	65
喘	65
甄	65
锈	65
?	64
?	64
?	64
+	64
?	64
?	64
咽	64
挪	64
啸	64
丛	64
煎	64
饲	64
暧	64
靖	64
筒	64
?	63
?	63
?	63
?	63
?	63
怼	63
°	63
诵	63
蝎	63
鲨	63
逮	63
巫	63
蕉	63
襄	63
罻	62
⑤	62
?	62
漓	62
苇	62
囚	62
栈	62
毋	62
帘	62
肘	62
饶	62
?	61
珑	61
帜	61
佑	61
颂	61
壹	61
穴	61
沾	61
渲	61
?	60
赣	60
?	60
?	60
钮	60
榄	60
缔	60
摹	60
羯	60
梭	60
奎	60
耻	60
汾	60
卑	60
吼	60
醛	60
趴	60
恿	60
湉	59
?	59
慷	59
?	59
?	59
?	59
?	59
?	59
?	59
慑	59
盎	59
?	59
骸	59
酵	59
稻	59
膀	59
矮	59
喔	59
膊	59
?	58
?	58
?	58
?	58
烹	58
?	58
泻	58
翟	58
劈	58
嘻	58
葫	58
悚	57
橄	57
孵	57
酶	57
叨	57
枯	57
缉	57
漳	57
宰	57
雁	57
塌	57
玮	57
琐	57
霄	57
嚣	57
宵	57
胳	57
屌	57
?	56
?	56
?	56
?	56
?	56
厄	56
犁	56
殷	56
讽	56
睫	56
橡	56
嘎	56
妞	56
祠	56
?	55
?	55
?	55
α	55
?	55
遴	55
呕	55
涩	55
冉	55
愚	55
捆	55
廯	54
?	54
?	54
梗	54
娩	54
殡	54
砚	54
蒿	54
蚀	54
煞	54
矫	54
疡	54
丙	54
膛	54
烫	54
岂	54
裴	54
喽	54
?	53
?	53
跻	53
芜	53
喀	53
肋	53
邯	53
陀	53
栓	53
挚	53
耽	53
榆	53
蛛	53
觅	53
搂	53
ī	52
?	52
?	52
?	52
?	52
驿	52
剿	52
嗽	52
凳	52
墅	52
棕	52
妄	52
榴	52
栗	52
窘	52
狡	52
锚	51
?	51
2	51
郸	51
漾	51
罄	51
潍	51
彝	51
桓	51
泵	51
懿	51
黛	51
梓	51
曰	51
穹	51
炯	51
?	50
⑥	50
?	50
?	50
?	50
玺	50
灶	50
垄	50
琥	50
刁	50
泸	50
煲	50
蝉	50
兮	50
颅	50
韬	50
喇	50
狸	50
蛙	50
翅	50
匈	50
茹	50
褶	50
?	49
顷	49
?	49
徊	49
拭	49
筐	49
嵌	49
绊	49
屿	49
呛	49
绅	49
柠	49
叮	49
炖	49
鹃	49
屎	49
猾	49
揉	49
跤	49
?	48
t	48
徘	48
?	48
妊	48
瀑	48
衅	48
棵	48
嚼	48
喵	48
汕	48
犬	48
甫	48
痘	48
禧	48
鲅	48
?	47
娠	47
?	47
?	47
?	47
?	47
?	47
?	47
?	47
?	47
沥	47
恳	47
哺	47
嗓	47
冈	47
樊	47
禾	47
皱	47
蘑	47
哼	47
?	46
廓	46
?	46
?	46
?	46
圭	46
θ	46
裬	46
?	46
鼾	46
磋	46
冶	46
锯	46
娅	46
弈	46
讶	46
拱	46
烘	46
朽	46
攒	46
碌	46
猥	46
啪	46
?	45
?	45
	45
硒	45
秤	45
汐	45
囧	45
剔	45
酋	45
鸥	45
蚕	45
荔	45
镶	45
棠	45
瞧	45
祈	45
皂	45
痞	45
?	44
?	44
■	44
礁	44
崎	44
敛	44
崭	44
亟	44
秆	44
藕	44
淼	44
寥	44
勺	44
孜	44
簇	44
淹	44
豚	44
鸽	44
斧	44
伺	44
慵	44
龟	44
?	43
?	43
薏	43
?	43
膨	43
撬	43
瘫	43
嫣	43
傍	43
覃	43
聆	43
磕	43
?	42
?	42
槿	42
?	42
?	42
?	42
秸	42
猝	42
诽	42
谤	42
淤	42
飚	42
摧	42
篡	42
窜	42
匿	42
隋	42
檬	42
撸	42
焊	42
钰	42
俭	42
浇	42
甯	41
颌	41
阚	41
惫	41
?	41
硢	41
?	41
?	41
?	41
?	41
?	41
捅	41
?	41
?	41
忴	41
?	41
?	41
?	41
氢	41
驯	41
沅	41
涿	41
缀	41
庐	41
弓	41
寅	41
稽	41
硫	41
韶	41
咧	41
潢	41
Ψ	40
?	40
?	40
僚	40
畴	40
钛	40
筝	40
祁	40
豁	40
坟	40
狙	40
聂	40
濮	40
埠	40
嘟	40
毂	39
诟	39
?	39
汲	39
菅	39
袱	39
夭	39
怠	39
嘱	39
阮	39
糙	39
晟	39
炳	39
叭	39
驼	39
棱	39
筷	39
袂	38
?	38
?	38
?	38
?	38
碱	38
?	38
?	38
?	38
?	38
?	38
‰	38
膺	38
杞	38
糗	38
铸	38
瓢	38
窥	38
缤	38
鞭	38
懵	38
佣	38
敷	38
禅	38
擒	38
鳞	38
嘞	38
?	37
黯	37
?	37
郴	37
è	37
ヽ	37
汀	37
?	37
莺	37
乍	37
缭	37
?	37
羁	37
竣	37
夷	37
蜕	37
斐	37
厮	37
跆	37
梧	37
柚	37
躯	37
嗜	37
奕	37
稚	37
琛	37
杖	37
奴	37
η	36
梵	36
?	36
?	36
?	36
?	36
?	36
?	36
倔	36
瀚	36
诡	36
焚	36
娓	36
佰	36
乾	36
抠	36
恍	36
拽	36
盔	36
暮	36
瑾	36
?	35
飨	35
?	35
?	35
?	35
?	35
辡	35
↓	35
?	35
珏	35
缪	35
畸	35
楷	35
袍	35
猩	35
诛	35
邸	35
戛	35
姗	35
隶	35
畔	35
蜘	35
姊	35
犊	35
唉	35
鳕	35
籭	34
骐	34
?	34
?	34
?	34
?	34
?	34
咘	34
媲	34
讪	34
梢	34
靡	34
靶	34
饽	34
嘘	34
旷	34
锌	34
笛	34
陡	34
芪	34
琢	34
眸	34
糯	34
朔	34
碾	34
淇	34
僻	34
舔	34
『	33
』	33
?	33
觑	33
?	33
?	33
?	33
?	33
?	33
?	33
?	33
?	33
濒	33
?	33
с	33
蟒	33
亵	33
翩	33
芮	33
荟	33
耘	33
僧	33
绮	33
抒	33
煜	33
眩	33
虞	33
岐	33
唠	33
颐	33
歹	33
溺	33
禄	33
啃	33
紊	33
馍	33
唔	33
珈	32
蠕	32
?	32
淶	32
?	32
?	32
?	32
?	32
ˉ	32
阪	32
洼	32
谴	32
帧	32
瞰	32
恙	32
臧	32
氮	32
妩	32
鳅	32
榨	32
茧	32
檀	32
幌	32
琊	32
鸦	32
娄	32
巍	32
惰	32
彪	32
榕	32
瞅	32
遐	32
颊	32
诶	32
呃	32
猷	31
灼	31
?	31
é	31
?	31
?	31
?	31
Ь	31
□	31
裘	31
猕	31
淳	31
辫	31
徕	31
掠	31
郜	31
株	31
钳	31
绯	31
窖	31
胚	31
靳	31
冥	31
亢	31
搓	31
蹦	31
撅	31
?	30
腥	30
抉	30
?	30
?	30
|	30
?	30
?	30
嵥	30
?	30
?	30
▼	30
溉	30
褚	30
倘	30
俨	30
屹	30
碟	30
峥	30
絮	30
汶	30
翡	30
贞	30
浊	30
吟	30
呦	30
缇	29
辄	29
皙	29
鏖	29
?	29
?	29
?	29
?	29
?	29
塣	29
顢	29
?	29
锂	29
赃	29
枸	29
烯	29
硝	29
曜	29
堤	29
仆	29
熄	29
滁	29
倚	29
揣	29
祷	29
鳝	29
赐	29
陋	29
侄	29
陂	29
崑	28
羺	28
?	28
?	28
棘	28
?	28
?	28
塢	28
萃	28
?	28
?	28
荼	28
?	28
?	28
酣	28
惋	28
昱	28
睁	28
蔗	28
峙	28
伶	28
蚌	28
脐	28
藤	28
蒲	28
趾	28
痒	28
疤	28
钠	27
孚	27
?	27
?	27
?	27
跷	27
毗	27
?	27
鄞	27
噱	27
炙	27
噩	27
栾	27
沽	27
椰	27
瓣	27
鳄	27
蝙	27
蝠	27
惶	27
岔	27
乞	27
蹄	27
荫	27
跛	27
?	26
☆	26
±	26
?	26
?	26
?	26
烊	26
邃	26
侥	26
攘	26
?	26
轧	26
桢	26
矢	26
萎	26
魁	26
洵	26
蜗	26
蜡	26
璨	26
姝	26
穗	26
渺	26
惟	26
莆	26
泣	26
鄙	26
磺	26
暄	26
Τ	25
?	25
?	25
?	25
?	25
?	25
?	25
擂	25
?	25
斛	25
?	25
涞	25
汝	25
辗	25
殆	25
砌	25
邑	25
坂	25
峪	25
剁	25
窑	25
岚	25
芋	25
鹞	24
慜	24
?	24
镁	24
ī	24
?	24
A	24
?	24
?	24
睦	24
滇	24
B	24
饪	24
涝	24
辙	24
羹	24
莘	24
匮	24
拂	24
幢	24
熠	24
胺	24
璀	24
缕	24
辍	24
肴	24
澈	24
寇	24
嚷	24
洱	24
咎	24
褒	24
襟	24
涓	24
伢	24
?	23
愫	23
麾	23
佟	23
?	23
?	23
ì	23
鹈	23
鹕	23
砒	23
胰	23
?	23
ξ	23
呷	23
弛	23
俘	23
颓	23
娆	23
耸	23
嫉	23
侮	23
璇	23
牟	23
尉	23
驹	23
濑	23
?	22
匣	22
珲	22
?	22
鱦	22
Ц	22
?	22
昙	22
晾	22
沮	22
瞪	22
窍	22
藻	22
沐	22
秧	22
酝	22
飒	22
窒	22
羔	22
蓓	22
楞	22
馒	22
酥	22
芙	22
屑	22
啧	22
猖	22
吮	22
揍	22
吖	22
楂	21
宕	21
?	21
?	21
?	21
Ⅴ	21
?	21
缜	21
P	21
悖	21
罹	21
稠	21
柑	21
C	21
飩	21
?	21
?	21
腱	21
矣	21
酉	21
樟	21
釉	21
抨	21
韭	21
苟	21
堕	21
疸	21
烁	21
桔	21
烽	21
滔	21
庵	21
蝇	21
蕊	21
枭	21
?	20
?	20
钜	20
?	20
?	20
?	20
囤	20
?	20
?	20
?	20
?	20
?	20
?	20
`	20
阱	20
?	20
迸	20
?	20
?	20
瑛	20
―	20
?	20
?	20
蹿	20
迥	20
苓	20
籽	20
骋	20
崂	20
哮	20
诫	20
挠	20
粪	20
湄	20
嬉	20
卉	20
煽	20
晦	20
铂	20
漱	20
妒	20
掺	20
揪	20
龈	20
铌	19
戟	19
邬	19
硣	19
?	19
蹊	19
亳	19
譬	19
斡	19
淖	19
匝	19
?	19
峭	19
χ	19
痪	19
赎	19
喆	19
搀	19
酌	19
貂	19
癖	19
嵩	19
茬	19
礴	19
肽	19
寰	19
憨	19
隽	19
昼	19
铉	19
拎	19
鲤	19
瞿	19
饺	19
峨	19
剐	19
荚	19
鳖	19
?	18
岖	18
漕	18
珐	18
洢	18
贲	18
?	18
弋	18
嗅	18
?	18
?	18
?	18
蜥	18
腑	18
腭	18
─	18
歆	18
骼	18
?	18
?	18
颤	18
赘	18
镰	18
旖	18
徙	18
煦	18
瑚	18
丞	18
惬	18
饷	18
嗦	18
晔	18
婿	18
秃	18
懦	18
逍	18
竿	18
啰	18
珂	18
癫	18
墩	18
浣	18
掰	18
醺	18
姥	18
臃	18
嬷	18
崽	18
妓	18
噶	18
?	17
?	17
?	17
氪	17
&	17
?	17
涪	17
?	17
?	17
?	17
?	17
幤	17
	17
?	17
?	17
凿	17
鰸	17
搡	17
栩	17
≠	17
塱	17
戮	17
灸	17
扼	17
泠	17
藉	17
痊	17
弩	17
簿	17
刨	17
芥	17
镌	17
槟	17
碘	17
铨	17
葆	17
侍	17
昀	17
泾	17
鱿	17
脯	17
惚	17
粑	17
蛀	17
嗲	17
叽	17
嘚	17
朕	17
鸢	17
骢	16
蛳	16
洙	16
?	16
鹌	16
鹑	16
唾	16
苋	16
?	16
岌	16
噬	16
?	16
?	16
偃	16
鷢	16
?	16
谧	16
瞠	16
?	16
祉	16
跋	16
颍	16
?	16
舸	16
惭	16
怯	16
酚	16
酯	16
綦	16
涤	16
挟	16
漪	16
烙	16
纫	16
毓	16
腌	16
椿	16
盹	16
咐	16
皑	16
咙	16
氟	16
拷	16
缙	16
咩	16
啵	16
£	15
?	15
伉	15
釜	15
昇	15
鞣	15
垩	15
?	15
?	15
珮	15
崆	15
峒	15
佚	15
笃	15
蜈	15
蚣	15
摒	15
?	15
徭	15
鴦	15
哽	15
铐	15
廿	15
?	15
◆	15
魇	15
缮	15
潺	15
钝	15
鲢	15
緢	15
淌	15
恬	15
皋	15
镍	15
缚	15
踵	15
霁	15
氯	15
憬	15
轶	15
嘹	15
雏	15
卤	15
饵	15
殒	15
孰	15
圩	15
镂	15
涟	15
褐	15
妤	15
隘	15
帼	15
莴	15
箍	15
粱	15
贰	15
哩	15
诅	15
懋	14
萤	14
嬅	14
玏	14
赟	14
硶	14
咄	14
拗	14
a	14
冗	14
?	14
壩	14
嫦	14
?	14
邗	14
?	14
讹	14
?	14
?	14
缨	14
?	14
?	14
齨	14
埇	14
啼	14
◎	14
咀	14
旎	14
〉	14
涣	14
墒	14
蜿	14
蜒	14
?	14
?	14
劾	14
哆	14
馥	14
酪	14
翊	14
憧	14
鄱	14
诬	14
瓯	14
骞	14
岱	14
禀	14
羌	14
俐	14
苔	14
柬	14
绞	14
锥	14
嚎	14
庇	14
霏	14
熹	14
壕	14
悸	14
槌	14
诩	14
遛	14
搪	14
殃	14
疮	14
眯	14
菩	14
舜	14
豌	14
婶	14
浔	14
喃	14
糍	14
蛹	14
溴	13
於	13
曳	13
?	13
芡	13
瑀	13
?	13
?	13
邂	13
逅	13
?	13
砥	13
褪	13
淅	13
淆	13
梆	13
逵	13
?	13
?	13
?	13
?	13
鶽	13
?	13
?	13
桱	13
婺	13
?	13
?	13
莠	13
?	13
砺	13
鵽	13
亥	13
饕	13
餮	13
卯	13
瞭	13
〈	13
?	13
蛰	13
奂	13
?	13
鳤	13
蹤	13
拣	13
札	13
妪	13
馁	13
桨	13
舵	13
莽	13
趸	13
瞳	13
诲	13
幡	13
哉	13
戎	13
焱	13
拧	13
桦	13
昵	13
晏	13
撇	13
炬	13
衩	13
彷	13
捶	13
叼	13
痹	13
辊	13
婵	13
恽	12
孃	12
?	12
∕	12
?	12
戌	12
芈	12
桅	12
糡	12
?	12
茯	12
?	12
?	12
?	12
?	12
侏	12
蕨	12
斓	12
ū	12
﹟	12
?	12
滭	12
罡	12
锭	12
Ъ	12
?	12
?	12
?	12
泿	12
Ф	12
?	12
€	12
伎	12
?	12
谩	12
沼	12
佹	12
﹑	12
腼	12
腆	12
锷	12
泞	12
忱	12
诧	12
檐	12
盏	12
榻	12
璞	12
嘀	12
泗	12
忐	12
忑	12
烛	12
浜	12
咚	12
霓	12
疹	12
榈	12
菏	12
沭	12
雹	12
坯	12
咤	12
拄	12
璋	12
咔	12
瞌	12
笠	12
矜	12
睇	12
凋	12
煊	12
妾	12
?	11
桀	11
?	11
籾	11
?	11
狰	11
狞	11
嚏	11
嗖	11
茌	11
?	11
?	11
鹦	11
榷	11
谚	11
?	11
缥	11
缈	11
枷	11
谛	11
?	11
?	11
¤	11
?	11
烩	11
璟	11
漰	11
?	11
?	11
?	11
?	11
?	11
耄	11
耋	11
?	11
堃	11
?	11
嘈	11
復	11
?	11
垢	11
茎	11
沱	11
?	11
?	11
眶	11
?	11
Ⅲ	11
粳	11
珉	11
惮	11
榛	11
窈	11
窕	11
逞	11
鲫	11
兀	11
阂	11
卒	11
犷	11
恣	11
虔	11
嘶	11
镖	11
钵	11
岷	11
郧	11
馅	11
碉	11
祀	11
疚	11
腮	11
茸	11
涕	11
镐	11
苯	11
蛤	11
邛	11
琨	11
呜	11
丐	11
仨	11
荻	10
?	10
?	10
*	10
藜	10
甙	10
胱	10
耦	10
鹉	10
匕	10
I	10
洦	10
?	10
浥	10
拙	10
挎	10
?	10
掖	10
?	10
矾	10
簸	10
酗	10
莒	10
?	10
?	10
?	10
?	10
?	10
吋	10
闱	10
?	10
綯	10
?	10
箔	10
?	10
渚	10
?	10
Т	10
篓	10
荤	10
?	10
眺	10
猞	10
猁	10
?	10
?	10
氙	10
漩	10
婊	10
寐	10
丕	10
凇	10
稼	10
铮	10
纶	10
泓	10
粟	10
潞	10
鹭	10
竺	10
婪	10
荞	10
裳	10
惦	10
椭	10
髋	10
吱	10
拈	10
愣	10
琉	10
沌	10
蹶	10
蔺	10
潼	10
徨	10
嗑	10
甥	10
芷	10
狒	10
恁	10
俍	9
舷	9
恫	9
?	9
▌	9
?	9
镕	9
?	9
亞	9
梼	9
杌	9
踞	9
赅	9
⑦	9
绫	9
诙	9
缎	9
?	9
?	9
遨	9
狩	9
T	9
唏	9
?	9
舫	9
?	9
笈	9
螈	9
黠	9
罨	9
繫	9
熔	9
?	9
鼮	9
?	9
?	9
?	9
淢	9
?	9
?	9
吒	9
鲵	9
篑	9
樾	9
?	9
榭	9
齫	9
桰	9
?	9
?	9
睢	9
鞘	9
D	9
吝	9
谙	9
摃	9
渍	9
?	9
仞	9
琶	9
叱	9
溏	9
萦	9
赂	9
斟	9
渎	9
抿	9
恕	9
隅	9
濡	9
拇	9
扉	9
屉	9
圃	9
锵	9
袄	9
厥	9
劵	9
迩	9
馋	9
祯	9
粽	9
呲	9
镯	9
幺	9
隍	9
捎	9
孽	9
噻	9
?	8
濨	8
?	8
伱	8
?	8
?	8
場	8
忪	8
逯	8
?	8
嬛	8
阖	8
锏	8
叒	8
ん	8
鞅	8
铩	8
窨	8
^	8
?	8
笕	8
谬	8
滺	8
鍊	8
栎	8
芩	8
桎	8
梏	8
?	8
臼	8
?	8
?	8
蟾	8
龋	8
罔	8
滹	8
?	8
蝾	8
糅	8
?	8
?	8
飺	8
獗	8
鞠	8
?	8
羰	8
涼	8
綼	8
鱨	8
?	8
?	8
嶂	8
?	8
鍦	8
棰	8
揄	8
?	8
鹊	8
粼	8
?	8
у	8
Ⅳ	8
岙	8
臆	8
桷	8
炊	8
辘	8
吏	8
羚	8
鳍	8
泱	8
娣	8
熨	8
垚	8
溅	8
褥	8
噜	8
铰	8
撂	8
凛	8
婕	8
绾	8
翌	8
焙	8
丶	8
螃	8
燎	8
忒	8
溧	8
篆	8
噗	8
踹	8
妳	8
浒	8
锰	8
陛	8
嫖	8
璜	8
绢	8
捻	8
瘸	8
砀	7
S	7
铢	7
將	7
缄	7
胤	7
旻	7
祎	7
脍	7
谲	7
洌	7
槃	7
№	7
?	7
⑧	7
蹴	7
?	7
≥	7
傀	7
儡	7
?	7
"	7
恪	7
泩	7
杲	7
?	7
?	7
覴	7
颧	7
磐	7
瘠	7
?	7
?	7
?	7
锲	7
楹	7
蛾	7
?	7
潫	7
壺	7
﹒	7
仚	7
罂	7
?	7
?	7
?	7
濪	7
黹	7
瀛	7
浚	7
?	7
?	7
?	7
?	7
?	7
?	7
籩	7
?	7
?	7
-	7
捺	7
瑙	7
鏃	7
肮	7
潨	7
淦	7
艏	7
亘	7
鲻	7
矗	7
鄯	7
?	7
籣	7
馏	7
赦	7
琵	7
胫	7
膑	7
孪	7
窿	7
嗒	7
痧	7
枇	7
杷	7
咫	7
吭	7
郯	7
铆	7
睬	7
烬	7
灞	7
殇	7
叁	7
迦	7
硼	7
袒	7
珞	7
抡	7
胭	7
茁	7
猬	7
濠	7
裆	7
螂	7
崃	7
涧	7
痔	7
奚	7
痫	7
笙	7
疙	7
瘩	7
玷	7
胛	7
潦	7
坨	7
卅	7
钊	7
蔑	7
芍	7
腋	7
泔	6
阕	6
俾	6
讣	6
塷	6
擘	6
骛	6
?	6
劢	6
鲹	6
鷿	6
?	6
忡	6
旌	6
?	6
?	6
痼	6
?	6
揶	6
?	6
?	6
達	6
奪	6
奧	6
	6
眈	6
仵	6
洇	6
蹒	6
跚	6
遑	6
嗤	6
?	6
?	6
鹜	6
?	6
脓	6
?	6
皎	6
?	6
苣	6
痨	6
瘀	6
黳	6
?	6
薰	6
?	6
?	6
?	6
碁	6
蜍	6
麂	6
?	6
涾	6
?	6
叩	6
?	6
?	6
?	6
赡	6
讧	6
跽	6
?	6
?	6
?	6
裨	6
?	6
?	6
鹫	6
掣	6
鄢	6
?	6
?	6
?	6
?	6
?	6
硱	6
?	6
?	6
?	6
?	6
霹	6
雳	6
?	6
齭	6
刍	6
荛	6
?	6
畈	6
?	6
趨	6
?	6
G	6
侗	6
叕	6
銆	6
棤	6
數	6
纾	6
匾	6
?	6
徇	6
恃	6
戰	6
伫	6
袅	6
?	6
?	6
?	6
讥	6
喱	6
哧	6
邋	6
遢	6
肱	6
拮	6
澧	6
瘪	6
茱	6
蕃	6
钗	6
惺	6
怅	6
攥	6
捋	6
黝	6
痢	6
禺	6
飓	6
匡	6
癜	6
汞	6
踌	6
躇	6
崴	6
嗝	6
衙	6
蔼	6
淞	6
悯	6
岑	6
诏	6
矬	6
艮	5
漉	5
?	5
?	5
?	5
M	5
↑	5
蛊	5
?	5
	5
冢	5
?	5
砵	5
?	5
隼	5
?	5
漣	5
後	5
聯	5
爭	5
勝	5
琚	5
澍	5
佤	5
檄	5
匍	5
匐	5
躬	5
嬴	5
雒	5
?	5
?	5
?	5
孑	5
喑	5
禚	5
?	5
裺	5
缰	5
腩	5
槲	5
弰	5
?	5
?	5
糿	5
緹	5
?	5
?	5
鷨	5
?	5
徫	5
?	5
廹	5
壑	5
烷	5
?	5
?	5
?	5
鷳	5
顱	5
?	5
週	5
?	5
?	5
赲	5
?	5
忏	5
蛎	5
弶	5
怆	5
?	5
?	5
簲	5
?	5
藩	5
侭	5
褂	5
?	5
?	5
?	5
浱	5
?	5
磩	5
?	5
?	5
O	5
?	5
巽	5
鷽	5
鼰	5
繤	5
眨	5
?	5
垛	5
聿	5
垟	5
?	5
?	5
?	5
?	5
佘	5
蜴	5
藐	5
绌	5
绛	5
紝	5
犵	5
氳	5
锛	5
?	5
?	5
渥	5
夙	5
扞	5
镚	5
堑	5
儆	5
△	5
诿	5
?	5
Ⅱ	5
酰	5
辋	5
瓒	5
篱	5
蕙	5
瞥	5
钏	5
铎	5
圻	5
摁	5
埭	5
拴	5
珩	5
硐	5
铿	5
芊	5
墟	5
蟑	5
蘸	5
榔	5
黍	5
耙	5
茗	5
盱	5
眙	5
翱	5
扈	5
瘟	5
橇	5
娼	5
宥	5
闰	5
嗷	5
吩	5
稣	5
勐	5
浃	5
肛	5
侉	5
荨	5
啷	5
龅	5
呸	5
幩	4
谆	4
Ⅵ	4
锾	4
?	4
悢	4
鲉	4
L	4
鹱	4
兢	4
骰	4
敕	4
羳	4
蛟	4
?	4
?	4
?	4
?	4
鰴	4
?	4
?	4
齺	4
?	4
蹩	4
綾	4
?	4
雲	4
?	4
薅	4
純	4
?	4
é	4
?	4
對	4
維	4
無	4
爾	4
碴	4
當	4
壡	4
樯	4
?	4
踽	4
?	4
觥	4
K	4
撷	4
镝	4
ㄞ	4
檎	4
こ	4
ば	4
は	4
淬	4
帚	4
诨	4
囿	4
荏	4
苒	4
紴	4
┃	4
塭	4
巿	4
?	4
?	4
?	4
?	4
x	4
沓	4
苷	4
糱	4
?	4
?	4
啬	4
訇	4
?	4
弡	4
痠	4
懊	4
溬	4
?	4
焯	4
蜚	4
轼	4
?	4
?	4
攫	4
?	4
塶	4
?	4
峵	4
砰	4
汸	4
徳	4
岢	4
–	4
粣	4
賿	4
妁	4
?	4
?	4
埌	4
嘢	4
昶	4
緽	4
?	4
嗣	4
麋	4
婀	4
繦	4
碚	4
鲼	4
?	4
汣	4
粿	4
?	4
?	4
踲	4
邡	4
沣	4
陟	4
?	4
?	4
?	4
?	4
塰	4
飻	4
?	4
?	4
?	4
?	4
跢	4
翀	4
憔	4
悴	4
峯	4
篦	4
?	4
輸	4
?	4
漴	4
?	4
?	4
岻	4
殉	4
贮	4
峦	4
稔	4
鐢	4
	4
瀹	4
氬	4
	4
鍙	4
柟	4
ゆ	4
戠	4
巼	4
費	4
湫	4
坍	4
蘖	4
颡	4
谑	4
琍	4
鸠	4
愕	4
啾	4
杳	4
耆	4
栉	4
?	4
?	4
忻	4
粕	4
骇	4
弑	4
掇	4
鬓	4
莅	4
厝	4
瑄	4
虏	4
弼	4
蔷	4
阙	4
钨	4
塬	4
萸	4
樵	4
娉	4
荃	4
孢	4
纭	4
炀	4
犟	4
耷	4
甭	4
遁	4
蹬	4
潸	4
铣	4
鸾	4
娲	4
卞	4
偕	4
苞	4
茉	4
胥	4
衲	4
蠛	4
荀	4
墉	4
痿	4
铧	4
淨	3
?	3
?	3
饬	3
嫡	3
溱	3
蚵	3
铀	3
钽	3
佃	3
孺	3
W	3
绥	3
蟠	3
?	3
?	3
?	3
﹝	3
﹞	3
?	3
?	3
诣	3
?	3
?	3
?	3
帣	3
?	3
癿	3
瓴	3
內	3
浽	3
彨	3
呎	3
淝	3
顰	3
郦	3
?	3
徹	3
榫	3
麣	3
滻	3
铄	3
儋	3
挹	3
曩	3
孱	3
瑪	3
?	3
?	3
販	3
?	3
?	3
?	3
?	3
?	3
?	3
?	3
跬	3
埈	3
?	3
愍	3
刿	3
N	3
哌	3
○	3
?	3
?	3
?	3
щ	3
?	3
徰	3
裻	3
轭	3
?	3
賬	3
?	3
會	3
輪	3
開	3
勢	3
撺	3
暹	3
谶	3
掴	3
黰	3
侳	3
?	3
荜	3
踯	3
躅	3
憎	3
晞	3
?	3
?	3
霰	3
辿	3
塚	3
?	3
幫	3
?	3
喙	3
?	3
︰	3
の	3
糜	3
?	3
?	3
?	3
?	3
籡	3
?	3
?	3
蔻	3
▎	3
祐	3
粻	3
?	3
?	3
?	3
?	3
?	3
廤	3
膈	3
髲	3
瘁	3
辂	3
時	3
樨	3
诜	3
麸	3
?	3
?	3
嘌	3
呤	3
?	3
?	3
?	3
?	3
?	3
轡	3
?	3
膘	3
擞	3
钼	3
荠	3
蔫	3
?	3
濛	3
罫	3
佱	3
?	3
繺	3
?	3
?	3
?	3
?	3
?	3
鱾	3
跶	3
澫	3
徵	3
?	3
?	3
乺	3
?	3
?	3
?	3
?	3
陲	3
仄	3
溥	3
?	3
?	3
?	3
舛	3
檩	3
?	3
?	3
?	3
掬	3
嶯	3
?	3
嵘	3
?	3
?	3
?	3
髯	3
?	3
铤	3
?	3
嵽	3
?	3
?	3
峤	3
纂	3
鶼	3
?	3
棨	3
辭	3
櫻	3
簪	3
桉	3
诤	3
惘	3
攸	3
棩	3
?	3
衱	3
?	3
?	3
?	3
潻	3
?	3
?	3
仧	3
?	3
缯	3
绹	3
?	3
?	3
嫘	3
?	3
?	3
?	3
?	3
辶	3
?	3
?	3
乫	3
?	3
?	3
?	3
侲	3
弢	3
黟	3
阑	3
瘘	3
勍	3
鎷	3
灏	3
併	3
細	3
鎮	3
鏈	3
鍔	3
鐜	3
浼	3
皥	3
	3
鐞	3
嗗	3
	3
	3
绠	3
$	3
悊	3
呭	3
鍜	3
鍥	3
屽	3
鍗	3
璁	3
綉	3
?	3
?	3
晢	3
迂	3
箩	3
埂	3
懑	3
镭	3
氡	3
徜	3
徉	3
涸	3
?	3
裡	3
憩	3
袤	3
戍	3
?	3
鴫	3
牤	3
龊	3
锹	3
秽	3
噘	3
谄	3
鲛	3
骧	3
魍	3
魉	3
诳	3
俸	3
噎	3
扥	3
帛	3
蚝	3
鳗	3
獠	3
颉	3
祟	3
澹	3
鲈	3
呻	3
獒	3
漯	3
骊	3
囱	3
砾	3
掂	3
蹂	3
躏	3
鹄	3
轲	3
瞑	3
吆	3
挞	3
唬	3
潆	3
筠	3
蹋	3
婢	3
腚	3
鲶	3
喏	3
馄	3
饨	3
佢	3
嗟	3
尥	3
仟	3
埗	2
?	2
?	2
硰	2
訾	2
?	2
漶	2
龌	2
V	2
鸸	2
鹋	2
俋	2
谳	2
冑	2
馊	2
饯	2
晌	2
橹	2
谘	2
峋	2
?	2
ê	2
祗	2
坜	2
浬	2
倭	2
鲟	2
畿	2
驛	2
诋	2
辯	2
≈	2
癀	2
?	2
芎	2
?	2
號	2
鰵	2
?	2
滟	2
汻	2
?	2
疴	2
瘴	2
F	2
?	2
岣	2
#	2
滷	2
黩	2
賤	2
?	2
軭	2
媸	2
綴	2
蜻	2
蜓	2
?	2
觊	2
觎	2
锳	2
?	2
?	2
衭	2
?	2
廧	2
?	2
?	2
妫	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
趯	2
?	2
?	2
?	2
¨	2
?	2
挝	2
莼	2
唳	2
?	2
?	2
?	2
?	2
銭	2
踉	2
跄	2
?	2
?	2
涎	2
蟬	2
橫	2
蘭	2
風	2
頭	2
紅	2
脫	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
跖	2
玓	2
?	2
纰	2
邳	2
?	2
缶	2
?	2
衵	2
紐	2
倫	2
軍	2
過	2
來	2
錫	2
魯	2
麽	2
侩	2
馃	2
齁	2
咻	2
畑	2
湊	2
?	2
?	2
?	2
為	2
掮	2
蒹	2
葭	2
髻	2
?	2
愠	2
牍	2
傈	2
僳	2
獭	2
匏	2
跺	2
?	2
?	2
?	2
娑	2
诃	2
恻	2
ū	2
笆	2
魑	2
鼬	2
蜃	2
戬	2
纣	2
?	2
?	2
颏	2
迢	2
骥	2
轣	2
?	2
鵰	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
廬	2
廼	2
迺	2
?	2
?	2
紺	2
喋	2
濯	2
玑	2
玟	2
啫	2
噚	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
?	2
覸	2
?	2
谮	2
?	2
痉	2
挛	2
瘢	2
?	2
馕	2
?	2
?	2
?	2
讚	2
緻	2
冇	2
蹙	2
酩	2
酊	2
姒	2
妲	2
琰	2
痣	2
锢	2
箕	2
甾	2
峿	2
魻	2
?	2
?	2
蕹	2
給	2
肼	2
?	2
鵤	2
?	2
煨	2
?	2
佺	2
晧	2
驽	2
怿	2
飡	2
俴	2
?	2
?	2
?	2
?	2
?	2
淴	2
▽	2
?	2
?	2
?	2
籦	2
?	2
轺	2
?	2
?	2
乩	2
壨	2
?	2
?	2
扪	2
緶	2
洹	2
?	2
?	2
泮	2
?	2
滉	2
?	2
?	2
颚	2
嵭	2
俿	2
?	2
義	2
鼱	2
罘	2
蚱	2
?	2
?	2
蠖	2
脲	2
?	2
幄	2
坻	2
〇	2
縺	2
縲	2
唆	2
擀	2
佝	2
偻	2
晁	2
兖	2
惴	2
娭	2
毑	2
朦	2
胧	2
湤	2
翪	2
漼	2
忨	2
劭	2
滆	2
嵊	2
沢	2
戊	2
邝	2
浠	2
績	2
閰	2
ㄧ	2
嶇	2
棣	2
栭	2
侀	2
閫	2
唴	2
笌	2
欐	2
笟	2
崗	2
冧	2
笓	2
寮	2
傚	2
鍖	2
眬	2
姟	2
佷	2
鍐	2
湴	2
ㄥ	2
屾	2
祦	2
氫	2
鎯	2
喌	2
晫	2
	2
绉	2
姩	2
杩	2
嗙	2
滃	2
簡	2
缁	2
戞	2
岀	2
愬	2
鏂	2
叡	2
嗕	2
堜	2
ㄦ	2
鍚	2
鎶	2
	2
浗	2
姙	2
曚	2
綅	2
沖	2
埸	2
潔	2
糠	2
啕	2
枨	2
牦	2
汩	2
訚	2
鰲	2
偎	2
証	2
鸱	2
阡	2
骡	2
笺	2
锄	2
玢	2
咦	2
侑	2
邰	2
锴	2
樽	2
螳	2
羿	2
嵋	2
蛆	2
巳	2
砷	2
岫	2
泯	2
豇	2
嗔	2
壅	2
摞	2
阄	2
逑	2
镊	2
檫	2
赝	2
蓟	2
锟	2
斋	2
汨	2
癣	2
朐	2
蓑	2
叻	2
疝	2
桁	2
赳	2
谔	2
垣	2
葚	2
搵	2
貔	2
貅	2
衮	2
哔	2
氤	2
氲	2
蜛	2
襦	2
蝌	2
蚪	2
疟	2
鬟	2
鸬	2
鹚	2
誊	2
艄	2
吶	2
蝈	2
祢	2
滢	2
郏	1
沆	1
瀣	1
岿	1
苈	1
礜	1
庾	1
跹	1
孓	1
蚩	1
偲	1
峧	1
踻	1
裩	1
絽	1
裱	1
闳	1
町	1
塾	1
讷	1
俚	1
倥	1
偬	1
纛	1
锱	1
蔣	1
皈	1
溟	1
箓	1
胪	1
啻	1
暌	1
鸵	1
釆	1
嚓	1
俎	1
庖	1
畚	1
蒨	1
洄	1
箫	1
韡	1
镞	1
僭	1
忿	1
铳	1
铵	1
鲑	1
囡	1
収	1
皿	1
彡	1
稷	1
埝	1
貽	1
郢	1
鳡	1
跣	1
郓	1
鄄	1
箬	1
堋	1
堽	1
遒	1
钣	1
佶	1
墀	1
請	1
應	1
這	1
個	1
動	1
揮	1
獲	1
儘	1
隊	1
頹	1
搶	1
兇	1
們	1
陣	1
絕	1
實	1
飛	1
腳	1
懼	1
鑽	1
馬	1
體	1
夠	1
曬	1
貝	1
頓	1
盧	1
帶	1
盤	1
證	1
怔	1
渟	1
貘	1
荪	1
郞	1
賽	1
敵	1
頂	1
機	1
謂	1
繼	1
續	1
雙	1
僅	1
餘	1
員	1
層	1
佔	1
據	1
優	1
擁	1
穫	1
問	1
題	1
陸	1
舀	1
毽	1
牒	1
缫	1
倬	1
庶	1
噔	1
锨	1
塄	1
碛	1
铱	1
囹	1
圄	1
廭	1
滪	1
戾	1
屨	1
羸	1
鹺	1
溫	1
峬	1
鲲	1
锆	1
珽	1
掸	1
洎	1
潠	1
浍	1
铛	1
谏	1
幛	1
邙	1
砦	1
夼	1
咛	1
拚	1
峄	1
絾	1
鴴	1
虛	1
絳	1
踾	1
尲	1
鸴	1
珺	1
汴	1
篁	1
贇	1
畲	1
迤	1
逦	1
岼	1
輰	1
豾	1
緸	1
鶨	1
蓼	1
屻	1
弲	1
噼	1
痈	1
豢	1
藿	1
矸	1
幇	1
殑	1
椈	1
熼	1
粍	1
ㄤ	1
笂	1
彫	1
拰	1
伅	1
儴	1
鍓	1
闀	1
畫	1
煴	1
	1
嬪	1
炲	1
壇	1
鎬	1
洃	1
鍒	1
埆	1
呬	1
岄	1
洟	1
暱	1
	1
	1
	1
屼	1
缃	1
戦	1
勫	1
垝	1
杈	1
尯	1
鍏	1
紬	1
忚	1
皟	1
彿	1
囩	1
洊	1
娾	1
绁	1
濋	1
洖	1
褰	1
鍛	1
鈥	1
濅	1
夎	1
	1
樺	1
睍	1
嗚	1
	1
樹	1
粙	1
嶄	1
	1
撶	1
彂	1
曟	1
儏	1
嬬	1
粛	1
嗛	1
囪	1
祫	1
競	1
寲	1
傞	1
繃	1
弻	1
鎴	1
椤	1
嗭	1
	1
傛	1
	1
篃	1
嗘	1
湁	1
╀	1
簬	1
煙	1
鐨	1
勪	1
氦	1
綔	1
垜	1
敤	1
╁	1
簭	1
琁	1
澶	1
槸	1
绗	1
嶈	1
	1
闂	1
	1
鐩	1
祴	1
	1
蹇	1
鎵	1
寳	1
笢	1
戣	1
爺	1
墍	1
況	1
吡	1
殚	1
汚	1
杻	1
砗	1
磲	1
蕤	1
堉	1
璘	1
苜	1
蓿	1
髌	1
姹	1
磴	1
觞	1
赭	1
愎	1
吠	1
尕	1
糌	1
偌	1
驮	1
镒	1
奘	1
汜	1
趵	1
轱	1
盂	1
孬	1
胄	1
煸	1
疽	1
杵	1
谗	1
炆	1
菡	1
箴	1
渑	1
锉	1
锜	1
乜	1
掼	1
铖	1
壵	1
忤	1
镗	1
撵	1
搐	1
坳	1
鞥	1
嚟	1
緑	1
郗	1
禛	1
蝗	1
赊	1
羲	1
萼	1
捌	1
肓	1
桧	1
焖	1
驷	1
磡	1
嫔	1
垠	1
嫱	1
嬲	1
桼	1
蜷	1
闾	1
珥	1
炔	1
唰	1
龇	1
蚬	1
蚶	1
茼	1
钕	1
砩	1
挲	1
鳊	1
镡	1
锫	1
冽	1
阊	1
捱	1
蟆	1
蒯	1
怵	1
刽	1
玹	1
鳃	1
犒	1
倌	1
蓊	1
沔	1
墁	1
盁	1
啜	1
珅	1
臊	1
嬖	1
彧	1
炕	1
胴	1
岵	1
茕	1


================================================
FILE: model_language/language_model2.txt
================================================
3941753
中国	16703
公司	13638
我们	10492
一个	9240
可以	7954
服务	7748
有限	7517
工作	6489
游戏	6459
信托	6283
没有	6281
市场	6153
准备	6043
自己	5857
国际	5700
信息	5657
发展	5589
进行	5555
时间	5551
就是	5327
限公	5169
网站	4924
北京	4900
不是	4900
什么	4772
手机	4684
新闻	4604
经济	4583
产品	4544
已经	4476
他们	4473
托有	4422
美国	4406
表示	4377
所有	4296
投资	4233
这个	4172
问题	4156
企业	4154
考试	4142
记者	4077
责任	4068
允许	4017
世界	3899
现在	3893
通过	3888
还是	3832
版权	3673
第一	3647
国家	3577
方面	3566
可能	3489
了一	3434
网络	3412
人民	3410
管理	3401
联网	3327
是一	3306
目前	3303
研究	3302
数据	3298
提供	3291
技术	3282
或者	3280
的一	3253
如果	3244
专业	3219
联系	3194
合作	3181
成为	3164
开始	3134
朋友	3127
项目	3118
微信	3117
同时	3111
需要	3110
大学	3109
广告	3104
媒体	3100
都是	3098
活动	3092
相关	3089
时候	3084
互联	3083
这样	3076
台湾	3062
中心	3034
上海	3008
平台	3007
更多	2984
教育	2967
关注	2962
发布	2955
用户	2952
内容	2939
人员	2936
医院	2932
比赛	2917
作为	2916
的是	2916
的时	2910
以及	2905
的人	2904
关于	2901
产业	2836
对于	2826
科技	2809
文化	2786
政府	2774
也是	2774
政策	2769
城市	2761
消息	2750
情况	2719
使用	2717
今年	2717
宣传	2704
考生	2698
汽车	2697
重要	2695
全球	2692
金融	2677
体育	2665
因为	2636
建设	2629
知道	2608
不能	2597
系统	2575
方式	2568
怎么	2552
还有	2515
银行	2508
行业	2499
个人	2490
这些	2488
电话	2488
生活	2478
设计	2471
报道	2461
今天	2460
兄弟	2455
安全	2452
消费	2446
进入	2445
要求	2431
社会	2422
到了	2415
增长	2380
电影	2374
购买	2365
大的	2352
影响	2333
但是	2316
其中	2312
品牌	2308
全国	2295
有一	2293
很多	2281
永远	2281
主要	2278
不会	2253
国内	2247
上的	2233
发现	2225
部分	2222
以上	2218
一起	2209
好的	2200
计划	2196
人的	2195
代表	2194
来源	2188
非常	2187
许可	2186
所以	2183
机构	2163
能力	2163
权所	2162
一些	2161
亿元	2155
其他	2144
选择	2136
图片	2128
是不	2128
声明	2126
你的	2125
这一	2124
任公	2120
学生	2113
不过	2113
限责	2110
那个	2101
中的	2096
我的	2094
视频	2091
分享	2087
推荐	2072
己的	2071
可证	2066
认为	2065
大家	2064
标准	2062
日本	2062
详细	2060
一次	2041
股份	2037
而且	2037
业务	2034
本网	2033
学院	2028
来的	2019
参考	2015
样的	2015
招聘	2007
万元	2005
第二	2004
希望	2002
个月	2000
车型	1999
创新	1992
未来	1989
为了	1987
价格	1980
去年	1972
在线	1969
出现	1962
并不	1945
了解	1943
不允	1927
美元	1923
一直	1919
获得	1916
们的	1914
拥有	1896
单位	1895
年的	1893
实现	1892
参加	1889
际信	1876
也不	1874
基础	1863
如何	1854
部门	1849
负责	1845
新浪	1838
包括	1823
成绩	1815
报名	1812
关系	1809
那么	1804
领域	1799
这是	1797
财经	1788
显示	1784
之后	1783
节目	1780
支持	1779
旅游	1779
资金	1777
微博	1777
孩子	1776
地区	1775
不同	1775
日报	1771
继续	1770
最大	1762
作品	1760
官方	1745
一步	1742
日子	1742
韩国	1738
一定	1737
根据	1728
组织	1723
提高	1722
健康	1714
你们	1706
提升	1680
环境	1674
交易	1670
富翁	1666
成功	1665
不要	1657
有的	1649
达到	1643
系我	1642
客户	1640
在这	1639
完成	1637
腾讯	1634
喜欢	1633
英国	1630
新的	1630
比较	1626
分钟	1622
游泳	1616
电视	1611
学习	1611
智能	1606
能够	1605
保护	1603
发生	1599
正式	1597
学校	1597
推出	1591
复试	1590
是在	1590
开发	1584
愿意	1582
综合	1581
看到	1571
编辑	1559
集团	1558
虽然	1558
论坛	1553
赛季	1549
分析	1530
一下	1525
份有	1523
作者	1521
法律	1519
音乐	1511
英雄	1508
来了	1507
网友	1506
是我	1502
正在	1500
香港	1497
直接	1493
系列	1492
重点	1491
两个	1488
原因	1480
的大	1480
辞职	1479
转载	1476
的重	1476
这么	1474
全面	1469
特别	1468
增加	1467
应该	1463
山东	1458
玩家	1456
运动	1454
除了	1453
带来	1451
来说	1446
出来	1446
群里	1445
指导	1444
起来	1444
开展	1443
移动	1442
资源	1441
改革	1438
因此	1437
怀孕	1437
最后	1431
这种	1428
超过	1427
多的	1427
日期	1427
基金	1424
不得	1421
需求	1419
友圈	1416
招生	1411
介绍	1411
空间	1410
现场	1407
经营	1406
费者	1404
进一	1398
其实	1396
冠军	1395
生日	1390
配置	1388
下一	1385
出了	1381
打造	1380
关键	1380
的日	1380
水平	1377
国的	1377
建立	1368
有关	1368
处理	1367
任何	1367
直播	1364
业的	1362
工程	1360
下载	1356
功能	1355
保险	1352
实施	1349
收入	1347
不仅	1346
销售	1345
参与	1344
一样	1344
资讯	1342
基本	1341
苹果	1338
球队	1332
表现	1325
生产	1324
体验	1322
领导	1320
不断	1319
小时	1317
报告	1315
第三	1314
条件	1313
网上	1304
网安	1302
交通	1300
公网	1298
觉得	1296
上市	1295
他的	1294
安备	1291
加强	1291
都不	1288
战略	1284
由于	1280
规定	1280
质量	1273
过程	1271
模式	1269
持续	1268
解决	1265
挑战	1263
结果	1262
出的	1261
人购	1258
各种	1258
你是	1255
目的	1254
知识	1254
面试	1252
要的	1250
之前	1250
阅读	1249
职业	1248
地方	1245
存在	1244
推进	1238
娱乐	1237
举报	1236
历史	1232
点击	1231
黄金	1231
在一	1226
均匀	1225
明天	1223
应用	1218
评论	1215
的发	1215
必须	1212
联赛	1211
时代	1211
老师	1210
授权	1208
来看	1208
报考	1207
分别	1206
真的	1204
生的	1202
民币	1197
告服	1196
特朗	1194
风险	1193
以来	1192
托股	1190
给我	1184
接受	1183
来自	1182
具有	1179
帮助	1179
朗普	1178
更加	1176
后的	1176
行为	1175
证券	1173
江苏	1173
随着	1171
的情	1171
考消	1170
调整	1170
手游	1167
期间	1166
是否	1164
里的	1164
注册	1162
只有	1160
稳定	1159
甚至	1152
赛事	1151
传播	1151
交流	1151
目标	1150
全新	1148
人才	1148
违法	1147
贸易	1145
的生	1145
给你	1142
的新	1139
电子	1139
机会	1137
科学	1135
只是	1134
今日	1131
然后	1131
娃娃	1127
优势	1125
保持	1125
支付	1125
告诉	1125
联合	1121
成都	1121
不少	1120
这里	1120
的主	1118
我不	1118
最高	1113
场的	1112
你不	1109
的不	1106
运营	1103
球员	1096
最佳	1094
推动	1093
过去	1093
不知	1092
升级	1091
首页	1089
近日	1087
面的	1087
利用	1085
生态	1084
一种	1084
定的	1084
阶段	1082
家庭	1082
建议	1082
采用	1081
事业	1078
行了	1077
国足	1074
传统	1074
务日	1071
以下	1071
调查	1070
方案	1070
作用	1066
变化	1063
预计	1061
核心	1061
价值	1061
专家	1061
我是	1060
制造	1059
光明	1058
公开	1058
按照	1057
地图	1055
会议	1055
家的	1054
看看	1050
玩儿	1050
粉丝	1049
文章	1049
动力	1048
竞争	1047
全部	1047
得到	1047
取得	1044
也有	1044
会计	1043
天津	1043
下的	1043
的事	1042
我这	1041
的关	1040
有人	1039
资格	1036
年轻	1035
我要	1032
的小	1029
国人	1027
地产	1025
有效	1023
之间	1022
大陆	1021
用的	1018
确定	1014
人在	1012
资产	1011
行政	1009
新华	1008
广州	1008
规模	1006
积极	1005
提出	1005
欢迎	1004
不可	1004
此外	1003
艺术	1002
的话	1002
团队	1001
最终	1001
一名	999
指数	998
重庆	998
的作	998
通知	997
成了	996
年来	995
精神	992
一点	992
公布	991
登录	987
共同	987
先生	986
制作	985
普通	985
位置	985
注意	985
此次	984
精彩	982
四川	981
左右	980
宣布	980
测试	979
浙江	979
下午	975
资料	974
务员	968
快速	966
者的	965
公务	964
超级	962
上一	961
一年	959
之一	956
无法	956
都有	956
明星	955
军事	955
最近	954
事件	953
保障	953
明显	951
在中	950
实际	950
感觉	948
最新	946
的地	945
的问	944
同比	942
行的	938
利亚	937
的方	937
下来	937
现了	936
未经	932
政治	931
的经	930
设备	930
简单	928
另外	927
是这	927
属于	927
时尚	924
罗斯	923
将在	922
高的	922
发行	921
广东	921
群众	921
故事	920
就不	920
创业	918
前的	917
共享	915
队的	915
培训	914
的中	913
针对	912
比如	912
免费	912
咨询	912
力的	911
医疗	910
当时	910
责人	908
努力	908
怀念	908
新疆	907
身体	906
京公	905
经过	905
去了	905
受到	902
值得	900
经验	897
每天	897
监管	896
毕业	896
不到	894
的成	893
容易	893
区域	891
人们	891
作的	889
一般	889
怀疑	888
广西	887
面对	887
男子	883
材料	883
亿美	879
志愿	879
视听	878
的第	878
决赛	875
加入	874
海外	872
一场	870
观众	869
形成	869
的最	867
商业	863
另一	862
深圳	862
让人	861
平均	861
越来	858
来越	858
老人	858
自动	857
间的	857
化的	856
的比	855
造成	855
整体	854
申请	854
统计	853
国队	851
马拉	851
亚洲	851
我就	851
方向	850
女人	850
观点	848
认识	848
委员	847
体系	846
为主	845
中央	845
让我	845
公告	843
才能	843
数量	842
会上	842
社区	842
坚持	840
决定	840
晚上	840
状态	839
预期	838
联盟	837
举行	836
具体	836
老婆	836
出版	835
方法	835
不好	835
本次	834
人士	834
启动	834
训练	833
监督	831
建筑	830
控制	828
公安	827
自然	827
回来	827
的那	826
程中	825
德国	824
多少	824
意见	823
少年	822
日前	820
结束	820
公里	819
考虑	819
师兄	819
能源	818
范围	816
性的	816
查询	816
照片	816
量的	815
俄罗	814
导致	814
的高	813
律师	812
贷款	811
双方	811
以后	811
扩大	810
广播	810
订阅	808
的基	808
结合	807
规划	807
连续	806
任务	806
的考	805
注明	804
比例	804
完全	804
更好	802
结婚	801
教师	800
效果	800
对外	799
体的	799
相比	798
如此	798
内的	797
行动	796
办公	796
的工	794
最好	794
时报	791
国互	790
大利	790
符合	789
男人	789
拉松	788
丰富	788
协议	788
为什	788
一位	786
方微	785
年度	784
女子	784
大会	784
几个	784
版本	783
了我	783
的女	780
出去	779
如今	778
的产	777
会有	777
只能	777
中学	776
许我	776
息网	775
年前	775
色的	774
及时	773
的信	773
的电	773
权声	772
国民	772
本站	771
全省	770
调剂	769
就业	769
指出	769
执行	769
每个	769
减少	768
一家	768
我也	768
乐视	767
商务	767
的同	767
闻网	764
部署	762
机制	762
不愿	762
员工	761
主题	760
真实	758
计算	758
录取	757
那你	757
安排	756
的美	753
冤枉	753
首次	752
云南	752
搭配	751
的全	750
要是	750
高速	749
三个	749
大量	748
实力	748
考研	748
到的	748
传媒	747
形式	747
站地	746
当然	745
是你	745
辽宁	744
青年	744
世纪	743
开放	743
笔试	741
为一	741
排名	740
一部	740
听节	739
明确	739
整个	739
的好	739
促进	738
欧洲	738
并且	738
即将	738
身份	738
电脑	738
成本	737
再次	737
经历	737
是有	737
肯定	737
大众	736
这次	736
动的	735
我在	735
国网	734
导弹	733
上线	733
多年	731
好了	731
一圈	731
结构	730
扫描	728
频道	728
地址	728
还没	728
十分	727
美女	727
事情	725
演员	723
近期	723
优秀	722
法院	722
那些	722
有了	721
两年	719
东西	718
还不	718
明网	717
赛的	716
足球	716
场比	715
一方	715
成立	715
力量	715
将会	713
研发	712
一款	712
的国	712
真正	711
区的	710
展的	709
收益	709
房地	709
邮箱	709
书记	709
相信	709
落实	708
回家	708
发挥	706
举办	706
品的	706
统一	705
检查	704
单车	702
设施	702
吸引	702
面临	701
得了	701
妈妈	701
任编	700
对手	700
住房	700
特色	700
自由	700
保证	700
心的	700
现金	699
记录	698
还可	697
电商	696
参数	696
查看	696
随后	695
财政	695
国国	694
尤其	693
深入	693
的影	693
床上	693
措施	692
经典	692
快乐	692
万富	692
户端	691
当地	691
同样	691
想要	691
现代	690
都会	690
品质	689
子的	689
会在	688
发动	687
人都	687
州市	686
的实	685
的内	685
也可	684
赛中	683
融资	683
备考	683
发表	682
此前	680
重大	680
严重	680
不准	680
电信	679
无论	679
福建	679
期待	679
主任	679
一天	679
上涨	678
开启	678
自行	678
热点	677
南省	677
深度	676
二维	676
公众	675
许多	675
商品	675
宝宝	674
维码	673
教练	673
人物	673
昨天	673
是个	673
下降	672
在国	671
导演	670
做好	670
还在	670
然而	669
车的	669
警方	667
高校	667
海军	667
办法	666
天的	666
自主	664
更是	664
简介	663
不良	663
有些	663
动机	662
当前	661
健身	661
的游	661
说的	661
的原	660
上午	660
原创	659
很大	659
我准	659
之外	658
年以	657
好友	657
了不	657
一页	656
突破	656
产生	656
机器	654
对此	653
农业	653
别是	653
的公	653
工业	653
天下	653
压力	652
南京	652
居民	650
背景	650
航空	650
的心	650
导价	649
同的	649
里面	649
哪里	649
安倍	648
制度	648
长的	648
信扫	647
对比	647
第四	647
风格	646
河北	646
人数	646
多人	646
都在	646
资本	645
附近	645
别人	645
不错	643
千万	643
享至	642
是很	642
驾驶	641
就可	641
机关	638
曝光	637
我一	637
于我	636
你就	636
一系	635
作人	635
两人	635
互动	634
而是	634
了吗	634
充分	633
湖南	633
还要	633
召开	632
发的	632
期的	631
以前	631
的资	630
终于	629
员会	628
角色	628
就会	628
降低	627
主席	626
在的	626
预约	626
比增	625
涉及	625
的机	625
满足	625
覆盖	625
将于	624
它的	624
元的	623
女性	623
我还	623
车辆	622
度的	622
院的	622
百万	621
依然	620
是他	620
哈哈	620
大数	619
出台	619
在于	619
有很	619
许你	619
论是	618
伙伴	618
是中	617
排行	616
赚钱	616
成长	616
市的	616
民族	616
会的	616
长期	615
改变	615
年龄	615
适合	615
的手	615
军训	615
浏览	614
链接	614
报社	614
成交	613
操作	613
东省	613
找到	612
也没	611
渠道	610
事实	610
是为	610
个小	610
况下	609
京市	609
卫生	609
合同	608
的表	607
们在	607
人家	607
取消	606
两岸	605
我国	605
关的	605
也会	605
的老	605
尽管	604
拍摄	604
更新	604
经常	604
市民	603
位的	603
小学	603
有多	603
的消	602
儿童	602
集中	600
了这	600
是要	600
球迷	599
有着	598
经理	598
印度	597
可是	597
万人	596
布了	596
业生	596
际在	595
业发	595
武器	594
同学	594
每一	593
数配	591
息举	591
只要	591
幸福	591
不了	591
公益	590
人口	590
在上	590
我想	590
海南	589
相当	589
上了	589
以为	589
市公	588
的球	587
究生	587
意识	587
在我	587
过来	587
创造	586
法国	586
么样	586
上述	585
儿子	585
采访	584
协会	584
的数	583
有所	583
信用	582
的学	581
到这	580
绿色	579
是最	579
运行	578
员的	577
这也	576
类型	576
的合	576
公共	575
正常	575
年代	574
心理	574
谷歌	573
本的	573
据悉	572
型图	572
国经	572
营养	572
国政	571
警察	570
英语	570
的这	570
的玩	570
务的	569
时的	569
到一	569
这两	569
你在	569
国新	568
程序	568
让你	568
完善	567
死亡	567
货币	566
哪些	566
而已	566
络传	565
相对	565
的行	565
知名	564
状况	564
布的	564
证明	564
说明	564
过了	564
新车	563
食品	563
农村	563
让他	563
就在	563
有点	563
我去	563
导航	562
到底	562
都没	562
税务	560
袭击	560
是因	560
在全	559
名单	559
然是	559
股票	558
动作	558
很好	558
通行	557
规范	557
生命	557
布会	556
岁的	556
杭州	555
速度	555
培养	555
对方	555
得不	555
民警	554
利润	554
专题	553
国务	553
优惠	553
担心	553
提前	553
新网	552
搜索	552
投入	552
的文	552
还能	552
供应	551
理念	550
精品	550
广大	550
的身	550
日的	549
能不	549
那就	549
趋势	548
几年	548
食物	547
性能	547
的特	547
确保	547
用了	547
营许	546
场上	546
意的	546
上升	545
距离	545
确认	545
的价	545
成的	545
不在	545
有个	545
你还	544
利率	543
动态	542
一篇	542
的感	542
而不	541
老年	540
透露	540
一路	540
的意	539
键词	539
准确	539
收藏	538
几乎	538
你一	538
一扫	537
采取	537
做到	537
干部	537
日上	537
均为	537
一张	537
令人	536
首先	536
是什	536
立即	535
这款	535
潜艇	534
供的	534
营销	534
的收	533
北方	533
院校	533
本人	533
日电	532
小米	532
人大	532
老公	532
本文	531
资者	531
上周	531
起床	531
的自	530
赶紧	530
的风	529
较大	529
费用	529
医生	529
人群	529
播视	528
转型	528
季度	527
月份	527
机的	527
一大	527
而在	526
领取	526
的在	526
设置	526
你要	526
领先	525
的优	525
技能	525
的设	524
课程	524
放弃	524
也就	524
本赛	523
目许	523
加快	523
呈现	523
近年	523
自身	523
地位	523
选手	523
扫一	522
犯罪	522
空气	522
外观	522
镜像	521
担任	521
组合	521
布局	520
住宅	520
各地	520
体现	520
法和	519
新出	519
客服	519
每日	519
合格	518
雪纺	518
用于	517
程度	517
京时	516
房价	516
定位	516
面积	515
理的	515
贵州	515
定要	515
看来	515
她们	515
加大	514
过的	514
良信	513
中华	513
式的	513
晚报	512
金的	512
治理	511
进口	511
文件	511
要不	511
红色	510
不想	510
域的	509
恐怖	509
的结	509
后一	509
试成	508
日在	508
理解	508
一切	508
宁波	508
于大	507
人工	507
软件	507
曾经	507
你说	507
强调	506
自治	506
背后	506
了他	505
几天	505
行证	504
高度	504
承诺	504
不再	504
日常	504
期限	502
购房	502
主力	502
装备	502
安徽	502
良好	501
半年	501
纽约	501
拥抱	501
复习	500
一段	500
的就	500
逐渐	499
而言	499
会发	499
山西	499
的专	499
推广	499
为中	498
因素	498
动物	498
的市	497
考核	497
贝尔	497
概念	496
长沙	496
拿到	496
在不	496
行情	495
运输	495
享受	495
感受	495
空军	495
意思	495
在赚	494
环保	494
一代	494
表达	494
引起	494
主义	494
你看	494
总统	493
报电	493
收购	493
的政	493
用手	493
患者	493
春季	492
巨大	492
年底	492
也在	492
熊猫	492
多个	491
讲话	491
是对	491
方网	490
英文	490
了大	490
获悉	489
众多	489
父母	489
定了	489
军的	489
玩耍	489
总裁	488
科目	488
台的	488
突然	488
和不	487
分数	487
邮件	487
出一	487
了你	487
意味	486
乐部	486
型的	486
篮球	486
给了	486
的名	486
游客	485
其它	485
大型	485
俱乐	485
主办	484
限制	484
事务	484
有可	484
有不	484
年全	483
聘信	483
迅速	483
民党	483
复制	483
当天	483
湖北	483
线上	483
的创	482
销量	482
的用	481
能在	481
澳大	480
据了	480
舞台	480
了自	480
公室	480
他说	480
减肥	480
家队	479
截至	479
地的	479
你去	479
一体	478
务院	478
的战	478
确实	478
将军	478
说我	477
正是	476
其是	475
同期	475
增强	474
一批	474
检察	474
大国	473
用微	473
职位	473
年内	473
依旧	473
演出	473
太阳	473
爱的	473
对其	472
金刚	472
创作	472
造型	472
每年	472
人生	472
华为	471
标题	471
严格	471
国产	471
困难	471
主动	471
才是	471
签约	471
天天	471
新一	470
的首	470
凤凰	470
球化	469
突出	469
主播	469
来到	469
岗位	469
上班	469
供给	468
五月	468
的所	468
重新	468
下面	468
专项	467
正文	467
主场	467
改善	467
机场	467
传递	466
交警	466
热线	466
成员	466
天气	466
好像	466
影片	465
地铁	465
日均	465
绝对	464
她的	464
哪个	464
我都	464
展示	463
十大	463
活跃	463
就能	463
监会	462
通用	462
并没	462
力度	462
邀请	462
众的	462
报中	461
独立	461
形象	461
电竞	460
网版	460
合理	460
不足	460
备去	460
业单	459
影视	459
加上	459
家人	459
名字	459
味着	458
友和	458
作战	458
国外	458
处于	458
公交	458
一条	458
是说	458
爆料	457
的可	457
们都	457
基于	456
气质	456
陕西	456
体检	456
江西	456
刚刚	456
版许	455
文明	455
入了	455
进球	454
环球	454
执法	454
和朋	454
董事	454
的车	454
最多	454
多了	454
歌词	454
占比	453
创意	453
伦敦	453
的选	453
的前	453
基地	453
思想	453
去的	453
我看	453
日讯	452
标签	452
使得	452
多数	452
网的	452
遇到	452
说是	452
们一	452
我说	452
日晚	451
十年	451
月天	450
仍然	450
旗下	450
对象	450
调控	449
户的	449
电力	449
这就	449
有什	449
在哪	449
大多	448
意义	448
时期	448
能的	448
重视	447
探索	447
高端	447
及其	447
低于	447
嗡嗡	447
维持	446
不代	446
鸡蛋	446
禁止	446
行车	446
离开	446
远不	446
中新	445
航母	445
平方	445
打击	445
高考	445
损失	445
号京	444
页面	444
现有	444
多次	444
房子	444
有没	444
约会	444
展开	443
强化	443
业绩	443
人不	443
衣服	443
不用	443
方米	442
禁区	442
物质	442
二手	442
了很	442
等方	441
题的	441
快的	441
娃儿	441
数字	440
界杯	440
意外	440
民政	440
办理	440
博鳌	439
展现	439
戏的	439
委会	439
新能	438
承担	438
热门	437
荣耀	437
的精	437
也将	436
友情	436
位于	436
一致	436
我和	436
危机	435
具备	435
配合	435
唯一	435
业内	434
河南	434
后来	434
原来	434
要去	434
永久	434
大幅	433
冰冰	433
的目	433
一份	433
的标	433
本来	433
各类	432
男篮	432
第十	432
响力	432
运会	432
吃饭	432
站律	431
现实	431
内部	430
阿里	429
值班	429
特殊	429
广场	429
了新	428
一群	428
搭载	427
制定	427
反映	427
给予	427
不一	427
裙子	427
资类	426
中介	426
器人	426
的通	426
大部	426
女儿	426
审查	425
案件	425
从而	425
强的	425
工商	425
高级	425
也能	425
单的	424
他在	424
至好	423
总理	423
硕士	423
土地	423
分的	423
实验	423
外媒	422
解读	422
判断	422
治区	422
大赛	422
依法	422
轻松	422
垃圾	422
的过	422
听到	422
陪你	422
生素	421
系方	421
审核	421
的外	421
为首	420
美联	420
睡眠	420
补贴	420
生物	420
战斗	420
立镜	419
为大	419
维生	418
颜色	418
的男	418
二十	418
盖茨	418
民网	417
联储	417
央行	417
得分	417
国大	417
做出	417
证书	417
组成	417
道路	417
现的	417
治疗	417
起了	417
就像	417
答疑	416
大力	416
财务	416
皇马	416
为我	416
你准	416
引发	415
手段	415
一时	415
读者	415
方的	415
当局	414
贡献	414
正确	414
的三	414
三年	414
月的	414
还会	414
学的	414
睡觉	414
视剧	413
地点	413
地球	413
很难	413
是大	413
就要	413
广泛	412
素质	412
年后	412
西省	412
来一	412
数学	411
司的	411
的东	411
愉快	411
争力	410
原则	410
美的	410
要有	410
好好	410
那里	410
首发	409
统的	409
现出	409
本身	409
的真	409
的两	409
就有	409
和你	409
男排	408
在此	408
球的	408
台上	408
信号	408
要在	408
寻找	408
迎来	407
顾问	407
小组	407
一线	407
都市	407
讨论	407
作业	407
的有	407
有这	407
享单	406
定制	406
支撑	406
的运	406
东方	406
在内	405
是它	405
通讯	405
当年	405
解释	405
都要	405
十二	405
的胸	405
限购	404
避免	404
队员	404
演唱	404
方便	404
解放	404
工资	404
浪公	403
新增	403
奥运	403
的朋	403
出网	402
业人	402
格的	402
是由	402
能会	402
完美	402
在北	402
身材	402
儿的	402
政部	401
在本	401
营业	401
环节	400
试的	400
的相	400
演的	400
主持	400
也要	400
亮的	400
今晚	400
件的	399
以在	399
么多	399
帮我	399
职了	399
济增	398
外界	398
克强	398
或建	398
无人	398
史上	398
掌握	398
评价	398
似乎	398
本地	398
大师	398
你可	398
浪简	397
品答	397
两国	397
中小	397
基层	397
西亚	397
提醒	397
大富	397
陪我	397
备辞	397
高清	396
为人	396
攻击	396
代的	396
高中	396
的网	396
变成	396
捐款	396
将是	395
证号	395
西安	395
对我	395
星期	395
厂商	394
网证	394
文物	394
至今	394
朝鲜	394
周边	394
加了	394
下了	394
勇气	394
售价	393
我省	393
线下	393
地下	393
应对	392
有利	392
铁路	392
外的	392
密码	392
别的	392
省国	391
李克	391
在新	391
现象	391
爱情	391
了个	391
你有	391
际上	390
队伍	390
主管	390
出生	390
女孩	390
青春	390
发了	390
新三	389
范冰	389
大厦	389
不够	389
看了	389
工具	388
表情	388
峰会	387
凭借	387
稿件	387
提示	387
的对	387
或许	387
播放	387
下周	387
跌幅	386
报记	386
蒙古	386
欣赏	386
的上	386
一的	386
女排	385
网新	385
诚信	385
特点	385
实践	385
安装	385
根本	385
不管	385
我给	385
宏观	384
情链	384
网出	384
更有	384
融合	384
应当	384
年年	384
设立	384
即可	384
做了	384
西班	384
班牙	384
甲方	384
亮相	383
总编	383
角度	383
点和	383
的变	383
幼儿	383
可不	383
休息	383
的位	382
时也	382
生在	382
三板	381
息服	381
的角	381
策略	381
态度	381
转发	381
能量	380
是国	380
的出	380
毕竟	380
上有	380
在家	380
还将	379
个赛	379
塞尔	379
笔记	379
的多	379
你也	379
在群	379
为全	378
实性	378
金额	378
的安	378
认真	378
王者	378
独家	377
违规	377
中有	377
的各	377
司机	377
过一	377
果你	377
两会	376
则是	376
逻辑	376
信公	375
变得	375
能是	375
起的	375
楼市	374
总决	374
播电	374
配备	374
财富	374
平安	374
您的	374
做的	374
年人	373
昨日	373
都能	373
想到	373
示范	372
电动	372
最低	372
得一	372
飞机	372
的天	372
们不	372
不均	372
据显	371
官员	371
火星	371
这位	371
厦门	371
紧张	371
至于	371
款车	370
巴萨	370
始终	370
回到	370
他一	370
酒店	370
和我	370
的粉	369
拿下	369
医药	369
的保	369
和国	369
出口	369
的交	369
流程	369
采购	369
各位	369
不多	369
那我	369
等多	368
优化	368
合法	368
样做	368
的要	368
我觉	368
里有	368
跟我	368
交所	367
览器	367
相应	367
的房	367
疯狂	367
了吧	367
国电	366
首付	366
西部	366
胜利	366
的现	366
话题	366
生了	366
回应	365
的投	365
质的	365
的技	365
轻人	365
的体	365
文字	365
感谢	365
开了	365
年报	364
们将	364
网通	364
留学	364
网易	364
的水	364
小的	364
来我	364
嫌疑	363
以内	363
行榜	363
的视	363
段时	363
下去	363
家里	363
加息	362
的热	362
周年	362
坚决	362
以说	362
下滑	362
先进	361
理论	361
在大	361
干嘛	361
曼联	360
编推	360
否认	360
鼓励	360
之中	360
一周	360
的开	360
纷纷	359
是全	359
身的	359
无线	359
记得	359
去玩	359
信信	358
利于	358
事故	358
的进	358
之路	358
公路	358
至少	358
们也	358
我好	358
班总	357
证注	357
成果	357
分为	357
富的	357
它们	357
精准	357
的平	357
武汉	357
你这	357
遭遇	356
黑色	356
汇率	355
安卓	355
泰国	355
加速	355
所在	355
八卦	355
日下	355
习惯	355
车站	355
得转	354
细节	354
持有	354
华尔	354
引导	354
是如	354
桃花	354
维护	354
的建	354
边的	354
增速	353
年中	353
电台	353
优质	353
疾病	353
家长	353
流量	353
登记	353
公园	353
上看	353
小区	353
太多	353
的兄	353
期收	352
小编	352
累计	352
于传	352
力和	352
完整	352
奖励	352
次的	352
同意	352
姐姐	352
去看	352
届中	351
民众	351
站导	351
条例	351
并在	351
自我	351
语言	351
养老	351
难以	351
女士	351
实的	351
备的	351
说话	351
的我	351
出色	350
仅仅	350
参赛	350
本科	350
协调	350
顺利	350
拒绝	350
么时	350
尔街	349
场景	349
界最	349
名称	349
充满	349
的动	349
事长	349
表演	349
本周	349
的能	349
这边	349
社交	348
家居	348
造的	348
销商	348
波动	348
消防	348
学会	348
总结	348
追求	348
单词	348
国会	347
逐步	347
号线	347
规则	347
四个	347
要做	347
天我	347
民进	346
华社	346
更为	346
舒适	346
著名	346
考察	346
为这	346
名的	346
的分	346
在网	346
给他	346
热词	345
阵容	345
数线	345
经销	345
强大	345
越多	345
发言	345
在第	345
发出	345
的空	345
部的	345
路上	345
估值	344
元素	344
熟悉	344
整治	343
各项	343
利益	343
的年	343
重的	343
总是	343
远都	343
前沿	342
处罚	342
的提	342
前往	342
详情	342
界的	342
恢复	342
日起	342
一件	342
有时	342
这几	342
约定	342
锦赛	341
奥迪	341
污染	341
围绕	341
计师	341
零售	341
求的	341
福利	341
点的	341
工智	340
多信	340
一项	340
解到	340
的传	340
必要	340
了两	340
那是	340
说你	340
道称	339
免责	339
辅导	339
周日	339
跟你	339
乖乖	339
进党	338
员考	338
先后	338
华人	338
难度	338
甘肃	338
业和	338
的观	338
会大	338
京东	338
流行	338
不合	338
缺乏	338
股东	337
普遍	337
的研	337
往往	337
会主	337
于是	337
的报	337
者在	337
的家	337
收到	337
新政	336
里皮	336
多种	336
创建	336
进攻	336
级的	336
苏州	336
的理	336
很有	336
有两	336
竟然	336
两天	336
省政	335
威胁	335
情绪	335
的群	335
增值	334
融时	334
公示	334
下跌	334
流动	334
部长	334
是那	334
回去	334
连衣	334
全年	333
面向	333
的企	333
予以	333
的支	333
师范	333
都可	333
那样	333
在接	332
责声	332
比分	332
表本	332
星座	332
监控	332
竞技	332
校园	332
写作	332
指标	332
刺激	332
内蒙	332
权益	332
沟通	332
皮肤	332
年成	331
总局	331
书面	331
意大	331
投诉	331
系的	331
个性	331
也很	331
准的	331
的眼	331
好多	331
打电	331
础上	330
副总	330
智慧	330
主角	330
女主	330
份证	330
类似	330
个时	330
怎样	330
清楚	330
的都	330
又不	330
板块	329
景下	329
壁纸	329
民生	329
硬件	329
申报	329
如下	329
委托	329
受伤	329
加盟	329
城区	329
中文	329
有意	329
的准	329
原标	328
出席	328
宝马	328
在今	328
第五	328
道的	328
出行	327
认定	327
多家	327
学家	327
的需	327
的职	327
唱会	327
大战	327
改造	327
上下	327
不如	327
衣裙	327
萨德	326
识到	326
整合	326
竞赛	326
仅是	326
日消	326
签署	326
效率	326
一度	326
是非	326
民的	326
有权	326
农民	326
女神	326
会不	326
础设	325
视觉	325
年会	325
事项	325
摄影	325
的海	325
的品	325
专门	325
的广	325
身上	325
看不	325
净利	324
轿车	324
独特	324
得更	324
访问	324
前一	324
放在	324
中超	323
街日	323
运用	323
子女	323
回归	323
宁夏	323
级别	323
外国	323
招考	322
战机	322
全运	322
疑人	322
和对	322
引进	322
大宝	322
从一	322
的个	322
三星	322
们这	322
我现	322
孕了	322
去游	322
制或	321
访时	321
备案	321
的增	321
饮食	321
年同	321
接近	321
为本	321
检测	321
追究	321
记本	321
人心	321
每次	321
女的	321
的卡	321
群主	321
这场	320
众号	320
机版	320
屏幕	320
青岛	320
尝试	320
即使	320
不容	320
带着	320
家都	320
的你	320
不去	320
我真	320
你那	320
试点	319
克斯	319
实行	319
复杂	319
估计	319
聚焦	318
登陆	318
观察	318
随时	318
声音	318
军队	318
是黄	318
物联	317
首相	317
人体	317
东风	317
一旦	317
的形	317
院长	317
红木	316
线城	316
所中	316
供了	316
退出	316
家在	316
这家	315
南海	315
兴趣	315
大大	315
二次	315
身边	315
聊天	315
编剧	314
的复	314
构成	314
印象	314
杨幂	314
充电	314
事的	314
的军	314
试时	313
报网	313
同其	313
走势	313
英超	313
外交	313
能否	313
实在	313
多元	312
排球	312
个国	312
了更	312
提交	312
买房	312
群体	312
打开	312
济南	312
忘记	312
网财	311
管部	311
闻信	311
产能	311
翘臀	311
各大	311
究院	311
得的	311
所谓	311
月底	311
诉你	311
来就	311
买了	311
秘诀	310
高层	310
政法	310
常规	310
仪式	310
成熟	310
博物	310
有机	310
有大	310
不住	310
女生	310
们还	310
马上	310
日快	310
下雪	310
多精	309
本市	309
录用	309
识别	309
通道	309
国在	309
感到	309
思考	309
隐藏	309
南宁	309
打印	309
以看	309
我知	309
个词	309
式上	308
贫困	308
各个	308
回答	308
为何	308
一句	308
我有	308
务许	307
赞同	307
车市	307
养生	307
飞行	307
产权	307
党员	307
周二	307
百度	307
确的	307
我只	307
盖章	307
的娃	307
游族	306
国公	306
从业	306
者从	306
豪华	306
挂牌	306
全力	306
当中	306
效应	306
成就	306
性和	306
在美	306
接下	306
的故	306
出发	306
部队	306
爱好	306
者是	306
房贷	305
网举	305
这部	305
友们	305
的商	305
在海	305
海报	305
是没	305
买的	305
蔡英	304
大片	304
梦想	304
很快	304
勇者	304
最重	303
人类	303
正的	303
看你	303
我没	303
的演	302
于中	302
优先	302
盘点	302
国海	302
礼包	302
时刻	302
答案	302
同事	302
好看	302
层次	301
一带	301
能手	301
肌肉	301
预测	301
上最	301
下半	301
医学	301
们就	301
上来	301
说了	301
备好	301
奖最	300
作出	300
术的	300
一是	300
长安	300
审批	300
战队	300
也许	300
会员	300
的很	300
申论	299
其观	299
递更	299
获取	299
涨幅	299
在台	299
注的	299
骷髅	299
东南	299
为国	299
好地	299
站在	299
留言	299
平时	299
定是	299
不起	299
我怀	299
好怀	299
字第	298
对中	298
新高	298
试图	298
海洋	298
情人	298
子一	298
见面	298
批准	298
说不	298
把我	298
你和	298
试题	297
了全	297
含有	297
上半	297
总经	297
经在	297
的反	297
道德	297
代理	297
个大	297
圈的	297
信业	296
经网	296
十足	296
重组	296
科研	296
围内	296
积分	296
度和	296
教授	296
婚姻	296
局长	296
但我	296
上去	296
开心	296
耍了	296
不但	295
出场	295
适应	295
线的	295
定不	295
放军	295
眼睛	295
那天	295
务部	294
平衡	294
更大	294
那种	294
经本	293
有望	293
近几	293
了中	293
的知	293
对这	293
劳动	293
人一	293
大概	293
延续	292
外援	292
车展	292
三大	292
气象	292
但在	292
新兴	292
高达	292
长和	292
对接	292
的规	292
全市	292
防守	292
大妈	292
应的	292
北省	292
带一	292
能让	292
感情	292
中医	292
翁了	292
但这	291
营收	291
受欢	291
母鸡	291
例如	291
关部	291
度上	291
足够	291
补充	291
物馆	291
发放	291
和大	291
小伙	291
校的	291
就好	291
的服	290
学术	290
高于	290
百分	290
的教	290
少女	290
卡的	290
军区	290
议会	289
在进	289
信心	289
旅行	289
活的	289
人是	289
勇士	289
已有	288
为此	288
的销	288
否则	288
在地	288
一套	288
上网	288
你永	288
本届	287
么?	287
会保	287
省委	287
带动	287
尺寸	287
手的	287
前在	287
师的	287
妹子	287
怀里	287
传承	286
冲击	286
套房	286
场所	286
工艺	286
等等	286
休闲	286
看她	286
的金	286
森林	286
带你	286
对不	286
不出	286
发射	285
高人	285
建成	285
习近	285
更高	285
神秘	285
门的	285
留下	285
两次	285
的歌	285
去医	285
连母	284
扫码	284
近平	284
并非	284
国企	284
春天	284
认可	284
加油	284
是可	284
耳机	284
个群	284
林丹	283
鸡都	283
购车	283
形势	283
奖金	283
流的	283
面上	283
国防	283
他还	283
不行	283
妹妹	283
投放	282
容的	282
的调	282
比上	282
万美	282
美食	282
人事	282
官网	282
成一	282
发到	282
是第	282
在外	282
律声	281
站声	281
们却	281
报警	281
贯彻	281
标的	281
学历	281
固定	281
者和	281
了啊	281
总体	280
从事	280
年之	280
为他	280
的世	280
些人	280
都很	280
真是	280
着手	279
专辑	279
上年	279
相互	279
房屋	279
考证	279
他是	279
圈儿	279
融界	278
欧元	278
描二	278
包含	278
将有	278
的推	278
三方	278
审计	278
一辆	278
过这	278
新生	278
台词	278
击败	277
金翎	277
翎奖	277
品推	277
红了	277
的社	277
有更	277
又一	277
账号	277
同一	277
又是	277
分布	277
们是	277
早上	277
以我	277
息报	276
内最	276
和全	276
题材	276
而这	276
人气	276
监测	276
较为	276
较高	276
足的	276
画面	276
歌曲	276
情的	276
在他	276
乐圈	276
明日	276
立了	275
力在	275
国男	275
该公	275
的历	275
改编	275
平等	275
练习	275
的力	275
可爱	275
了几	275
在那	275
难道	275
的宣	275
比尔	275
内饰	274
一轮	274
芯片	274
保留	274
纪录	274
家族	274
物业	274
理工	274
了多	274
风云	274
来不	274
和他	274
戏媒	273
权不	273
短线	273
主体	273
童装	273
动员	273
道歉	273
死了	273
我家	273
了没	273
致力	272
灵活	272
评估	272
尼亚	272
之家	272
主流	272
的功	272
向上	272
牌的	272
派出	272
水果	272
是以	272
为啥	272
是真	272
过生	272
作伙	271
新媒	271
与中	271
效的	271
来西	271
得出	271
副主	271
二是	271
检验	271
定性	271
海市	271
苏省	271
约时	271
是自	271
就算	271
是谁	271
为你	271
把你	271
再度	270
全程	270
难题	270
爆发	270
办的	270
指挥	270
类的	270
周末	270
走了	270
会儿	270
尔盖	270
枉我	270
力于	269
已成	269
生考	269
着一	269
纪念	269
小姐	269
后再	269
阳光	269
句话	269
面授	268
该机	268
月以	268
的核	268
呼唤	268
间为	268
房产	268
安局	268
把握	268
两位	268
的预	268
战争	268
魔兽	268
他人	268
错的	268
的英	268
你会	268
由贸	267
中公	267
本土	267
于参	267
简称	267
马来	267
招商	267
施工	267
得很	267
你家	267
在床	267
客场	266
有趣	266
显然	266
主演	266
调研	266
依据	266
之下	266
看起	266
伤害	266
他不	266
缺少	266
群的	266
黄骅	266
盈利	265
两款	265
打破	265
上演	265
赢得	265
区内	265
发育	265
十三	265
权利	265
气的	265
的黄	265
你了	265
东奥	264
蛋白	264
媒集	264
无用	264
科幻	264
酷爱	264
窗台	264
西藏	264
家公	264
纳入	264
在最	264
网备	263
奠定	263
塑造	263
创始	263
金价	263
通运	263
功率	263
试网	263
投稿	263
押金	263
于一	263
提到	263
的联	263
公约	263
生涯	263
记忆	263
是从	263
的吗	263
披露	262
自律	262
戏曲	262
实上	262
日至	262
依靠	262
战胜	262
和中	262
预防	262
党的	262
联想	262
园区	262
看好	262
会让	262
地上	262
的词	262
强赛	261
子邮	261
华网	261
深化	261
终端	261
合的	261
市政	261
东莞	261
是想	261
上次	261
他挑	260
深蹲	260
爱穿	260
无疑	260
相同	260
司法	260
内外	260
内地	260
的说	260
哪儿	260
决方	259
各级	259
信贷	259
性负	259
证实	259
收获	259
江省	259
网游	259
的状	259
敦煌	259
机械	259
儿园	259
市委	259
然不	259
近的	259
者不	259
玻璃	259
不敢	259
你想	259
网招	258
战世	258
痛哭	258
占据	258
恒大	258
国有	258
停车	258
察院	258
分配	258
不太	258
言人	257
凡本	257
到呼	257
后痛	257
民间	257
户籍	257
权威	257
以往	257
省人	257
分发	257
福州	257
开的	257
慢慢	257
宝贝	257
刷牙	257
经授	256
务业	256
政务	256
人社	256
却这	256
凄惨	256
高效	256
短期	256
制的	256
四季	256
法规	256
返回	256
母亲	256
发起	256
反应	256
十一	256
投信	255
网讯	255
她练	255
添加	255
学科	255
兰州	255
有哪	255
的爱	255
备了	255
反而	255
的还	255
河长	254
新秘	254
其真	254
宝听	254
子酷	254
穿童	254
辣辣	254
助力	254
此之	254
间内	254
剧情	254
排在	254
妻子	254
的本	254
发送	254
不需	254
上面	254
天都	254
个是	254
久的	254
姐妹	254
点儿	254
新型	253
务经	253
听障	253
障宝	253
唤后	253
蹲无	253
练翘	253
臀新	253
因凄	253
最辣	253
辣酱	253
酱后	253
太红	253
挂窗	253
颜值	253
访谈	253
编号	253
人选	253
积累	253
夺冠	253
拓展	253
左侧	253
投票	253
接触	253
能有	253
家就	253
传说	253
看我	253
车身	252
联考	252
山寨	252
题目	252
情感	252
为自	252
表的	252
新款	252
的青	252
涉嫌	251
业化	251
只需	251
刊登	251
实体	251
会对	251
进的	251
在去	251
打算	251
在你	251
那边	251
比亚	250
共有	250
导下	250
体报	250
真题	250
党委	250
个方	250
国之	250
直到	250
的下	250
不大	250
到我	250
渴望	250
群雄	250
包贝	249
通报	249
表了	249
股市	249
力推	249
称为	249
不适	249
准考	249
山路	249
明的	249
美军	249
白色	249
不说	249
天就	249
去哪	249
远是	249
权禁	248
高等	248
共和	248
或有	248
名第	248
于本	248
的科	248
学位	248
同步	248
房的	248
瞬间	248
于这	248
一块	248
老板	248
影院	248
你好	248
始人	247
专区	247
务合	247
落地	247
差异	247
亮点	247
图书	247
防止	247
产的	247
的单	247
小孩	247
话说	247
愿者	247
用卡	247
的啊	247
太空	246
收紧	246
动性	246
险公	246
与此	246
结论	246
新民	246
制品	246
束后	246
人上	246
景区	246
的音	246
太平	246
整理	246
回复	246
在日	246
的照	246
就没	246
我很	246
生气	246
叫我	246
国市	245
看全	245
戏中	245
构建	245
东网	245
格局	245
季的	245
注重	245
的城	245
看新	245
一人	245
该是	245
雄联	245
没准	245
友评	244
临的	244
陆续	244
育部	244
展会	244
年初	244
委书	244
等级	244
业部	244
物流	244
件事	244
就让	244
在微	244
到时	244
将其	243
年开	243
深刻	243
究所	243
配套	243
模拟	243
强烈	243
们可	243
前期	243
蓝色	243
那一	243
不见	243
敏感	243
刚才	243
路透	242
海国	242
将继	242
明来	242
国总	242
部网	242
与其	242
机看	242
夫妻	242
个问	242
教学	242
心中	242
到现	242
是人	242
不懂	242
好玩	242
族网	241
英镑	241
主招	241
大跌	241
力将	241
激烈	241
策的	241
要支	241
切实	241
业界	241
持人	241
不久	241
三分	241
危险	241
大连	241
均价	241
合肥	241
前两	241
心里	241
过我	241
一会	241
纸欣	240
海域	240
及以	240
髅岛	240
榜单	240
周期	240
争议	240
剧的	240
接到	240
市中	240
一半	240
等待	240
承认	240
恋爱	240
考查	239
复苏	239
门户	239
收集	239
上车	239
扶贫	239
连接	239
特的	239
中一	239
又有	239
节奏	239
很高	239
手术	239
理由	239
在了	239
民法	239
我会	239
专注	238
大奖	238
闻发	238
易和	238
通高	238
分点	238
队在	238
的竞	238
旗舰	238
为其	238
真相	238
驱动	238
观看	238
见的	238
的思	238
队长	238
的确	238
购物	238
们会	238
的快	238
好不	238
宁愿	238
房车	237
半场	237
Download .txt
gitextract_hjpms6fl/

├── .github/
│   ├── FUNDING.yml
│   └── donate.md
├── .gitignore
├── Dockerfile
├── LICENSE
├── README.md
├── README_EN.md
├── asrserver_grpc.py
├── asrserver_http.py
├── asrt_config.json
├── assets/
│   ├── asrt.proto
│   ├── asrt_pb2.py
│   ├── asrt_pb2_grpc.py
│   └── default.html
├── client_grpc.py
├── client_http.py
├── data_loader.py
├── dict.txt
├── download_default_datalist.py
├── evaluate_speech_model.py
├── language_model3.py
├── model_language/
│   ├── language_model1.txt
│   └── language_model2.txt
├── model_zoo/
│   └── speech_model/
│       ├── keras_backend.py
│       └── pytorch_backend.py
├── predict_speech_file.py
├── requirements.txt
├── speech_features/
│   ├── __init__.py
│   ├── base.py
│   ├── sigproc.py
│   └── speech_features.py
├── speech_model.py
├── speech_recorder.py
├── torch_speech_model.py
├── train_speech_model.py
├── train_speech_model_pytorch.py
└── utils/
    ├── config.py
    ├── ops.py
    ├── ops_test.py
    └── thread.py
Download .txt
SYMBOL INDEX (167 symbols across 19 files)

FILE: asrserver_grpc.py
  class ApiService (line 71) | class ApiService(AsrtGrpcServiceServicer):
    method __init__ (line 76) | def __init__(self):
    method Speech (line 79) | def Speech(self, request, context):
    method Language (line 94) | def Language(self, request, context):
    method All (line 107) | def All(self, request, context):
    method Stream (line 123) | def Stream(self, request_iterator, context):
  function run (line 162) | def run(host, port):

FILE: asrserver_http.py
  class AsrtApiResponse (line 68) | class AsrtApiResponse:
    method __init__ (line 73) | def __init__(self, status_code, status_message='', result=''):
    method to_json (line 78) | def to_json(self):
  function index_get (line 87) | def index_get():
  function index_post (line 99) | def index_post():
  function recognition_post (line 110) | def recognition_post(level):

FILE: assets/asrt_pb2_grpc.py
  class AsrtGrpcServiceStub (line 8) | class AsrtGrpcServiceStub(object):
    method __init__ (line 12) | def __init__(self, channel):
  class AsrtGrpcServiceServicer (line 40) | class AsrtGrpcServiceServicer(object):
    method Speech (line 44) | def Speech(self, request, context):
    method Language (line 50) | def Language(self, request, context):
    method All (line 56) | def All(self, request, context):
    method Stream (line 62) | def Stream(self, request_iterator, context):
  function add_AsrtGrpcServiceServicer_to_server (line 69) | def add_AsrtGrpcServiceServicer_to_server(servicer, server):
  class AsrtGrpcService (line 98) | class AsrtGrpcService(object):
    method Speech (line 103) | def Speech(request,
    method Language (line 120) | def Language(request,
    method All (line 137) | def All(request,
    method Stream (line 154) | def Stream(request_iterator,

FILE: client_grpc.py
  function run_speech (line 35) | def run_speech():
  function run_lan (line 56) | def run_lan():
  function run_all (line 72) | def run_all():
  function run_stream (line 93) | def run_stream():

FILE: data_loader.py
  class DataLoader (line 32) | class DataLoader:
    method __init__ (line 40) | def __init__(self, dataset_type:str):
    method _load_data (line 50) | def _load_data(self):
    method get_data_count (line 76) | def get_data_count(self) -> int:
    method get_data (line 82) | def get_data(self, index: int) -> tuple:
    method shuffle (line 98) | def shuffle(self) -> None:

FILE: download_default_datalist.py
  function deal_download (line 67) | def deal_download(datalist_item, url_prefix_str, datalist_path):

FILE: language_model3.py
  class ModelLanguage (line 33) | class ModelLanguage:
    method __init__ (line 38) | def __init__(self, model_path: str):
    method load_model (line 44) | def load_model(self):
    method pinyin_to_text (line 54) | def pinyin_to_text(self, list_pinyin: list, beam_size: int = 100) -> str:
    method pinyin_stream_decode (line 75) | def pinyin_stream_decode(self, temple_result: list,

FILE: model_zoo/speech_model/keras_backend.py
  class BaseModel (line 35) | class BaseModel:
    method __init__ (line 39) | def __init__(self):
    method get_model (line 46) | def get_model(self) -> tuple:
    method get_train_model (line 49) | def get_train_model(self) -> Model:
    method get_eval_model (line 52) | def get_eval_model(self) -> Model:
    method summary (line 55) | def summary(self) -> None:
    method get_model_name (line 58) | def get_model_name(self) -> str:
    method load_weights (line 61) | def load_weights(self, filename: str) -> None:
    method save_weights (line 64) | def save_weights(self, filename: str) -> None:
    method get_loss_function (line 72) | def get_loss_function(self):
    method forward (line 75) | def forward(self, x):
  function ctc_lambda_func (line 79) | def ctc_lambda_func(args):
  class SpeechModel251BN (line 85) | class SpeechModel251BN(BaseModel):
    method __init__ (line 99) | def __init__(self, input_shape: tuple = (1600, 200, 1), output_size: i...
    method _define_model (line 107) | def _define_model(self, input_shape, output_size) -> tuple:
    method get_loss_function (line 186) | def get_loss_function(self) -> dict:
    method forward (line 189) | def forward(self, data_input):
  class SpeechModel251 (line 212) | class SpeechModel251(BaseModel):
    method __init__ (line 226) | def __init__(self, input_shape: tuple = (1600, 200, 1), output_size: i...
    method _define_model (line 234) | def _define_model(self, input_shape, output_size) -> tuple:
    method get_loss_function (line 292) | def get_loss_function(self) -> dict:
    method forward (line 295) | def forward(self, data_input):
  class SpeechModel25 (line 318) | class SpeechModel25(BaseModel):
    method __init__ (line 332) | def __init__(self, input_shape: tuple = (1600, 200, 1), output_size: i...
    method _define_model (line 340) | def _define_model(self, input_shape, output_size) -> tuple:
    method get_loss_function (line 392) | def get_loss_function(self) -> dict:
    method forward (line 395) | def forward(self, data_input):
  class SpeechModel24 (line 418) | class SpeechModel24(BaseModel):
    method __init__ (line 432) | def __init__(self, input_shape :tuple=(1600, 200, 1), output_size: int...
    method _define_model (line 440) | def _define_model(self, input_shape, output_size) -> tuple:
    method get_loss_function (line 486) | def get_loss_function(self) -> dict:
    method forward (line 489) | def forward(self, data_input):

FILE: model_zoo/speech_model/pytorch_backend.py
  class SpeechModel251BN (line 30) | class SpeechModel251BN(nn.Module):
    method __init__ (line 31) | def __init__(self, input_shape: tuple = (1600, 200, 1), output_size: i...
    method forward (line 87) | def forward(self, x):
    method compute_loss (line 121) | def compute_loss(self, y_pred, labels, input_length, label_length):
    method get_model (line 127) | def get_model(self):
    method get_model_name (line 130) | def get_model_name(self) -> str:

FILE: speech_features/base.py
  function calculate_nfft (line 36) | def calculate_nfft(samplerate, winlen):
  function mfcc (line 53) | def mfcc(signal, samplerate=16000, winlen=0.025, winstep=0.01, numcep=13,
  function fbank (line 81) | def fbank(signal, samplerate=16000, winlen=0.025, winstep=0.01,
  function logfbank (line 112) | def logfbank(signal, samplerate=16000, winlen=0.025, winstep=0.01,
  function ssc (line 132) | def ssc(signal, samplerate=16000, winlen=0.025, winstep=0.01,
  function hz2mel (line 161) | def hz2mel(hz):
  function mel2hz (line 169) | def mel2hz(mel):
  function get_filterbanks (line 177) | def get_filterbanks(nfilt=20, nfft=512, samplerate=16000, lowfreq=0, hig...
  function lifter (line 207) | def lifter(cepstra, L=22):
  function delta (line 223) | def delta(feat, N):

FILE: speech_features/sigproc.py
  function round_half_up (line 35) | def round_half_up(number):
  function rolling_window (line 39) | def rolling_window(a, window, step=1):
  function framesig (line 46) | def framesig(sig, frame_len, frame_step, winfunc=lambda x: numpy.ones((x...
  function deframesig (line 80) | def deframesig(frames, siglen, frame_len, frame_step, winfunc=lambda x: ...
  function magspec (line 114) | def magspec(frames, NFFT):
  function powspec (line 128) | def powspec(frames, NFFT):
  function logpowspec (line 137) | def logpowspec(frames, NFFT, norm=1):
  function preemphasis (line 153) | def preemphasis(signal, coeff=0.95):

FILE: speech_features/speech_features.py
  class SpeechFeatureMeta (line 32) | class SpeechFeatureMeta:
    method __init__ (line 37) | def __init__(self, framesamplerate=16000):
    method run (line 40) | def run(self, wavsignal, fs=16000):
  class MFCC (line 47) | class MFCC(SpeechFeatureMeta):
    method __init__ (line 61) | def __init__(self, framesamplerate=16000,
    method run (line 75) | def run(self, wavsignal, fs=16000):
  class Logfbank (line 92) | class Logfbank(SpeechFeatureMeta):
    method __init__ (line 97) | def __init__(self, framesamplerate=16000, nfilt=26):
    method run (line 101) | def run(self, wavsignal, fs=16000):
  class Spectrogram (line 108) | class Spectrogram(SpeechFeatureMeta):
    method __init__ (line 113) | def __init__(self, framesamplerate=16000, timewindow=25, timeshift=10):
    method run (line 128) | def run(self, wavsignal, fs=16000):
  class SpecAugment (line 160) | class SpecAugment(SpeechFeatureMeta):
    method __init__ (line 165) | def __init__(self, framesamplerate=16000, timewindow=25, timeshift=10):
    method run (line 180) | def run(self, wavsignal, fs=16000):

FILE: speech_model.py
  class ModelSpeech (line 35) | class ModelSpeech:
    method __init__ (line 44) | def __init__(self, speech_model, speech_features, max_label_length=64):
    method _data_generator (line 52) | def _data_generator(self, batch_size, data_loader):
    method train_model (line 89) | def train_model(self, optimizer, data_loader, epochs=1, save_step=1, b...
    method load_model (line 136) | def load_model(self, filename):
    method save_model (line 142) | def save_model(self, filename):
    method evaluate_model (line 148) | def evaluate_model(self, data_loader, data_count=-1, out_report=False,...
    method predict (line 222) | def predict(self, data_input):
    method recognize_speech (line 230) | def recognize_speech(self, wavsignal, fs):
    method recognize_speech_from_file (line 249) | def recognize_speech_from_file(self, filename):
    method model (line 258) | def model(self):

FILE: speech_recorder.py
  function record_wave (line 30) | def record_wave(wavfile,

FILE: torch_speech_model.py
  class SpeechDataset (line 36) | class SpeechDataset(Dataset):
    method __init__ (line 37) | def __init__(self, data_loader, speech_features, input_shape, max_labe...
    method __len__ (line 44) | def __len__(self):
    method __getitem__ (line 47) | def __getitem__(self, index):
  class ModelSpeech (line 72) | class ModelSpeech:
    method __init__ (line 73) | def __init__(self, speech_model: torch.nn.Module, speech_features: Spe...
    method train (line 80) | def train(self, data_loader: DataLoader, epochs: int, batch_size: int,...
    method save_weight (line 133) | def save_weight(self, filename: str):
    method load_weight (line 137) | def load_weight(self, filepath: str):

FILE: utils/config.py
  function load_config_file (line 34) | def load_config_file(filename: str) -> dict:
  function load_pinyin_dict (line 53) | def load_pinyin_dict(filename: str) -> tuple:

FILE: utils/ops.py
  function read_wav_data (line 32) | def read_wav_data(filename: str) -> tuple:
  function read_wav_bytes (line 49) | def read_wav_bytes(filename: str) -> tuple:
  function get_edit_distance (line 63) | def get_edit_distance(str1, str2) -> int:
  function ctc_decode_delete_tail_blank (line 79) | def ctc_decode_delete_tail_blank(ctc_decode_list):
  function visual_1D (line 89) | def visual_1D(points_list, frequency=1):
  function visual_2D (line 102) | def visual_2D(img):
  function decode_wav_bytes (line 112) | def decode_wav_bytes(samples_data: bytes, channels: int = 1, byte_width:...
  function get_symbol_dict (line 127) | def get_symbol_dict(dict_filename):
  function get_language_model (line 150) | def get_language_model(model_language_filename):
  function ctc_decode_stream (line 171) | def ctc_decode_stream(tokens):

FILE: utils/ops_test.py
  class TestGetEditDistance (line 30) | class TestGetEditDistance:
    method test_1 (line 31) | def test_1(self):
    method test_2 (line 37) | def test_2(self):
    method test_3 (line 43) | def test_3(self):
    method test_4 (line 49) | def test_4(self):
    method test_5 (line 55) | def test_5(self):
    method test_6 (line 61) | def test_6(self):
  class TestCtcDecodeDeleteTailBlank (line 68) | class TestCtcDecodeDeleteTailBlank:
    method test_1 (line 69) | def test_1(self):
    method test_2 (line 75) | def test_2(self):
    method test_3 (line 81) | def test_3(self):
    method test_4 (line 87) | def test_4(self):
    method test_5 (line 93) | def test_5(self):
  class TestCtcDecodeStream (line 100) | class TestCtcDecodeStream:
    method test_1 (line 101) | def test_1(self):
    method test_2 (line 112) | def test_2(self):

FILE: utils/thread.py
  class threadsafe_iter (line 34) | class threadsafe_iter:
    method __init__ (line 38) | def __init__(self, it):
    method __iter__ (line 42) | def __iter__(self):
    method __next__ (line 45) | def __next__(self):
  function threadsafe_generator (line 50) | def threadsafe_generator(f):
Condensed preview — 40 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,373K chars).
[
  {
    "path": ".github/FUNDING.yml",
    "chars": 510,
    "preview": "# These are supported funding model platforms\n\ngithub: nl8590687 # Replace with up to 4 GitHub Sponsors-enabled username"
  },
  {
    "path": ".github/donate.md",
    "chars": 520,
    "preview": "# Donate 打赏作者\n\n本项目的作者@nl8590687 (repo owner)现在其实还是一名学生...\n\n如果您觉得本项目给您的学习和工作带来了一些帮助,可以考虑给作者一些打赏,用来给他在炎热的夏天买一瓶冰可乐,或者寒冷的冬天买"
  },
  {
    "path": ".gitignore",
    "chars": 223,
    "preview": "## Ignore some files and folders for copyright and other reasons. \n\n*.model\n*.model.base\n[Mm]odel_speech/\n\n__pycache__\n*"
  },
  {
    "path": "Dockerfile",
    "chars": 2180,
    "preview": "# Ubuntu 20.04\nFROM ubuntu:focal\n\n# 切换默认shell为bash\nSHELL [\"/bin/bash\", \"-c\"]\n\nADD ./ /asrt_server\n\nWORKDIR /asrt_server\n"
  },
  {
    "path": "LICENSE",
    "chars": 35150,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "README.md",
    "chars": 8178,
    "preview": "![](assets/asrt_title_header.png)\r\n\r\n[![GPL-3.0 Licensed](https://img.shields.io/badge/License-GPL3.0-blue.svg?style=fla"
  },
  {
    "path": "README_EN.md",
    "chars": 11359,
    "preview": "![](assets/asrt_title_header_en.png)\n\n[![GPL-3.0 Licensed](https://img.shields.io/badge/License-GPL3.0-blue.svg?style=fl"
  },
  {
    "path": "asrserver_grpc.py",
    "chars": 6564,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "asrserver_http.py",
    "chars": 6582,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "asrt_config.json",
    "chars": 4750,
    "preview": "{\n    \"dict_filename\": \"dict.txt\",\n\n    \"dataset\":{\n        \"train\":[\n            {\n                \"name\": \"thchs30_tra"
  },
  {
    "path": "assets/asrt.proto",
    "chars": 1628,
    "preview": "/* Copyright 2016-2099 Ailemon.net\n\nThis file is part of ASRT Speech Recognition Tool.\n\nASRT is free software: you can r"
  },
  {
    "path": "assets/asrt_pb2.py",
    "chars": 13136,
    "preview": "# -*- coding: utf-8 -*-\n# Generated by the protocol buffer compiler.  DO NOT EDIT!\n# source: asrt.proto\n\"\"\"Generated pro"
  },
  {
    "path": "assets/asrt_pb2_grpc.py",
    "chars": 7097,
    "preview": "# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!\n\"\"\"Client and server classes corresponding to prot"
  },
  {
    "path": "assets/default.html",
    "chars": 754,
    "preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<meta charset=\"utf-8\">\n\t\t<title>ASRT Speech Recognition API</title>\n\t\t<style>\n\t\tbody {\n"
  },
  {
    "path": "client_grpc.py",
    "chars": 3835,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "client_http.py",
    "chars": 1507,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "data_loader.py",
    "chars": 3440,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "dict.txt",
    "chars": 16696,
    "preview": "a1\t阿啊呵腌吖锕\na2\t啊呵嗄\na3\t啊\na4\t啊呵\na5\t阿啊呵\nai1\t哀挨埃唉哎捱锿诶\nai2\t挨癌皑呆捱矮\nai3\t矮蔼哎霭嗳\nai4\t爱碍艾唉哎隘暧嗳瑷嗌嫒砹\nan1\t安谙鞍氨庵桉鹌\nan3\t俺铵揞埯\nan4\t案按暗岸黯胺犴\na"
  },
  {
    "path": "download_default_datalist.py",
    "chars": 3623,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "evaluate_speech_model.py",
    "chars": 1650,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "language_model3.py",
    "chars": 4204,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "model_language/language_model1.txt",
    "chars": 36557,
    "preview": "3941753\n的\t213994\n一\t72404\n是\t69047\n在\t63563\n不\t61699\n了\t60856\n有\t59005\n人\t52706\n中\t52005\n国\t50797\n我\t48825\n大\t45439\n上\t39507\n年\t37962"
  },
  {
    "path": "model_language/language_model2.txt",
    "chars": 2943806,
    "preview": "3941753\n中国\t16703\n公司\t13638\n我们\t10492\n一个\t9240\n可以\t7954\n服务\t7748\n有限\t7517\n工作\t6489\n游戏\t6459\n信托\t6283\n没有\t6281\n市场\t6153\n准备\t6043\n自己\t58"
  },
  {
    "path": "model_zoo/speech_model/keras_backend.py",
    "chars": 23247,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "model_zoo/speech_model/pytorch_backend.py",
    "chars": 5657,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "predict_speech_file.py",
    "chars": 1724,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "requirements.txt",
    "chars": 172,
    "preview": "Flask==2.2.2\nh5py==3.8.0\nmatplotlib==3.6.3\nnumpy==1.24.1\nprotobuf==3.19.6\nrequests==2.28.2\nscipy==1.10.0\ntensorflow-gpu="
  },
  {
    "path": "speech_features/__init__.py",
    "chars": 904,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "speech_features/base.py",
    "chars": 13082,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "speech_features/sigproc.py",
    "chars": 7000,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "speech_features/speech_features.py",
    "chars": 8140,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "speech_model.py",
    "chars": 10258,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "speech_recorder.py",
    "chars": 3914,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "torch_speech_model.py",
    "chars": 6072,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "train_speech_model.py",
    "chars": 1834,
    "preview": "# !/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech"
  },
  {
    "path": "train_speech_model_pytorch.py",
    "chars": 1594,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "utils/config.py",
    "chars": 2013,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "utils/ops.py",
    "chars": 5152,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "utils/ops_test.py",
    "chars": 3937,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  },
  {
    "path": "utils/thread.py",
    "chars": 1814,
    "preview": "#!/usr/bin/env python3\n# -*- coding: utf-8 -*-\n#\n# Copyright 2016-2099 Ailemon.net\n#\n# This file is part of ASRT Speech "
  }
]

About this extraction

This page contains the full source code of the nl8590687/ASRT_SpeechRecognition GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 40 files (3.1 MB), approximately 804.3k tokens, and a symbol index with 167 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!