├── .gitignore ├── ReadMe.md ├── conf └── word_index.txt └── lib ├── file_wav.py ├── hyperparams.py ├── model.py ├── modules.py ├── nn_utils.py ├── read_data_end2end.py ├── train.py └── transformer.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /ReadMe.md: -------------------------------------------------------------------------------- 1 | # asr transformer 2 | [文档介绍](https://zhuanlan.zhihu.com/p/53068323) 3 | 4 | ## required 5 | * python 2.7 6 | * tensorflow 1.11.0 7 | 8 | ## train 9 | python lib/train.py 10 | -------------------------------------------------------------------------------- /conf/word_index.txt: -------------------------------------------------------------------------------- 1 | 的 175603 2 | 一 80300 3 | 国 61051 4 | 中 60075 5 | 在 52464 6 | 是 51058 7 | 了 49017 8 | 不 45263 9 | 人 44907 10 | 大 41897 11 | 我 39391 12 | 和 38980 13 | 有 38857 14 | 发 34034 15 | 会 33744 16 | 为 32476 17 | 十 31406 18 | 上 29821 19 | 要 29359 20 | 作 27591 21 | 二 26246 22 | 年 26045 23 | 你 25669 24 | 个 25624 25 | 出 25330 26 | 新 23801 27 | 业 23403 28 | 地 22804 29 | 以 22645 30 | 来 22533 31 | 方 21812 32 | 成 21727 33 | 家 21526 34 | 行 21517 35 | 全 21326 36 | 时 21201 37 | 这 20915 38 | 对 20866 39 | 进 20719 40 | 生 20453 41 | 三 20259 42 | 展 20128 43 | 主 19952 44 | 日 19642 45 | 到 19323 46 | 合 18579 47 | 动 18519 48 | 同 17961 49 | 平 17549 50 | 能 17482 51 | 好 17457 52 | 实 17365 53 | 开 17225 54 | 民 17194 55 | 就 17143 56 | 经 16968 57 | 天 16953 58 | 市 16925 59 | 多 16557 60 | 现 16527 61 | 关 16507 62 | 政 16446 63 | 公 16350 64 | 高 16106 65 | 分 16025 66 | 部 15992 67 | 工 15952 68 | 加 15931 69 | 于 15777 70 | 下 15709 71 | 建 15226 72 | 力 15170 73 | 重 15050 74 | 者 14964 75 | 后 14942 76 | 子 14912 77 | 化 14708 78 | 之 14633 79 | 也 14620 80 | 用 14596 81 | 产 14502 82 | 五 14392 83 | 们 14366 84 | 面 14256 85 | 学 14215 86 | 体 14179 87 | 他 14024 88 | 百 13964 89 | 将 13917 90 | 前 13796 91 | 法 13772 92 | 过 13718 93 | 机 13700 94 | 强 13631 95 | 定 13499 96 | 四 13434 97 | 理 13336 98 | 点 13300 99 | 等 13150 100 | 自 13117 101 | 表 13051 102 | 九 12955 103 | 去 12919 104 | 军 12840 105 | 还 12838 106 | 可 12832 107 | 近 12437 108 | 区 12273 109 | 长 12213 110 | 场 12195 111 | 两 12127 112 | 得 11931 113 | 都 11928 114 | 零 11915 115 | 共 11873 116 | 与 11804 117 | 党 11748 118 | 事 11730 119 | 持 11490 120 | 制 11448 121 | 员 11434 122 | 本 11304 123 | 系 11058 124 | 资 10963 125 | 说 10962 126 | 设 10900 127 | 务 10856 128 | 心 10805 129 | 小 10793 130 | 代 10782 131 | 度 10776 132 | 而 10405 133 | 准 10377 134 | 习 10323 135 | 通 10317 136 | 里 10288 137 | 八 10204 138 | 推 10190 139 | 最 10183 140 | 保 10123 141 | 月 10110 142 | 院 10088 143 | 利 10042 144 | 总 10016 145 | 提 9961 146 | 明 9905 147 | 改 9756 148 | 金 9740 149 | 记 9711 150 | 没 9697 151 | 入 9684 152 | 道 9631 153 | 那 9626 154 | 文 9624 155 | 内 9621 156 | 交 9613 157 | 目 9392 158 | 今 9327 159 | 其 9313 160 | 电 9301 161 | 领 9228 162 | 六 9172 163 | 次 9158 164 | 海 9091 165 | 各 9035 166 | 起 8999 167 | 委 8945 168 | 安 8938 169 | 当 8915 170 | 性 8878 171 | 第 8856 172 | 治 8797 173 | 更 8771 174 | 特 8766 175 | 美 8762 176 | 正 8723 177 | 问 8689 178 | 比 8686 179 | 意 8625 180 | 被 8610 181 | 看 8609 182 | 战 8584 183 | 外 8501 184 | 报 8432 185 | 社 8424 186 | 示 8348 187 | 路 8336 188 | 期 8330 189 | 央 8172 190 | 手 8149 191 | 七 8141 192 | 相 8106 193 | 着 8094 194 | 北 8059 195 | 议 8006 196 | 间 7996 197 | 备 7991 198 | 向 7953 199 | 信 7901 200 | 万 7865 201 | 所 7862 202 | 房 7812 203 | 品 7768 204 | 调 7725 205 | 基 7702 206 | 车 7684 207 | 导 7636 208 | 量 7591 209 | 名 7578 210 | 水 7571 211 | 已 7561 212 | 从 7554 213 | 群 7540 214 | 统 7497 215 | 深 7494 216 | 并 7480 217 | 么 7418 218 | 题 7415 219 | 应 7285 220 | 企 7242 221 | 位 7206 222 | 网 7156 223 | 世 7122 224 | 科 7091 225 | 济 7083 226 | 想 7051 227 | 老 7050 228 | 司 7038 229 | 东 6983 230 | 创 6917 231 | 书 6901 232 | 坚 6889 233 | 南 6863 234 | 给 6856 235 | 西 6815 236 | 立 6780 237 | 任 6765 238 | 带 6757 239 | 管 6712 240 | 情 6711 241 | 决 6695 242 | 城 6691 243 | 黄 6669 244 | 组 6645 245 | 联 6597 246 | 传 6595 247 | 结 6525 248 | 然 6492 249 | 放 6471 250 | 儿 6451 251 | 指 6443 252 | 运 6427 253 | 约 6390 254 | 打 6381 255 | 商 6374 256 | 增 6372 257 | 规 6346 258 | 及 6332 259 | 女 6323 260 | 赛 6312 261 | 元 6303 262 | 色 6295 263 | 京 6290 264 | 山 6272 265 | 如 6269 266 | 果 6255 267 | 革 6223 268 | 广 6220 269 | 义 6210 270 | 把 6177 271 | 价 6176 272 | 门 6167 273 | 界 6114 274 | 项 6102 275 | 局 6087 276 | 回 6066 277 | 常 6010 278 | 台 6008 279 | 续 5997 280 | 活 5959 281 | 此 5955 282 | 因 5933 283 | 但 5921 284 | 接 5893 285 | 数 5869 286 | 式 5856 287 | 无 5834 288 | 际 5800 289 | 很 5751 290 | 许 5745 291 | 千 5731 292 | 做 5730 293 | 种 5729 294 | 流 5725 295 | 程 5717 296 | 技 5712 297 | 席 5700 298 | 取 5695 299 | 计 5668 300 | 斯 5667 301 | 造 5642 302 | 解 5606 303 | 求 5593 304 | 队 5589 305 | 步 5543 306 | 雪 5507 307 | 物 5434 308 | 由 5419 309 | 标 5408 310 | 投 5348 311 | 布 5327 312 | 受 5323 313 | 啊 5318 314 | 友 5273 315 | 让 5262 316 | 游 5219 317 | 华 5215 318 | 农 5200 319 | 团 5189 320 | 张 5178 321 | 收 5177 322 | 协 5167 323 | 风 5151 324 | 达 5110 325 | 愿 5086 326 | 身 5083 327 | 王 5082 328 | 医 5079 329 | 村 5055 330 | 别 5045 331 | 或 5040 332 | 快 5038 333 | 完 5018 334 | 施 4986 335 | 怀 4978 336 | 支 4974 337 | 线 4967 338 | 教 4955 339 | 护 4954 340 | 首 4944 341 | 处 4923 342 | 环 4899 343 | 件 4878 344 | 气 4870 345 | 认 4867 346 | 见 4862 347 | 永 4855 348 | 据 4848 349 | 构 4836 350 | 卡 4836 351 | 克 4822 352 | 话 4815 353 | 样 4804 354 | 江 4802 355 | 些 4802 356 | 宣 4788 357 | 马 4781 358 | 精 4748 359 | 亚 4746 360 | 格 4740 361 | 使 4734 362 | 先 4722 363 | 至 4713 364 | 视 4707 365 | 参 4701 366 | 原 4696 367 | 办 4636 368 | 口 4634 369 | 尔 4621 370 | 级 4604 371 | 域 4576 372 | 互 4566 373 | 策 4552 374 | 变 4550 375 | 府 4544 376 | 头 4541 377 | 球 4487 378 | 州 4473 379 | 集 4459 380 | 非 4426 381 | 神 4412 382 | 积 4403 383 | 思 4396 384 | 确 4393 385 | 服 4377 386 | 少 4372 387 | 李 4370 388 | 知 4361 389 | 众 4353 390 | 举 4317 391 | 她 4310 392 | 边 4306 393 | 易 4304 394 | 形 4284 395 | 双 4282 396 | 只 4278 397 | 查 4275 398 | 研 4264 399 | 案 4260 400 | 术 4256 401 | 势 4242 402 | 允 4234 403 | 监 4214 404 | 影 4210 405 | 质 4197 406 | 单 4195 407 | 远 4186 408 | 转 4184 409 | 均 4176 410 | 娃 4163 411 | 境 4163 412 | 态 4153 413 | 源 4149 414 | 论 4148 415 | 极 4138 416 | 吗 4133 417 | 选 4101 418 | 告 4081 419 | 落 4079 420 | 职 4078 421 | 引 4077 422 | 玩 4065 423 | 未 4058 424 | 真 4032 425 | 感 4024 426 | 需 4023 427 | 走 4022 428 | 证 4020 429 | 整 4001 430 | 专 3963 431 | 供 3954 432 | 权 3928 433 | 己 3925 434 | 费 3919 435 | 责 3912 436 | 再 3900 437 | 息 3876 438 | 消 3847 439 | 直 3837 440 | 稳 3835 441 | 志 3835 442 | 干 3834 443 | 空 3833 444 | 师 3827 445 | 营 3818 446 | 翁 3817 447 | 又 3810 448 | 周 3806 449 | 德 3803 450 | 优 3794 451 | 型 3772 452 | 该 3745 453 | 拉 3740 454 | 反 3735 455 | 称 3725 456 | 住 3720 457 | 育 3715 458 | 节 3712 459 | 林 3690 460 | 略 3688 461 | 省 3686 462 | 升 3664 463 | 兄 3634 464 | 断 3634 465 | 云 3632 466 | 富 3615 467 | 效 3613 468 | 几 3610 469 | 条 3605 470 | 则 3590 471 | 核 3587 472 | 望 3551 473 | 始 3545 474 | 吧 3519 475 | 米 3516 476 | 识 3501 477 | 士 3499 478 | 融 3494 479 | 太 3492 480 | 英 3488 481 | 难 3461 482 | 乐 3454 483 | 越 3451 484 | 光 3451 485 | 织 3442 486 | 类 3431 487 | 才 3428 488 | 复 3411 489 | 历 3393 490 | 清 3386 491 | 继 3380 492 | 兴 3341 493 | 获 3338 494 | 命 3322 495 | 善 3317 496 | 维 3304 497 | 片 3280 498 | 每 3275 499 | 男 3273 500 | 圈 3239 501 | 什 3213 502 | 显 3208 503 | 包 3197 504 | 户 3191 505 | 观 3186 506 | 致 3175 507 | 贫 3173 508 | 具 3159 509 | 史 3158 510 | 客 3134 511 | 预 3133 512 | 词 3127 513 | 念 3123 514 | 划 3107 515 | 减 3105 516 | 土 3102 517 | 照 3098 518 | 益 3092 519 | 况 3074 520 | 巴 3065 521 | 爱 3045 522 | 严 3040 523 | 降 3039 524 | 速 3021 525 | 防 3020 526 | 列 3002 527 | 存 2976 528 | 切 2961 529 | 演 2952 530 | 装 2946 531 | 紧 2939 532 | 较 2931 533 | 弟 2906 534 | 连 2904 535 | 候 2898 536 | 花 2885 537 | 范 2874 538 | 县 2872 539 | 族 2867 540 | 号 2864 541 | 根 2854 542 | 买 2849 543 | 究 2842 544 | 盖 2842 545 | 股 2839 546 | 响 2830 547 | 险 2817 548 | 往 2811 549 | 银 2807 550 | 模 2805 551 | 贸 2805 552 | 审 2802 553 | 功 2776 554 | 层 2763 555 | 讲 2755 556 | 纪 2755 557 | 届 2754 558 | 青 2753 559 | 低 2752 560 | 器 2744 561 | 负 2741 562 | 亲 2740 563 | 罗 2738 564 | 河 2732 565 | 注 2727 566 | 率 2718 567 | 警 2715 568 | 考 2703 569 | 勇 2695 570 | 请 2687 571 | 白 2682 572 | 半 2681 573 | 排 2679 574 | 争 2672 575 | 容 2670 576 | 超 2654 577 | 依 2652 578 | 何 2649 579 | 阳 2642 580 | 采 2641 581 | 星 2625 582 | 楼 2623 583 | 促 2620 584 | 福 2618 585 | 港 2617 586 | 击 2614 587 | 校 2610 588 | 终 2600 589 | 居 2595 590 | 跟 2590 591 | 随 2584 592 | 销 2580 593 | 验 2580 594 | 段 2564 595 | 热 2564 596 | 助 2556 597 | 款 2556 598 | 呢 2535 599 | 试 2531 600 | 亿 2529 601 | 普 2527 602 | 充 2526 603 | 晚 2523 604 | 智 2516 605 | 站 2511 606 | 必 2503 607 | 龙 2498 608 | 图 2496 609 | 副 2485 610 | 博 2484 611 | 且 2483 612 | 言 2482 613 | 围 2463 614 | 购 2460 615 | 古 2458 616 | 觉 2450 617 | 突 2449 618 | 俄 2449 619 | 佳 2447 620 | 修 2443 621 | 雄 2442 622 | 火 2439 623 | 健 2435 624 | 哈 2413 625 | 乡 2411 626 | 吃 2403 627 | 武 2394 628 | 死 2378 629 | 官 2375 630 | 康 2373 631 | 牌 2366 632 | 胸 2351 633 | 夫 2346 634 | 控 2343 635 | 检 2336 636 | 阿 2335 637 | 律 2324 638 | 密 2323 639 | 找 2316 640 | 希 2315 641 | 红 2312 642 | 君 2296 643 | 朝 2275 644 | 税 2275 645 | 跑 2266 646 | 欧 2264 647 | 访 2262 648 | 础 2261 649 | 批 2260 650 | 置 2257 651 | 售 2252 652 | 春 2250 653 | 床 2250 654 | 像 2249 655 | 值 2246 656 | 泳 2242 657 | 微 2238 658 | 声 2237 659 | 辞 2233 660 | 班 2229 661 | 刘 2228 662 | 刚 2216 663 | 听 2213 664 | 满 2211 665 | 贯 2203 666 | 财 2203 667 | 伟 2197 668 | 谈 2196 669 | 执 2195 670 | 园 2192 671 | 石 2188 672 | 字 2180 673 | 仅 2173 674 | 欢 2173 675 | 失 2172 676 | 宁 2168 677 | 景 2165 678 | 除 2153 679 | 即 2149 680 | 拥 2146 681 | 牙 2146 682 | 足 2141 683 | 养 2137 684 | 离 2136 685 | 限 2134 686 | 缺 2130 687 | 早 2127 688 | 象 2124 689 | 挥 2122 690 | 评 2110 691 | 奥 2102 692 | 铁 2086 693 | 破 2077 694 | 障 2069 695 | 飞 2065 696 | 彻 2059 697 | 担 2048 698 | 份 2045 699 | 承 2035 700 | 初 2033 701 | 哪 2030 702 | 章 2029 703 | 镇 2029 704 | 训 2024 705 | 配 2022 706 | 洲 2020 707 | 伤 2019 708 | 杨 2019 709 | 便 2018 710 | 措 2013 711 | 温 2001 712 | 察 2001 713 | 钱 1989 714 | 属 1987 715 | 香 1986 716 | 按 1976 717 | 拿 1968 718 | 卫 1968 719 | 算 1967 720 | 病 1966 721 | 故 1963 722 | 航 1962 723 | 帮 1960 724 | 怎 1954 725 | 滑 1944 726 | 丽 1941 727 | 波 1929 728 | 熊 1926 729 | 曾 1917 730 | 攻 1914 731 | 迎 1912 732 | 峰 1878 733 | 疑 1869 734 | 脱 1866 735 | 朋 1865 736 | 遇 1843 737 | 待 1842 738 | 药 1840 739 | 献 1838 740 | 宝 1837 741 | 料 1837 742 | 抓 1835 743 | 叫 1827 744 | 困 1822 745 | 耍 1818 746 | 季 1812 747 | 斗 1806 748 | 孩 1803 749 | 良 1796 750 | 绩 1789 751 | 尼 1787 752 | 胜 1787 753 | 久 1785 754 | 陪 1777 755 | 临 1776 756 | 救 1775 757 | 移 1771 758 | 陈 1767 759 | 仍 1765 760 | 底 1764 761 | 旅 1762 762 | 午 1760 763 | 它 1760 764 | 喜 1757 765 | 岁 1756 766 | 署 1754 767 | 兰 1744 768 | 伙 1740 769 | 草 1740 770 | 板 1740 771 | 语 1730 772 | 播 1725 773 | 眼 1724 774 | 闻 1723 775 | 伴 1715 776 | 食 1714 777 | 歌 1711 778 | 测 1707 779 | 货 1704 780 | 频 1704 781 | 苏 1702 782 | 送 1701 783 | 讯 1693 784 | 端 1689 785 | 补 1683 786 | 盟 1682 787 | 扩 1677 788 | 培 1673 789 | 绿 1665 790 | 停 1664 791 | 征 1661 792 | 湖 1659 793 | 额 1650 794 | 留 1647 795 | 伊 1646 796 | 例 1646 797 | 写 1644 798 | 黑 1640 799 | 韩 1637 800 | 努 1628 801 | 假 1626 802 | 姐 1615 803 | 涨 1607 804 | 压 1593 805 | 版 1591 806 | 哥 1591 807 | 却 1585 808 | 洋 1581 809 | 令 1576 810 | 妈 1574 811 | 练 1573 812 | 室 1571 813 | 激 1565 814 | 雅 1564 815 | 雨 1561 816 | 甲 1561 817 | 兵 1550 818 | 录 1549 819 | 介 1548 820 | 剧 1547 821 | 损 1546 822 | 竞 1542 823 | 冠 1540 824 | 岛 1538 825 | 尽 1532 826 | 套 1525 827 | 艺 1522 828 | 索 1516 829 | 某 1515 830 | 害 1505 831 | 媒 1501 832 | 涉 1496 833 | 田 1494 834 | 括 1493 835 | 角 1493 836 | 票 1489 837 | 婚 1487 838 | 庆 1482 839 | 判 1481 840 | 独 1480 841 | 诉 1480 842 | 状 1479 843 | 馆 1476 844 | 库 1474 845 | 托 1471 846 | 汽 1469 847 | 换 1468 848 | 违 1458 849 | 素 1456 850 | 派 1454 851 | 督 1452 852 | 纳 1449 853 | 油 1440 854 | 汉 1440 855 | 丰 1438 856 | 须 1432 857 | 店 1429 858 | 络 1429 859 | 够 1429 860 | 穷 1428 861 | 止 1424 862 | 音 1423 863 | 幕 1413 864 | 孕 1411 865 | 短 1409 866 | 威 1407 867 | 松 1403 868 | 烈 1402 869 | 露 1400 870 | 聚 1398 871 | 奋 1396 872 | 适 1396 873 | 述 1396 874 | 签 1389 875 | 启 1385 876 | 占 1382 877 | 幅 1381 878 | 陆 1374 879 | 厂 1371 880 | 昨 1367 881 | 阶 1363 882 | 沙 1361 883 | 退 1357 884 | 奖 1357 885 | 印 1357 886 | 扶 1350 887 | 皇 1350 888 | 酒 1349 889 | 固 1349 890 | 守 1345 891 | 梦 1344 892 | 妹 1336 893 | 穿 1331 894 | 鲜 1329 895 | 轻 1326 896 | 卖 1324 897 | 针 1324 898 | 享 1322 899 | 座 1309 900 | 荣 1308 901 | 付 1302 902 | 细 1298 903 | 树 1293 904 | 贡 1292 905 | 盘 1289 906 | 衣 1289 907 | 宗 1287 908 | 差 1267 909 | 贵 1266 910 | 轮 1266 911 | 亮 1265 912 | 娟 1264 913 | 刻 1261 914 | 虽 1259 915 | 拍 1247 916 | 赢 1245 917 | 朗 1242 918 | 谁 1241 919 | 追 1231 920 | 孙 1230 921 | 疗 1225 922 | 顺 1219 923 | 谢 1215 924 | 摸 1211 925 | 母 1206 926 | 画 1204 927 | 否 1203 928 | 戏 1202 929 | 冲 1202 930 | 遭 1201 931 | 川 1200 932 | 巨 1197 933 | 逐 1192 934 | 登 1192 935 | 亡 1191 936 | 锦 1189 937 | 贷 1188 938 | 藏 1185 939 | 耳 1185 940 | 睡 1181 941 | 抱 1179 942 | 吉 1171 943 | 祝 1169 944 | 探 1166 945 | 背 1162 946 | 倒 1161 947 | 秀 1161 948 | 桥 1161 949 | 申 1160 950 | 综 1156 951 | 啦 1155 952 | 搜 1155 953 | 卷 1154 954 | 召 1153 955 | 左 1152 956 | 序 1151 957 | 免 1139 958 | 键 1133 959 | 扬 1130 960 | 抗 1127 961 | 裙 1127 962 | 宪 1119 963 | 梅 1111 964 | 叙 1108 965 | 绝 1105 966 | 似 1104 967 | 杀 1103 968 | 券 1101 969 | 脑 1101 970 | 庭 1100 971 | 汇 1099 972 | 街 1098 973 | 匀 1093 974 | 励 1091 975 | 吸 1090 976 | 污 1089 977 | 急 1087 978 | 染 1085 979 | 冰 1083 980 | 材 1081 981 | 夏 1081 982 | 奇 1077 983 | 宅 1076 984 | 婆 1076 985 | 编 1074 986 | 坛 1069 987 | 雷 1069 988 | 典 1068 989 | 罪 1065 990 | 软 1064 991 | 乖 1064 992 | 架 1064 993 | 赞 1064 994 | 予 1061 995 | 嘛 1059 996 | 借 1059 997 | 舞 1056 998 | 债 1051 999 | 夜 1051 1000 | 惠 1050 1001 | 湾 1044 1002 | 右 1042 1003 | 鱼 1040 1004 | 繁 1040 1005 | 纷 1039 1006 | 吴 1036 1007 | 靠 1035 1008 | 讨 1035 1009 | 绍 1034 1010 | 劳 1034 1011 | 您 1032 1012 | 寻 1031 1013 | 振 1030 1014 | 块 1028 1015 | 呀 1025 1016 | 另 1012 1017 | 礼 1008 1018 | 择 1007 1019 | 祖 1006 1020 | 木 1003 1021 | 父 1003 1022 | 读 1001 1023 | 饭 999 1024 | 塔 998 1025 | 输 996 1026 | 错 996 1027 | 坦 995 1028 | 爆 992 1029 | 曲 989 1030 | 血 989 1031 | 沟 987 1032 | 透 985 1033 | 延 985 1034 | 犯 979 1035 | 询 978 1036 | 毒 975 1037 | 淮 975 1038 | 暴 973 1039 | 握 968 1040 | 塞 967 1041 | 载 967 1042 | 滚 966 1043 | 筑 965 1044 | 冬 963 1045 | 毛 962 1046 | 附 960 1047 | 筹 955 1048 | 哦 953 1049 | 鼓 953 1050 | 夺 951 1051 | 肯 946 1052 | 诚 945 1053 | 润 945 1054 | 释 943 1055 | 蓝 941 1056 | 轩 935 1057 | 践 932 1058 | 澳 932 1059 | 幸 930 1060 | 简 927 1061 | 蒙 923 1062 | 皮 922 1063 | 刷 922 1064 | 挑 921 1065 | 船 920 1066 | 般 919 1067 | 岸 919 1068 | 赶 919 1069 | 帝 918 1070 | 异 918 1071 | 尚 918 1072 | 津 915 1073 | 租 914 1074 | 射 913 1075 | 沿 906 1076 | 梁 905 1077 | 彩 901 1078 | 败 900 1079 | 灾 897 1080 | 苦 897 1081 | 招 897 1082 | 径 888 1083 | 乎 888 1084 | 符 887 1085 | 析 886 1086 | 味 886 1087 | 妇 884 1088 | 危 882 1089 | 堂 881 1090 | 贺 880 1091 | 玉 879 1092 | 诗 877 1093 | 仪 877 1094 | 束 874 1095 | 甚 872 1096 | 侧 872 1097 | 著 872 1098 | 授 871 1099 | 驻 869 1100 | 绕 868 1101 | 冤 868 1102 | 苹 866 1103 | 巡 866 1104 | 秘 862 1105 | 童 861 1106 | 弹 860 1107 | 患 860 1108 | 脸 859 1109 | 齐 856 1110 | 归 854 1111 | 洁 853 1112 | 扎 852 1113 | 旗 850 1114 | 牢 846 1115 | 顾 846 1116 | 尊 843 1117 | 乘 843 1118 | 敏 842 1119 | 币 837 1120 | 裁 836 1121 | 野 836 1122 | 丝 835 1123 | 跳 834 1124 | 顶 834 1125 | 课 832 1126 | 余 832 1127 | 姓 831 1128 | 笑 830 1129 | 坐 829 1130 | 既 829 1131 | 敢 828 1132 | 徐 827 1133 | 霞 827 1134 | 辆 826 1135 | 肥 822 1136 | 厅 821 1137 | 休 817 1138 | 若 814 1139 | 袭 813 1140 | 恐 812 1141 | 赵 809 1142 | 订 808 1143 | 嗡 804 1144 | 遗 803 1145 | 捐 799 1146 | 植 799 1147 | 宽 798 1148 | 封 796 1149 | 援 794 1150 | 拓 792 1151 | 秋 789 1152 | 冷 787 1153 | 洗 787 1154 | 晓 785 1155 | 慈 784 1156 | 宫 782 1157 | 刑 781 1158 | 抢 778 1159 | 池 778 1160 | 肉 775 1161 | 私 773 1162 | 盛 769 1163 | 杰 768 1164 | 杂 765 1165 | 码 765 1166 | 胡 765 1167 | 贴 764 1168 | 狐 764 1169 | 枉 761 1170 | 操 759 1171 | 萨 759 1172 | 嫌 759 1173 | 呼 757 1174 | 跨 753 1175 | 坏 752 1176 | 晨 752 1177 | 旧 751 1178 | 豪 749 1179 | 娱 748 1180 | 董 748 1181 | 狂 747 1182 | 勒 747 1183 | 宜 746 1184 | 硬 746 1185 | 答 741 1186 | 禁 741 1187 | 摄 740 1188 | 诺 735 1189 | 潮 734 1190 | 散 734 1191 | 映 734 1192 | 嘉 734 1193 | 距 732 1194 | 菜 731 1195 | 牛 730 1196 | 估 728 1197 | 森 728 1198 | 凶 727 1199 | 浙 721 1200 | 泛 718 1201 | 累 717 1202 | 佛 715 1203 | 唱 714 1204 | 脚 713 1205 | 倡 711 1206 | 啥 711 1207 | 圆 708 1208 | 磁 708 1209 | 震 706 1210 | 掉 705 1211 | 虑 705 1212 | 庄 704 1213 | 灵 704 1214 | 谷 703 1215 | 钟 703 1216 | 恩 703 1217 | 馀 701 1218 | 怕 701 1219 | 叶 699 1220 | 妻 696 1221 | 阵 696 1222 | 慧 691 1223 | 唐 691 1224 | 惹 688 1225 | 潜 686 1226 | 驾 685 1227 | 鲁 684 1228 | 摔 682 1229 | 秒 681 1230 | 徽 681 1231 | 渐 680 1232 | 迪 678 1233 | 闭 678 1234 | 歪 678 1235 | 乱 672 1236 | 链 671 1237 | 伦 670 1238 | 赏 670 1239 | 恶 669 1240 | 隐 669 1241 | 含 669 1242 | 摩 665 1243 | 熟 663 1244 | 篇 662 1245 | 骗 660 1246 | 迈 659 1247 | 朱 657 1248 | 砖 657 1249 | 忘 655 1250 | 丹 655 1251 | 泽 655 1252 | 夹 654 1253 | 谋 652 1254 | 喝 651 1255 | 搞 650 1256 | 挂 648 1257 | 毕 647 1258 | 昌 647 1259 | 厚 646 1260 | 趋 645 1261 | 聊 644 1262 | 宋 643 1263 | 泰 642 1264 | 暖 642 1265 | 莫 642 1266 | 乌 640 1267 | 屋 637 1268 | 焦 636 1269 | 汪 635 1270 | 宾 634 1271 | 跌 633 1272 | 竟 632 1273 | 遍 627 1274 | 辉 626 1275 | 笔 626 1276 | 慢 622 1277 | 迁 619 1278 | 圳 619 1279 | 爸 618 1280 | 骨 618 1281 | 迹 615 1282 | 甩 615 1283 | 末 615 1284 | 句 614 1285 | 兼 614 1286 | 胞 613 1287 | 戴 613 1288 | 翻 612 1289 | 扯 611 1290 | 伍 610 1291 | 钢 609 1292 | 衡 609 1293 | 粉 603 1294 | 坡 602 1295 | 蛋 601 1296 | 枪 601 1297 | 缓 600 1298 | 郑 600 1299 | 瓦 600 1300 | 误 599 1301 | 途 598 1302 | 忙 598 1303 | 拐 598 1304 | 赔 597 1305 | 浪 596 1306 | 晋 596 1307 | 贝 596 1308 | 烟 596 1309 | 诸 596 1310 | 折 595 1311 | 避 595 1312 | 静 593 1313 | 倍 593 1314 | 谊 591 1315 | 偿 591 1316 | 吻 591 1317 | 珠 589 1318 | 楚 589 1319 | 弱 589 1320 | 丁 588 1321 | 疆 587 1322 | 奶 585 1323 | 洛 584 1324 | 洪 583 1325 | 览 582 1326 | 呈 581 1327 | 抵 581 1328 | 瑞 579 1329 | 掌 578 1330 | 侵 575 1331 | 刺 574 1332 | 痛 574 1333 | 宏 573 1334 | 迷 571 1335 | 扣 570 1336 | 伯 570 1337 | 矿 567 1338 | 猫 567 1339 | 履 567 1340 | 净 565 1341 | 尤 562 1342 | 灯 562 1343 | 罚 557 1344 | 跃 556 1345 | 概 556 1346 | 暂 555 1347 | 惊 553 1348 | 截 553 1349 | 虚 551 1350 | 迅 548 1351 | 麻 548 1352 | 储 543 1353 | 残 542 1354 | 巩 541 1355 | 秦 540 1356 | 刀 539 1357 | 邀 537 1358 | 煤 537 1359 | 肃 536 1360 | 宇 532 1361 | 餐 531 1362 | 返 530 1363 | 杯 530 1364 | 轨 525 1365 | 携 525 1366 | 凤 522 1367 | 忠 522 1368 | 圣 522 1369 | 缩 521 1370 | 祥 521 1371 | 弃 518 1372 | 昆 517 1373 | 驶 516 1374 | 壮 516 1375 | 鉴 515 1376 | 茶 514 1377 | 纺 514 1378 | 混 514 1379 | 腐 512 1380 | 洞 509 1381 | 挺 509 1382 | 菲 508 1383 | 触 507 1384 | 娘 505 1385 | 覆 503 1386 | 埃 502 1387 | 晤 502 1388 | 莱 501 1389 | 循 500 1390 | 杜 500 1391 | 郭 499 1392 | 氏 498 1393 | 默 498 1394 | 泉 497 1395 | 琼 497 1396 | 隆 496 1397 | 甘 496 1398 | 弄 496 1399 | 唯 494 1400 | 废 493 1401 | 撞 493 1402 | 渠 493 1403 | 逃 492 1404 | 顿 491 1405 | 咨 491 1406 | 悉 490 1407 | 瓷 490 1408 | 鸡 490 1409 | 魔 489 1410 | 岗 488 1411 | 镜 488 1412 | 曰 484 1413 | 赴 484 1414 | 葛 484 1415 | 爽 483 1416 | 遵 482 1417 | 羊 482 1418 | 燃 482 1419 | 旋 482 1420 | 谓 480 1421 | 撑 479 1422 | 粮 479 1423 | 茨 479 1424 | 炸 479 1425 | 恢 478 1426 | 奉 478 1427 | 凝 477 1428 | 舍 475 1429 | 勤 474 1430 | 龄 474 1431 | 液 473 1432 | 纸 473 1433 | 寺 473 1434 | 搭 472 1435 | 沈 470 1436 | 逼 470 1437 | 晒 469 1438 | 墙 468 1439 | 郎 468 1440 | 屏 467 1441 | 烧 467 1442 | 劝 467 1443 | 疾 466 1444 | 峡 466 1445 | 凌 466 1446 | 沉 464 1447 | 醒 463 1448 | 拳 463 1449 | 誉 463 1450 | 拟 458 1451 | 邻 458 1452 | 黎 455 1453 | 豆 453 1454 | 账 453 1455 | 册 452 1456 | 拔 450 1457 | 摆 448 1458 | 劲 446 1459 | 珍 446 1460 | 驱 446 1461 | 彼 446 1462 | 涌 445 1463 | 侠 443 1464 | 剂 443 1465 | 敬 442 1466 | 陷 441 1467 | 奏 441 1468 | 狗 441 1469 | 爷 438 1470 | 拜 437 1471 | 档 436 1472 | 仁 435 1473 | 媛 435 1474 | 纯 435 1475 | 梯 433 1476 | 敌 432 1477 | 披 431 1478 | 麦 431 1479 | 旬 430 1480 | 箱 430 1481 | 涛 429 1482 | 墨 428 1483 | 亦 428 1484 | 殊 427 1485 | 恋 425 1486 | 缘 425 1487 | 貌 425 1488 | 募 425 1489 | 舰 424 1490 | 剑 423 1491 | 欲 420 1492 | 卢 419 1493 | 迫 419 1494 | 恒 418 1495 | 籍 416 1496 | 怪 415 1497 | 幼 415 1498 | 契 413 1499 | 框 413 1500 | 盾 412 1501 | 涵 411 1502 | 牧 410 1503 | 虎 410 1504 | 怖 409 1505 | 偏 409 1506 | 偷 409 1507 | 愉 408 1508 | 辑 408 1509 | 淡 407 1510 | 溪 407 1511 | 凯 406 1512 | 递 406 1513 | 阴 406 1514 | 乃 404 1515 | 邦 403 1516 | 饰 403 1517 | 陶 402 1518 | 呵 401 1519 | 奔 401 1520 | 骑 401 1521 | 曝 399 1522 | 鸟 398 1523 | 凡 397 1524 | 阻 397 1525 | 替 397 1526 | 毫 396 1527 | 瓜 396 1528 | 捕 396 1529 | 隔 395 1530 | 锁 393 1531 | 琴 393 1532 | 炫 392 1533 | 赖 392 1534 | 旁 390 1535 | 壁 388 1536 | 偶 387 1537 | 姆 387 1538 | 吕 387 1539 | 杭 386 1540 | 荷 385 1541 | 阅 385 1542 | 伐 385 1543 | 搬 384 1544 | 丈 384 1545 | 徒 384 1546 | 漫 383 1547 | 榜 381 1548 | 俩 381 1549 | 廷 379 1550 | 矛 379 1551 | 懂 377 1552 | 辛 377 1553 | 弘 376 1554 | 艾 376 1555 | 旨 375 1556 | 岩 375 1557 | 沪 375 1558 | 饮 375 1559 | 孔 374 1560 | 冒 374 1561 | 添 373 1562 | 腿 372 1563 | 酸 372 1564 | 喊 371 1565 | 阔 370 1566 | 宿 370 1567 | 纽 370 1568 | 苗 369 1569 | 俗 367 1570 | 堡 366 1571 | 辖 366 1572 | 陵 366 1573 | 怨 366 1574 | 井 365 1575 | 崇 365 1576 | 拆 364 1577 | 铺 364 1578 | 硕 364 1579 | 蔡 363 1580 | 旦 363 1581 | 陕 362 1582 | 纠 362 1583 | 嗯 362 1584 | 横 361 1585 | 乏 361 1586 | 颜 361 1587 | 拼 360 1588 | 辽 360 1589 | 滨 359 1590 | 纵 358 1591 | 苑 357 1592 | 紫 357 1593 | 窗 356 1594 | 猪 355 1595 | 彭 355 1596 | 衰 355 1597 | 揭 355 1598 | 灭 354 1599 | 尾 353 1600 | 铜 352 1601 | 胎 351 1602 | 削 351 1603 | 燕 350 1604 | 械 350 1605 | 症 350 1606 | 撤 349 1607 | 仙 349 1608 | 伏 349 1609 | 鬼 347 1610 | 帅 347 1611 | 寿 346 1612 | 曼 346 1613 | 倾 346 1614 | 暗 345 1615 | 浓 345 1616 | 稿 345 1617 | 捷 345 1618 | 寒 343 1619 | 盗 342 1620 | 诊 342 1621 | 拒 341 1622 | 薛 341 1623 | 闹 340 1624 | 炒 340 1625 | 臣 339 1626 | 佩 339 1627 | 趣 338 1628 | 址 337 1629 | 摘 337 1630 | 挖 336 1631 | 抽 336 1632 | 锋 336 1633 | 侯 335 1634 | 艰 334 1635 | 勋 334 1636 | 疯 333 1637 | 俊 332 1638 | 毁 332 1639 | 厉 332 1640 | 栗 332 1641 | 曹 332 1642 | 欣 332 1643 | 咋 331 1644 | 厦 331 1645 | 牵 327 1646 | 魏 327 1647 | 忧 327 1648 | 哲 327 1649 | 慰 326 1650 | 渔 326 1651 | 亏 325 1652 | 葡 324 1653 | 俞 324 1654 | 咱 324 1655 | 晶 323 1656 | 翔 323 1657 | 裂 323 1658 | 枚 322 1659 | 刊 321 1660 | 撒 321 1661 | 滴 320 1662 | 卓 319 1663 | 泡 319 1664 | 诈 319 1665 | 疏 318 1666 | 谱 318 1667 | 萌 317 1668 | 玲 317 1669 | 详 316 1670 | 琳 316 1671 | 竹 316 1672 | 渊 315 1673 | 闲 315 1674 | 渴 314 1675 | 娜 314 1676 | 浩 313 1677 | 烦 313 1678 | 胁 312 1679 | 惯 311 1680 | 炼 311 1681 | 氧 311 1682 | 剩 310 1683 | 耗 309 1684 | 廉 309 1685 | 泥 309 1686 | 赋 308 1687 | 姑 307 1688 | 摇 307 1689 | 邮 307 1690 | 磨 306 1691 | 炮 306 1692 | 杆 306 1693 | 凭 306 1694 | 糖 306 1695 | 碍 305 1696 | 琪 305 1697 | 嘴 305 1698 | 扰 305 1699 | 扫 305 1700 | 爪 304 1701 | 穆 304 1702 | 吹 302 1703 | 耶 301 1704 | 赫 300 1705 | 敦 300 1706 | 逆 300 1707 | 芯 300 1708 | 膜 299 1709 | 寨 297 1710 | 拘 297 1711 | 孤 297 1712 | 妥 297 1713 | 脉 296 1714 | 侨 296 1715 | 碑 295 1716 | 迟 295 1717 | 欠 295 1718 | 朵 294 1719 | 贤 294 1720 | 旺 294 1721 | 芬 293 1722 | 渡 293 1723 | 殖 293 1724 | 柔 293 1725 | 拖 293 1726 | 舒 291 1727 | 踏 291 1728 | 冀 290 1729 | 役 289 1730 | 薄 289 1731 | 柱 289 1732 | 垃 289 1733 | 汗 288 1734 | 棒 288 1735 | 圾 288 1736 | 涯 287 1737 | 谐 286 1738 | 慎 286 1739 | 吨 285 1740 | 畅 285 1741 | 绘 284 1742 | 庸 284 1743 | 猛 284 1744 | 忍 283 1745 | 塑 283 1746 | 肌 283 1747 | 肩 282 1748 | 婷 282 1749 | 哭 282 1750 | 缅 282 1751 | 巧 282 1752 | 描 282 1753 | 煌 281 1754 | 噢 280 1755 | 邓 279 1756 | 浦 279 1757 | 辈 279 1758 | 颗 278 1759 | 盐 277 1760 | 姜 276 1761 | 碰 276 1762 | 彰 276 1763 | 浮 275 1764 | 栏 275 1765 | 毅 275 1766 | 玛 275 1767 | 腾 275 1768 | 盈 274 1769 | 醉 274 1770 | 芝 273 1771 | 霸 273 1772 | 亩 273 1773 | 扮 272 1774 | 悬 272 1775 | 桑 272 1776 | 尝 271 1777 | 孝 271 1778 | 乙 270 1779 | 炉 268 1780 | 汤 267 1781 | 喷 266 1782 | 仓 266 1783 | 氛 266 1784 | 赠 264 1785 | 糕 264 1786 | 虹 264 1787 | 炎 264 1788 | 缴 263 1789 | 寡 262 1790 | 惜 261 1791 | 漂 261 1792 | 俱 261 1793 | 吐 261 1794 | 湿 261 1795 | 碳 260 1796 | 桂 260 1797 | 睛 259 1798 | 桃 259 1799 | 瓶 259 1800 | 伸 258 1801 | 柳 258 1802 | 乳 258 1803 | 勃 258 1804 | 踪 258 1805 | 虫 257 1806 | 疫 257 1807 | 阁 257 1808 | 灰 257 1809 | 疼 257 1810 | 御 256 1811 | 齿 255 1812 | 萄 255 1813 | 绪 255 1814 | 羽 254 1815 | 皆 254 1816 | 菌 253 1817 | 尖 253 1818 | 墓 253 1819 | 寄 253 1820 | 秩 252 1821 | 凉 252 1822 | 抚 252 1823 | 仗 252 1824 | 罕 251 1825 | 岭 251 1826 | 漏 250 1827 | 悲 250 1828 | 忆 250 1829 | 潘 250 1830 | 坝 250 1831 | 斤 249 1832 | 桌 249 1833 | 舆 249 1834 | 辅 249 1835 | 尺 248 1836 | 骅 248 1837 | 殿 247 1838 | 乔 247 1839 | 冯 247 1840 | 韦 246 1841 | 译 246 1842 | 闪 245 1843 | 耀 244 1844 | 玻 244 1845 | 阐 244 1846 | 赤 243 1847 | 胶 242 1848 | 寝 241 1849 | 庙 241 1850 | 仔 241 1851 | 擦 241 1852 | 堆 239 1853 | 鞋 239 1854 | 淘 239 1855 | 锅 239 1856 | 戒 239 1857 | 辟 239 1858 | 忽 239 1859 | 篪 239 1860 | 聘 237 1861 | 凰 237 1862 | 薪 237 1863 | 莲 237 1864 | 裕 237 1865 | 填 237 1866 | 颁 237 1867 | 骂 236 1868 | 寸 236 1869 | 廊 236 1870 | 堵 236 1871 | 衔 236 1872 | 歧 235 1873 | 袖 235 1874 | 耕 235 1875 | 肤 235 1876 | 泄 234 1877 | 甜 234 1878 | 钻 234 1879 | 拨 233 1880 | 袁 232 1881 | 埔 232 1882 | 姿 231 1883 | 雕 231 1884 | 纹 231 1885 | 帜 231 1886 | 荐 231 1887 | 孟 230 1888 | 幻 230 1889 | 莉 230 1890 | 涂 230 1891 | 稀 230 1892 | 胖 229 1893 | 纲 229 1894 | 腹 229 1895 | 帕 229 1896 | 绑 228 1897 | 荒 228 1898 | 躺 228 1899 | 碎 228 1900 | 萱 228 1901 | 芳 228 1902 | 肖 227 1903 | 仰 225 1904 | 腰 225 1905 | 叔 225 1906 | 艳 224 1907 | 吁 224 1908 | 弯 224 1909 | 碧 222 1910 | 裤 222 1911 | 脏 222 1912 | 箭 221 1913 | 篮 221 1914 | 蒋 220 1915 | 抹 220 1916 | 妙 220 1917 | 仿 219 1918 | 搏 219 1919 | 插 219 1920 | 吊 219 1921 | 怒 219 1922 | 沃 219 1923 | 掘 218 1924 | 鹏 218 1925 | 页 218 1926 | 溢 218 1927 | 柏 218 1928 | 谨 217 1929 | 熏 217 1930 | 郁 217 1931 | 舟 216 1932 | 番 216 1933 | 冻 215 1934 | 赚 215 1935 | 挤 215 1936 | 欺 215 1937 | 壤 214 1938 | 傅 214 1939 | 仲 214 1940 | 宴 213 1941 | 弗 213 1942 | 鸣 212 1943 | 颇 212 1944 | 璃 212 1945 | 贾 211 1946 | 塌 211 1947 | 岳 211 1948 | 逸 211 1949 | 巢 211 1950 | 咯 210 1951 | 押 209 1952 | 蒂 208 1953 | 耐 208 1954 | 轴 208 1955 | 佐 207 1956 | 郡 207 1957 | 暑 206 1958 | 莞 206 1959 | 秉 206 1960 | 桩 206 1961 | 郊 206 1962 | 剥 205 1963 | 芒 204 1964 | 伪 204 1965 | 岐 203 1966 | 魂 203 1967 | 湘 203 1968 | 癌 202 1969 | 柬 202 1970 | 遥 202 1971 | 雾 202 1972 | 夕 201 1973 | 亭 201 1974 | 砸 200 1975 | 遂 200 1976 | 丘 200 1977 | 莎 199 1978 | 袋 199 1979 | 腔 199 1980 | 兹 197 1981 | 饼 197 1982 | 堪 197 1983 | 坑 197 1984 | 窃 197 1985 | 鸳 196 1986 | 媳 196 1987 | 瓮 196 1988 | 兽 195 1989 | 卧 195 1990 | 膝 194 1991 | 滩 194 1992 | 昂 194 1993 | 爬 194 1994 | 呗 194 1995 | 粗 194 1996 | 辩 193 1997 | 坠 193 1998 | 讼 192 1999 | 惩 192 2000 | 酷 191 2001 | 鹤 191 2002 | 誓 191 2003 | 颖 191 2004 | 丢 191 2005 | 胆 191 2006 | 庞 191 2007 | 愈 190 2008 | 冈 189 2009 | 屈 189 2010 | 鸯 189 2011 | 婴 189 2012 | 逛 188 2013 | 炳 188 2014 | 斌 188 2015 | 懈 188 2016 | 尘 188 2017 | 赌 188 2018 | 翼 187 2019 | 烂 187 2020 | 帽 187 2021 | 姚 187 2022 | 漠 187 2023 | 蓬 187 2024 | 锡 186 2025 | 咬 186 2026 | 攀 186 2027 | 戈 186 2028 | 挚 185 2029 | 诞 185 2030 | 尸 185 2031 | 翰 185 2032 | 傻 185 2033 | 抛 185 2034 | 棚 185 2035 | 厕 184 2036 | 崔 184 2037 | 衷 183 2038 | 厘 183 2039 | 茂 183 2040 | 恰 183 2041 | 飘 183 2042 | 勾 183 2043 | 泊 181 2044 | 劣 181 2045 | 匹 181 2046 | 芽 181 2047 | 艇 181 2048 | 哀 181 2049 | 朴 180 2050 | 劫 180 2051 | 惨 180 2052 | 炭 180 2053 | 肿 180 2054 | 绸 179 2055 | 荡 179 2056 | 逝 179 2057 | 稍 178 2058 | 稻 177 2059 | 犹 177 2060 | 塘 177 2061 | 粒 177 2062 | 侦 177 2063 | 粤 176 2064 | 鼻 176 2065 | 淫 176 2066 | 溶 176 2067 | 铠 176 2068 | 函 176 2069 | 悦 176 2070 | 枝 176 2071 | 鹿 175 2072 | 诱 175 2073 | 钦 175 2074 | 割 175 2075 | 遣 175 2076 | 乒 175 2077 | 埋 174 2078 | 尿 174 2079 | 慕 174 2080 | 弥 173 2081 | 逻 173 2082 | 潭 173 2083 | 锐 172 2084 | 嫁 172 2085 | 鸿 172 2086 | 贿 172 2087 | 耿 172 2088 | 熙 172 2089 | 悠 171 2090 | 盆 171 2091 | 霍 171 2092 | 窄 171 2093 | 眉 171 2094 | 逢 171 2095 | 喀 170 2096 | 溜 169 2097 | 贩 169 2098 | 饱 169 2099 | 狼 168 2100 | 垄 168 2101 | 扭 168 2102 | 哇 168 2103 | 逊 168 2104 | 咏 168 2105 | 灌 167 2106 | 斜 167 2107 | 抄 167 2108 | 串 167 2109 | 驰 166 2110 | 聪 166 2111 | 丑 166 2112 | 蕾 166 2113 | 泪 165 2114 | 咸 164 2115 | 兑 164 2116 | 晰 164 2117 | 挡 163 2118 | 蛇 162 2119 | 蜜 162 2120 | 淀 162 2121 | 殴 162 2122 | 滋 162 2123 | 柯 160 2124 | 锻 160 2125 | 奈 160 2126 | 旱 160 2127 | 窝 160 2128 | 盼 159 2129 | 傲 159 2130 | 狠 159 2131 | 腊 159 2132 | 崖 159 2133 | 吾 159 2134 | 奸 159 2135 | 笼 158 2136 | 祭 158 2137 | 浴 158 2138 | 删 158 2139 | 艘 157 2140 | 剪 157 2141 | 瘦 157 2142 | 槛 157 2143 | 卜 157 2144 | 槽 157 2145 | 壳 156 2146 | 妮 156 2147 | 吓 156 2148 | 玮 156 2149 | 闯 156 2150 | 夯 156 2151 | 鑫 155 2152 | 劵 155 2153 | 姻 154 2154 | 魅 154 2155 | 哎 154 2156 | 悟 154 2157 | 叹 154 2158 | 猜 154 2159 | 帆 153 2160 | 浅 153 2161 | 肚 152 2162 | 罩 152 2163 | 卿 152 2164 | 於 152 2165 | 牲 151 2166 | 棉 151 2167 | 旭 151 2168 | 墅 150 2169 | 酋 150 2170 | 寓 150 2171 | 厌 149 2172 | 鼠 149 2173 | 垂 149 2174 | 酬 148 2175 | 缝 148 2176 | 垫 148 2177 | 贪 148 2178 | 叠 147 2179 | 汰 147 2180 | 催 147 2181 | 栋 146 2182 | 柜 146 2183 | 丧 146 2184 | 棋 146 2185 | 俺 146 2186 | 昭 145 2187 | 吵 145 2188 | 砍 145 2189 | 狮 145 2190 | 峻 144 2191 | 蓄 144 2192 | 抬 144 2193 | 畜 144 2194 | 幽 143 2195 | 猴 143 2196 | 辕 143 2197 | 踢 143 2198 | 轰 142 2199 | 娇 142 2200 | 侍 142 2201 | 摊 142 2202 | 贼 142 2203 | 蹈 142 2204 | 萧 141 2205 | 钓 141 2206 | 碗 141 2207 | 奠 141 2208 | 匈 141 2209 | 赐 141 2210 | 挪 140 2211 | 蛮 140 2212 | 钧 140 2213 | 苍 140 2214 | 滞 140 2215 | 扑 140 2216 | 姨 139 2217 | 昏 139 2218 | 晴 139 2219 | 颈 139 2220 | 廖 139 2221 | 绵 139 2222 | 轿 138 2223 | 抑 138 2224 | 脂 138 2225 | 祸 138 2226 | 兆 138 2227 | 坊 138 2228 | 呆 138 2229 | 蒸 137 2230 | 铭 137 2231 | 肠 137 2232 | 恨 137 2233 | 殷 136 2234 | 蜂 136 2235 | 眷 136 2236 | 怜 136 2237 | 妆 136 2238 | 坎 136 2239 | 臂 136 2240 | 菊 136 2241 | 谭 136 2242 | 蝶 136 2243 | 拦 136 2244 | 钉 135 2245 | 韵 134 2246 | 宠 134 2247 | 怡 134 2248 | 眠 134 2249 | 狱 134 2250 | 罢 133 2251 | 垒 133 2252 | 雌 132 2253 | 枢 132 2254 | 辐 132 2255 | 叵 132 2256 | 舱 132 2257 | 祉 132 2258 | 竭 132 2259 | 掩 132 2260 | 嘱 131 2261 | 蔬 131 2262 | 悄 130 2263 | 淑 130 2264 | 浆 130 2265 | 纤 129 2266 | 甸 129 2267 | 幺 129 2268 | 歉 129 2269 | 诏 128 2270 | 勉 128 2271 | 掀 128 2272 | 鄂 128 2273 | 馈 128 2274 | 臭 127 2275 | 萍 127 2276 | 雍 127 2277 | 隶 127 2278 | 辣 127 2279 | 揽 127 2280 | 嫩 126 2281 | 隧 126 2282 | 晕 126 2283 | 牺 125 2284 | 彦 125 2285 | 肝 125 2286 | 泼 125 2287 | 屯 125 2288 | 祠 125 2289 | 戚 124 2290 | 盒 124 2291 | 逗 124 2292 | 翠 124 2293 | 鼎 124 2294 | 瞬 124 2295 | 崩 123 2296 | 儒 123 2297 | 仑 123 2298 | 禽 123 2299 | 靖 123 2300 | 铸 123 2301 | 厨 122 2302 | 玄 122 2303 | 靴 122 2304 | 囊 122 2305 | 棍 122 2306 | 虾 122 2307 | 稽 121 2308 | 矩 121 2309 | 肇 121 2310 | 卒 121 2311 | 撰 121 2312 | 杠 121 2313 | 蠢 121 2314 | 垮 120 2315 | 梨 120 2316 | 谣 120 2317 | 爵 120 2318 | 挝 120 2319 | 邱 120 2320 | 仇 120 2321 | 鸭 120 2322 | 擅 119 2323 | 葬 119 2324 | 坤 119 2325 | 屁 119 2326 | 悼 119 2327 | 猎 118 2328 | 烤 118 2329 | 冕 118 2330 | 焕 118 2331 | 焉 118 2332 | 脖 118 2333 | 僧 118 2334 | 屡 118 2335 | 擎 117 2336 | 叉 117 2337 | 樊 117 2338 | 乾 117 2339 | 膏 117 2340 | 帖 117 2341 | 肾 117 2342 | 辱 116 2343 | 砺 116 2344 | 咖 116 2345 | 拾 115 2346 | 昔 115 2347 | 蕴 114 2348 | 脆 114 2349 | 屠 114 2350 | 裸 114 2351 | 舌 113 2352 | 瞄 113 2353 | 烯 113 2354 | 吞 113 2355 | 霉 113 2356 | 顽 113 2357 | 匠 113 2358 | 唤 113 2359 | 灿 113 2360 | 奴 113 2361 | 澡 113 2362 | 胃 112 2363 | 瑶 112 2364 | 夸 112 2365 | 敲 112 2366 | 禅 112 2367 | 痕 112 2368 | 谎 112 2369 | 贞 112 2370 | 瞩 112 2371 | 坪 111 2372 | 滥 111 2373 | 斑 111 2374 | 砥 111 2375 | 憾 111 2376 | 喂 111 2377 | 赁 110 2378 | 懒 110 2379 | 伞 110 2380 | 雯 110 2381 | 纱 110 2382 | 兜 110 2383 | 斩 110 2384 | 玫 109 2385 | 寅 109 2386 | 扇 109 2387 | 兔 109 2388 | 疲 109 2389 | 瑰 109 2390 | 厢 109 2391 | 哟 109 2392 | 澜 108 2393 | 逮 108 2394 | 雇 108 2395 | 杏 108 2396 | 嫂 108 2397 | 僵 108 2398 | 哗 108 2399 | 沫 107 2400 | 芸 107 2401 | 衍 107 2402 | 嘿 107 2403 | 勘 106 2404 | 凸 106 2405 | 尹 106 2406 | 绳 106 2407 | 鹰 106 2408 | 惑 106 2409 | 闷 106 2410 | 惧 106 2411 | 磋 106 2412 | 奎 106 2413 | 妃 106 2414 | 辰 105 2415 | 渝 105 2416 | 遏 105 2417 | 僚 105 2418 | 盲 105 2419 | 夷 105 2420 | 狭 105 2421 | 澎 105 2422 | 丙 104 2423 | 株 104 2424 | 瑟 104 2425 | 裹 104 2426 | 呱 104 2427 | 恭 104 2428 | 谅 104 2429 | 溃 104 2430 | 爹 103 2431 | 钩 103 2432 | 豫 103 2433 | 娥 103 2434 | 酿 103 2435 | 磊 103 2436 | 骚 103 2437 | 愁 103 2438 | 谴 103 2439 | 丛 103 2440 | 蓉 103 2441 | 螺 103 2442 | 藤 103 2443 | 捍 103 2444 | 巷 102 2445 | 弊 102 2446 | 畏 102 2447 | 湃 102 2448 | 悔 102 2449 | 趟 102 2450 | 躲 102 2451 | 荆 101 2452 | 瀑 101 2453 | 萝 101 2454 | 颠 101 2455 | 俑 100 2456 | 砂 100 2457 | 椅 100 2458 | 遮 100 2459 | 愧 100 2460 | 梳 99 2461 | 瞻 99 2462 | 侣 99 2463 | 霜 99 2464 | 挣 99 2465 | 喻 98 2466 | 驴 98 2467 | 邵 98 2468 | 豹 98 2469 | 柴 97 2470 | 乓 97 2471 | 捧 97 2472 | 卵 97 2473 | 歇 97 2474 | 澄 97 2475 | 捞 97 2476 | 沧 97 2477 | 芦 97 2478 | 巾 97 2479 | 饿 96 2480 | 逾 96 2481 | 煮 96 2482 | 茅 96 2483 | 搅 96 2484 | 斥 96 2485 | 禄 95 2486 | 绣 95 2487 | 浸 95 2488 | 啡 95 2489 | 馨 95 2490 | 犬 95 2491 | 妖 95 2492 | 淋 95 2493 | 瑜 95 2494 | 胀 94 2495 | 隋 94 2496 | 盯 94 2497 | 肢 94 2498 | 洒 94 2499 | 筒 94 2500 | 矣 94 2501 | 襄 94 2502 | 辨 94 2503 | 渣 94 2504 | 嘎 93 2505 | 铃 93 2506 | 扔 93 2507 | 捉 93 2508 | 楷 93 2509 | 衫 92 2510 | 奢 92 2511 | 薰 92 2512 | 翅 92 2513 | 瑕 92 2514 | 叛 92 2515 | 寂 91 2516 | 龟 91 2517 | 肺 91 2518 | 饶 91 2519 | 杉 91 2520 | 宵 91 2521 | 桶 90 2522 | 饥 90 2523 | 亨 90 2524 | 莹 90 2525 | 踝 90 2526 | 宰 90 2527 | 雁 90 2528 | 瞎 90 2529 | 陌 90 2530 | 浑 90 2531 | 硫 90 2532 | 闽 89 2533 | 哒 89 2534 | 椒 89 2535 | 笨 89 2536 | 捡 89 2537 | 骄 89 2538 | 饲 89 2539 | 陨 88 2540 | 喧 88 2541 | 堰 88 2542 | 锂 88 2543 | 渗 88 2544 | 虐 88 2545 | 硅 88 2546 | 阮 87 2547 | 糊 87 2548 | 脾 87 2549 | 舅 87 2550 | 醇 87 2551 | 膀 87 2552 | 踩 87 2553 | 愤 87 2554 | 蚊 86 2555 | 栽 86 2556 | 粘 86 2557 | 锤 86 2558 | 汹 86 2559 | 槐 86 2560 | 宙 86 2561 | 缔 86 2562 | 忌 86 2563 | 谦 86 2564 | 铝 86 2565 | 蜀 85 2566 | 烫 85 2567 | 佣 85 2568 | 娶 85 2569 | 惟 85 2570 | 拌 85 2571 | 穴 85 2572 | 挽 84 2573 | 鹅 84 2574 | 邪 84 2575 | 溺 84 2576 | 麟 84 2577 | 崛 84 2578 | 甫 84 2579 | 闸 84 2580 | 趁 84 2581 | 堤 84 2582 | 腺 84 2583 | 妍 83 2584 | 莓 83 2585 | 恼 83 2586 | 瘾 83 2587 | 畔 82 2588 | 磷 82 2589 | 雀 82 2590 | 瘤 82 2591 | 帐 82 2592 | 汝 82 2593 | 驳 81 2594 | 氢 81 2595 | 姬 81 2596 | 蚀 81 2597 | 捆 81 2598 | 郝 81 2599 | 肆 80 2600 | 祈 80 2601 | 筋 80 2602 | 贬 80 2603 | 贱 80 2604 | 鲍 80 2605 | 楠 80 2606 | 汛 79 2607 | 腕 79 2608 | 漆 79 2609 | 屿 79 2610 | 啤 79 2611 | 邑 79 2612 | 钥 78 2613 | 孵 78 2614 | 珊 78 2615 | 弦 78 2616 | 碌 78 2617 | 睦 78 2618 | 哑 77 2619 | 蔚 77 2620 | 涝 77 2621 | 卸 77 2622 | 氮 77 2623 | 燥 76 2624 | 倩 76 2625 | 桐 76 2626 | 浏 76 2627 | 脊 76 2628 | 闫 76 2629 | 刮 76 2630 | 骤 76 2631 | 汁 76 2632 | 舶 75 2633 | 葱 75 2634 | 帷 75 2635 | 熬 75 2636 | 霖 75 2637 | 赣 75 2638 | 诵 74 2639 | 慌 74 2640 | 傍 74 2641 | 刹 74 2642 | 倦 74 2643 | 烨 74 2644 | 俭 74 2645 | 沂 74 2646 | 挫 73 2647 | 缠 73 2648 | 绮 73 2649 | 罐 72 2650 | 蟹 72 2651 | 薇 72 2652 | 渤 72 2653 | 庐 71 2654 | 栖 71 2655 | 绎 71 2656 | 丸 71 2657 | 邹 71 2658 | 浇 71 2659 | 羡 71 2660 | 尉 71 2661 | 陀 71 2662 | 魄 71 2663 | 绒 70 2664 | 愚 70 2665 | 厄 70 2666 | 匙 70 2667 | 吏 70 2668 | 衬 70 2669 | 呐 70 2670 | 葆 70 2671 | 铅 70 2672 | 挨 70 2673 | 壶 70 2674 | 哨 69 2675 | 腻 69 2676 | 晃 69 2677 | 阜 69 2678 | 磅 69 2679 | 唇 69 2680 | 唧 69 2681 | 钮 69 2682 | 诠 69 2683 | 蛙 69 2684 | 矢 69 2685 | 慨 69 2686 | 锈 68 2687 | 撕 68 2688 | 弓 68 2689 | 踊 68 2690 | 酱 68 2691 | 昕 68 2692 | 酵 68 2693 | 飙 68 2694 | 蔽 68 2695 | 冶 67 2696 | 枯 67 2697 | 窑 67 2698 | 菇 67 2699 | 顷 67 2700 | 笋 67 2701 | 焚 67 2702 | 麓 67 2703 | 茫 67 2704 | 矮 67 2705 | 蹲 67 2706 | 簧 67 2707 | 睹 66 2708 | 怂 66 2709 | 冉 66 2710 | 碱 66 2711 | 拱 66 2712 | 橘 66 2713 | 淹 66 2714 | 暨 65 2715 | 痴 65 2716 | 猥 65 2717 | 韧 65 2718 | 桓 65 2719 | 酝 65 2720 | 葵 65 2721 | 寇 65 2722 | 疵 65 2723 | 丫 65 2724 | 蔓 65 2725 | 乞 64 2726 | 趴 64 2727 | 髓 64 2728 | 跪 64 2729 | 匪 64 2730 | 崭 64 2731 | 粹 64 2732 | 钾 64 2733 | 羞 64 2734 | 斋 64 2735 | 祁 64 2736 | 尴 63 2737 | 尬 63 2738 | 迄 63 2739 | 缸 63 2740 | 裔 63 2741 | 斐 63 2742 | 孜 63 2743 | 掏 63 2744 | 泌 63 2745 | 匿 63 2746 | 躁 63 2747 | 纬 63 2748 | 璨 62 2749 | 膊 62 2750 | 氓 62 2751 | 洽 62 2752 | 丞 62 2753 | 焰 62 2754 | 赃 62 2755 | 竖 62 2756 | 彬 62 2757 | 茄 61 2758 | 隙 61 2759 | 阀 61 2760 | 咒 61 2761 | 糟 61 2762 | 啸 61 2763 | 荧 61 2764 | 溯 60 2765 | 掷 60 2766 | 仕 60 2767 | 炯 60 2768 | 颂 60 2769 | 黔 60 2770 | 揉 60 2771 | 窟 60 2772 | 伽 60 2773 | 氯 60 2774 | 卑 60 2775 | 靓 60 2776 | 禹 60 2777 | 橙 60 2778 | 侈 59 2779 | 湛 59 2780 | 凑 59 2781 | 魁 59 2782 | 摧 59 2783 | 禾 59 2784 | 棕 59 2785 | 胳 59 2786 | 璇 59 2787 | 裴 59 2788 | 沸 59 2789 | 媚 59 2790 | 锣 58 2791 | 闺 58 2792 | 晖 58 2793 | 鳌 58 2794 | 耻 58 2795 | 蒲 58 2796 | 橡 58 2797 | 岂 58 2798 | 棵 58 2799 | 琐 58 2800 | 彝 58 2801 | 湄 57 2802 | 涅 57 2803 | 琦 57 2804 | 啃 57 2805 | 蝠 57 2806 | 牟 57 2807 | 倪 57 2808 | 滤 57 2809 | 卉 57 2810 | 詹 57 2811 | 茹 57 2812 | 恿 57 2813 | 卦 56 2814 | 睐 56 2815 | 宛 56 2816 | 仆 56 2817 | 敞 56 2818 | 枣 56 2819 | 淄 56 2820 | 沦 56 2821 | 婉 56 2822 | 瞒 56 2823 | 葫 55 2824 | 噪 55 2825 | 俯 55 2826 | 俘 55 2827 | 瑄 55 2828 | 刃 55 2829 | 翘 55 2830 | 恪 55 2831 | 墩 55 2832 | 榆 55 2833 | 垦 55 2834 | 庵 55 2835 | 蚕 55 2836 | 巅 54 2837 | 蝙 54 2838 | 屌 54 2839 | 嵌 54 2840 | 榴 54 2841 | 咪 54 2842 | 姣 54 2843 | 妞 54 2844 | 娅 54 2845 | 瑾 53 2846 | 坞 53 2847 | 缆 53 2848 | 龚 53 2849 | 焊 53 2850 | 谍 53 2851 | 薯 53 2852 | 哼 52 2853 | 鞭 52 2854 | 喉 52 2855 | 盔 52 2856 | 暇 52 2857 | 畴 52 2858 | 棱 52 2859 | 鸦 52 2860 | 淇 52 2861 | 睿 52 2862 | 哄 52 2863 | 慑 52 2864 | 驿 51 2865 | 扛 51 2866 | 勿 51 2867 | 芭 51 2868 | 沛 51 2869 | 韶 51 2870 | 捏 51 2871 | 钞 51 2872 | 佑 51 2873 | 寞 51 2874 | 枫 50 2875 | 侄 50 2876 | 骆 50 2877 | 禧 50 2878 | 昊 50 2879 | 蛛 50 2880 | 穹 50 2881 | 菠 50 2882 | 瘫 50 2883 | 鹃 50 2884 | 佬 50 2885 | 叮 50 2886 | 嚣 49 2887 | 荫 49 2888 | 幢 49 2889 | 巍 49 2890 | 剖 49 2891 | 劈 49 2892 | 邢 49 2893 | 柄 49 2894 | 牡 49 2895 | 坷 49 2896 | 彤 49 2897 | 皓 49 2898 | 礁 49 2899 | 侃 49 2900 | 皂 49 2901 | 後 48 2902 | 掠 48 2903 | 匆 48 2904 | 妨 48 2905 | 潇 48 2906 | 梗 48 2907 | 虞 48 2908 | 剿 48 2909 | 俏 48 2910 | 肘 48 2911 | 辜 48 2912 | 鸽 48 2913 | 喽 48 2914 | 荔 48 2915 | 菩 48 2916 | 褐 47 2917 | 枕 47 2918 | 褶 47 2919 | 妄 47 2920 | 擒 47 2921 | 碾 47 2922 | 杖 47 2923 | 惕 47 2924 | 铲 47 2925 | 煎 47 2926 | 尧 47 2927 | 琨 47 2928 | 氨 47 2929 | 萎 47 2930 | 泣 47 2931 | 徙 47 2932 | 敷 47 2933 | 庚 47 2934 | 绚 47 2935 | 膨 47 2936 | 擂 46 2937 | 悍 46 2938 | 巫 46 2939 | 驼 46 2940 | 谜 46 2941 | 靡 46 2942 | 搂 46 2943 | 骏 46 2944 | 姊 46 2945 | 咳 46 2946 | 坟 46 2947 | 蘑 46 2948 | 簿 46 2949 | 粽 46 2950 | 缉 46 2951 | 跤 46 2952 | 藻 46 2953 | 亵 46 2954 | 唉 46 2955 | 鲅 46 2956 | 撼 46 2957 | 彪 45 2958 | 鲸 45 2959 | 圩 45 2960 | 濒 45 2961 | 捣 45 2962 | 汶 45 2963 | 蜘 45 2964 | 蝴 45 2965 | 槿 45 2966 | 鳄 45 2967 | 漳 45 2968 | 坍 45 2969 | 蹭 45 2970 | 梓 45 2971 | 朕 45 2972 | 嘲 45 2973 | 扳 45 2974 | 藩 45 2975 | 僻 44 2976 | 钙 44 2977 | 筛 44 2978 | 暮 44 2979 | 矫 44 2980 | 椎 44 2981 | 昼 44 2982 | 窦 44 2983 | 弧 44 2984 | 跻 44 2985 | 亥 44 2986 | 娄 44 2987 | 屎 44 2988 | 朔 44 2989 | 抒 44 2990 | 洱 43 2991 | 霾 43 2992 | 沁 43 2993 | 衅 43 2994 | 汾 43 2995 | 赂 43 2996 | 柿 43 2997 | 肪 43 2998 | 秧 43 2999 | 梭 43 3000 | 蝇 43 3001 | 竺 43 3002 | 蜡 43 3003 | 霆 43 3004 | 蚁 43 3005 | 茵 43 3006 | 猾 43 3007 | 帘 43 3008 | 袍 43 3009 | 峨 42 3010 | 埠 42 3011 | 祀 42 3012 | 沾 42 3013 | 戎 42 3014 | 倚 42 3015 | 洼 42 3016 | 抖 42 3017 | 矶 42 3018 | 硝 42 3019 | 砌 42 3020 | 嘻 42 3021 | 咽 42 3022 | 拢 42 3023 | 咚 42 3024 | 蝉 41 3025 | 喔 41 3026 | 迭 41 3027 | 鳞 41 3028 | 朽 41 3029 | 谌 41 3030 | 聆 41 3031 | 篷 41 3032 | 毯 41 3033 | 熔 41 3034 | 碟 41 3035 | 礴 41 3036 | 懿 41 3037 | 弈 41 3038 | 皖 41 3039 | 栈 41 3040 | 芙 40 3041 | 琢 40 3042 | 汲 40 3043 | 凿 40 3044 | 姥 40 3045 | 犀 40 3046 | 厥 40 3047 | 皱 40 3048 | 袜 40 3049 | 扁 40 3050 | 绽 40 3051 | 鞠 40 3052 | 粥 40 3053 | 祷 40 3054 | 甄 40 3055 | 陛 40 3056 | 雹 39 3057 | 渭 39 3058 | 笃 39 3059 | 淳 39 3060 | 瞧 39 3061 | 泻 39 3062 | 淤 39 3063 | 攒 39 3064 | 竣 39 3065 | 泵 39 3066 | 鞍 39 3067 | 镶 39 3068 | 蹄 39 3069 | 筷 39 3070 | 炬 39 3071 | 敕 39 3072 | 岔 38 3073 | 曙 38 3074 | 狡 38 3075 | 樱 38 3076 | 窜 38 3077 | 栓 38 3078 | 哉 38 3079 | 茜 38 3080 | 咕 38 3081 | 嘞 38 3082 | 潢 38 3083 | 醛 38 3084 | 吟 38 3085 | 芜 38 3086 | 溉 37 3087 | 呦 37 3088 | 庶 37 3089 | 霄 37 3090 | 颊 37 3091 | 缚 37 3092 | 泸 37 3093 | 孚 37 3094 | 臀 37 3095 | 竿 37 3096 | 苛 37 3097 | 棠 37 3098 | 葩 37 3099 | 峪 37 3100 | 奕 37 3101 | 阙 37 3102 | 嗣 37 3103 | 捅 37 3104 | 汕 37 3105 | 涡 37 3106 | 昧 37 3107 | 蕉 36 3108 | 呃 36 3109 | 穗 36 3110 | 醋 36 3111 | 肋 36 3112 | 旷 36 3113 | 歹 36 3114 | 斧 36 3115 | 粪 36 3116 | 苯 36 3117 | 婿 36 3118 | 灼 36 3119 | 虏 36 3120 | 嫖 36 3121 | 荀 36 3122 | 毋 36 3123 | 喇 36 3124 | 雏 35 3125 | 灶 35 3126 | 崎 35 3127 | 贮 35 3128 | 侮 35 3129 | 躬 35 3130 | 毙 35 3131 | 兮 35 3132 | 黛 35 3133 | 阎 35 3134 | 鳕 35 3135 | 凹 35 3136 | 觅 35 3137 | 歼 35 3138 | 鄙 35 3139 | 蹦 35 3140 | 陇 35 3141 | 撸 35 3142 | 犊 35 3143 | 菱 34 3144 | 豁 34 3145 | 秆 34 3146 | 烷 34 3147 | 磕 34 3148 | 锯 34 3149 | 陂 34 3150 | 芹 34 3151 | 掐 34 3152 | 徘 34 3153 | 濠 34 3154 | 陋 34 3155 | 嗓 34 3156 | 辄 34 3157 | 唔 34 3158 | 戳 34 3159 | 徊 34 3160 | 囚 34 3161 | 潼 34 3162 | 锰 34 3163 | 峭 34 3164 | 酶 34 3165 | 萃 34 3166 | 疡 34 3167 | 笛 34 3168 | 庇 34 3169 | 铬 34 3170 | 祯 34 3171 | 亟 33 3172 | 熠 33 3173 | 匡 33 3174 | 敛 33 3175 | 榕 33 3176 | 桔 33 3177 | 聂 33 3178 | 蕊 33 3179 | 榄 33 3180 | 滕 33 3181 | 芋 33 3182 | 绅 33 3183 | 呕 33 3184 | 匾 33 3185 | 聋 33 3186 | 泾 33 3187 | 挠 33 3188 | 狄 33 3189 | 戮 33 3190 | 襟 33 3191 | 恳 33 3192 | 绞 33 3193 | 邯 33 3194 | 痞 33 3195 | 绥 32 3196 | 橄 32 3197 | 吼 32 3198 | 闵 32 3199 | 碘 32 3200 | 凳 32 3201 | 澈 32 3202 | 剔 32 3203 | 璐 32 3204 | 痘 32 3205 | 璀 32 3206 | 猝 32 3207 | 熹 32 3208 | 毗 32 3209 | 辗 32 3210 | 炖 32 3211 | 坯 32 3212 | 蚌 32 3213 | 茎 32 3214 | 臻 32 3215 | 滇 32 3216 | 樟 32 3217 | 烹 32 3218 | 遐 32 3219 | 窥 32 3220 | 蒜 32 3221 | 酮 32 3222 | 谏 32 3223 | 纂 32 3224 | 颅 32 3225 | 秸 31 3226 | 咧 31 3227 | 窘 31 3228 | 螃 31 3229 | 哩 31 3230 | 幌 31 3231 | 苟 31 3232 | 讽 31 3233 | 晏 31 3234 | 壬 31 3235 | 渎 31 3236 | 瓣 31 3237 | 浊 31 3238 | 峦 31 3239 | 膛 31 3240 | 滔 31 3241 | 褒 31 3242 | 琉 31 3243 | 呜 31 3244 | 眺 31 3245 | 氟 31 3246 | 渲 31 3247 | 讳 31 3248 | 戌 31 3249 | 隅 31 3250 | 垣 30 3251 | 篡 30 3252 | 柠 30 3253 | 皋 30 3254 | 冥 30 3255 | 芮 30 3256 | 羚 30 3257 | 嘟 30 3258 | 秽 30 3259 | 钠 30 3260 | 躯 30 3261 | 鲤 30 3262 | 岚 30 3263 | 阱 30 3264 | 撅 29 3265 | 飓 29 3266 | 札 29 3267 | 蔗 29 3268 | 嗨 29 3269 | 痒 29 3270 | 抉 29 3271 | 绊 29 3272 | 瀚 29 3273 | 酯 29 3274 | 搓 29 3275 | 涤 29 3276 | 酉 29 3277 | 陡 29 3278 | 籽 29 3279 | 隽 29 3280 | 粟 29 3281 | 檐 29 3282 | 峙 29 3283 | 蕃 29 3284 | 壹 29 3285 | 耸 29 3286 | 揣 29 3287 | 伶 29 3288 | 檬 29 3289 | 舵 29 3290 | 耽 29 3291 | 馒 28 3292 | 妾 28 3293 | 汀 28 3294 | 榨 28 3295 | 佟 28 3296 | 拯 28 3297 | 噶 28 3298 | 璧 28 3299 | 萤 28 3300 | 赎 28 3301 | 颐 28 3302 | 嫦 28 3303 | 豚 28 3304 | 莺 28 3305 | 扒 28 3306 | 讶 28 3307 | 谥 28 3308 | 烽 28 3309 | 挟 28 3310 | 饺 28 3311 | 恍 28 3312 | 拽 28 3313 | 疤 27 3314 | 麒 27 3315 | 狸 27 3316 | 晟 27 3317 | 骸 27 3318 | 脐 27 3319 | 糙 27 3320 | 舔 27 3321 | 耘 27 3322 | 玺 27 3323 | 诀 27 3324 | 猩 27 3325 | 梧 27 3326 | 谕 27 3327 | 圭 27 3328 | 羲 27 3329 | 铀 27 3330 | 蔑 27 3331 | 捂 27 3332 | 妒 27 3333 | 怠 27 3334 | 腋 27 3335 | 琅 27 3336 | 窖 27 3337 | 柚 27 3338 | 郸 27 3339 | 妓 27 3340 | 馍 27 3341 | 绢 27 3342 | 慷 27 3343 | 炙 27 3344 | 恤 27 3345 | 凄 27 3346 | 迸 27 3347 | 邸 26 3348 | 溅 26 3349 | 屹 26 3350 | 椭 26 3351 | 簇 26 3352 | 恺 26 3353 | 絮 26 3354 | 钊 26 3355 | 鳖 26 3356 | 砚 26 3357 | 舜 26 3358 | 禺 26 3359 | 沐 26 3360 | 蜿 26 3361 | 诶 26 3362 | 缕 26 3363 | 璋 26 3364 | 趾 26 3365 | 筝 26 3366 | 翟 26 3367 | 珀 26 3368 | 霏 26 3369 | 靶 26 3370 | 涩 26 3371 | 岱 26 3372 | 睁 26 3373 | 睫 26 3374 | 诡 26 3375 | 琛 26 3376 | 曦 26 3377 | 盎 25 3378 | 莆 25 3379 | 珂 25 3380 | 绰 25 3381 | 嫉 25 3382 | 罄 25 3383 | 钰 25 3384 | 稚 25 3385 | 羁 25 3386 | 濑 25 3387 | 伢 25 3388 | 煞 25 3389 | 茬 25 3390 | 畸 25 3391 | 撇 25 3392 | 卯 25 3393 | 饵 25 3394 | 伺 25 3395 | 梢 25 3396 | 蜒 25 3397 | 冢 25 3398 | 踞 25 3399 | 诬 25 3400 | 亢 25 3401 | 肴 24 3402 | 瞅 24 3403 | 漓 24 3404 | 迦 24 3405 | 炅 24 3406 | 炜 24 3407 | 暄 24 3408 | 诛 24 3409 | 峥 24 3410 | 羌 24 3411 | 疮 24 3412 | 喘 24 3413 | 涧 24 3414 | 熄 24 3415 | 蜕 24 3416 | 晦 24 3417 | 悖 24 3418 | 枭 24 3419 | 卤 24 3420 | 梵 24 3421 | 鹭 24 3422 | 宦 24 3423 | 颍 24 3424 | 坂 24 3425 | 韬 24 3426 | 沼 24 3427 | 幂 24 3428 | 缀 24 3429 | 娼 23 3430 | 殉 23 3431 | 翡 23 3432 | 颓 23 3433 | 跛 23 3434 | 蛟 23 3435 | 戊 23 3436 | 铧 23 3437 | 胺 23 3438 | 廓 23 3439 | 锥 23 3440 | 灸 23 3441 | 帧 23 3442 | 濮 23 3443 | 泗 23 3444 | 忱 23 3445 | 拧 23 3446 | 驭 23 3447 | 釉 23 3448 | 喆 23 3449 | 乍 23 3450 | 棺 23 3451 | 撬 23 3452 | 胰 23 3453 | 荟 23 3454 | 倘 23 3455 | 胚 22 3456 | 黏 22 3457 | 咐 22 3458 | 镑 22 3459 | 娴 22 3460 | 剃 22 3461 | 瑛 22 3462 | 飚 22 3463 | 酥 22 3464 | 檀 22 3465 | 寥 22 3466 | 棘 22 3467 | 曜 22 3468 | 斛 22 3469 | 揍 22 3470 | 烁 22 3471 | 瓯 22 3472 | 吖 22 3473 | 莽 22 3474 | 糯 22 3475 | 暧 22 3476 | 侬 22 3477 | 涓 22 3478 | 匮 22 3479 | 盏 22 3480 | 痹 22 3481 | 窒 22 3482 | 勺 22 3483 | 拇 22 3484 | 斡 22 3485 | 佼 22 3486 | 沒 22 3487 | 揪 22 3488 | 秃 22 3489 | 瞰 22 3490 | 祺 21 3491 | 榻 21 3492 | 猖 21 3493 | 剌 21 3494 | 椰 21 3495 | 沮 21 3496 | 蹬 21 3497 | 紊 21 3498 | 咎 21 3499 | 搁 21 3500 | 羹 21 3501 | 诫 21 3502 | 诅 21 3503 | 叭 21 3504 | 龈 21 3505 | 拣 21 3506 | 谒 21 3507 | 沽 21 3508 | 堕 21 3509 | 惚 21 3510 | 痪 21 3511 | 颤 21 3512 | 刁 21 3513 | 铂 21 3514 | 渺 21 3515 | 缮 21 3516 | 沥 21 3517 | 缪 20 3518 | 箕 20 3519 | 粑 20 3520 | 皑 20 3521 | 篆 20 3522 | 琵 20 3523 | 跋 20 3524 | 痰 20 3525 | 钝 20 3526 | 甥 20 3527 | 崽 20 3528 | 煽 20 3529 | 衙 20 3530 | 瑚 20 3531 | 倭 20 3532 | 烘 20 3533 | 缙 20 3534 | 讹 20 3535 | 遴 20 3536 | 凋 20 3537 | 屑 20 3538 | 猕 20 3539 | 嚼 20 3540 | 驹 20 3541 | 戍 20 3542 | 丐 20 3543 | 烛 20 3544 | 衢 20 3545 | 憬 20 3546 | 玥 20 3547 | 琶 20 3548 | 砾 20 3549 | 稣 20 3550 | 邕 20 3551 | 芷 20 3552 | 隘 20 3553 | 烃 20 3554 | 殡 20 3555 | 锵 20 3556 | 辍 20 3557 | 馅 20 3558 | 鸾 19 3559 | 庾 19 3560 | 晗 19 3561 | 弼 19 3562 | 镕 19 3563 | 劾 19 3564 | 兖 19 3565 | 犁 19 3566 | 蛹 19 3567 | 狙 19 3568 | 忒 19 3569 | 绷 19 3570 | 炀 19 3571 | 桦 19 3572 | 邃 19 3573 | 谤 19 3574 | 憧 19 3575 | 钵 19 3576 | 呛 19 3577 | 柑 19 3578 | 诣 19 3579 | 疹 19 3580 | 汴 19 3581 | 槟 19 3582 | 翌 19 3583 | 谬 19 3584 | 嗽 19 3585 | 椿 19 3586 | 煊 19 3587 | 跷 19 3588 | 嵩 19 3589 | 镌 19 3590 | 囧 19 3591 | 腌 19 3592 | 癫 19 3593 | 闰 19 3594 | 嗲 19 3595 | 螂 18 3596 | 锌 18 3597 | 瞿 18 3598 | 狒 18 3599 | 沅 18 3600 | 漪 18 3601 | 俨 18 3602 | 潺 18 3603 | 奚 18 3604 | 卞 18 3605 | 婧 18 3606 | 覃 18 3607 | 嘚 18 3608 | 栩 18 3609 | 绯 18 3610 | 掖 18 3611 | 饪 18 3612 | 匣 18 3613 | 叽 18 3614 | 缤 18 3615 | 磺 18 3616 | 瑙 18 3617 | 涪 18 3618 | 矗 18 3619 | 骈 18 3620 | 帛 18 3621 | 胤 18 3622 | 弛 18 3623 | 酌 18 3624 | 膳 18 3625 | 嫣 18 3626 | 袅 18 3627 | 嘘 18 3628 | 嬉 18 3629 | 潍 18 3630 | 逞 18 3631 | 孽 17 3632 | 漱 17 3633 | 佚 17 3634 | 渚 17 3635 | 辙 17 3636 | 昱 17 3637 | 叨 17 3638 | 涕 17 3639 | 嗅 17 3640 | 汐 17 3641 | 镁 17 3642 | 婵 17 3643 | 墟 17 3644 | 拎 17 3645 | 煲 17 3646 | 驯 17 3647 | 袱 17 3648 | 汞 17 3649 | 逍 17 3650 | 國 17 3651 | 糍 17 3652 | 舷 17 3653 | 獭 17 3654 | 兀 17 3655 | 蝎 17 3656 | 漩 17 3657 | 腥 17 3658 | 荼 17 3659 | 彗 17 3660 | 矜 17 3661 | 謝 17 3662 | 恬 17 3663 | 癸 17 3664 | 荚 17 3665 | 邺 17 3666 | 眨 17 3667 | 電 17 3668 | 沓 17 3669 | 憋 17 3670 | 吮 17 3671 | 摒 17 3672 | 鲨 17 3673 | 哺 17 3674 | 仄 17 3675 | 掰 17 3676 | 喃 17 3677 | 锚 17 3678 | 桨 17 3679 | 阖 17 3680 | 毓 17 3681 | 迥 17 3682 | 薨 17 3683 | 滢 17 3684 | 恕 17 3685 | 拂 16 3686 | 兢 16 3687 | 淆 16 3688 | 臃 16 3689 | 蚂 16 3690 | 拙 16 3691 | 忻 16 3692 | 惰 16 3693 | 啪 16 3694 | 侗 16 3695 | 诽 16 3696 | 厮 16 3697 | 匝 16 3698 | 焱 16 3699 | 啵 16 3700 | 濡 16 3701 | 缎 16 3702 | 婶 16 3703 | 茉 16 3704 | 慵 16 3705 | 骇 16 3706 | 圃 16 3707 | 筵 16 3708 | 墉 16 3709 | 蔷 16 3710 | 涣 16 3711 | 苔 16 3712 | 祚 16 3713 | 笙 16 3714 | 菁 16 3715 | 裳 16 3716 | 悚 16 3717 | 鸥 16 3718 | 铿 16 3719 | 炽 16 3720 | 嗦 16 3721 | 猿 16 3722 | 蛤 16 3723 | 惶 16 3724 | 暹 16 3725 | 膺 16 3726 | 黯 16 3727 | 凇 16 3728 | 淞 16 3729 | 車 16 3730 | 鸢 16 3731 | 篱 16 3732 | 栾 16 3733 | 镀 16 3734 | 瘟 16 3735 | 蒿 16 3736 | 姗 16 3737 | 廿 15 3738 | 辊 15 3739 | 骼 15 3740 | 祐 15 3741 | 弩 15 3742 | 悯 15 3743 | 箍 15 3744 | 苇 15 3745 | 赘 15 3746 | 袂 15 3747 | 巳 15 3748 | 遁 15 3749 | 抠 15 3750 | 缭 15 3751 | 锲 15 3752 | 擘 15 3753 | 氰 15 3754 | 诟 15 3755 | 蛀 15 3756 | 脯 15 3757 | 譬 15 3758 | 浚 15 3759 | 眩 15 3760 | 斟 15 3761 | 婺 15 3762 | 拷 15 3763 | 摹 15 3764 | 掺 15 3765 | 轼 15 3766 | 見 15 3767 | 禀 15 3768 | 哆 15 3769 | 沌 15 3770 | 饽 15 3771 | 稷 15 3772 | 稠 15 3773 | 赦 15 3774 | 邛 15 3775 | 扼 15 3776 | 铉 15 3777 | 藕 15 3778 | 钛 15 3779 | 棣 15 3780 | 蟑 15 3781 | 锏 15 3782 | 莘 15 3783 | 嬷 15 3784 | 噩 15 3785 | 淖 15 3786 | 孰 15 3787 | 葺 15 3788 | 徇 15 3789 | 轧 15 3790 | 鳝 15 3791 | 鄱 15 3792 | 溥 15 3793 | 奂 15 3794 | 煜 15 3795 | 踹 15 3796 | 陲 15 3797 | 鳏 14 3798 | 饷 14 3799 | 嗑 14 3800 | 岌 14 3801 | 仨 14 3802 | 涿 14 3803 | 咀 14 3804 | 浣 14 3805 | 晾 14 3806 | 憨 14 3807 | 稼 14 3808 | 惫 14 3809 | 蹊 14 3810 | 昙 14 3811 | 橱 14 3812 | 館 14 3813 | 榈 14 3814 | 娓 14 3815 | 骋 14 3816 | 剐 14 3817 | 蓟 14 3818 | 滁 14 3819 | 啧 14 3820 | 鹊 14 3821 | 臧 14 3822 | 磐 14 3823 | 麾 14 3824 | 華 14 3825 | 瘠 14 3826 | 咩 14 3827 | 笠 14 3828 | 黍 14 3829 | 殃 14 3830 | 鳍 14 3831 | 栅 14 3832 | 俪 14 3833 | 浒 14 3834 | 龛 14 3835 | 璞 14 3836 | 锆 14 3837 | 淌 14 3838 | 踵 14 3839 | 跆 14 3840 | 昀 14 3841 | 弑 14 3842 | 島 14 3843 | 刨 14 3844 | 辫 14 3845 | 鞅 14 3846 | 钳 14 3847 | 頭 14 3848 | 袤 14 3849 | 拴 13 3850 | 淬 13 3851 | 祛 13 3852 | 袒 13 3853 | 镯 13 3854 | 晔 13 3855 | 靳 13 3856 | 魯 13 3857 | 纫 13 3858 | 茁 13 3859 | 楞 13 3860 | 恃 13 3861 | 岑 13 3862 | 視 13 3863 | 闾 13 3864 | 纣 13 3865 | 杞 13 3866 | 嫡 13 3867 | 瘩 13 3868 | 脍 13 3869 | 咫 13 3870 | 甬 13 3871 | 夭 13 3872 | 蟾 13 3873 | 泷 13 3874 | 缨 13 3875 | 贰 13 3876 | 揮 13 3877 | 枇 13 3878 | 酪 13 3879 | 偕 13 3880 | 剁 13 3881 | 缜 13 3882 | 粱 13 3883 | 妊 13 3884 | 腦 13 3885 | 珲 13 3886 | 轟 13 3887 | 殆 13 3888 | 唠 13 3889 | 碩 13 3890 | 佰 13 3891 | 阪 13 3892 | 勐 13 3893 | 腈 13 3894 | 疙 13 3895 | 阚 13 3896 | 漾 13 3897 | 唁 13 3898 | 杷 13 3899 | 褪 13 3900 | 胥 13 3901 | 擢 13 3902 | 遛 13 3903 | 凛 13 3904 | 捻 13 3905 | 籁 13 3906 | 囤 12 3907 | 惬 12 3908 | 孢 12 3909 | 窍 12 3910 | 昵 12 3911 | 剽 12 3912 | 咔 12 3913 | 缢 12 3914 | 單 12 3915 | 咄 12 3916 | 崴 12 3917 | 浔 12 3918 | 骊 12 3919 | 茧 12 3920 | 蚩 12 3921 | 诋 12 3922 | 蕙 12 3923 | 羔 12 3924 | 撮 12 3925 | 宕 12 3926 | 塾 12 3927 | 胛 12 3928 | 洙 12 3929 | 叼 12 3930 | 孺 12 3931 | 麋 12 3932 | 鸠 12 3933 | 嗒 12 3934 | 羟 12 3935 | 筱 12 3936 | 彈 12 3937 | 癖 12 3938 | 赡 12 3939 | 吱 12 3940 | 睇 12 3941 | 歆 12 3942 | 髻 12 3943 | 怯 12 3944 | 怅 12 3945 | 拮 12 3946 | 藉 12 3947 | 瞪 12 3948 | 铨 12 3949 | 彷 12 3950 | 袄 12 3951 | 歙 12 3952 | 沭 12 3953 | 宸 12 3954 | 咙 12 3955 | 捎 12 3956 | 渍 12 3957 | 衛 12 3958 | 町 12 3959 | 揖 12 3960 | 鋼 12 3961 | 盪 12 3962 | 娠 12 3963 | 匕 12 3964 | 扉 12 3965 | 殒 12 3966 | 噬 12 3967 | 憎 12 3968 | 槓 12 3969 | 愣 12 3970 | 虔 12 3971 | 惦 12 3972 | 岖 12 3973 | 靛 12 3974 | 茗 11 3975 | 傣 11 3976 | 帼 11 3977 | 樵 11 3978 | 壕 11 3979 | 婢 11 3980 | 吩 11 3981 | 谗 11 3982 | 狩 11 3983 | 蔺 11 3984 | 恣 11 3985 | 莒 11 3986 | 腑 11 3987 | 痊 11 3988 | 抨 11 3989 | 诲 11 3990 | 涟 11 3991 | 敖 11 3992 | 瞌 11 3993 | 锷 11 3994 | 啾 11 3995 | 郧 11 3996 | 碣 11 3997 | 叩 11 3998 | 蠕 11 3999 | 榔 11 4000 | 幄 11 4001 | 胧 11 4002 | 疟 11 4003 | 镰 11 4004 | 胫 11 4005 | 惮 11 4006 | 肛 11 4007 | 劼 11 4008 | 耆 11 4009 | 驢 11 4010 | 娲 11 4011 | 眯 11 4012 | 骛 11 4013 | 鲟 11 4014 | 绛 11 4015 | 酚 11 4016 | 茸 11 4017 | 釜 11 4018 | 髯 11 4019 | 髅 11 4020 | 囱 11 4021 | 恁 11 4022 | 铎 11 4023 | 隍 11 4024 | 撂 11 4025 | 珽 11 4026 | 戛 11 4027 | 畿 11 4028 | 笺 11 4029 | 槃 11 4030 | 懋 11 4031 | 滦 11 4032 | 瀛 11 4033 | 佥 11 4034 | 蜓 11 4035 | 钜 11 4036 | 珞 11 4037 | 炊 11 4038 | 壑 10 4039 | 翩 10 4040 | 蜗 10 4041 | 镍 10 4042 | 桀 10 4043 | 馥 10 4044 | 粳 10 4045 | 媲 10 4046 | 獗 10 4047 | 锄 10 4048 | 韭 10 4049 | 氦 10 4050 | 菏 10 4051 | 稞 10 4052 | 夙 10 4053 | 崂 10 4054 | 朦 10 4055 | 嗜 10 4056 | 潞 10 4057 | 琥 10 4058 | 嚷 10 4059 | 睢 10 4060 | 虬 10 4061 | 鎏 10 4062 | 腆 10 4063 | 罂 10 4064 | 珑 10 4065 | 妤 10 4066 | 覽 10 4067 | 姝 10 4068 | 镂 10 4069 | 霁 10 4070 | 酰 10 4071 | 俸 10 4072 | 谆 10 4073 | 沱 10 4074 | 唾 10 4075 | 谙 10 4076 | 榭 10 4077 | 爻 10 4078 | 裘 10 4079 | 甯 10 4080 | 卅 10 4081 | 诿 10 4082 | 叱 10 4083 | 赈 10 4084 | 拭 10 4085 | 謇 10 4086 | 寐 10 4087 | 垢 10 4088 | 嫔 10 4089 | 艮 10 4090 | 龍 10 4091 | 啼 10 4092 | 菡 10 4093 | 抡 10 4094 | 翱 10 4095 | 俐 10 4096 | 涎 10 4097 | 懦 10 4098 | 骁 10 4099 | 嗟 10 4100 | 啰 10 4101 | 铆 10 4102 | 寮 10 4103 | 谟 9 4104 | 鱿 9 4105 | 郢 9 4106 | 髦 9 4107 | 變 9 4108 | 婪 9 4109 | 淝 9 4110 | 鹑 9 4111 | 驷 9 4112 | 睾 9 4113 | 噓 9 4114 | 蜈 9 4115 | 熨 9 4116 | 莴 9 4117 | 诃 9 4118 | 翊 9 4119 | 鹜 9 4120 | 偃 9 4121 | 嬴 9 4122 | 羯 9 4123 | 瓴 9 4124 | 瞳 9 4125 | 噱 9 4126 | 溟 9 4127 | 幔 9 4128 | 铣 9 4129 | 煦 9 4130 | 肱 9 4131 | 曳 9 4132 | 筏 9 4133 | 岷 9 4134 | 秤 9 4135 | 攸 9 4136 | 溧 9 4137 | 荥 9 4138 | 潦 9 4139 | 桢 9 4140 | 珉 9 4141 | 绫 9 4142 | 涞 9 4143 | 硼 9 4144 | 恂 9 4145 | 醺 9 4146 | 嘶 9 4147 | 鹦 9 4148 | 阡 9 4149 | 坨 9 4150 | 噻 9 4151 | 哽 9 4152 | 喙 9 4153 | 漕 9 4154 | 蚣 9 4155 | 玖 9 4156 | 焘 9 4157 | 嘀 9 4158 | 惺 9 4159 | 蠡 9 4160 | 耒 9 4161 | 雉 9 4162 | 脩 9 4163 | 腓 9 4164 | 萼 9 4165 | 飯 9 4166 | 蔼 9 4167 | 吠 9 4168 | 瓢 9 4169 | 骷 9 4170 | 纥 9 4171 | 迂 9 4172 | 掴 9 4173 | 雒 9 4174 | 褚 9 4175 | 懵 9 4176 | 徵 9 4177 | 毽 9 4178 | 琮 9 4179 | 迩 9 4180 | 悸 9 4181 | 诩 9 4182 | 砀 9 4183 | 鹄 9 4184 | 耦 9 4185 | 讷 9 4186 | 臼 9 4187 | 邳 9 4188 | 痱 9 4189 | 萦 9 4190 | 豌 9 4191 | 驮 9 4192 | 筐 8 4193 | 谛 8 4194 | 燎 8 4195 | 窕 8 4196 | 忑 8 4197 | 窨 8 4198 | 罔 8 4199 | 烩 8 4200 | 寤 8 4201 | 挞 8 4202 | 镉 8 4203 | 伎 8 4204 | 搪 8 4205 | 璜 8 4206 | 垛 8 4207 | 吝 8 4208 | 瘸 8 4209 | 眸 8 4210 | 徨 8 4211 | 給 8 4212 | 胄 8 4213 | 簸 8 4214 | 樂 8 4215 | 罹 8 4216 | 铮 8 4217 | 耷 8 4218 | 痫 8 4219 | 贻 8 4220 | 衩 8 4221 | 窈 8 4222 | 岘 8 4223 | 渥 8 4224 | 琊 8 4225 | 蛾 8 4226 | 楹 8 4227 | 栎 8 4228 | 奄 8 4229 | 呲 8 4230 | 硒 8 4231 | 仞 8 4232 | 拄 8 4233 | 郤 8 4234 | 啷 8 4235 | 忏 8 4236 | 宥 8 4237 | 鲶 8 4238 | 邾 8 4239 | 陽 8 4240 | 敝 8 4241 | 藜 8 4242 | 苷 8 4243 | 蜥 8 4244 | 辔 8 4245 | 嬛 8 4246 | 斓 8 4247 | 槌 8 4248 | 裆 8 4249 | 飒 8 4250 | 搀 8 4251 | 酣 8 4252 | 翦 8 4253 | 晁 8 4254 | 忐 8 4255 | 擞 8 4256 | 挛 8 4257 | 鹌 8 4258 | 戟 8 4259 | 蜇 8 4260 | 悴 8 4261 | 伫 8 4262 | 哮 8 4263 | 箴 8 4264 | 瘀 8 4265 | 撩 8 4266 | 喵 8 4267 | 憩 8 4268 | 鲫 8 4269 | 圜 8 4270 | 轶 8 4271 | 弁 8 4272 | 犷 7 4273 | 赉 7 4274 | 玷 7 4275 | 羿 7 4276 | 潟 7 4277 | 矸 7 4278 | 機 7 4279 | 別 7 4280 | 铢 7 4281 | 谄 7 4282 | 翎 7 4283 | 骥 7 4284 | 吒 7 4285 | 炕 7 4286 | 苞 7 4287 | 旎 7 4288 | 蹿 7 4289 | 捶 7 4290 | 邬 7 4291 | 桧 7 4292 | 烬 7 4293 | 冗 7 4294 | 邂 7 4295 | 芥 7 4296 | 蓓 7 4297 | 畈 7 4298 | 钴 7 4299 | 榷 7 4300 | 铵 7 4301 | 陉 7 4302 | 雞 7 4303 | 唆 7 4304 | 踌 7 4305 | 讥 7 4306 | 槎 7 4307 | 吆 7 4308 | 戬 7 4309 | 蹴 7 4310 | 個 7 4311 | 亳 7 4312 | 嘹 7 4313 | 躇 7 4314 | 檗 7 4315 | 馋 7 4316 | 亘 7 4317 | 谯 7 4318 | 牦 7 4319 | 驸 7 4320 | 確 7 4321 | 眙 7 4322 | 攥 7 4323 | 寰 7 4324 | 蹼 7 4325 | 蜍 7 4326 | 焙 7 4327 | 琬 7 4328 | 掣 7 4329 | 逅 7 4330 | 骞 7 4331 | 崃 7 4332 | 蚓 7 4333 | 爰 7 4334 | 勰 7 4335 | 琰 7 4336 | 嗝 7 4337 | 蜻 7 4338 | 钺 7 4339 | 绾 7 4340 | 婕 7 4341 | 胯 7 4342 | 傥 7 4343 | 仃 7 4344 | 枞 7 4345 | 燧 7 4346 | 冼 7 4347 | 峋 7 4348 | 娣 7 4349 | 拈 7 4350 | 觑 7 4351 | 鲈 7 4352 | 僖 7 4353 | 疚 7 4354 | 泔 7 4355 | 镖 7 4356 | 舸 7 4357 | 珮 7 4358 | 渑 7 4359 | 蚶 7 4360 | 嶙 7 4361 | 佤 7 4362 | 闳 7 4363 | 沏 7 4364 | 畊 7 4365 | 噜 7 4366 | 蚯 7 4367 | 呸 7 4368 | 锹 7 4369 | 梆 7 4370 | 泞 7 4371 | 盹 7 4372 | 娑 7 4373 | 尕 7 4374 | 許 7 4375 | 旖 7 4376 | 锢 7 4377 | 觊 7 4378 | 痢 7 4379 | 浜 7 4380 | 鬓 7 4381 | 臆 7 4382 | 桁 7 4383 | 蛊 7 4384 | 楫 7 4385 | 谚 7 4386 | 霓 7 4387 | 镐 7 4388 | 诙 7 4389 | 蛰 7 4390 | 惋 7 4391 | 泓 7 4392 | 芍 7 4393 | 丕 7 4394 | 鞘 7 4395 | 酗 7 4396 | 黝 7 4397 | 茏 7 4398 | 笈 7 4399 | 缄 7 4400 | 眈 7 4401 | 觎 7 4402 | 湍 7 4403 | 愔 7 4404 | 蹶 7 4405 | 逵 7 4406 | 犍 6 4407 | 忿 6 4408 | 洵 6 4409 | 胭 6 4410 | 蹉 6 4411 | 窿 6 4412 | 麼 6 4413 | 趙 6 4414 | 毂 6 4415 | 胱 6 4416 | 郦 6 4417 | 窠 6 4418 | 蒴 6 4419 | 叻 6 4420 | 懊 6 4421 | 瓒 6 4422 | 痼 6 4423 | 樽 6 4424 | 叁 6 4425 | 鏖 6 4426 | 麝 6 4427 | 烙 6 4428 | 矬 6 4429 | 谧 6 4430 | 挹 6 4431 | 楔 6 4432 | 淼 6 4433 | 鳃 6 4434 | 椋 6 4435 | 柩 6 4436 | 邝 6 4437 | 帙 6 4438 | 迢 6 4439 | 畲 6 4440 | 翕 6 4441 | 砒 6 4442 | 噌 6 4443 | 開 6 4444 | 箔 6 4445 | 彧 6 4446 | 庑 6 4447 | 峒 6 4448 | 圪 6 4449 | 畦 6 4450 | 纶 6 4451 | 銭 6 4452 | 猬 6 4453 | 诧 6 4454 | 觐 6 4455 | 郗 6 4456 | 挎 6 4457 | 醚 6 4458 | 痉 6 4459 | 帚 6 4460 | 妫 6 4461 | 嬖 6 4462 | 篁 6 4463 | 镊 6 4464 | 跺 6 4465 | 肽 6 4466 | 糅 6 4467 | 腼 6 4468 | 耨 6 4469 | 岫 6 4470 | 泠 6 4471 | 憔 6 4472 | 拗 6 4473 | 薮 6 4474 | 猷 6 4475 | 嚎 6 4476 | 雠 6 4477 | 夔 6 4478 | 崧 6 4479 | 荃 6 4480 | 獒 6 4481 | q 6 4482 | 褂 6 4483 | 昉 6 4484 | 祎 6 4485 | 厩 6 4486 | 荞 6 4487 | 虱 6 4488 | 郫 6 4489 | 鳳 6 4490 | 谩 6 4491 | 蘸 6 4492 | 貔 6 4493 | 隗 6 4494 | 睬 6 4495 | 殓 6 4496 | 瘁 6 4497 | 鲲 6 4498 | 蟠 6 4499 | 侥 6 4500 | 嵘 6 4501 | 雳 6 4502 | 坳 6 4503 | 纭 6 4504 | 诤 6 4505 | 嶂 6 4506 | 愕 6 4507 | 貉 6 4508 | 堑 6 4509 | 疸 6 4510 | 牍 6 4511 | 蒯 6 4512 | 霹 6 4513 | 喏 6 4514 | 惭 6 4515 | 诰 6 4516 | 腮 6 4517 | 鲑 6 4518 | 摁 6 4519 | 寔 6 4520 | 蝗 6 4521 | 钨 6 4522 | 愛 6 4523 | 貅 6 4524 | 筠 6 4525 | 杳 6 4526 | 衮 6 4527 | 鞑 6 4528 | 蕲 6 4529 | 蟆 6 4530 | 幡 6 4531 | 俾 6 4532 | 谪 6 4533 | 祜 6 4534 | 蛎 6 4535 | 淦 6 4536 | 瑁 6 4537 | 鳙 6 4538 | 涸 6 4539 | 秭 6 4540 | 蟒 6 4541 | 脓 6 4542 | 郴 6 4543 | 戾 6 4544 | 盱 6 4545 | 遠 5 4546 | 豳 5 4547 | 锶 5 4548 | 饨 5 4549 | 嗷 5 4550 | 敗 5 4551 | 囿 5 4552 | 襁 5 4553 | 髋 5 4554 | 揆 5 4555 | 峤 5 4556 | 骡 5 4557 | 獐 5 4558 | 蚝 5 4559 | 颎 5 4560 | 眦 5 4561 | 扈 5 4562 | 篝 5 4563 | 苋 5 4564 | 鹳 5 4565 | 鹉 5 4566 | 點 5 4567 | 崆 5 4568 | 啖 5 4569 | 捺 5 4570 | 荤 5 4571 | 盂 5 4572 | 笞 5 4573 | 馊 5 4574 | 訾 5 4575 | 嵇 5 4576 | 祟 5 4577 | 镳 5 4578 | 穀 5 4579 | 黃 5 4580 | 奭 5 4581 | 箫 5 4582 | 闱 5 4583 | 僳 5 4584 | 柒 5 4585 | 涠 5 4586 | 楣 5 4587 | 苓 5 4588 | 聿 5 4589 | 玳 5 4590 | 荨 5 4591 | 醴 5 4592 | 饯 5 4593 | 邋 5 4594 | 榛 5 4595 | 侉 5 4596 | 咤 5 4597 | 唏 5 4598 | 柘 5 4599 | 脘 5 4600 | 痍 5 4601 | 痿 5 4602 | 颢 5 4603 | 檄 5 4604 | 铐 5 4605 | 糠 5 4606 | 蹂 5 4607 | 靼 5 4608 | 馏 5 4609 | 徉 5 4610 | 啄 5 4611 | 讪 5 4612 | 噗 5 4613 | 妳 5 4614 | 肏 5 4615 | 糜 5 4616 | 躏 5 4617 | 沣 5 4618 | 餘 5 4619 | 芪 5 4620 | 痣 5 4621 | 遢 5 4622 | 話 5 4623 | 菅 5 4624 | 綦 5 4625 | 飨 5 4626 | 時 5 4627 | 耙 5 4628 | 巽 5 4629 | 籼 5 4630 | 來 5 4631 | 蜊 5 4632 | 俚 5 4633 | 苜 5 4634 | 腱 5 4635 | 垩 5 4636 | 颌 5 4637 | 砷 5 4638 | 嗪 5 4639 | 撵 5 4640 | 佘 5 4641 | 珐 5 4642 | 赭 5 4643 | 凖 5 4644 | 屉 5 4645 | 愍 5 4646 | 鹞 5 4647 | 黜 5 4648 | 裨 5 4649 | 燮 5 4650 | 阂 5 4651 | 焯 5 4652 | 旌 5 4653 | 孳 5 4654 | 嘈 5 4655 | 蓿 5 4656 | 郜 5 4657 | 鳅 5 4658 | 節 5 4659 | 鼬 5 4660 | 奘 5 4661 | 糗 5 4662 | 褥 5 4663 | 馄 5 4664 | 嚏 5 4665 | 蜚 5 4666 | 仟 5 4667 | 掂 5 4668 | 鸪 5 4669 | 俟 5 4670 | 鄢 5 4671 | 蝮 5 4672 | 噎 5 4673 | 衲 5 4674 | 皎 5 4675 | 竦 5 4676 | 鹧 5 4677 | 栀 5 4678 | 嚓 5 4679 | 惇 5 4680 | 茱 5 4681 | 柞 5 4682 | 泚 5 4683 | 睑 5 4684 | 岢 5 4685 | 圻 5 4686 | 蛆 5 4687 | 彊 5 4688 | 汨 5 4689 | 蚤 5 4690 | 逖 5 4691 | 皙 5 4692 | 枸 5 4693 | 颉 5 4694 | 褓 5 4695 | 蘋 5 4696 | 樾 5 4697 | 龅 5 4698 | 侏 5 4699 | 倜 5 4700 | 塬 5 4701 | 峄 5 4702 | 搐 5 4703 | 鄞 5 4704 | 喱 5 4705 | 铰 5 4706 | 師 5 4707 | 朐 5 4708 | 蠛 4 4709 | 袆 4 4710 | 鹕 4 4711 | 赳 4 4712 | 佞 4 4713 | 菖 4 4714 | 粕 4 4715 | 嗤 4 4716 | 伝 4 4717 | 呋 4 4718 | 觞 4 4719 | 斫 4 4720 | 吡 4 4721 | 贲 4 4722 | 饕 4 4723 | 長 4 4724 | 淙 4 4725 | 筌 4 4726 | 惆 4 4727 | 舛 4 4728 | 幹 4 4729 | 遨 4 4730 | 隼 4 4731 | 濬 4 4732 | 珩 4 4733 | 钼 4 4734 | 怵 4 4735 | 焖 4 4736 | 龊 4 4737 | 娆 4 4738 | 芡 4 4739 | 蕤 4 4740 | 怏 4 4741 | 瑗 4 4742 | 磴 4 4743 | 唬 4 4744 | 蟋 4 4745 | 趸 4 4746 | 鹘 4 4747 | 霈 4 4748 | 戦 4 4749 | 锟 4 4750 | 祗 4 4751 | 咛 4 4752 | 餮 4 4753 | 抿 4 4754 | 佢 4 4755 | 舾 4 4756 | 咲 4 4757 | 搽 4 4758 | 胪 4 4759 | 徕 4 4760 | 萘 4 4761 | 橇 4 4762 | 儋 4 4763 | 羧 4 4764 | 唢 4 4765 | 裟 4 4766 | 倏 4 4767 | 囡 4 4768 | 蟀 4 4769 | 驩 4 4770 | 缥 4 4771 | 锨 4 4772 | 阕 4 4773 | 浃 4 4774 | 祢 4 4775 | 泯 4 4776 | 鋐 4 4777 | 抟 4 4778 | 佗 4 4779 | 適 4 4780 | 龋 4 4781 | 鲢 4 4782 | 祏 4 4783 | 垅 4 4784 | 睚 4 4785 | 甙 4 4786 | 哙 4 4787 | 笆 4 4788 | 铄 4 4789 | 楽 4 4790 | 翳 4 4791 | 戡 4 4792 | 孛 4 4793 | 弇 4 4794 | 徜 4 4795 | 說 4 4796 | 娵 4 4797 | 蜷 4 4798 | 吭 4 4799 | 屄 4 4800 | 癞 4 4801 | 茕 4 4802 | 糁 4 4803 | 灞 4 4804 | 藐 4 4805 | 蛐 4 4806 | 劉 4 4807 | 锜 4 4808 | 硚 4 4809 | 仡 4 4810 | 颚 4 4811 | 酢 4 4812 | 孑 4 4813 | 鞣 4 4814 | 碓 4 4815 | 妩 4 4816 | 袈 4 4817 | 聃 4 4818 | 揄 4 4819 | 恙 4 4820 | 垡 4 4821 | 萬 4 4822 | 肄 4 4823 | 縻 4 4824 | 篾 4 4825 | 掇 4 4826 | 蜴 4 4827 | 牒 4 4828 | 漯 4 4829 | 泮 4 4830 | 楂 4 4831 | 螈 4 4832 | 痔 4 4833 | 甑 4 4834 | 殚 4 4835 | 呻 4 4836 | 诘 4 4837 | 萸 4 4838 | 讧 4 4839 | 噘 4 4840 | 琯 4 4841 | 揶 4 4842 | 勖 4 4843 | 瞭 4 4844 | 恸 4 4845 | 虢 4 4846 | 钗 4 4847 | 郯 4 4848 | 郅 4 4849 | 銮 4 4850 | 馗 4 4851 | 嵯 4 4852 | 荪 4 4853 | 邈 4 4854 | 苕 4 4855 | 戕 4 4856 | 岬 4 4857 | 缫 4 4858 | 靺 4 4859 | 逋 4 4860 | 媽 4 4861 | 呎 4 4862 | 刍 4 4863 | 掬 4 4864 | 栲 4 4865 | 獠 4 4866 | 珏 4 4867 | 汜 4 4868 | 洮 4 4869 | 诂 4 4870 | 酐 4 4871 | 犒 4 4872 | 骠 4 4873 | 哔 4 4874 | 螳 4 4875 | 庹 4 4876 | 蝈 4 4877 | 辘 4 4878 | 鞨 4 4879 | 邨 4 4880 | 孥 4 4881 | 對 4 4882 | 耋 4 4883 | 铙 4 4884 | 鹈 4 4885 | 鳊 4 4886 | 氐 4 4887 | 蜢 4 4888 | 垭 4 4889 | 霭 4 4890 | 獅 4 4891 | 僮 4 4892 | 锭 4 4893 | 啬 4 4894 | 苎 4 4895 | 馁 4 4896 | 稗 4 4897 | 搔 4 4898 | 滹 4 4899 | 螨 4 4900 | 癜 4 4901 | 叟 4 4902 | 蓼 4 4903 | 鬃 4 4904 | 庖 4 4905 | 儡 3 4906 | 钎 3 4907 | 舀 3 4908 | 鼾 3 4909 | 纨 3 4910 | 礽 3 4911 | 癣 3 4912 | 會 3 4913 | 榉 3 4914 | 笪 3 4915 | 孪 3 4916 | 當 3 4917 | 蚬 3 4918 | 習 3 4919 | 灣 3 4920 | 誊 3 4921 | 垌 3 4922 | 蓖 3 4923 | 耄 3 4924 | 赜 3 4925 | 瞠 3 4926 | 娩 3 4927 | 孓 3 4928 | 皿 3 4929 | 埕 3 4930 | 葳 3 4931 | 湮 3 4932 | 尥 3 4933 | 谀 3 4934 | 楮 3 4935 | 昇 3 4936 | 濂 3 4937 | 芊 3 4938 | 笏 3 4939 | 貂 3 4940 | 稹 3 4941 | 蔣 3 4942 | 谔 3 4943 | 妲 3 4944 | 椽 3 4945 | 書 3 4946 | 氪 3 4947 | 坭 3 4948 | 碉 3 4949 | 場 3 4950 | 甭 3 4951 | 衿 3 4952 | 鄄 3 4953 | 玘 3 4954 | 羅 3 4955 | 嚟 3 4956 | 録 3 4957 | 蕨 3 4958 | 嗳 3 4959 | 阈 3 4960 | 舐 3 4961 | 毡 3 4962 | 狰 3 4963 | 傈 3 4964 | 颙 3 4965 | 谶 3 4966 | 揩 3 4967 | 旒 3 4968 | 鹫 3 4969 | 廁 3 4970 | 烊 3 4971 | 寘 3 4972 | 疣 3 4973 | 钹 3 4974 | 垤 3 4975 | 钏 3 4976 | 鸨 3 4977 | 趵 3 4978 | 舫 3 4979 | 豊 3 4980 | 竑 3 4981 | 螭 3 4982 | 矍 3 4983 | 啶 3 4984 | 辇 3 4985 | 麽 3 4986 | 茯 3 4987 | 関 3 4988 | 铌 3 4989 | 赝 3 4990 | 毳 3 4991 | 語 3 4992 | 垠 3 4993 | 摭 3 4994 | 谘 3 4995 | 悛 3 4996 | 昴 3 4997 | 涮 3 4998 | 怆 3 4999 | 濯 3 5000 | 刽 3 5001 | 淅 3 5002 | 沄 3 5003 | 晞 3 5004 | 様 3 5005 | 颏 3 5006 | 豬 3 5007 | 鄕 3 5008 | 炔 3 5009 | 蚱 3 5010 | 嶷 3 5011 | 钽 3 5012 | 腴 3 5013 | 弋 3 5014 | 阑 3 5015 | 歃 3 5016 | 毘 3 5017 | 恵 3 5018 | 砰 3 5019 | 啮 3 5020 | 張 3 5021 | 禛 3 5022 | 麵 3 5023 | 盅 3 5024 | 捋 3 5025 | 愎 3 5026 | 犄 3 5027 | 埂 3 5028 | 澧 3 5029 | 谑 3 5030 | 搡 3 5031 | 侑 3 5032 | 圖 3 5033 | 戸 3 5034 | 苣 3 5035 | 臺 3 5036 | 缰 3 5037 | 瘴 3 5038 | 杪 3 5039 | 蛔 3 5040 | 璟 3 5041 | 婀 3 5042 | 俎 3 5043 | 烜 3 5044 | 饬 3 5045 | 阉 3 5046 | 杓 3 5047 | 恽 3 5048 | 肓 3 5049 | 筚 3 5050 | 莪 3 5051 | 禮 3 5052 | 腩 3 5053 | 臾 3 5054 | 玟 3 5055 | 枧 3 5056 | 陝 3 5057 | 佶 3 5058 | 髮 3 5059 | 運 3 5060 | 旮 3 5061 | 攘 3 5062 | 彿 3 5063 | 霎 3 5064 | 骐 3 5065 | 汊 3 5066 | 迳 3 5067 | 墒 3 5068 | 旄 3 5069 | 栉 3 5070 | 肮 3 5071 | 腚 3 5072 | 箓 3 5073 | 殭 3 5074 | 螟 3 5075 | 匐 3 5076 | 阼 3 5077 | 姹 3 5078 | 煩 3 5079 | 傩 3 5080 | 秣 3 5081 | 龌 3 5082 | 疽 3 5083 | 疃 3 5084 | 數 3 5085 | 赓 3 5086 | 瘘 3 5087 | 铯 3 5088 | 銀 3 5089 | 埭 3 5090 | 疖 3 5091 | 嗖 3 5092 | 镭 3 5093 | 佻 3 5094 | 堀 3 5095 | 溏 3 5096 | 厝 3 5097 | 熱 3 5098 | 铳 3 5099 | 阊 3 5100 | 穂 3 5101 | 痈 3 5102 | 廚 3 5103 | 氤 3 5104 | 苻 3 5105 | 浥 3 5106 | 魚 3 5107 | 徂 3 5108 | 欤 3 5109 | 桎 3 5110 | 蓑 3 5111 | 咆 3 5112 | 梏 3 5113 | 蝦 3 5114 | 怿 3 5115 | 蹋 3 5116 | 丶 3 5117 | 碚 3 5118 | 瞥 3 5119 | 匍 3 5120 | 茭 3 5121 | 恫 3 5122 | 伉 3 5123 | 篦 3 5124 | 黩 3 5125 | 莅 3 5126 | 禩 3 5127 | 泱 3 5128 | 媪 3 5129 | 桉 3 5130 | 拚 3 5131 | 眶 3 5132 | 妪 3 5133 | 犸 3 5134 | 宓 3 5135 | 氲 3 5136 | 饔 3 5137 | 绦 3 5138 | 們 3 5139 | 冽 3 5140 | 钿 3 5141 | 洄 3 5142 | 垓 3 5143 | 総 3 5144 | 髡 3 5145 | 浯 3 5146 | 矽 3 5147 | 唑 3 5148 | 蚜 3 5149 | 乂 3 5150 | 驺 3 5151 | 気 3 5152 | 臊 3 5153 | 莳 3 5154 | 鼋 3 5155 | 箸 3 5156 | 垚 3 5157 | 骜 3 5158 | 昺 3 5159 | 氾 3 5160 | 卬 3 5161 | 猗 3 5162 | 缟 3 5163 | 鄭 3 5164 | 嵴 3 5165 | 焗 3 5166 | 莠 3 5167 | 嚭 3 5168 | 碴 3 5169 | 昶 3 5170 | 娉 3 5171 | 媞 3 5172 | 羰 3 5173 | 掸 3 5174 | 镗 3 5175 | 閉 3 5176 | 膑 3 5177 | 氣 3 5178 | 罅 3 5179 | 跎 3 5180 | 炆 3 5181 | 洣 3 5182 | 忄 3 5183 | 鹮 3 5184 | 疴 3 5185 | 餃 3 5186 | 缗 3 5187 | 狞 3 5188 | 壻 2 5189 | 皤 2 5190 | 湟 2 5191 | 浈 2 5192 | 褛 2 5193 | 鬧 2 5194 | 豉 2 5195 | 锺 2 5196 | 琏 2 5197 | 蠲 2 5198 | 祧 2 5199 | 塽 2 5200 | 璠 2 5201 | 钡 2 5202 | 結 2 5203 | 離 2 5204 | 鲼 2 5205 | 刎 2 5206 | 鼐 2 5207 | 韋 2 5208 | 狎 2 5209 | 癔 2 5210 | 痩 2 5211 | 蚴 2 5212 | 魍 2 5213 | 榫 2 5214 | 瘪 2 5215 | 磡 2 5216 | 遑 2 5217 | 忤 2 5218 | 殁 2 5219 | 芰 2 5220 | 麸 2 5221 | 燒 2 5222 | 搵 2 5223 | 園 2 5224 | 篥 2 5225 | 杲 2 5226 | 辂 2 5227 | 摛 2 5228 | 榘 2 5229 | 嵋 2 5230 | 黢 2 5231 | 齷 2 5232 | 瞑 2 5233 | 獾 2 5234 | 靑 2 5235 | 経 2 5236 | 骎 2 5237 | 钒 2 5238 | 柰 2 5239 | 眚 2 5240 | 湔 2 5241 | 豨 2 5242 | 駱 2 5243 | 傀 2 5244 | 茌 2 5245 | 骰 2 5246 | 孱 2 5247 | 铚 2 5248 | 晌 2 5249 | 遘 2 5250 | 禳 2 5251 | 枷 2 5252 | 鴛 2 5253 | 鬟 2 5254 | 惎 2 5255 | 镫 2 5256 | 珙 2 5257 | 跽 2 5258 | 魉 2 5259 | 蚡 2 5260 | 芎 2 5261 | 蹑 2 5262 | 儆 2 5263 | 悻 2 5264 | 菽 2 5265 | 墀 2 5266 | 簃 2 5267 | 邰 2 5268 | 喈 2 5269 | 辎 2 5270 | 曩 2 5271 | 巯 2 5272 | 荻 2 5273 | 願 2 5274 | 蘧 2 5275 | 茔 2 5276 | 麂 2 5277 | 埜 2 5278 | 転 2 5279 | 侶 2 5280 | 饅 2 5281 | 燊 2 5282 | 闇 2 5283 | 亶 2 5284 | 旼 2 5285 | 浞 2 5286 | 狷 2 5287 | 磻 2 5288 | 嘏 2 5289 | 尓 2 5290 | 無 2 5291 | 嗎 2 5292 | 捭 2 5293 | 颦 2 5294 | 岿 2 5295 | 姒 2 5296 | 倢 2 5297 | 旯 2 5298 | 纾 2 5299 |   2 5300 | 讵 2 5301 | 吋 2 5302 | 惘 2 5303 | 馓 2 5304 | 仝 2 5305 | 蔫 2 5306 | 掮 2 5307 | 収 2 5308 | 栊 2 5309 | 恚 2 5310 | 愆 2 5311 | 頠 2 5312 | 髌 2 5313 | 杵 2 5314 | 間 2 5315 | 蚵 2 5316 | 摞 2 5317 | 氙 2 5318 | 夢 2 5319 | 劻 2 5320 | 捱 2 5321 | 麹 2 5322 | 泅 2 5323 | 鹎 2 5324 | 淯 2 5325 | 圓 2 5326 | 蹙 2 5327 | 瘼 2 5328 | 續 2 5329 | 菟 2 5330 | 殄 2 5331 | 鳶 2 5332 | 埼 2 5333 | 醪 2 5334 | 讃 2 5335 | k 2 5336 | 貓 2 5337 | 碛 2 5338 | 黟 2 5339 | 棻 2 5340 | 蠑 2 5341 | 鄫 2 5342 | 筇 2 5343 | 聡 2 5344 | 柤 2 5345 | 瀬 2 5346 | 鳟 2 5347 | 沔 2 5348 | 牖 2 5349 | 瘙 2 5350 | 钚 2 5351 | 錫 2 5352 | 撺 2 5353 | 祇 2 5354 | 喁 2 5355 | 曷 2 5356 | 喫 2 5357 | 壴 2 5358 | 鄯 2 5359 | 粲 2 5360 | 洎 2 5361 | 郛 2 5362 | 賣 2 5363 | 卲 2 5364 | 瞟 2 5365 | 硖 2 5366 | 蚪 2 5367 | 梶 2 5368 | 珜 2 5369 | 汏 2 5370 | 扦 2 5371 | 轸 2 5372 | 袢 2 5373 | 犟 2 5374 | 鹬 2 5375 | 弭 2 5376 | 鹂 2 5377 | 氡 2 5378 | 飮 2 5379 | 掾 2 5380 | 镝 2 5381 | 荩 2 5382 | 辋 2 5383 | 哝 2 5384 | 苾 2 5385 | 撃 2 5386 | 齪 2 5387 | 绔 2 5388 | 殇 2 5389 | 逡 2 5390 | 廪 2 5391 | 鲔 2 5392 | 腭 2 5393 | 髑 2 5394 | 葚 2 5395 | 瀍 2 5396 | 藁 2 5397 | 乜 2 5398 | 襞 2 5399 | 繼 2 5400 | 蹇 2 5401 | 珺 2 5402 | 疋 2 5403 | 吶 2 5404 | 攫 2 5405 | 镋 2 5406 | 磾 2 5407 | 潆 2 5408 | 呷 2 5409 | 瞋 2 5410 | 溱 2 5411 | 褴 2 5412 | 铍 2 5413 | 诳 2 5414 | 蹚 2 5415 | 醐 2 5416 | 荇 2 5417 | 佯 2 5418 | 茆 2 5419 | 堌 2 5420 | 甕 2 5421 | 倧 2 5422 | 夌 2 5423 | 趄 2 5424 | 塍 2 5425 | 卻 2 5426 | 遽 2 5427 | 頸 2 5428 | 瞽 2 5429 | 磣 2 5430 | 侂 2 5431 | 涖 2 5432 | 爿 2 5433 | 楙 2 5434 | 杝 2 5435 | 轭 2 5436 | 笤 2 5437 | 膈 2 5438 | 倔 2 5439 | 枱 2 5440 | 㚻 2 5441 | 靦 2 5442 | 糌 2 5443 | 罡 2 5444 | 現 2 5445 | 堺 2 5446 | 觯 2 5447 | 绶 2 5448 | 颛 2 5449 | 祆 2 5450 | 襦 2 5451 | 魇 2 5452 | 闘 2 5453 | 汩 2 5454 | 邗 2 5455 | 筆 2 5456 | 镚 2 5457 | 穰 2 5458 | 潩 2 5459 | 讐 2 5460 | 趔 2 5461 | 毐 2 5462 | 迨 2 5463 | 彳 2 5464 | 肣 2 5465 | 阬 2 5466 | 洑 2 5467 | 玚 2 5468 | 鹇 2 5469 | 這 2 5470 | 荏 2 5471 | 還 2 5472 | 蒌 2 5473 | 韫 2 5474 | 唗 2 5475 | 镞 2 5476 | 円 2 5477 | 縯 2 5478 | 辺 2 5479 | 紘 2 5480 | 茼 2 5481 | 鹚 2 5482 | 萩 2 5483 | 迤 2 5484 | 奫 2 5485 | 澹 2 5486 | 荦 2 5487 | 趺 2 5488 | 虓 2 5489 | 锴 2 5490 | 潸 2 5491 | 酇 2 5492 | 泺 2 5493 | 蚧 2 5494 | 鸬 2 5495 | 疱 2 5496 | 杼 2 5497 | 嫚 2 5498 | 刈 2 5499 | 熵 2 5500 | 駅 2 5501 | 鋳 2 5502 | 覺 2 5503 | 狈 2 5504 | 阆 2 5505 | 啜 2 5506 | 珈 2 5507 | 馑 2 5508 | 戗 2 5509 | 溴 2 5510 | 螯 2 5511 | 澴 2 5512 | 醍 2 5513 | 鮑 2 5514 | 缾 2 5515 | 钤 2 5516 | 砧 2 5517 | 摅 2 5518 | 湉 2 5519 | 赟 2 5520 | 剡 2 5521 | 稔 2 5522 | 鴦 2 5523 | 轲 2 5524 | 燹 2 5525 | 風 2 5526 | 県 2 5527 | 骕 2 5528 | 铡 2 5529 | 琌 2 5530 | 箩 2 5531 | 芘 2 5532 | 粼 2 5533 | 祕 2 5534 | 螫 2 5535 | 溆 2 5536 | 甾 2 5537 | 嵎 2 5538 | 陔 2 5539 | 殂 2 5540 | 彥 2 5541 | 湯 2 5542 | 捜 2 5543 | 毖 2 5544 | 晳 2 5545 | 崤 2 5546 | 胝 2 5547 | 堍 2 5548 | 缣 2 5549 | 嗔 2 5550 | 仮 2 5551 | 倨 2 5552 | 畑 2 5553 | 珪 2 5554 | 苴 2 5555 | , 2 5556 | 谖 2 5557 | 訚 2 5558 | 暝 2 5559 | 煨 2 5560 | 咦 2 5561 | 渀 2 5562 | 鲷 2 5563 | 湫 2 5564 | 厓 2 5565 | 桅 2 5566 | 楯 2 5567 | 詧 2 5568 | 醫 2 5569 | 嘅 2 5570 | 鸵 2 5571 | 駝 2 5572 | 阃 2 5573 | 缈 2 5574 | 苡 2 5575 | 蓥 2 5576 | 乩 2 5577 | 畯 2 5578 | 鉄 2 5579 | 萋 2 5580 | 蝌 2 5581 | 醅 2 5582 | 喭 2 5583 | 贽 2 5584 | 呂 2 5585 | 洧 2 5586 | 赧 2 5587 | 蚿 2 5588 | 蒨 2 5589 | 吳 2 5590 | 陟 2 5591 | 恻 2 5592 | 膻 2 5593 | 唳 2 5594 | 跸 2 5595 | 圉 2 5596 | 鉛 2 5597 | 線 2 5598 | 桷 2 5599 | 芑 2 5600 | 豺 2 5601 | 醜 2 5602 | 埈 2 5603 | 铊 2 5604 | 負 2 5605 | 闆 2 5606 | 鏊 2 5607 | 樺 2 5608 | 棹 2 5609 | 怔 2 5610 | 疝 2 5611 | 镲 2 5612 | 刳 2 5613 | a 2 5614 | 晻 2 5615 | 鎳 2 5616 | 莨 2 5617 | 薙 1 5618 | 咣 1 5619 | 鞥 1 5620 | 悫 1 5621 | 硐 1 5622 | 織 1 5623 | 觱 1 5624 | 勷 1 5625 | 踟 1 5626 | 勍 1 5627 | 廕 1 5628 | t 1 5629 | 盥 1 5630 | 裱 1 5631 | 発 1 5632 | 髽 1 5633 | 栱 1 5634 | 埤 1 5635 | 炷 1 5636 | 粿 1 5637 | 昃 1 5638 | 茀 1 5639 | 㖏 1 5640 | 鬐 1 5641 | 袝 1 5642 | 妧 1 5643 | 簪 1 5644 | 觇 1 5645 | 婦 1 5646 | 俳 1 5647 | 巿 1 5648 | 轳 1 5649 | 阌 1 5650 | 铋 1 5651 | 珥 1 5652 | 跱 1 5653 | 営 1 5654 | 荅 1 5655 | 鴐 1 5656 | 瘢 1 5657 | 囍 1 5658 | 镠 1 5659 | 蛭 1 5660 | 巻 1 5661 | 疠 1 5662 | 鄣 1 5663 | 禨 1 5664 | 泆 1 5665 | 髪 1 5666 | 崒 1 5667 | 莙 1 5668 | 醥 1 5669 | 缦 1 5670 | 纻 1 5671 | 廻 1 5672 | 鶒 1 5673 | 椵 1 5674 | 槊 1 5675 | 齑 1 5676 | 谲 1 5677 | 傺 1 5678 | 媾 1 5679 | 獣 1 5680 | 刼 1 5681 | 摈 1 5682 | 翥 1 5683 | 喾 1 5684 | 柊 1 5685 | 糸 1 5686 | 皕 1 5687 | 谮 1 5688 | 匼 1 5689 | 楀 1 5690 | 涘 1 5691 | 玑 1 5692 | 檫 1 5693 | 絺 1 5694 | 赅 1 5695 | 枳 1 5696 | 杈 1 5697 | 鷏 1 5698 | 韓 1 5699 | 哕 1 5700 | 盩 1 5701 | 鄧 1 5702 | 佃 1 5703 | 棂 1 5704 | 铪 1 5705 | 旴 1 5706 | 鴶 1 5707 | 郓 1 5708 | 簋 1 5709 | 漭 1 5710 | 偓 1 5711 | 氖 1 5712 | 妣 1 5713 | 動 1 5714 | 厔 1 5715 | 拊 1 5716 | 旰 1 5717 | 笹 1 5718 | 穣 1 5719 | 泬 1 5720 | 鱷 1 5721 | 輀 1 5722 | 茈 1 5723 | 掳 1 5724 | 鸶 1 5725 | 識 1 5726 | 绡 1 5727 | 偪 1 5728 | 牾 1 5729 | 冔 1 5730 | 蜛 1 5731 | 艉 1 5732 | 阄 1 5733 | 榑 1 5734 | 鬲 1 5735 | 筲 1 5736 | 岈 1 5737 | 璘 1 5738 | 缵 1 5739 | 炁 1 5740 | 骝 1 5741 | 戢 1 5742 | 捌 1 5743 | 惡 1 5744 | 凫 1 5745 | 瑮 1 5746 | 侔 1 5747 | 憍 1 5748 | 倬 1 5749 | 橐 1 5750 | 濩 1 5751 | 噃 1 5752 | 緊 1 5753 | 棼 1 5754 | 憷 1 5755 | 歐 1 5756 | 摺 1 5757 | 覩 1 5758 | 鄮 1 5759 | 丼 1 5760 | 瑀 1 5761 | 郃 1 5762 | 槩 1 5763 | 阗 1 5764 | 炘 1 5765 | 肸 1 5766 | 邙 1 5767 | 実 1 5768 | 歔 1 5769 | 缇 1 5770 | 込 1 5771 | 铖 1 5772 | 逄 1 5773 | 溻 1 5774 | 鳇 1 5775 | 囫 1 5776 | 舣 1 5777 | 啭 1 5778 | 皁 1 5779 | 褔 1 5780 | 搢 1 5781 | 瞫 1 5782 | 诓 1 5783 | 锗 1 5784 | 氽 1 5785 | 揸 1 5786 | 蟪 1 5787 | 鹯 1 5788 | 虿 1 5789 | 暕 1 5790 | 怦 1 5791 | 禫 1 5792 | 藓 1 5793 | 狝 1 5794 | 猇 1 5795 | 鞴 1 5796 | 莼 1 5797 | 睟 1 5798 | 俤 1 5799 | 郇 1 5800 | 翙 1 5801 | 図 1 5802 | 樋 1 5803 | 猱 1 5804 | 肼 1 5805 | 湣 1 5806 | 磬 1 5807 | 陳 1 5808 | 妗 1 5809 | 喟 1 5810 | 鸮 1 5811 | 婖 1 5812 | 缃 1 5813 | 馬 1 5814 | 珰 1 5815 | 澍 1 5816 | 贶 1 5817 | 籀 1 5818 | 嵖 1 5819 | 菪 1 5820 | 溍 1 5821 | 唰 1 5822 | 峁 1 5823 | 駃 1 5824 | 铱 1 5825 | 眇 1 5826 | 嚲 1 5827 | 绂 1 5828 | 蓦 1 5829 | 猞 1 5830 | 琇 1 5831 | 鞆 1 5832 | 隰 1 5833 | 欹 1 5834 | 鍉 1 5835 | 赍 1 5836 | 糬 1 5837 | 豷 1 5838 | 虻 1 5839 | 纁 1 5840 | 悕 1 5841 | 芩 1 5842 | 壅 1 5843 | 雱 1 5844 | 両 1 5845 | 裛 1 5846 | 脁 1 5847 | 纔 1 5848 | 谳 1 5849 | 蛄 1 5850 | 籓 1 5851 | 靥 1 5852 | 盤 1 5853 | 畹 1 5854 | 琎 1 5855 | 箧 1 5856 | 憀 1 5857 | 瘥 1 5858 | 燠 1 5859 | 赊 1 5860 | 嗥 1 5861 | 顼 1 5862 | 圹 1 5863 | 鳔 1 5864 | 瓤 1 5865 | 绨 1 5866 | 殛 1 5867 | 舁 1 5868 | 踉 1 5869 | 箐 1 5870 | 鬻 1 5871 | 菀 1 5872 | 衝 1 5873 | 痤 1 5874 | 權 1 5875 | 垍 1 5876 | 缒 1 5877 | 崦 1 5878 | 緑 1 5879 | 屐 1 5880 | 黧 1 5881 | 蠳 1 5882 | 镡 1 5883 | 廼 1 5884 | 嘢 1 5885 | 盍 1 5886 | 過 1 5887 | 阍 1 5888 | 匏 1 5889 | 騕 1 5890 | 怙 1 5891 | 砩 1 5892 | 畋 1 5893 | 祓 1 5894 | 芃 1 5895 | 骓 1 5896 | 蹰 1 5897 | 箾 1 5898 | 扃 1 5899 | 剣 1 5900 | 椴 1 5901 | 鲽 1 5902 | 為 1 5903 | 窾 1 5904 | 豝 1 5905 | 宍 1 5906 | 垕 1 5907 | 槁 1 5908 | 鍒 1 5909 | 鳣 1 5910 | 踯 1 5911 | 雔 1 5912 | 垿 1 5913 | 踅 1 5914 | 逑 1 5915 | 骢 1 5916 | 碶 1 5917 | 耜 1 5918 | 騠 1 5919 | 搴 1 5920 | 咿 1 5921 | 瓿 1 5922 | 螞 1 5923 | 羣 1 5924 | 邽 1 5925 | 遒 1 5926 | 屺 1 5927 | 伃 1 5928 | 疔 1 5929 | 跄 1 5930 | 鏐 1 5931 | 內 1 5932 | 凼 1 5933 | 鲋 1 5934 | 喑 1 5935 | 锑 1 5936 | 紡 1 5937 | 龢 1 5938 | 枲 1 5939 | 鸷 1 5940 | 乗 1 5941 | 酩 1 5942 | 壸 1 5943 | 況 1 5944 | 啐 1 5945 | 昝 1 5946 | 冨 1 5947 | 郾 1 5948 | 窣 1 5949 | 聴 1 5950 | 満 1 5951 | 庠 1 5952 | 诮 1 5953 | 東 1 5954 | 岍 1 5955 | 骹 1 5956 | 扞 1 5957 | 縡 1 5958 | 騜 1 5959 | 矅 1 5960 | 苌 1 5961 | 蝥 1 5962 | 冫 1 5963 | 蒹 1 5964 | 槻 1 5965 | 氩 1 5966 | 埙 1 5967 | 佾 1 5968 | 悌 1 5969 | 湓 1 5970 | 峴 1 5971 | 藺 1 5972 | 徳 1 5973 | 鵴 1 5974 | 涔 1 5975 | 砝 1 5976 | 碲 1 5977 | 诐 1 5978 | 蹩 1 5979 | 飲 1 5980 | 麇 1 5981 | 蠨 1 5982 | 珅 1 5983 | 忝 1 5984 | 陬 1 5985 | 繇 1 5986 | 棨 1 5987 | 咁 1 5988 | 龇 1 5989 | 眬 1 5990 | 鲱 1 5991 | 漼 1 5992 | 鵰 1 5993 | 柷 1 5994 | 锫 1 5995 | 嘭 1 5996 | 嵛 1 5997 | 鲇 1 5998 | 蚋 1 5999 | 纛 1 6000 | 卮 1 6001 | 鄅 1 6002 | 親 1 6003 | 郄 1 6004 | 幛 1 6005 | 鵝 1 6006 | 鷲 1 6007 | 盁 1 6008 | 瞀 1 6009 | 権 1 6010 | 嗬 1 6011 | 酆 1 6012 | 懑 1 6013 | 髗 1 6014 | 遰 1 6015 | 佺 1 6016 | 锉 1 6017 | 璈 1 6018 | 紙 1 6019 | 膦 1 6020 | 頫 1 6021 | 筭 1 6022 | 墁 1 6023 | 洸 1 6024 | 跣 1 6025 | 鼯 1 6026 | 锳 1 6027 | 僆 1 6028 | 诌 1 6029 | 怼 1 6030 | 飗 1 6031 | 楢 1 6032 | 窀 1 6033 | 皈 1 6034 | 茑 1 6035 | 叆 1 6036 | 剛 1 6037 | 鄜 1 6038 | 孀 1 6039 | 偲 1 6040 | 骖 1 6041 | 鲚 1 6042 | 纮 1 6043 | 暾 1 6044 | c 1 6045 | 觌 1 6046 | 谠 1 6047 | 婄 1 6048 | 偈 1 6049 | 鍊 1 6050 | 铛 1 6051 | 郈 1 6052 | 跶 1 6053 | 扪 1 6054 | 旻 1 6055 | 鲖 1 6056 | 鬯 1 6057 | 蔻 1 6058 | 淠 1 6059 | 聩 1 6060 | 瑱 1 6061 | 炟 1 6062 | 瘰 1 6063 | 醵 1 6064 | 酊 1 6065 | 鳗 1 6066 | 狳 1 6067 | 妯 1 6068 | 遊 1 6069 | 靰 1 6070 | 伋 1 6071 | 稙 1 6072 | 橹 1 6073 | 摽 1 6074 | 钣 1 6075 | 骧 1 6076 | 噤 1 6077 | 丟 1 6078 | 玢 1 6079 | 砻 1 6080 | 忪 1 6081 | 嵨 1 6082 | 仵 1 6083 | 龔 1 6084 | 愫 1 6085 | 礻 1 6086 | 诜 1 6087 | 驽 1 6088 | 倌 1 6089 | 颧 1 6090 | 苫 1 6091 | 嘣 1 6092 | 箦 1 6093 | 鼩 1 6094 | 佉 1 6095 | 楝 1 6096 | 铤 1 6097 | 實 1 6098 | 苁 1 6099 | 郍 1 6100 | 鸩 1 6101 | 镏 1 6102 | 晙 1 6103 | 觜 1 6104 | 琠 1 6105 | 谰 1 6106 | 蕖 1 6107 | 鲐 1 6108 | 箪 1 6109 | 擀 1 6110 | 鉏 1 6111 | 酹 1 6112 | 崐 1 6113 | 醣 1 6114 | 蓁 1 6115 | 淛 1 6116 | 杬 1 6117 | 歴 1 6118 | 煸 1 6119 | 湝 1 6120 | 沇 1 6121 | 褊 1 6122 | 鲧 1 6123 | 玹 1 6124 | 楊 1 6125 | 钌 1 6126 | 鞶 1 6127 | 豇 1 6128 | 磔 1 6129 | 轱 1 6130 | 弐 1 6131 | 飕 1 6132 | 濛 1 6133 | 珣 1 6134 | 樉 1 6135 | 馔 1 6136 | 伛 1 6137 | 葭 1 6138 | 娌 1 6139 | 氘 1 6140 | 鲣 1 6141 | 椁 1 6142 | 榖 1 6143 | 澚 1 6144 | 茝 1 6145 | 瘿 1 6146 | 偻 1 6147 | 墡 1 6148 | 脰 1 6149 | 晊 1 6150 | 柟 1 6151 | 绺 1 6152 | 鄒 1 6153 | 玦 1 6154 | 啕 1 6155 | 慝 1 6156 | 闿 1 6157 | 氅 1 6158 | 柈 1 6159 | 魋 1 6160 | 惲 1 6161 | 芟 1 6162 | 踬 1 6163 | 斱 1 6164 | 褙 1 6165 | 嘧 1 6166 | 鄩 1 6167 | 绌 1 6168 | 饹 1 6169 | 捴 1 6170 | 墎 1 6171 | 圧 1 6172 | 襃 1 6173 | 啻 1 6174 | 縠 1 6175 | 穸 1 6176 | 鲌 1 6177 | 掞 1 6178 | 詃 1 6179 | 烔 1 6180 | 凪 1 6181 | 谂 1 6182 | 帶 1 6183 | 郕 1 6184 | 痧 1 6185 | 粢 1 6186 | 矐 1 6187 | 嬲 1 6188 | 橼 1 6189 | 澪 1 6190 | 劬 1 6191 | 栻 1 6192 | 懶 1 6193 | 蕹 1 6194 | 圄 1 6195 | 蔸 1 6196 | 牂 1 6197 | 瘅 1 6198 | 偁 1 6199 | 竲 1 6200 | 砜 1 6201 | 侩 1 6202 | 枹 1 6203 | 桼 1 6204 | 猁 1 6205 | 麈 1 6206 | 尟 1 6207 | 馲 1 6208 | 艋 1 6209 | 僭 1 6210 | 嫱 1 6211 | 檦 1 6212 | 衽 1 6213 | 鲛 1 6214 | 騴 1 6215 | 醮 1 6216 | 啁 1 6217 | 泐 1 6218 | 揺 1 6219 | 匄 1 6220 | 凃 1 6221 | 伧 1 6222 | 扥 1 6223 | 啫 1 6224 | 厙 1 6225 | 嶝 1 6226 | 鸰 1 6227 | 祊 1 6228 | 雫 1 6229 | 謩 1 6230 | 鶲 1 6231 | 鳜 1 6232 | 慥 1 6233 | 俦 1 6234 | 歩 1 6235 | 噫 1 6236 | 枋 1 6237 | 蓍 1 6238 | 壵 1 6239 | 咂 1 6240 | 蘡 1 6241 | 櫾 1 6242 | 霊 1 6243 | 崮 1 6244 | 砫 1 6245 | 荽 1 6246 | 岙 1 6247 | 窭 1 6248 | 囵 1 6249 | 嬗 1 6250 | 缯 1 6251 | 垴 1 6252 | 牝 1 6253 | 桡 1 6254 | 髫 1 6255 | 鳯 1 6256 | 瑴 1 6257 | 隈 1 6258 | 鼙 1 6259 | 瘳 1 6260 | 醲 1 6261 | 歡 1 6262 | 鎛 1 6263 | 焜 1 6264 | 閟 1 6265 | 瑊 1 6266 | 湎 1 6267 | b 1 6268 | 酞 1 6269 | 鲀 1 6270 | 芔 1 6271 | 膾 1 6272 | 崀 1 6273 | 鸂 1 6274 | 坜 1 6275 | 阝 1 6276 | 谡 1 6277 | 橥 1 6278 | 臨 1 6279 | 帀 1 6280 | 臕 1 6281 | 绀 1 6282 | 讣 1 6283 | 椤 1 6284 | 嗇 1 6285 | 豢 1 6286 | 蟻 1 6287 | 氍 1 6288 | 沢 1 6289 | 暦 1 6290 | 芾 1 6291 | 螅 1 6292 | 銷 1 6293 | 麿 1 6294 | 鹔 1 6295 | 鷩 1 6296 | 阏 1 6297 | 疎 1 6298 | 邠 1 6299 | 愀 1 6300 | 嶓 1 6301 | 旃 1 6302 | 険 1 6303 | 竽 1 6304 | 鄋 1 6305 | 璎 1 6306 | 镣 1 6307 | 僶 1 6308 | 済 1 6309 | 芫 1 6310 | 忾 1 6311 | 纩 1 6312 | 績 1 6313 | 閤 1 6314 | 谵 1 6315 | 雎 1 6316 | 穑 1 6317 | 薁 1 6318 | 憙 1 6319 | 堨 1 6320 | 艄 1 6321 | 湜 1 6322 | 尻 1 6323 | 佝 1 6324 | 喋 1 6325 | 騪 1 6326 | 観 1 6327 | 沆 1 6328 | 黒 1 6329 | 塩 1 6330 | 嵒 1 6331 | 勣 1 6332 | 酺 1 6333 | 罃 1 6334 | 験 1 6335 | 帻 1 6336 | 瑷 1 6337 | 钍 1 6338 | 冏 1 6339 | 蘖 1 6340 | 効 1 6341 | 篓 1 6342 | 俛 1 6343 | 墪 1 6344 | 唷 1 6345 | 歳 1 6346 | 墋 1 6347 | 涙 1 6348 | 挲 1 6349 | 勧 1 6350 | 樗 1 6351 | 怛 1 6352 | 囔 1 6353 | 桫 1 6354 | 躅 1 6355 | 璩 1 6356 | 薳 1 6357 | 襀 1 6358 | 蕈 1 6359 | 黥 1 6360 | 悆 1 6361 | 鋒 1 6362 | 塡 1 6363 | 兒 1 6364 | 廣 1 6365 | 褭 1 6366 | 吿 1 6367 | 鹣 1 6368 | 坩 1 6369 | 钕 1 6370 | 悝 1 6371 | 雩 1 6372 | 晉 1 6373 | 蓊 1 6374 | 菰 1 6375 | 閑 1 6376 | 坒 1 6377 | 噼 1 6378 | 蘇 1 6379 | 逓 1 6380 | 砣 1 6381 | 慉 1 6382 | 罍 1 6383 | 哐 1 6384 | 嶋 1 6385 | 坼 1 6386 | 阽 1 6387 | 歯 1 6388 | 覅 1 6389 | 栄 1 6390 | 衄 1 6391 | 哧 1 6392 | 虛 1 6393 | 桯 1 6394 | 胴 1 6395 | 纡 1 6396 | 碥 1 6397 | 靐 1 6398 | 黡 1 6399 | 學 1 6400 | 薜 1 6401 | 龠 1 6402 | 涬 1 6403 | 镧 1 6404 | 褦 1 6405 | 妱 1 6406 | 鲳 1 6407 | 镮 1 6408 | 侪 1 6409 | 駆 1 6410 | 诒 1 6411 | 癯 1 6412 | 椐 1 6413 | 嬜 1 6414 | 劭 1 6415 | 聶 1 6416 | 虺 1 6417 | 圯 1 6418 | 钯 1 6419 | 貿 1 6420 | 滓 1 6421 | 厖 1 6422 | 簟 1 6423 | 奝 1 6424 | 蛸 1 6425 | 貕 1 6426 | 砲 1 6427 | 岵 1 6428 | 寛 1 6429 | 榼 1 6430 | 牁 1 6431 | 売 1 6432 | 钫 1 6433 | 調 1 6434 | 囗 1 6435 | 蠓 1 6436 | 瘗 1 6437 | 邘 1 6438 | 柢 1 6439 | 牯 1 6440 | 晷 1 6441 | 婊 1 6442 | 衾 1 6443 | 踽 1 6444 | 廛 1 6445 | 砟 1 6446 | 鼱 1 6447 | 纰 1 6448 | 煅 1 6449 | 邅 1 6450 | 粝 1 6451 | 絜 1 6452 | 嘁 1 6453 | 缛 1 6454 | 疬 1 6455 | 鸱 1 6456 | 跼 1 6457 | 継 1 6458 | 猲 1 6459 | 滏 1 6460 | 囟 1 6461 | 桠 1 6462 | 襶 1 6463 | 皴 1 6464 | 翚 1 6465 | 嶃 1 6466 | 裡 1 6467 | 孬 1 6468 | 掼 1 6469 | 髂 1 6470 | 苒 1 6471 | 洺 1 6472 | 齮 1 6473 | 犰 1 6474 | 顗 1 6475 | 亹 1 6476 | 俣 1 6477 | 媖 1 6478 | 龘 1 6479 | 讠 1 6480 | 渌 1 6481 | 嬅 1 6482 | 阇 1 6483 | 訏 1 6484 | 鹗 1 6485 | 篚 1 6486 | 蒑 1 6487 | 皝 1 6488 | 蕐 1 6489 | 疰 1 6490 | 伷 1 6491 | 蠹 1 6492 | 竚 1 6493 | 鎉 1 6494 | 垱 1 6495 | 買 1 6496 | 鹀 1 6497 | 嵂 1 6498 | 觥 1 6499 | 矱 1 6500 | 毹 1 6501 | 骘 1 6502 | 搧 1 6503 | 洌 1 6504 | 琲 1 6505 | 嵬 1 6506 | 檎 1 6507 | 眛 1 6508 | -------------------------------------------------------------------------------- /lib/file_wav.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import wave 3 | 4 | import numpy as np 5 | import librosa 6 | from python_speech_features import mfcc, delta, logfbank 7 | from scipy.fftpack import fft 8 | import math 9 | import random 10 | import cv2 11 | 12 | 13 | def get_wav_list(filename): 14 | """ 15 | 读取一个wav文件列表,返回一个存储该列表的字典类型值 16 | ps:在数据中专门有几个文件用于存放用于训练、验证和测试的wav文件列表 17 | """ 18 | txt_obj = open(filename, 'r') # 打开文件并读入 19 | txt_text = txt_obj.read() 20 | txt_lines = txt_text.split('\n') # 文本分割 21 | dic_filelist = {} # 初始化字典 22 | list_wavmark = [] # 初始化wav列表 23 | for i in txt_lines: 24 | if i: 25 | txt_l = i.strip().split(' ') 26 | dic_filelist[txt_l[0]] = " ".join(txt_l[1:]) 27 | list_wavmark.append(txt_l[0]) 28 | txt_obj.close() 29 | return dic_filelist, list_wavmark 30 | 31 | 32 | def get_wav_symbol(filename): 33 | """ 34 | 读取指定数据集中,所有wav文件对应的语音符号 35 | 返回一个存储符号集的字典类型值 36 | """ 37 | txt_obj = open(filename, 'r') # 打开文件并读入 38 | txt_text = txt_obj.read() 39 | txt_lines = txt_text.split('\n') # 文本分割 40 | dic_symbol_list = {} # 初始化字典 41 | list_symbolmark = [] # 初始化symbol列表 42 | for i in txt_lines: 43 | if i: 44 | txt_l = i.strip().split(' ') 45 | dic_symbol_list[txt_l[0]] = txt_l[1:] 46 | list_symbolmark.append(txt_l[0]) 47 | txt_obj.close() 48 | return dic_symbol_list, list_symbolmark 49 | 50 | 51 | def get_wav_word_symbol(filename): 52 | txt_obj = open(filename, 'r') # 打开文件并读入 53 | txt_text = txt_obj.read() 54 | txt_lines = txt_text.split('\n') # 文本分割 55 | dic_symbol_list = {} # 初始化字典 56 | list_symbolmark = [] # 初始化symbol列表 57 | for i in txt_lines: 58 | if i: 59 | txt_l = i.strip().split('[space]') 60 | dic_symbol_list[txt_l[0]] = txt_l[1] 61 | list_symbolmark.append(txt_l[0]) 62 | txt_obj.close() 63 | return dic_symbol_list, list_symbolmark 64 | 65 | 66 | def read_wav_data(filename, speed=False): 67 | """ 68 | 读取一个wav文件,返回声音信号的时域谱矩阵和播放时间 69 | """ 70 | wav = wave.open(filename, "rb") # 打开一个wav格式的声音文件流 71 | num_frame = wav.getnframes() # 获取帧数 72 | num_channel = wav.getnchannels() # 获取声道数 73 | framerate = wav.getframerate() # 获取采样率 74 | str_data = wav.readframes(num_frame) # 读取全部的帧 75 | # print num_channel, framerate, wav.getsampwidth() 76 | wav.close() # 关闭流 77 | wave_data = np.fromstring(str_data, dtype=np.short) # 将声音文件数据转换为数组矩阵形式 78 | wave_data.shape = -1, num_channel # 按照声道数将数组整形,单声道时候是一列数组,双声道时候是两列的矩阵 79 | wave_data = wave_data.T # 将矩阵转置 80 | if speed and wave_data.shape[0] == 1: 81 | if random.random() <= 0.5: 82 | speed_rate = random.random() * 0.2 + 0.9 83 | wave_data = [speed_tune(wave_data[0], speed_rate)] 84 | return wave_data, framerate 85 | 86 | 87 | def read_wav_data_from_librosa(filename, framerate=16000, speed=False): 88 | wave_data = librosa.load(filename, sr=framerate, mono=True)[0] 89 | if speed: 90 | if random.random() <= 0.5: 91 | speed_rate = random.random() * 0.2 + 0.9 92 | wave_data = speed_tune(wave_data, speed_rate) 93 | return [wave_data], framerate 94 | 95 | x = np.linspace(0, 400 - 1, 400, dtype=np.int64) 96 | w = 0.54 - 0.46 * np.cos(2 * np.pi * (x) / (400 - 1)) # 汉明窗 97 | 98 | 99 | def get_frequency_feature(wavsignal, fs): 100 | # wav波形 加时间窗以及时移10ms 101 | time_window = 25 # 单位ms 102 | window_length = fs / 1000 * time_window # 计算窗长度的公式,目前全部为400固定值 103 | 104 | wav_arr = np.array(wavsignal) 105 | wav_length = wav_arr.shape[1] 106 | 107 | range0_end = int(len(wavsignal[0]) * 1.0 / fs * 1000 - time_window) // 10 # 计算循环终止的位置,也就是最终生成的窗数 108 | data_input = np.zeros((range0_end, 200), dtype=np.float) # 用于存放最终的频率特征数据 109 | 110 | for i in range(0, range0_end): 111 | p_start = i * 160 112 | p_end = p_start + 400 113 | 114 | data_line = wav_arr[0, p_start:p_end] 115 | 116 | data_line = data_line * w # 加窗 117 | 118 | data_line = np.abs(fft(data_line)) / wav_length 119 | 120 | data_input[i] = data_line[0:200] # 设置为400除以2的值(即200)是取一半数据,因为是对称的 121 | 122 | data_input = np.log(data_input + 1) 123 | return data_input 124 | 125 | 126 | def get_mfcc_feature(wavsignal, fs): 127 | # 获取输入特征 128 | feat_mfcc = mfcc(wavsignal[0], fs) 129 | feat_mfcc_d = delta(feat_mfcc, 2) 130 | feat_mfcc_dd = delta(feat_mfcc_d, 2) 131 | # 返回值分别是mfcc特征向量的矩阵及其一阶差分和二阶差分矩阵 132 | wav_feature = np.column_stack((feat_mfcc, feat_mfcc_d, feat_mfcc_dd)) 133 | return wav_feature 134 | 135 | 136 | def get_log_mel_fbank(wavsignal, fs, add_delta=False, nor=False, if_stack_subsample=True): 137 | fbank_feat = logfbank(wavsignal[0], fs, nfilt=80) 138 | if add_delta: 139 | fbank_feat = np.column_stack((fbank_feat, delta(fbank_feat, 2))) 140 | if nor: 141 | fbank_feat = wav_scale(fbank_feat) 142 | if if_stack_subsample: 143 | fbank_feat = stack_subsample(fbank_feat) 144 | return fbank_feat 145 | 146 | 147 | def stack_subsample(wav_feat, stack_num=4, frame_rate=3): 148 | # stacked with 3 frames to the left and downsampled to a 30ms frame rate 149 | new_feat = [] 150 | length = wav_feat.shape[0] 151 | for i in range(stack_num - 1, length, frame_rate): 152 | stack_feat = wav_feat[i + 1 - stack_num: i + 1].flatten() 153 | new_feat.append(stack_feat) 154 | 155 | if (length - stack_num) % frame_rate != 0: 156 | new_feat.append(wav_feat[length - stack_num: length].flatten()) 157 | return np.array(new_feat) 158 | 159 | 160 | def wav_scale(energy): 161 | ''' 162 | 语音信号能量归一化 163 | ''' 164 | means = energy.mean() # 均值 165 | var = energy.var() # 方差 166 | e = (energy - means) / math.sqrt(var) # 归一化能量 167 | return e 168 | 169 | 170 | def speed_tune(wav, speed_rate): 171 | wav_speed_tune = cv2.resize(wav, (1, int(len(wav) * speed_rate))).squeeze() 172 | return wav_speed_tune 173 | 174 | 175 | if __name__ == '__main__': 176 | wavsignal, fs = read_wav_data("../../data/forvo/搭讪_来这走走怎么样?_126925.wav") 177 | print wavsignal[0].max(), wavsignal[0].min(), wavsignal.shape 178 | import librosa 179 | signal = librosa.util.buf_to_float(wavsignal[0], dtype=np.float32) 180 | print signal.shape, signal.max(), signal.min() 181 | # wavsignal, fs = read_wav_data_from_librosa("../../data/forvo/3_一二三四五六七八九十_4297085.wav") 182 | # print wavsignal[0].max(), wavsignal[0].min(), wavsignal[0].shape 183 | # import time 184 | # 185 | # s = time.time() 186 | # for _ in range(100): 187 | # wav = read_wav_data_from_librosa("../../data/forvo/搭讪_来这走走怎么样?_126925.wav", speed=True) 188 | # 189 | # print (time.time() - s) / 100 * 64 -------------------------------------------------------------------------------- /lib/hyperparams.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | class Train: 3 | learning_rate = 0.0001 4 | optimizer = 'adam' 5 | var_filter = '' 6 | grads_clip = 5 7 | loss_ce = 1.0 8 | loss_mwer = 0.5 9 | num_batch = 5614 10 | is_scheduled = False 11 | 12 | 13 | class Test: 14 | beam_size = 10 15 | max_target_length = 34 16 | lp_alpha = 0.6 17 | 18 | 19 | class Hyperparams: 20 | '''Hyperparameters''' 21 | # training 22 | batch_size = 8 # alias = N 23 | lr = 0.0001 # learning rate. In paper, learning rate is adjusted to the global step. 24 | logdir = 'logdir' # log directory 25 | 26 | # model 27 | maxlen = 34 # Maximum number of words in a sentence. alias = T. 28 | hidden_units = 512 # alias = C 29 | num_blocks = 6 # number of encoder/decoder blocks 30 | num_epochs = 10 31 | num_heads = 8 32 | dropout_rate = 0.1 33 | sinusoid = False # If True, use sinusoid. If false, positional embedding. 34 | sample_rate = 16000 35 | audio_length = 532 36 | audio_feature_length = 320 37 | audio_signal_length = 16 * sample_rate 38 | log_mel_length = 1598 39 | 40 | save_epochs = 3 41 | beam_size = 10 42 | end_id = 3 43 | filter_size = 5 44 | num_filters_1 = 64 45 | num_filters_2 = 128 46 | filter_sizes = [1, 3, 5, 7] 47 | bn_decay = 0.9997 48 | bn_epsilon = 0.001 49 | 50 | train = Train 51 | test = Test 52 | 53 | loss_type = ['ce', 'l2', 'mwer'] -------------------------------------------------------------------------------- /lib/model.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | # 训练基类,包括多GPU并行运算等 3 | import os 4 | import random 5 | import re 6 | import sys 7 | 8 | import tensorflow as tf 9 | from tensorflow.python.ops import init_ops 10 | 11 | current_relative_path = lambda x: os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), x)) 12 | from nn_utils import learning_rate_decay, average_gradients 13 | 14 | 15 | class Model(object): 16 | def __init__(self, hp, num_gpu): 17 | super(Model, self).__init__() 18 | self._hp = hp 19 | self.num_gpu = num_gpu 20 | self.graph = tf.Graph() 21 | 22 | self._devices = ['/gpu:%d' % i for i in range(num_gpu)] if num_gpu > 0 else ['/cpu:0'] 23 | self.src_pls = tuple() 24 | self.dst_pls = tuple() 25 | 26 | self.preds, self.istarget = None, None 27 | self.mean_loss, self.train_op = None, None 28 | self.test_distance, self.test_length = 0, 0 29 | self.distance, self.length = 0, 0 30 | 31 | self.global_step, self.learning_rate, self._optimizer = self.prepare_training() 32 | self._initializer = init_ops.variance_scaling_initializer(scale=1.0, mode='fan_avg', distribution='uniform') 33 | 34 | def prepare_training(self): 35 | with self.graph.as_default(): 36 | # Optimizer 37 | global_step = tf.get_variable(name='global_step', dtype=tf.int64, shape=[], 38 | trainable=False, initializer=tf.zeros_initializer) 39 | 40 | learning_rate = tf.convert_to_tensor(self._hp.train.learning_rate, dtype=tf.float32) 41 | if self._hp.train.optimizer == 'adam': 42 | optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate, beta1=0.9, beta2=0.98, epsilon=1e-8) 43 | elif self._hp.train.optimizer == 'adam_decay': 44 | learning_rate *= learning_rate_decay(self._hp, global_step) 45 | optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate, beta1=0.9, beta2=0.98, epsilon=1e-9) 46 | elif self._hp.train.optimizer == 'sgd': 47 | optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate) 48 | elif self._hp.train.optimizer == 'mom': 49 | optimizer = tf.train.MomentumOptimizer(learning_rate, momentum=0.9) 50 | else: 51 | optimizer = tf.train.GradientDescentOptimizer(learning_rate=learning_rate) 52 | 53 | return global_step, learning_rate, optimizer 54 | 55 | def make_parallel(self, reuse=None, is_training=True, get_wer=False): 56 | if len(self.src_pls) <= 1: 57 | raise ValueError 58 | 59 | with self.graph.as_default(): 60 | loss_list, gv_list = [], [] 61 | preds_list, istarget_list = [], [] 62 | cache = {} 63 | load = dict([(d, 0) for d in self._devices]) 64 | for i, (X, Y, device) in enumerate(zip(self.src_pls, self.dst_pls, self._devices)): 65 | 66 | def daisy_chain_getter(getter, name, *args, **kwargs): 67 | """Get a variable and cache in a daisy chain.""" 68 | device_var_key = (device, name) 69 | if device_var_key in cache: 70 | # if we have the variable on the correct device, return it. 71 | return cache[device_var_key] 72 | if name in cache: 73 | # if we have it on a different device, copy it from the last device 74 | v = tf.identity(cache[name]) 75 | else: 76 | var = getter(name, *args, **kwargs) 77 | v = tf.identity(var._ref()) # pylint: disable=protected-access 78 | # update the cache 79 | cache[name] = v 80 | cache[device_var_key] = v 81 | return v 82 | 83 | def balanced_device_setter(op): 84 | """Balance variables to all devices.""" 85 | if op.type in {'Variable', 'VariableV2', 'VarHandleOp'}: 86 | # return self._sync_device 87 | min_load = min(load.values()) 88 | min_load_devices = [d for d in load if load[d] == min_load] 89 | chosen_device = random.choice(min_load_devices) 90 | load[chosen_device] += op.outputs[0].get_shape().num_elements() 91 | return chosen_device 92 | return device 93 | 94 | device_setter = balanced_device_setter 95 | if i > 0: 96 | reuse = True 97 | 98 | with tf.variable_scope(tf.get_variable_scope(), 99 | initializer=self._initializer, 100 | custom_getter=daisy_chain_getter, 101 | reuse=reuse): 102 | with tf.device(device_setter): 103 | loss, preds, istarget = self.model_loss(X, Y, reuse=reuse, is_training=is_training, scope="transformer") 104 | loss_list.append(loss) 105 | preds_list.append(preds) 106 | istarget_list.append(istarget) 107 | var_list = tf.trainable_variables() 108 | if self._hp.train.var_filter: 109 | var_list = [v for v in var_list if re.match(self._hp.train.var_filter, v.name)] 110 | gv_list.append(self._optimizer.compute_gradients(loss, var_list=var_list)) 111 | if get_wer: 112 | distance, length = self.get_wer(Y, preds, index_same=True) 113 | self.distance += distance 114 | self.length += length 115 | 116 | loss = tf.reduce_mean(loss_list) 117 | 118 | # Clip gradients and then apply. 119 | grads_and_vars = average_gradients(gv_list) 120 | 121 | if self._hp.train.grads_clip > 0: 122 | grads, grads_norm = tf.clip_by_global_norm([gv[0] for gv in grads_and_vars], 123 | clip_norm=self._hp.train.grads_clip) 124 | grads_and_vars = zip(grads, [gv[1] for gv in grads_and_vars]) 125 | else: 126 | grads_norm = tf.global_norm([gv[0] for gv in grads_and_vars]) 127 | 128 | train_op = self._optimizer.apply_gradients(grads_and_vars, global_step=self.global_step) 129 | preds = tf.concat(preds_list, 0) 130 | istarget = tf.concat(istarget_list, 0) 131 | 132 | return loss, grads_norm, train_op, preds, istarget 133 | 134 | def make_parallel_beam_search(self, reuse=True, is_training=False, get_wer=False): 135 | if len(self.src_pls) <= 1: 136 | raise ValueError 137 | 138 | with self.graph.as_default(): 139 | prediction_list = [] 140 | for i, (X, Y, device) in enumerate(zip(self.src_pls, self.dst_pls, self._devices)): 141 | if i > 0: 142 | reuse = True 143 | with tf.variable_scope(tf.get_variable_scope(), reuse=reuse, initializer=self._initializer): 144 | with tf.device(device): 145 | def true_fn(): 146 | prediction = self.model_beam_search_preds(X, reuse, is_training, scope="transformer") 147 | return prediction 148 | 149 | def false_fn(): 150 | return tf.zeros([0, 0], dtype=tf.int32) 151 | 152 | prediction = tf.cond(tf.greater(tf.shape(X)[0], 0), true_fn, false_fn) 153 | if get_wer: 154 | test_distance, test_length = self.get_wer(Y, prediction) 155 | self.test_distance += test_distance 156 | self.test_length += test_length 157 | 158 | prediction_list.append(prediction) 159 | 160 | max_length = tf.reduce_max([tf.shape(pred)[1] for pred in prediction_list]) 161 | 162 | def pad_to_max_length(input, length): 163 | """Pad the input (with rank 2) with 3() to the given length in the second axis.""" 164 | shape = tf.shape(input) 165 | padding = tf.ones([shape[0], length - shape[1]], dtype=tf.int32) * 3 166 | return tf.concat([input, padding], axis=1) 167 | 168 | prediction_list = tf.concat([pad_to_max_length(pred, max_length) for pred in prediction_list], 0) 169 | return prediction_list 170 | 171 | def model_output(self, x, y, reuse, is_training, scope): 172 | raise NotImplementedError() 173 | 174 | def model_loss(self, x, y, reuse, is_training, scope): 175 | raise NotImplementedError() 176 | 177 | def model_beam_search_preds(self, x, reuse, is_training, scope): 178 | raise NotImplementedError() 179 | 180 | def get_wer(self, y, preds, index_same=False): 181 | raise NotImplementedError() -------------------------------------------------------------------------------- /lib/modules.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from __future__ import print_function 4 | import tensorflow as tf 5 | import numpy as np 6 | 7 | 8 | def normalize(inputs, 9 | epsilon=1e-8, 10 | scope="ln", 11 | reuse=None): 12 | '''Applies layer normalization. 13 | 14 | Args: 15 | inputs: A tensor with 2 or more dimensions, where the first dimension has 16 | `batch_size`. 17 | epsilon: A floating number. A very small number for preventing ZeroDivision Error. 18 | scope: Optional scope for `variable_scope`. 19 | reuse: Boolean, whether to reuse the weights of a previous layer 20 | by the same name. 21 | 22 | Returns: 23 | A tensor with the same shape and data dtype as `inputs`. 24 | ''' 25 | with tf.variable_scope(scope, reuse=reuse): 26 | inputs_shape = inputs.get_shape() 27 | params_shape = inputs_shape[-1:] 28 | 29 | mean, variance = tf.nn.moments(inputs, [-1], keep_dims=True) 30 | # beta = tf.get_variable("bata", initializer=tf.zeros(params_shape)) 31 | # gamma = tf.get_variable("gamma", initializer=tf.ones(params_shape)) 32 | beta = tf.get_variable("bata", shape=params_shape, initializer=tf.zeros_initializer()) 33 | gamma = tf.get_variable("gamma", shape=params_shape, initializer=tf.ones_initializer()) 34 | normalized = (inputs - mean) / ((variance + epsilon) ** (.5)) 35 | outputs = gamma * normalized + beta 36 | 37 | return outputs 38 | 39 | 40 | def embedding(inputs, 41 | vocab_size, 42 | num_units, 43 | zero_pad=True, 44 | scale=True, 45 | scope="embedding", 46 | reuse=None): 47 | '''Embeds a given tensor. 48 | Args: 49 | inputs: A `Tensor` with type `int32` or `int64` containing the ids 50 | to be looked up in `lookup table`. 51 | vocab_size: An int. Vocabulary size. 52 | num_units: An int. Number of embedding hidden units. 53 | zero_pad: A boolean. If True, all the values of the fist row (id 0) 54 | should be constant zeros. 55 | scale: A boolean. If True. the outputs is multiplied by sqrt num_units. 56 | scope: Optional scope for `variable_scope`. 57 | reuse: Boolean, whether to reuse the weights of a previous layer 58 | by the same name. 59 | Returns: 60 | A `Tensor` with one more rank than inputs's. The last dimensionality 61 | should be `num_units`. 62 | 63 | For example, 64 | 65 | ``` 66 | import tensorflow as tf 67 | 68 | inputs = tf.to_int32(tf.reshape(tf.range(2*3), (2, 3))) 69 | outputs = embedding(inputs, 6, 2, zero_pad=True) 70 | with tf.Session() as sess: 71 | sess.run(tf.global_variables_initializer()) 72 | print sess.run(outputs) 73 | >> 74 | [[[ 0. 0. ] 75 | [ 0.09754146 0.67385566] 76 | [ 0.37864095 -0.35689294]] 77 | [[-1.01329422 -1.09939694] 78 | [ 0.7521342 0.38203377] 79 | [-0.04973143 -0.06210355]]] 80 | ``` 81 | 82 | ``` 83 | import tensorflow as tf 84 | 85 | inputs = tf.to_int32(tf.reshape(tf.range(2*3), (2, 3))) 86 | outputs = embedding(inputs, 6, 2, zero_pad=False) 87 | with tf.Session() as sess: 88 | sess.run(tf.global_variables_initializer()) 89 | print sess.run(outputs) 90 | >> 91 | [[[-0.19172323 -0.39159766] 92 | [-0.43212751 -0.66207761] 93 | [ 1.03452027 -0.26704335]] 94 | [[-0.11634696 -0.35983452] 95 | [ 0.50208133 0.53509563] 96 | [ 1.22204471 -0.96587461]]] 97 | ``` 98 | ''' 99 | with tf.variable_scope(scope, reuse=reuse): 100 | lookup_table = tf.get_variable('lookup_table', 101 | dtype=tf.float32, 102 | shape=[vocab_size, num_units], 103 | initializer=tf.contrib.layers.xavier_initializer()) 104 | if zero_pad: 105 | lookup_table = tf.concat((tf.zeros(shape=[1, num_units]), 106 | lookup_table[1:, :]), 0) 107 | outputs = tf.nn.embedding_lookup(lookup_table, inputs) 108 | 109 | if scale: 110 | outputs = outputs * (num_units ** 0.5) 111 | 112 | return outputs 113 | 114 | 115 | def positional_encoding(inputs, 116 | num_units, 117 | zero_pad=True, 118 | scale=True, 119 | scope="positional_encoding", 120 | reuse=None): 121 | '''Sinusoidal Positional_Encoding. 122 | Args: 123 | inputs: A 2d Tensor with shape of (N, T). 124 | num_units: Output dimensionality 125 | zero_pad: Boolean. If True, all the values of the first row (id = 0) should be constant zero 126 | scale: Boolean. If True, the output will be multiplied by sqrt num_units(check details from paper) 127 | scope: Optional scope for `variable_scope`. 128 | reuse: Boolean, whether to reuse the weights of a previous layer 129 | by the same name. 130 | Returns: 131 | A 'Tensor' with one more rank than inputs's, with the dimensionality should be 'num_units' 132 | ''' 133 | 134 | N, T = inputs.get_shape().as_list()[:2] 135 | with tf.variable_scope(scope, reuse=reuse): 136 | position_ind = tf.tile(tf.expand_dims(tf.range(T), 0), [N, 1]) 137 | 138 | # First part of the PE function: sin and cos argument 139 | position_enc = np.array([ 140 | [pos / np.power(10000, 2. * i / num_units) for i in range(num_units)] 141 | for pos in range(T)]) 142 | 143 | # Second part, apply the cosine to even columns and sin to odds. 144 | position_enc[:, 0::2] = np.sin(position_enc[:, 0::2]) # dim 2i 145 | position_enc[:, 1::2] = np.cos(position_enc[:, 1::2]) # dim 2i+1 146 | 147 | # Convert to a tensor 148 | lookup_table = tf.convert_to_tensor(position_enc) 149 | 150 | if zero_pad: 151 | lookup_table = tf.concat((tf.zeros(shape=[1, num_units]), 152 | lookup_table[1:, :]), 0) 153 | outputs = tf.nn.embedding_lookup(lookup_table, position_ind) 154 | 155 | if scale: 156 | outputs = outputs * num_units ** 0.5 157 | 158 | return outputs 159 | 160 | 161 | def multihead_attention(queries, 162 | keys, 163 | num_units=None, 164 | num_heads=8, 165 | dropout_rate=0, 166 | is_training=True, 167 | causality=False, 168 | scope="multihead_attention", 169 | reuse=None): 170 | '''Applies multihead attention. 171 | 172 | Args: 173 | queries: A 3d tensor with shape of [N, T_q, C_q]. 174 | keys: A 3d tensor with shape of [N, T_k, C_k]. 175 | num_units: A scalar. Attention size. 176 | dropout_rate: A floating point number. 177 | is_training: Boolean. Controller of mechanism for dropout. 178 | causality: Boolean. If true, units that reference the future are masked. 179 | num_heads: An int. Number of heads. 180 | scope: Optional scope for `variable_scope`. 181 | reuse: Boolean, whether to reuse the weights of a previous layer 182 | by the same name. 183 | 184 | Returns 185 | A 3d tensor with shape of (N, T_q, C) 186 | ''' 187 | with tf.variable_scope(scope, reuse=reuse): 188 | # Set the fall back option for num_units 189 | if num_units is None: 190 | num_units = queries.get_shape().as_list[-1] 191 | 192 | # Linear projections 193 | Q = tf.layers.dense(queries, num_units, activation=tf.nn.relu) # (N, T_q, C) 194 | K = tf.layers.dense(keys, num_units, activation=tf.nn.relu) # (N, T_k, C) 195 | V = tf.layers.dense(keys, num_units, activation=tf.nn.relu) # (N, T_k, C) 196 | 197 | # Split and concat 198 | Q_ = tf.concat(tf.split(Q, num_heads, axis=2), axis=0) # (h*N, T_q, C/h) 199 | K_ = tf.concat(tf.split(K, num_heads, axis=2), axis=0) # (h*N, T_k, C/h) 200 | V_ = tf.concat(tf.split(V, num_heads, axis=2), axis=0) # (h*N, T_k, C/h) 201 | 202 | # Multiplication 203 | outputs = tf.matmul(Q_, tf.transpose(K_, [0, 2, 1])) # (h*N, T_q, T_k) 204 | 205 | # Scale 206 | outputs = outputs / (K_.get_shape().as_list()[-1] ** 0.5) 207 | 208 | # Key Masking 209 | key_masks = tf.sign(tf.abs(tf.reduce_sum(keys, axis=-1))) # (N, T_k) 210 | key_masks = tf.tile(key_masks, [num_heads, 1]) # (h*N, T_k) 211 | key_masks = tf.tile(tf.expand_dims(key_masks, 1), [1, tf.shape(queries)[1], 1]) # (h*N, T_q, T_k) 212 | 213 | paddings = tf.ones_like(outputs) * (-2 ** 32 + 1) 214 | outputs = tf.where(tf.equal(key_masks, 0), paddings, outputs) # (h*N, T_q, T_k) 215 | 216 | # Causality = Future blinding 217 | if causality: 218 | diag_vals = tf.ones_like(outputs[0, :, :]) # (T_q, T_k) 219 | # tril = tf.contrib.linalg.LinearOperatorTriL(diag_vals).to_dense() # (T_q, T_k) 220 | tril = tf.linalg.LinearOperatorLowerTriangular(diag_vals).to_dense() # (T_q, T_k) 221 | masks = tf.tile(tf.expand_dims(tril, 0), [tf.shape(outputs)[0], 1, 1]) # (h*N, T_q, T_k) 222 | 223 | paddings = tf.ones_like(masks) * (-2 ** 32 + 1) 224 | outputs = tf.where(tf.equal(masks, 0), paddings, outputs) # (h*N, T_q, T_k) 225 | 226 | # Activation 227 | outputs = tf.nn.softmax(outputs) # (h*N, T_q, T_k) 228 | 229 | # Query Masking 230 | query_masks = tf.sign(tf.abs(tf.reduce_sum(queries, axis=-1))) # (N, T_q) 231 | query_masks = tf.tile(query_masks, [num_heads, 1]) # (h*N, T_q) 232 | query_masks = tf.tile(tf.expand_dims(query_masks, -1), [1, 1, tf.shape(keys)[1]]) # (h*N, T_q, T_k) 233 | outputs *= query_masks # broadcasting. (N, T_q, C) 234 | 235 | # Dropouts 236 | outputs = tf.layers.dropout(outputs, rate=dropout_rate, training=tf.convert_to_tensor(is_training)) 237 | 238 | # Weighted sum 239 | outputs = tf.matmul(outputs, V_) # ( h*N, T_q, C/h) 240 | 241 | # Restore shape 242 | outputs = tf.concat(tf.split(outputs, num_heads, axis=0), axis=2) # (N, T_q, C) 243 | 244 | # Residual connection 245 | outputs += queries 246 | 247 | # Normalize 248 | outputs = normalize(outputs, reuse=reuse) # (N, T_q, C) 249 | 250 | return outputs 251 | 252 | 253 | def feedforward(inputs, 254 | num_units=[2048, 512], 255 | scope="multihead_attention", 256 | reuse=None): 257 | '''Point-wise feed forward net. 258 | 259 | Args: 260 | inputs: A 3d tensor with shape of [N, T, C]. 261 | num_units: A list of two integers. 262 | scope: Optional scope for `variable_scope`. 263 | reuse: Boolean, whether to reuse the weights of a previous layer 264 | by the same name. 265 | 266 | Returns: 267 | A 3d tensor with the same shape and dtype as inputs 268 | ''' 269 | with tf.variable_scope(scope, reuse=reuse): 270 | # Inner layer 271 | params = {"inputs": inputs, "filters": num_units[0], "kernel_size": 1, 272 | "activation": tf.nn.relu, "use_bias": True} 273 | outputs = tf.layers.conv1d(**params) 274 | 275 | # Readout layer 276 | params = {"inputs": outputs, "filters": num_units[1], "kernel_size": 1, 277 | "activation": None, "use_bias": True} 278 | outputs = tf.layers.conv1d(**params) 279 | 280 | # Residual connection 281 | outputs += inputs 282 | 283 | # Normalize 284 | outputs = normalize(outputs, reuse=reuse, scope="feed_ln") 285 | 286 | return outputs 287 | 288 | 289 | def label_smoothing(inputs, epsilon=0.1): 290 | '''Applies label smoothing. See https://arxiv.org/abs/1512.00567. 291 | 292 | Args: 293 | inputs: A 3d tensor with shape of [N, T, V], where V is the number of vocabulary. 294 | epsilon: Smoothing rate. 295 | 296 | For example, 297 | 298 | ``` 299 | import tensorflow as tf 300 | inputs = tf.convert_to_tensor([[[0, 0, 1], 301 | [0, 1, 0], 302 | [1, 0, 0]], 303 | [[1, 0, 0], 304 | [1, 0, 0], 305 | [0, 1, 0]]], tf.float32) 306 | 307 | outputs = label_smoothing(inputs) 308 | 309 | with tf.Session() as sess: 310 | print(sess.run([outputs])) 311 | 312 | >> 313 | [array([[[ 0.03333334, 0.03333334, 0.93333334], 314 | [ 0.03333334, 0.93333334, 0.03333334], 315 | [ 0.93333334, 0.03333334, 0.03333334]], 316 | [[ 0.93333334, 0.03333334, 0.03333334], 317 | [ 0.93333334, 0.03333334, 0.03333334], 318 | [ 0.03333334, 0.93333334, 0.03333334]]], dtype=float32)] 319 | ``` 320 | ''' 321 | K = inputs.get_shape().as_list()[-1] # number of channels 322 | return ((1 - epsilon) * inputs) + (epsilon / K) -------------------------------------------------------------------------------- /lib/nn_utils.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | import difflib 3 | import os 4 | 5 | import numpy as np 6 | import tensorflow as tf 7 | import tensorflow.contrib.session_bundle.exporter as exporter 8 | 9 | 10 | def learning_rate_decay(config, global_step): 11 | """Inverse-decay learning rate until warmup_steps, then decay.""" 12 | warmup_steps = tf.to_float(config.train.warmup_steps) 13 | global_step = tf.to_float(global_step) 14 | return config.hidden_units ** -0.5 * tf.minimum( 15 | (global_step + 1.0) * warmup_steps ** -1.5, (global_step + 1.0) ** -0.5) 16 | 17 | 18 | def average_gradients(tower_grads): 19 | """Calculate the average gradient for each shared variable across all towers. 20 | Note that this function provides a synchronization point across all towers. 21 | Args: 22 | tower_grads: List of lists of (gradient, variable) tuples. The outer list 23 | is over individual gradients. The inner list is over the gradient 24 | calculation for each tower. 25 | Returns: 26 | List of pairs of (gradient, variable) where the gradient has been averaged 27 | across all towers. 28 | """ 29 | average_grads = [] 30 | for grad_and_vars in zip(*tower_grads): 31 | # Note that each grad_and_vars looks like the following: 32 | # ((grad0_gpu0, var0_gpu0), ... , (grad0_gpuN, var0_gpuN)) 33 | grads = [] 34 | for g, _ in grad_and_vars: 35 | # Add 0 dimension to the gradients to represent the tower. 36 | expanded_g = tf.expand_dims(g, 0) 37 | 38 | # Append on a 'tower' dimension which we will average over below. 39 | grads.append(expanded_g) 40 | else: 41 | # Average over the 'tower' dimension. 42 | grad = tf.concat(axis=0, values=grads) 43 | grad = tf.reduce_mean(grad, 0) 44 | 45 | # Keep in mind that the Variables are redundant because they are shared 46 | # across towers. So .. we will just return the first tower's pointer to 47 | # the Variable. 48 | v = grad_and_vars[0][1] 49 | grad_and_var = (grad, v) 50 | average_grads.append(grad_and_var) 51 | return average_grads 52 | 53 | 54 | def expand_feed_dict(feed_dict): 55 | """If the key is a tuple of placeholders, 56 | split the input data then feed them into these placeholders. 57 | """ 58 | new_feed_dict = {} 59 | for k, v in feed_dict.items(): 60 | if type(k) is not tuple: 61 | new_feed_dict[k] = v 62 | else: 63 | # Split v along the first dimension. 64 | n = len(k) 65 | batch_size = v.shape[0] 66 | span = batch_size // n 67 | remainder = batch_size % n 68 | # assert span > 0 69 | base = 0 70 | for i, p in enumerate(k): 71 | if i < remainder: 72 | end = base + span + 1 73 | else: 74 | end = base + span 75 | new_feed_dict[p] = v[base: end] 76 | base = end 77 | return new_feed_dict 78 | 79 | 80 | def GetEditDistance(str1, str2): 81 | leven_cost = 0 82 | s = difflib.SequenceMatcher(None, str1, str2) 83 | for tag, i1, i2, j1, j2 in s.get_opcodes(): 84 | # print('{:7} a[{}: {}] --> b[{}: {}] {} --> {}'.format(tag, i1, i2, j1, j2, str1[i1: i2], str2[j1: j2])) 85 | if tag == 'replace': 86 | leven_cost += max(i2 - i1, j2 - j1) 87 | elif tag == 'insert': 88 | leven_cost += (j2 - j1) 89 | elif tag == 'delete': 90 | leven_cost += (i2 - i1) 91 | return leven_cost 92 | 93 | 94 | def batch_edit_distance(logits, preds, istargets): 95 | distance = 0 96 | length = 0 97 | for index, logit in enumerate(logits): 98 | istarget_num = int(sum(istargets[index])) 99 | pred = preds[index][:istarget_num] 100 | logit = logit[:istarget_num] 101 | d = GetEditDistance(pred, logit) 102 | if d > istarget_num: 103 | distance += istarget_num 104 | else: 105 | distance += d 106 | length += istarget_num 107 | return distance, length 108 | 109 | 110 | def model_save(sess, path, model_name, global_step): 111 | """ 112 | 模型保存 113 | :param sess: tf.Session() 114 | :param path: 模型保存的路径 115 | :param model_name: 模型保存的名称 116 | :param global_step: 模型保存的迭代数 117 | :return: 118 | """ 119 | # 模型保存 120 | saver = tf.train.Saver() 121 | saver.save(sess, os.path.join(path, model_name), global_step=global_step) 122 | return saver 123 | 124 | 125 | def dense(inputs, 126 | output_size, 127 | activation=tf.identity, 128 | use_bias=True, 129 | reuse_kernel=None, 130 | reuse=None, 131 | name=None): 132 | argcount = activation.func_code.co_argcount 133 | if activation.func_defaults: 134 | argcount -= len(activation.func_defaults) 135 | assert argcount in (1, 2) 136 | with tf.variable_scope(name, "dense", reuse=reuse): 137 | if argcount == 1: 138 | input_size = inputs.get_shape().as_list()[-1] 139 | inputs_shape = tf.unstack(tf.shape(inputs)) 140 | inputs = tf.reshape(inputs, [-1, input_size]) 141 | with tf.variable_scope(tf.get_variable_scope(), reuse=reuse_kernel): 142 | w = tf.get_variable("kernel", [output_size, input_size]) 143 | outputs = tf.matmul(inputs, w, transpose_b=True) 144 | if use_bias: 145 | b = tf.get_variable("bias", [output_size], initializer=tf.zeros_initializer) 146 | outputs += b 147 | outputs = activation(outputs) 148 | return tf.reshape(outputs, inputs_shape[:-1] + [output_size]) 149 | else: 150 | arg1 = dense(inputs, output_size, tf.identity, use_bias, name='arg1') 151 | arg2 = dense(inputs, output_size, tf.identity, use_bias, name='arg2') 152 | return activation(arg1, arg2) 153 | 154 | 155 | # 转化一个序列列表为稀疏矩阵 156 | def sparse_tuple_from(sequences, dtype=np.int32): 157 | """ 158 | Create a sparse representention of x. 159 | Args: 160 | sequences: a list of lists of type dtype where each element is a sequence 161 | Returns: 162 | A tuple with (indices, values, shape) 163 | """ 164 | indices = [] 165 | values = [] 166 | 167 | for n, seq in enumerate(sequences): 168 | indices.extend(zip([n] * len(seq), xrange(len(seq)))) 169 | values.extend(seq) 170 | 171 | indices = np.asarray(indices, dtype=np.int64) 172 | values = np.asarray(values, dtype=dtype) 173 | shape = np.asarray([len(sequences), np.asarray(indices).max(0)[1] + 1], dtype=np.int64) 174 | 175 | return indices, values, shape 176 | 177 | 178 | def edit_distance_loss(y, preds): 179 | zero = tf.constant(0, dtype=tf.int32) 180 | where = tf.not_equal(y, zero) 181 | indices = tf.where(where) 182 | y_sparse = dense_to_sparse(y, indices) 183 | preds_sparse = dense_to_sparse(preds, indices) 184 | loss = tf.edit_distance(preds_sparse, y_sparse, True) 185 | return tf.reduce_mean(loss) 186 | 187 | 188 | def dense_to_sparse(dense_value, indices): 189 | values = tf.gather_nd(dense_value, indices) 190 | sparse = tf.SparseTensor(indices, values, tf.to_int64(tf.shape(dense_value))) 191 | return sparse 192 | 193 | 194 | def edit_distance_wer(y, preds, index_same=False): 195 | where_y = tf.logical_and(tf.not_equal(y, tf.constant(0, dtype=tf.int32)), 196 | tf.not_equal(y, tf.constant(3, dtype=tf.int32))) 197 | indices_y = tf.where(where_y) 198 | if index_same: 199 | indices_preds = indices_y 200 | else: 201 | indices_preds = tf.where(tf.logical_and(tf.not_equal(preds, tf.constant(0, dtype=tf.int32)), 202 | tf.not_equal(preds, tf.constant(3, dtype=tf.int32)))) 203 | y_sparse = dense_to_sparse(y, indices_y) 204 | preds_sparse = dense_to_sparse(preds, indices_preds) 205 | distance = tf.reduce_sum(tf.edit_distance(preds_sparse, y_sparse, False)) 206 | length = tf.reduce_sum(tf.to_int32(where_y)) 207 | return distance, length 208 | 209 | 210 | def exporter_model(saver, sess, work_dir, export_version, x, y): 211 | """ 212 | :param saver: tf.train.Saver() 213 | :param sess: tf.Session() 214 | :param work_dir: 保存的路径 215 | :param export_version: 保存的版本数,tensorflow serving会优先读取最高的版本 216 | :param x: 模型 input 217 | :param y: 模型 predict result 218 | :return: 219 | """ 220 | model_exporter = exporter.Exporter(saver) 221 | model_exporter.init( 222 | sess.graph.as_graph_def(), 223 | named_graph_signatures={ 224 | 'inputs': exporter.generic_signature({'x': x}), 225 | 'outputs': exporter.generic_signature({'y': y})}) 226 | model_exporter.export(work_dir, 227 | tf.constant(export_version), sess) 228 | 229 | 230 | if __name__ == '__main__': 231 | y = [[1, 2, 3, 0, 0], [4, 5, 3, 0, 0], [4, 4, 5, 6, 3]] 232 | preds = [[1, 2, 3, 3, 3], [4, 5, 3, 3, 6], [4, 4, 5, 3, 3]] 233 | 234 | y = tf.Variable(np.array(y), dtype=tf.int32) 235 | preds = tf.Variable(np.array(preds), dtype=tf.int32) 236 | d, l = edit_distance_wer(y, preds, index_same=True) 237 | 238 | sess = tf.Session() 239 | sess.run(tf.global_variables_initializer()) 240 | 241 | print sess.run(d) 242 | -------------------------------------------------------------------------------- /lib/read_data_end2end.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import os 3 | 4 | from file_wav import * 5 | import librosa 6 | 7 | current_relative_path = lambda x: os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), x)) 8 | 9 | 10 | class DataSpeech(object): 11 | def __init__(self, data_type): 12 | self.data_type = data_type 13 | 14 | self.symbol_num = 0 # 记录拼音符号数量 15 | self.slash = "/" 16 | self.data_path = current_relative_path("../data/") 17 | self.list_symbol = self.get_symbol_list() 18 | 19 | self.data_num = 0 20 | self.data_set = ["speechling_label"] 21 | self.dic_wavlist = {} 22 | self.list_wavnum = [] 23 | 24 | self.dic_symbollist = {} 25 | self.list_symbolnum = [] 26 | 27 | self.load_data() 28 | 29 | def get_symbol_list(self): 30 | """ 31 | 加载拼音符号列表,用于标记符号 32 | 返回一个列表list类型变量 33 | """ 34 | # 打开文件并读入 35 | txt_obj = open(current_relative_path('../conf/word_index.txt'), 'r') 36 | txt_text = txt_obj.read() 37 | # 文本分割 38 | txt_lines = txt_text.split('\n') 39 | # 初始化符号列表 40 | list_symbol = ['', '', '', ''] 41 | for i in txt_lines: 42 | if i: 43 | txt_l = i.strip().split('\t') 44 | list_symbol.append(txt_l[0].decode("utf-8")) 45 | txt_obj.close() 46 | self.symbol_num = len(list_symbol) 47 | return list_symbol 48 | 49 | def load_data(self): 50 | # 设定选取哪一项作为要使用的数据集 51 | if self.data_type == 'train': 52 | wav_suffix = "train.wav.lst" 53 | syllable_suffix = "train.txt" 54 | elif self.data_type == 'dev': 55 | wav_suffix = "dev.wav.lst" 56 | syllable_suffix = "dev.txt" 57 | else: 58 | wav_suffix = "test.wav.lst" 59 | syllable_suffix = "test.txt" 60 | 61 | for sub_data_set in self.data_set: 62 | filename_wavlist = self.data_path + self.slash + sub_data_set + self.slash + wav_suffix 63 | filename_symbollist = self.data_path + self.slash + "audio_language" + \ 64 | self.slash + sub_data_set + self.slash + syllable_suffix 65 | 66 | sub_dic_wavlist, sub_list_wavnum = get_wav_list(filename_wavlist) 67 | 68 | self.list_wavnum += sub_list_wavnum 69 | self.dic_wavlist = dict(self.dic_wavlist, **sub_dic_wavlist) 70 | 71 | sub_dic_symbollist, sub_list_symbolnum = get_wav_word_symbol(filename_symbollist) 72 | self.list_symbolnum += sub_list_symbolnum 73 | self.dic_symbollist = dict(self.dic_symbollist, **sub_dic_symbollist) 74 | 75 | self.data_num = self.get_data_num() 76 | 77 | def get_data_num(self): 78 | num_wavlist = len(self.dic_wavlist) 79 | num_symbollist = len(self.dic_symbollist) 80 | return num_wavlist 81 | 82 | def yield_batch_data(self, batch_size=32, audio_length=1600, maxlen=30, audio_feature_length=200, feat_type="fft", 83 | if_stack_subsample=True, speed=False, return_file_name=False): 84 | data_num = self.get_data_num() 85 | start_num = 0 86 | random.shuffle(self.list_wavnum) 87 | while True: 88 | x = np.zeros((batch_size, audio_length, audio_feature_length), dtype=np.float) 89 | y = np.zeros((batch_size, maxlen), dtype=np.int64) # 64 + /s 90 | files_name = [] 91 | i = 0 92 | while i < batch_size: 93 | data_input, data_labels, file_name = self.get_data(start_num, feat_type=feat_type, 94 | if_stack_subsample=if_stack_subsample, speed=speed, 95 | return_file_name=return_file_name) 96 | if len(data_input) <= audio_length and len(data_labels) <= maxlen: 97 | x[i, 0:len(data_input)] = data_input 98 | y[i, 0:len(data_labels)] = data_labels 99 | files_name.append(file_name) 100 | i += 1 101 | start_num += 1 102 | if start_num >= data_num: 103 | random.shuffle(self.list_wavnum) 104 | start_num = 0 105 | if return_file_name: 106 | yield x, y, files_name 107 | else: 108 | yield x, y 109 | 110 | def yield_singal_batch_data(self, batch_size, singal_length, maxlen, speed=False, if_buf_to_float=False): 111 | data_num = self.get_data_num() 112 | start_num = 0 113 | random.shuffle(self.list_wavnum) 114 | while True: 115 | x = np.zeros((batch_size, singal_length), dtype=np.int16) 116 | y = np.zeros((batch_size, maxlen), dtype=np.int64) # 64 + /s 117 | files_name = [] 118 | i = 0 119 | while i < batch_size: 120 | try: 121 | data_input, data_labels, file_name = self.get_wav_data(start_num, speed) 122 | if len(data_input) <= singal_length and len(data_labels) <= maxlen: 123 | if if_buf_to_float: 124 | data_input = librosa.util.buf_to_float(data_input) 125 | x[i, 0:len(data_input)] = data_input 126 | y[i, 0:len(data_labels)] = data_labels 127 | files_name.append(file_name) 128 | i += 1 129 | except: 130 | pass 131 | start_num += 1 132 | if start_num >= data_num: 133 | random.shuffle(self.list_wavnum) 134 | start_num = 0 135 | yield x, y, files_name 136 | 137 | def get_wav_data(self, n_start, speed=False): 138 | file_name_index = self.list_wavnum[n_start] 139 | filename = self.dic_wavlist[file_name_index] 140 | list_symbol = self.dic_symbollist[file_name_index] 141 | 142 | wavsignal, fs = read_wav_data(self.data_path + self.slash + filename, speed=speed) 143 | 144 | # 获取输出特征 145 | feat_out = [] 146 | for i in list_symbol.decode("utf-8"): 147 | if i: 148 | n = self.symbol2num(i) 149 | feat_out.append(n) 150 | feat_out.append(3) 151 | return wavsignal[0], np.array(feat_out, dtype=np.int64), filename 152 | 153 | def get_wav_feat(self, singal_length, path): 154 | wavsignal, fs = read_wav_data(path, speed=False) 155 | x = np.zeros((1, singal_length), dtype=np.int16) 156 | x[0, 0:len(wavsignal[0])] = wavsignal[0] 157 | return x 158 | 159 | def get_data(self, n_start, feat_type="fft", if_stack_subsample=True, speed=False, return_file_name=False): 160 | file_name_index = self.list_wavnum[n_start] 161 | filename = self.dic_wavlist[file_name_index] 162 | list_symbol = self.dic_symbollist[file_name_index] 163 | 164 | wavsignal, fs = read_wav_data(self.data_path + self.slash + filename, speed=speed) 165 | 166 | # 获取输出特征 167 | feat_out = [] 168 | for i in list_symbol: 169 | if i: 170 | n = self.symbol2num(i) 171 | feat_out.append(n) 172 | feat_out.append(3) 173 | 174 | # 获取输入特征 175 | if feat_type == "fft": 176 | data_input = get_frequency_feature(wavsignal, fs) 177 | elif feat_type == "mfcc": 178 | data_input = get_mfcc_feature(wavsignal, fs) 179 | elif feat_type == "log_fbank": 180 | data_input = get_log_mel_fbank(wavsignal, fs, if_stack_subsample=if_stack_subsample) 181 | else: 182 | raise ValueError 183 | data_label = np.array(feat_out) 184 | if not return_file_name: 185 | return data_input, data_label, None 186 | else: 187 | return data_input, data_label, filename 188 | 189 | def symbol2num(self, symbol): 190 | if symbol in self.list_symbol: 191 | return self.list_symbol.index(symbol) 192 | return self.list_symbol.index('') 193 | 194 | def batch_seq2symbol(self, batch): 195 | symbol_list = [] 196 | for b in batch: 197 | symbol_list.append(" ".join([self.num2symbol(i) for i in b if i not in (0, 3)])) 198 | return symbol_list 199 | 200 | def num2symbol(self, num): 201 | return self.list_symbol[num] 202 | -------------------------------------------------------------------------------- /lib/train.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | from tqdm import tqdm 3 | 4 | import numpy as np 5 | import tensorflow as tf 6 | import os 7 | import sys 8 | from hyperparams import Hyperparams as hp 9 | hp.num_epochs = 30 10 | from transformer import ExtraTransformer 11 | 12 | current_relative_path = lambda x: os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), x)) 13 | from read_data_end2end import DataSpeech 14 | from nn_utils import expand_feed_dict, batch_edit_distance, model_save 15 | 16 | data_train = DataSpeech('train') 17 | yield_train_data = data_train.yield_singal_batch_data(hp.batch_size, hp.audio_signal_length, hp.maxlen, speed=True) 18 | 19 | data_test = DataSpeech('test') 20 | yield_test_data = data_test.yield_singal_batch_data(hp.batch_size, hp.audio_signal_length, hp.maxlen, speed=False) 21 | 22 | os.environ["CUDA_VISIBLE_DEVICES"] = "0, 1, 2, 3, 4, 5" 23 | 24 | tf_config = tf.ConfigProto() 25 | # 指定内存占用 26 | tf_config.gpu_options.allow_growth = True 27 | tf_config.allow_soft_placement = True 28 | 29 | 30 | def train_one_step(feat_batch, target_batch, model, sess): 31 | feed_dict = expand_feed_dict({model.signal_pls: feat_batch, 32 | model.dst_pls: target_batch}) 33 | step, lr, mean_loss, _, preds, istarget, distance, length = sess.run( 34 | [model.global_step, model.learning_rate, 35 | model.mean_loss, model.train_op, model.preds, model.istarget, model.distance, model.length], 36 | feed_dict=feed_dict) 37 | return step, lr, mean_loss, preds, istarget, distance, length 38 | 39 | 40 | def eval(feat_batch, target_batch, model, sess): 41 | feed_dict = expand_feed_dict({model.signal_pls: feat_batch, 42 | model.dst_pls: target_batch}) 43 | preds, test_distance, test_length = sess.run([model.test_preds, model.test_distance, model.test_length], 44 | feed_dict=feed_dict) 45 | return preds, test_distance, test_length 46 | 47 | 48 | if __name__ == '__main__': 49 | tmodel = ExtraTransformer(hp, 6, data_train) 50 | tmodel.build_model(get_wer=True) 51 | tmodel.build_test_model(get_wer=True) 52 | 53 | num_batch = data_train.get_data_num() // hp.batch_size 54 | 55 | with tf.Session(config=tf_config, graph=tmodel.graph) as sess: 56 | sess.run(tf.global_variables_initializer()) 57 | 58 | for epoch in range(1, hp.num_epochs + 1): 59 | words_num = 0 60 | word_error_num = 0 61 | train_loss = 0 62 | for step in tqdm(range(num_batch * 5), total=num_batch * 5, ncols=70, leave=False, 63 | unit='b'): 64 | x, y, _ = yield_train_data.next() 65 | step, lr, mean_loss, preds, istarget, distance, length = train_one_step(x, y, tmodel, sess) 66 | if distance > length: distance = length 67 | 68 | train_loss += mean_loss 69 | 70 | word_error_num += distance 71 | words_num += length 72 | 73 | mean_loss = train_loss * 1.0 / num_batch / 10 74 | wer = word_error_num * 1.0 / words_num * 100 75 | print("epoch: %s, loss: %s, wer: %s" % (epoch, mean_loss, wer)) 76 | 77 | words_num = 0 78 | word_error_num = 0 79 | for step in tqdm(range(data_test.get_data_num() // hp.batch_size), 80 | total=data_test.get_data_num() // hp.batch_size, ncols=70, leave=False, unit='b'): 81 | x, y, _ = yield_test_data.next() 82 | 83 | preds, test_distance, test_length = eval(x, y, tmodel, sess) 84 | if test_distance > test_length: test_distance = test_length 85 | 86 | word_error_num += test_distance 87 | words_num += test_length 88 | 89 | wer = word_error_num * 1.0 / words_num * 100 90 | print("test_wer: %s" % wer) 91 | 92 | if epoch % hp.save_epochs == 0: 93 | model_save(sess, current_relative_path(hp.logdir + '/'), "transformer", epoch) -------------------------------------------------------------------------------- /lib/transformer.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import os 3 | import random 4 | import re 5 | import sys 6 | 7 | from modules import * 8 | 9 | current_relative_path = lambda x: os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), x)) 10 | 11 | from model import Model 12 | from nn_utils import edit_distance_loss, edit_distance_wer, average_gradients 13 | 14 | 15 | class Transformer(Model): 16 | def __init__(self, hp, num_gpu, data): 17 | super(Transformer, self).__init__(hp, num_gpu) 18 | self._data = data 19 | self.placeholders() 20 | 21 | def placeholders(self): 22 | with self.graph.as_default(): 23 | src_pls = [] 24 | dst_pls = [] 25 | for i, device in enumerate(self._devices): 26 | with tf.device(device): 27 | pls_batch_x = tf.placeholder(dtype=tf.float32, 28 | shape=[None, self._hp.audio_length, self._hp.audio_feature_length], 29 | name='src_pl_{}'.format(i)) # [batch, feat, feat_dim] 30 | pls_batch_y = tf.placeholder(dtype=tf.int32, shape=[None, self._hp.maxlen], 31 | name='dst_pl_{}'.format(i)) # [batch, len] 32 | src_pls.append(pls_batch_x) 33 | dst_pls.append(pls_batch_y) 34 | self.src_pls = tuple(src_pls) 35 | self.dst_pls = tuple(dst_pls) 36 | 37 | def _transformer_encoder(self, enc, reuse, is_training): 38 | # Encoder 39 | with tf.variable_scope("encoder"): 40 | 41 | # Positional Encoding 42 | if self._hp.sinusoid: 43 | enc += positional_encoding(enc, 44 | num_units=self._hp.hidden_units, 45 | zero_pad=False, 46 | scale=False, 47 | reuse=reuse, 48 | scope="enc_pe") 49 | else: 50 | enc += embedding( 51 | tf.tile(tf.expand_dims(tf.range(tf.shape(enc)[1]), 0), [tf.shape(enc)[0], 1]), 52 | vocab_size=self._hp.audio_length, 53 | num_units=self._hp.hidden_units, 54 | zero_pad=False, 55 | reuse=reuse, 56 | scale=False, 57 | scope="enc_pe") 58 | 59 | # Dropout 60 | enc = tf.layers.dropout(enc, 61 | rate=self._hp.dropout_rate, 62 | training=tf.convert_to_tensor(is_training)) 63 | 64 | # Blocks 65 | for i in range(self._hp.num_blocks): 66 | with tf.variable_scope("num_blocks_{}".format(i)): 67 | # Multihead Attention 68 | enc = multihead_attention(queries=enc, 69 | keys=enc, 70 | num_units=self._hp.hidden_units, 71 | num_heads=self._hp.num_heads, 72 | dropout_rate=self._hp.dropout_rate, 73 | is_training=is_training, 74 | reuse=reuse, 75 | causality=False) 76 | 77 | # Feed Forward 78 | enc = feedforward(enc, num_units=[4 * self._hp.hidden_units, self._hp.hidden_units], 79 | reuse=reuse) 80 | return enc 81 | 82 | def _transformer_decoder(self, enc, decoder_inputs, reuse, is_training): 83 | # Decoder 84 | with tf.variable_scope("decoder"): 85 | # Embedding 86 | dec = embedding(decoder_inputs, 87 | vocab_size=self._data.symbol_num, 88 | num_units=self._hp.hidden_units, 89 | scale=True, 90 | reuse=reuse, 91 | scope="dec_embed") 92 | 93 | # Positional Encoding 94 | if self._hp.sinusoid: 95 | dec += positional_encoding(decoder_inputs, 96 | num_units=self._hp.hidden_units, 97 | zero_pad=False, 98 | reuse=reuse, 99 | scale=False, 100 | scope="dec_pe") 101 | else: 102 | dec += embedding(tf.tile(tf.expand_dims(tf.range(tf.shape(decoder_inputs)[1]), 0), 103 | [tf.shape(decoder_inputs)[0], 1]), 104 | vocab_size=self._hp.maxlen, 105 | num_units=self._hp.hidden_units, 106 | zero_pad=False, 107 | scale=False, 108 | reuse=reuse, 109 | scope="dec_pe") 110 | 111 | # Dropout 112 | dec = tf.layers.dropout(dec, 113 | rate=self._hp.dropout_rate, 114 | training=tf.convert_to_tensor(is_training)) 115 | 116 | # Blocks 117 | for i in range(self._hp.num_blocks): 118 | with tf.variable_scope("num_blocks_{}".format(i)): 119 | # Multihead Attention ( self-attention) 120 | dec = multihead_attention(queries=dec, 121 | keys=dec, 122 | num_units=self._hp.hidden_units, 123 | num_heads=self._hp.num_heads, 124 | dropout_rate=self._hp.dropout_rate, 125 | is_training=is_training, 126 | causality=True, 127 | reuse=reuse, 128 | scope="self_attention") 129 | 130 | # Multihead Attention ( vanilla attention) 131 | dec = multihead_attention(queries=dec, 132 | keys=enc, 133 | num_units=self._hp.hidden_units, 134 | num_heads=self._hp.num_heads, 135 | dropout_rate=self._hp.dropout_rate, 136 | is_training=is_training, 137 | causality=False, 138 | reuse=reuse, 139 | scope="vanilla_attention") 140 | 141 | # Feed Forward 142 | dec = feedforward(dec, num_units=[4 * self._hp.hidden_units, self._hp.hidden_units], 143 | reuse=reuse) 144 | return dec 145 | 146 | def _transformer_model(self, enc, decoder_inputs, reuse, is_training): 147 | # Encoder 148 | enc = self._transformer_encoder(enc, reuse, is_training) 149 | return self._transformer_decoder(enc, decoder_inputs, reuse, is_training) 150 | 151 | def model_output(self, x, y, reuse, is_training, scope, decoder_inputs=None): 152 | with tf.variable_scope(scope, reuse=reuse): 153 | # define decoder inputs 154 | if decoder_inputs is None: 155 | decoder_inputs = tf.concat((tf.ones_like(y[:, :1]) * 2, y[:, :-1]), -1) # 2: 156 | # feature维度转transformer维度 157 | enc = tf.layers.dense(x, self._hp.hidden_units, reuse=reuse) 158 | enc = normalize(enc, reuse=reuse) 159 | dec = self._transformer_model(enc, decoder_inputs, reuse, is_training) 160 | 161 | with tf.variable_scope("logits", reuse=reuse): 162 | # Final linear projection 163 | logits = tf.layers.dense(dec, self._data.symbol_num, reuse=reuse) 164 | return logits 165 | 166 | def model_loss(self, x, y, reuse, is_training, scope): 167 | logits = self.model_output(x, y, reuse, is_training, scope) 168 | y_smoothed = label_smoothing(tf.one_hot(y, depth=self._data.symbol_num)) 169 | loss = tf.nn.softmax_cross_entropy_with_logits_v2(logits=logits, labels=y_smoothed) 170 | istarget = tf.to_float(tf.not_equal(y, 0)) 171 | mean_loss = tf.reduce_sum(loss * istarget) / (tf.reduce_sum(istarget)) 172 | 173 | preds = tf.to_int32(tf.arg_max(logits, dimension=-1)) 174 | if 'mwer' in self._hp.loss_type: 175 | mwer_loss = self.mwer_loss(y, preds) 176 | mean_loss = self._hp.train.loss_ce * mean_loss + self._hp.train.loss_mwer * mwer_loss 177 | 178 | if 'l2' in self._hp.loss_type: 179 | apply_regularization_loss = tf.contrib.layers.apply_regularization( 180 | tf.contrib.layers.l2_regularizer(1e-5), 181 | tf.trainable_variables()) 182 | mean_loss += apply_regularization_loss 183 | 184 | return mean_loss, preds, istarget 185 | 186 | def mwer_loss(self, y, preds): 187 | mwer_loss = edit_distance_loss(y, preds) 188 | return mwer_loss 189 | 190 | def model_scheduled_sampling_output(self, x, y, reuse, is_training, scope): 191 | """为了弥补teacher force训练与推理的不一致性,采用真实推理的内容作为下一次推理的内容""" 192 | # 采用while_loop训练 193 | with tf.variable_scope(scope, reuse=reuse): 194 | enc = tf.layers.dense(x, self._hp.hidden_units, reuse=reuse) 195 | enc = normalize(enc, reuse=reuse) 196 | enc = self._transformer_encoder(enc, reuse, is_training) 197 | preds, logits = self.scheduled_sampling_preds(enc, y, reuse=reuse, is_training=is_training) 198 | 199 | y_smoothed = label_smoothing(tf.one_hot(y, depth=self._data.symbol_num)) 200 | loss = tf.nn.softmax_cross_entropy_with_logits_v2(logits=logits, labels=y_smoothed) 201 | istarget = tf.to_float(tf.not_equal(y, 0)) 202 | mean_loss = tf.reduce_sum(loss * istarget) / (tf.reduce_sum(istarget)) 203 | 204 | if 'mwer' in self._hp.loss_type: 205 | mwer_loss = self.mwer_loss(y, preds) 206 | mean_loss = self._hp.train.loss_ce * mean_loss + self._hp.train.loss_mwer * mwer_loss 207 | 208 | if 'l2' in self._hp.loss_type: 209 | apply_regularization_loss = tf.contrib.layers.apply_regularization( 210 | tf.contrib.layers.l2_regularizer(1e-5), 211 | tf.trainable_variables()) 212 | mean_loss += apply_regularization_loss 213 | 214 | return mean_loss, preds, istarget 215 | 216 | def get_wer(self, y, preds, index_same=False): 217 | distance, length = edit_distance_wer(y, preds, index_same=index_same) 218 | return distance, length 219 | 220 | def get_train_op(self, is_training, reuse=None, get_wer=False): 221 | if self.num_gpu >= 2: 222 | loss, grads_norm, train_op, preds, istarget = self.make_parallel(reuse=reuse, is_training=is_training, 223 | get_wer=get_wer) 224 | if not is_training: 225 | train_op = tf.no_op() 226 | return loss, train_op, preds, istarget 227 | 228 | with self.graph.as_default(): 229 | with tf.variable_scope(tf.get_variable_scope(), reuse=reuse, initializer=self._initializer): 230 | mean_loss, preds, istarget = self.model_loss(self.src_pls[0], self.dst_pls[0], reuse, is_training, 231 | "transformer") 232 | if is_training: 233 | train_op = self._optimizer.minimize(mean_loss, global_step=self.global_step) 234 | else: 235 | train_op = tf.no_op() 236 | 237 | if get_wer: 238 | self.distance, self.length = self.get_wer(self.dst_pls[0], preds, index_same=True) 239 | 240 | return mean_loss, train_op, preds, istarget 241 | 242 | def build_model(self, is_training=True, get_wer=False): 243 | self.mean_loss, self.train_op, self.preds, self.istarget = self.get_train_op(is_training, get_wer=get_wer) 244 | 245 | def get_beam_search_preds(self, is_training=False, reuse=True, get_wer=False): 246 | if self.num_gpu >= 2: 247 | return self.make_parallel_beam_search(reuse=reuse, is_training=is_training, get_wer=get_wer) 248 | 249 | with self.graph.as_default(): 250 | with tf.variable_scope(tf.get_variable_scope(), reuse=reuse, initializer=self._initializer): 251 | test_preds = self.model_beam_search_preds(self.src_pls[0], reuse, is_training, "transformer") 252 | 253 | if get_wer: 254 | self.test_distance, self.test_length = self.get_wer(self.dst_pls[0], test_preds) 255 | 256 | return test_preds 257 | 258 | def model_beam_search_preds(self, x, reuse, is_training, scope): 259 | with tf.variable_scope(scope, reuse=reuse): 260 | # feature维度转transformer维度 261 | enc = tf.layers.dense(x, self._hp.hidden_units, reuse=reuse) 262 | enc = normalize(enc, reuse=reuse) 263 | enc_output = self._transformer_encoder(enc, reuse, is_training) 264 | test_preds = self.beam_search(enc_output, reuse) 265 | return test_preds 266 | 267 | def build_test_model(self, is_training=False, reuse=True, get_wer=False): 268 | self.test_preds = self.get_beam_search_preds(reuse=reuse, is_training=is_training, get_wer=get_wer) 269 | 270 | def scheduled_sampling_preds(self, encoder_output, y, reuse, is_training): 271 | # Prepare beam search inputs. 272 | batch_size = tf.shape(encoder_output)[0] 273 | # [[, , ..., ]], shape: [batch_size * beam_size, 1] 274 | preds = tf.ones([batch_size, 1], dtype=tf.int32) * 2 275 | # logits 276 | logits = tf.zeros([batch_size, 0, self._data.symbol_num]) 277 | 278 | y_max_length = tf.to_int32(tf.reduce_max(tf.reduce_sum(tf.to_float(tf.not_equal(y, 0)), axis=1))) 279 | 280 | def not_finished(i, preds, logits): 281 | return tf.less(i, y_max_length) 282 | 283 | def step(i, preds, logits): 284 | i += 1 285 | decoder_output = self._transformer_decoder(encoder_output, preds, is_training=is_training, reuse=reuse) 286 | 287 | with tf.variable_scope("logits", reuse=reuse): 288 | # Final linear projection 289 | last_logits = tf.layers.dense(decoder_output[:, -1], self._data.symbol_num, reuse=reuse) 290 | 291 | # last_preds = tf.to_int32(tf.arg_max(last_logits, dimension=-1))[:, None] 292 | # 采样概率正确值或者推理值 293 | sampler = tf.constant(np.array([[0.5, 0.5]]), dtype=tf.float32) 294 | sampler_result = tf.multinomial(sampler, 1, seed=None, name=None) 295 | 296 | def teacher_force(): 297 | return y[:, i - 1:i] 298 | 299 | def inference(): 300 | z = tf.nn.log_softmax(last_logits) 301 | last_preds = tf.to_int32(tf.multinomial(z, 1, seed=None, name=None)) 302 | return last_preds 303 | 304 | one_constant = tf.constant(np.array([[0]]), dtype=tf.int64) 305 | last_preds = tf.cond(tf.equal(sampler_result, one_constant)[0][0], teacher_force, inference) 306 | 307 | preds = tf.concat((preds, last_preds), axis=1) # [batch_size, i] 308 | logits = tf.concat((logits, last_logits[:, None, :]), axis=1) # [batch_size, i, symbol_num] 309 | 310 | return i, preds, logits 311 | 312 | i, preds, logits = tf.while_loop(cond=not_finished, 313 | body=step, 314 | loop_vars=[0, preds, logits], 315 | shape_invariants=[ 316 | tf.TensorShape([]), 317 | tf.TensorShape([None, None]), 318 | tf.TensorShape([None, None, None])], 319 | back_prop=True if is_training else False) 320 | # preds = preds[:, 1:] 321 | # preds = tf.concat((preds, tf.zeros(shape=[batch_size, self._hp.maxlen - y_max_length], dtype=tf.int32)), axis=1) 322 | logits = tf.concat((logits, tf.zeros(shape=[batch_size, self._hp.maxlen - y_max_length, self._data.symbol_num])), 323 | axis=1) 324 | preds = tf.to_int32(tf.arg_max(logits, dimension=-1)) 325 | return preds, logits 326 | 327 | def beam_search(self, encoder_output, reuse): 328 | """Beam search in graph.""" 329 | beam_size, batch_size = self._hp.test.beam_size, tf.shape(encoder_output)[0] 330 | inf = 1e10 331 | 332 | def get_bias_scores(scores, bias): 333 | """ 334 | If a sequence is finished, we only allow one alive branch. This function aims to give one branch a zero score 335 | and the rest -inf score. 336 | Args: 337 | scores: A real value array with shape [batch_size * beam_size, beam_size]. 338 | bias: A bool array with shape [batch_size * beam_size]. 339 | 340 | Returns: 341 | A real value array with shape [batch_size * beam_size, beam_size]. 342 | """ 343 | bias = tf.to_float(bias) 344 | b = tf.constant([0.0] + [-inf] * (beam_size - 1)) 345 | b = tf.tile(b[None, :], multiples=[batch_size * beam_size, 1]) 346 | return scores * (1 - bias[:, None]) + b * bias[:, None] 347 | 348 | def get_bias_preds(preds, bias): 349 | """ 350 | If a sequence is finished, all of its branch should be (3). 351 | Args: 352 | preds: A int array with shape [batch_size * beam_size, beam_size]. 353 | bias: A bool array with shape [batch_size * beam_size]. 354 | 355 | Returns: 356 | A int array with shape [batch_size * beam_size]. 357 | """ 358 | bias = tf.to_int32(bias) 359 | return preds * (1 - bias[:, None]) + bias[:, None] * 3 360 | 361 | # Prepare beam search inputs. 362 | # [batch_size, 1, *, hidden_units] 363 | encoder_output = encoder_output[:, None, :, :] 364 | # [batch_size, beam_size, feat_len, hidden_units] 365 | encoder_output = tf.tile(encoder_output, multiples=[1, beam_size, 1, 1]) 366 | # [batch_size * beam_size, feat_len, hidden_units] 367 | encoder_output = tf.reshape(encoder_output, [batch_size * beam_size, -1, encoder_output.get_shape()[-1].value]) 368 | # [[, , ..., ]], shape: [batch_size * beam_size, 1] 369 | preds = tf.ones([batch_size * beam_size, 1], dtype=tf.int32) * 2 370 | scores = tf.constant([0.0] + [-inf] * (beam_size - 1), dtype=tf.float32) # [beam_size] 371 | scores = tf.tile(scores, multiples=[batch_size]) # [batch_size * beam_size] 372 | bias = tf.zeros_like(scores, dtype=tf.bool) # 是否结束的标识位 373 | # 缓存的历史结果,[batch_size * beam_size, 0, num_blocks , hidden_units ] 374 | cache = tf.zeros([batch_size * beam_size, 0, self._hp.num_blocks, self._hp.hidden_units]) 375 | 376 | def step(i, bias, preds, scores, cache): 377 | # Where are we. 378 | i += 1 379 | 380 | # Call decoder and get predictions. 381 | # [batch_size * beam_size, step, hidden_size] 382 | decoder_output = self._transformer_decoder(encoder_output, preds, is_training=False, reuse=reuse) 383 | last_preds, last_k_preds, last_k_scores = self.test_output(decoder_output, reuse=reuse) 384 | 385 | last_k_preds = get_bias_preds(last_k_preds, bias) 386 | last_k_scores = get_bias_scores(last_k_scores, bias) 387 | 388 | # Update scores. 389 | scores = scores[:, None] + last_k_scores # [batch_size * beam_size, beam_size] 390 | scores = tf.reshape(scores, shape=[batch_size, beam_size ** 2]) # [batch_size, beam_size * beam_size] 391 | 392 | # Pruning. 393 | scores, k_indices = tf.nn.top_k(scores, k=beam_size) 394 | scores = tf.reshape(scores, shape=[-1]) # [batch_size * beam_size] 395 | base_indices = tf.reshape(tf.tile(tf.range(batch_size)[:, None], multiples=[1, beam_size]), shape=[-1]) 396 | base_indices *= beam_size ** 2 397 | k_indices = base_indices + tf.reshape(k_indices, shape=[-1]) # [batch_size * beam_size] 398 | 399 | # Update predictions. 400 | last_k_preds = tf.gather(tf.reshape(last_k_preds, shape=[-1]), indices=k_indices) 401 | preds = tf.gather(preds, indices=k_indices / beam_size) 402 | # cache = tf.gather(cache, indices=k_indices / beam_size) 403 | preds = tf.concat((preds, last_k_preds[:, None]), axis=1) # [batch_size * beam_size, i] 404 | 405 | # Whether sequences finished. 406 | bias = tf.equal(preds[:, -1], 3) # ? 407 | 408 | return i, bias, preds, scores, cache 409 | 410 | def not_finished(i, bias, preds, scores, cache): 411 | return tf.logical_and( 412 | tf.reduce_any(tf.logical_not(bias)), 413 | tf.less_equal( 414 | i, 415 | tf.reduce_min([tf.shape(encoder_output)[1] + 50, self._hp.test.max_target_length]) 416 | ) 417 | ) 418 | 419 | i, bias, preds, scores, cache = tf.while_loop(cond=not_finished, 420 | body=step, 421 | loop_vars=[0, bias, preds, scores, cache], 422 | shape_invariants=[ 423 | tf.TensorShape([]), 424 | tf.TensorShape([None]), 425 | tf.TensorShape([None, None]), 426 | tf.TensorShape([None]), 427 | tf.TensorShape([None, None, None, None])], 428 | back_prop=False) 429 | 430 | scores = tf.reshape(scores, shape=[batch_size, beam_size]) 431 | preds = tf.reshape(preds, shape=[batch_size, beam_size, -1]) # [batch_size, beam_size, max_length] 432 | lengths = tf.reduce_sum(tf.to_float(tf.not_equal(preds, 3)), axis=-1) # [batch_size, beam_size] 433 | lp = tf.pow((5 + lengths) / (5 + 1), self._hp.test.lp_alpha) # Length penalty 434 | scores /= lp # following GNMT 435 | max_indices = tf.to_int32(tf.argmax(scores, axis=-1)) # [batch_size] 436 | max_indices += tf.range(batch_size) * beam_size 437 | preds = tf.reshape(preds, shape=[batch_size * beam_size, -1]) 438 | 439 | final_preds = tf.gather(preds, indices=max_indices) 440 | final_preds = final_preds[:, 1:] # remove flag 441 | return final_preds 442 | 443 | def test_output(self, decoder_output, reuse, k=None): 444 | """During test, we only need the last prediction at each time.""" 445 | with tf.variable_scope("logits", reuse=reuse): 446 | # Final linear projection 447 | last_logits = tf.layers.dense(decoder_output[:, -1], self._data.symbol_num, reuse=reuse) 448 | 449 | if k is None: 450 | k = self._hp.test.beam_size 451 | last_preds = tf.to_int32(tf.arg_max(last_logits, dimension=-1)) 452 | z = tf.nn.log_softmax(last_logits) 453 | last_k_scores, last_k_preds = tf.nn.top_k(z, k=k, sorted=False) 454 | last_k_preds = tf.to_int32(last_k_preds) 455 | return last_preds, last_k_preds, last_k_scores 456 | 457 | 458 | class ExtraTransformer(Transformer): 459 | def __init__(self, hp, num_gpu, data): 460 | super(ExtraTransformer, self).__init__(hp, num_gpu, data) 461 | self.placeholders_signal() 462 | 463 | def placeholders_signal(self): 464 | with self.graph.as_default(): 465 | src_pls = [] 466 | for i, device in enumerate(self._devices): 467 | with tf.device(device): 468 | pls_batch_x = tf.placeholder(dtype=tf.float32, 469 | shape=[None, self._hp.audio_signal_length], 470 | name='signal_pls_{}'.format(i)) # [batch, singal] 471 | src_pls.append(pls_batch_x) 472 | self.signal_pls = tuple(src_pls) 473 | 474 | def build_model(self, is_training=True, get_wer=False): 475 | self.mean_loss, self.train_op, self.preds, self.istarget = self.get_train_op(is_training, get_wer=get_wer) 476 | 477 | def mel_spectrograms_feat(self, pcm): 478 | # A 512-point STFT with frames of 64 ms and 75% overlap. 479 | pcm_batch_size = tf.shape(pcm)[0] 480 | stfts = tf.contrib.signal.stft(pcm, frame_length=400, frame_step=160, 481 | fft_length=512) 482 | spectrograms = tf.abs(stfts) 483 | 484 | # Warp the linear scale spectrograms into the mel-scale. 485 | num_spectrogram_bins = stfts.shape[-1].value 486 | lower_edge_hertz, upper_edge_hertz, num_mel_bins = 0.0, 8000.0, 80 487 | linear_to_mel_weight_matrix = tf.contrib.signal.linear_to_mel_weight_matrix( 488 | num_mel_bins, num_spectrogram_bins, self._hp.sample_rate, lower_edge_hertz, 489 | upper_edge_hertz) 490 | mel_spectrograms = tf.tensordot( 491 | spectrograms, linear_to_mel_weight_matrix, 1) 492 | mel_spectrograms.set_shape(spectrograms.shape[:-1].concatenate( 493 | linear_to_mel_weight_matrix.shape[-1:])) 494 | 495 | # Compute a stabilized log to get log-magnitude mel-scale spectrograms. 496 | log_mel_spectrograms = tf.log(mel_spectrograms + 1e-6) 497 | 498 | # stack-4_downdownsampled-3 499 | log_mel_spectrograms_reshape = tf.reshape(log_mel_spectrograms[:, :self._hp.audio_length * 3, :], 500 | [-1, self._hp.audio_length, 3 * 80]) 501 | 502 | downdownsampled_index = tf.range(3, self._hp.log_mel_length, 3) 503 | downdownsampled_index = tf.reshape(downdownsampled_index, [1, self._hp.audio_length]) 504 | downdownsampled_index = tf.tile(downdownsampled_index, [pcm_batch_size, 1]) 505 | 506 | batch_index = tf.reshape(tf.range(pcm_batch_size), [-1, 1]) 507 | batch_index = tf.tile(batch_index, [1, self._hp.audio_length]) 508 | 509 | downdownsampled_index_nd_stack = tf.stack([batch_index, downdownsampled_index], axis=2) 510 | 511 | downdownsampled_values = tf.gather_nd(log_mel_spectrograms, downdownsampled_index_nd_stack) 512 | log_mel_spectrograms_reshape = tf.concat([log_mel_spectrograms_reshape, downdownsampled_values], 2) 513 | return log_mel_spectrograms_reshape 514 | 515 | def make_parallel(self, reuse=None, is_training=True, get_wer=False): 516 | if len(self.src_pls) <= 1: 517 | raise ValueError 518 | 519 | with self.graph.as_default(): 520 | loss_list, gv_list = [], [] 521 | preds_list, istarget_list = [], [] 522 | cache = {} 523 | load = dict([(d, 0) for d in self._devices]) 524 | for i, (X, Y, device) in enumerate(zip(self.signal_pls, self.dst_pls, self._devices)): 525 | 526 | def daisy_chain_getter(getter, name, *args, **kwargs): 527 | """Get a variable and cache in a daisy chain.""" 528 | device_var_key = (device, name) 529 | if device_var_key in cache: 530 | # if we have the variable on the correct device, return it. 531 | return cache[device_var_key] 532 | if name in cache and "decoder" not in name and "logits" not in name: 533 | # if we have it on a different device, copy it from the last device 534 | v = tf.identity(cache[name]) 535 | else: 536 | var = getter(name, *args, **kwargs) 537 | v = tf.identity(var._ref()) # pylint: disable=protected-access 538 | # update the cache 539 | cache[name] = v 540 | cache[device_var_key] = v 541 | return v 542 | 543 | def balanced_device_setter(op): 544 | """Balance variables to all devices.""" 545 | if op.type in {'Variable', 'VariableV2', 'VarHandleOp'}: 546 | # return self._sync_device 547 | min_load = min(load.values()) 548 | min_load_devices = [d for d in load if load[d] == min_load] 549 | chosen_device = random.choice(min_load_devices) 550 | load[chosen_device] += op.outputs[0].get_shape().num_elements() 551 | return chosen_device 552 | return device 553 | 554 | device_setter = balanced_device_setter 555 | if i > 0: 556 | reuse = True 557 | 558 | with tf.variable_scope(tf.get_variable_scope(), 559 | initializer=self._initializer, 560 | # custom_getter=daisy_chain_getter, 561 | reuse=reuse): 562 | # with tf.device(device_setter): 563 | with tf.device(device): 564 | X = self.mel_spectrograms_feat(X) 565 | if not self._hp.train.is_scheduled: 566 | loss, preds, istarget = self.model_loss(X, Y, reuse=reuse, is_training=is_training, 567 | scope="transformer") 568 | else: 569 | loss, preds, istarget = self.model_scheduled_sampling_output(X, Y, reuse=reuse, 570 | is_training=is_training, 571 | scope="transformer") 572 | loss_list.append(loss) 573 | preds_list.append(preds) 574 | istarget_list.append(istarget) 575 | var_list = tf.trainable_variables() 576 | if self._hp.train.var_filter: 577 | var_list = [v for v in var_list if re.match(self._hp.train.var_filter, v.name)] 578 | gv_list.append(self._optimizer.compute_gradients(loss, var_list=var_list)) 579 | if get_wer: 580 | distance, length = self.get_wer(Y, preds, index_same=True) 581 | self.distance += distance 582 | self.length += length 583 | 584 | loss = tf.reduce_mean(loss_list) 585 | 586 | # Clip gradients and then apply. 587 | grads_and_vars = average_gradients(gv_list) 588 | 589 | if self._hp.train.grads_clip > 0: 590 | grads, grads_norm = tf.clip_by_global_norm([gv[0] for gv in grads_and_vars], 591 | clip_norm=self._hp.train.grads_clip) 592 | grads_and_vars = zip(grads, [gv[1] for gv in grads_and_vars]) 593 | else: 594 | grads_norm = tf.global_norm([gv[0] for gv in grads_and_vars]) 595 | 596 | train_op = self._optimizer.apply_gradients(grads_and_vars, global_step=self.global_step) 597 | preds = tf.concat(preds_list, 0) 598 | istarget = tf.concat(istarget_list, 0) 599 | 600 | return loss, grads_norm, train_op, preds, istarget 601 | 602 | def make_parallel_beam_search(self, reuse=True, is_training=False, get_wer=False): 603 | if len(self.src_pls) <= 1: 604 | raise ValueError 605 | 606 | with self.graph.as_default(): 607 | prediction_list = [] 608 | for i, (X, Y, device) in enumerate(zip(self.signal_pls, self.dst_pls, self._devices)): 609 | if i > 0: 610 | reuse = True 611 | with tf.variable_scope(tf.get_variable_scope(), reuse=reuse, initializer=self._initializer): 612 | with tf.device(device): 613 | X = self.mel_spectrograms_feat(X) 614 | prediction = self.model_beam_search_preds(X, reuse, is_training, scope="transformer") 615 | if get_wer: 616 | test_distance, test_length = self.get_wer(Y, prediction) 617 | self.test_distance += test_distance 618 | self.test_length += test_length 619 | 620 | prediction_list.append(prediction) 621 | 622 | max_length = tf.reduce_max([tf.shape(pred)[1] for pred in prediction_list]) 623 | 624 | def pad_to_max_length(input, length): 625 | """Pad the input (with rank 2) with 3() to the given length in the second axis.""" 626 | shape = tf.shape(input) 627 | padding = tf.ones([shape[0], length - shape[1]], dtype=tf.int32) * 3 628 | return tf.concat([input, padding], axis=1) 629 | 630 | prediction_list = tf.concat([pad_to_max_length(pred, max_length) for pred in prediction_list], 0) 631 | return prediction_list 632 | --------------------------------------------------------------------------------