Yuekai Zhang commited on
Commit
b0df9b2
·
1 Parent(s): 3e535e2
Files changed (50) hide show
  1. Dockerfile +4 -0
  2. README.md +22 -0
  3. funasr_onnx/__init__.py +5 -0
  4. funasr_onnx/paraformer_bin.py +190 -0
  5. funasr_onnx/punc_bin.py +249 -0
  6. funasr_onnx/utils/__init__.py +0 -0
  7. funasr_onnx/utils/__pycache__/__init__.cpython-38.pyc +0 -0
  8. funasr_onnx/utils/__pycache__/e2e_vad.cpython-38.pyc +0 -0
  9. funasr_onnx/utils/__pycache__/frontend.cpython-38.pyc +0 -0
  10. funasr_onnx/utils/__pycache__/postprocess_utils.cpython-38.pyc +0 -0
  11. funasr_onnx/utils/__pycache__/timestamp_utils.cpython-38.pyc +0 -0
  12. funasr_onnx/utils/__pycache__/utils.cpython-38.pyc +0 -0
  13. funasr_onnx/utils/e2e_vad.py +607 -0
  14. funasr_onnx/utils/frontend.py +191 -0
  15. funasr_onnx/utils/postprocess_utils.py +240 -0
  16. funasr_onnx/utils/timestamp_utils.py +59 -0
  17. funasr_onnx/utils/utils.py +289 -0
  18. funasr_onnx/vad_bin.py +143 -0
  19. models/.gitattributes +3 -0
  20. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/.mdl +0 -0
  21. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/.msc +0 -0
  22. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/README.md +241 -0
  23. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/config.yaml +0 -0
  24. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/configuration.json +20 -0
  25. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/fig/struct.png +0 -0
  26. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/model.onnx +3 -0
  27. models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/punc.yaml +0 -0
  28. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/.mdl +0 -0
  29. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/.msc +0 -0
  30. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/README.md +260 -0
  31. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/configuration.json +22 -0
  32. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/fig/struct.png +0 -0
  33. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/model.onnx +3 -0
  34. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/vad.mvn +8 -0
  35. models/speech_fsmn_vad_zh-cn-16k-common-pytorch/vad.yaml +55 -0
  36. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/.mdl +0 -0
  37. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/.msc +0 -0
  38. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/README.md +503 -0
  39. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/am.mvn +8 -0
  40. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/config.yaml +8624 -0
  41. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/configuration.json +24 -0
  42. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/decoding.yaml +6 -0
  43. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/fig/struct.png +0 -0
  44. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/finetune.yaml +37 -0
  45. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.onnx +3 -0
  46. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/seg_dict +0 -0
  47. models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/tokens.txt +8404 -0
  48. requirements.txt +9 -0
  49. test_wavs/vad_example.wav +3 -0
  50. transcribe.py +73 -0
Dockerfile ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ FROM nvcr.io/nvidia/pytorch:22.12-py3
2
+ COPY ./ /workspace/
3
+ WORKDIR /workspace/
4
+ RUN pip3 install -r requirements.txt
README.md ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ ### Usage
3
+
4
+ ```
5
+ apt-get install git-lfs
6
+ git lfs install
7
+ git clone https://huggingface.co/yuekai/paraformerX
8
+ cd paraformerX
9
+
10
+ pip install -r ./requirements.txt
11
+
12
+ python3 transcribe.py --wav-path test_wavs/vad_example.wav
13
+ ```
14
+
15
+
16
+ ### Using Docker
17
+ ```
18
+ docker build -f Dockerfile -t soar97/torch-paraformer:22.12 .
19
+ # docker pull soar97/torch-paraformer:22.12
20
+
21
+ docker run -it --name "paraformerX" --net host soar97/torch-paraformer:22.12
22
+ ```
funasr_onnx/__init__.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ # -*- encoding: utf-8 -*-
2
+ from .paraformer_bin import Paraformer
3
+ from .vad_bin import Fsmn_vad
4
+ from .punc_bin import CT_Transformer
5
+ from .punc_bin import CT_Transformer_VadRealtime
funasr_onnx/paraformer_bin.py ADDED
@@ -0,0 +1,190 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ import os.path
4
+ from pathlib import Path
5
+ from typing import List, Union, Tuple
6
+
7
+ import copy
8
+ import librosa
9
+ import numpy as np
10
+
11
+ from .utils.utils import (CharTokenizer, Hypothesis, ONNXRuntimeError,
12
+ OrtInferSession, TokenIDConverter, get_logger,
13
+ read_yaml)
14
+ from .utils.postprocess_utils import sentence_postprocess
15
+ from .utils.frontend import WavFrontend
16
+ from .utils.timestamp_utils import time_stamp_lfr6_onnx
17
+
18
+ logging = get_logger()
19
+
20
+
21
+ class Paraformer():
22
+ def __init__(self, model_dir: Union[str, Path] = None,
23
+ batch_size: int = 1,
24
+ device_id: Union[str, int] = "-1",
25
+ plot_timestamp_to: str = "",
26
+ pred_bias: int = 1,
27
+ quantize: bool = False,
28
+ intra_op_num_threads: int = 4,
29
+ ):
30
+
31
+ if not Path(model_dir).exists():
32
+ raise FileNotFoundError(f'{model_dir} does not exist.')
33
+
34
+ model_file = os.path.join(model_dir, 'model.onnx')
35
+ if quantize:
36
+ model_file = os.path.join(model_dir, 'model_quant.onnx')
37
+ config_file = os.path.join(model_dir, 'config.yaml')
38
+ cmvn_file = os.path.join(model_dir, 'am.mvn')
39
+ config = read_yaml(config_file)
40
+
41
+ self.converter = TokenIDConverter(config['token_list'])
42
+ self.tokenizer = CharTokenizer()
43
+ self.frontend = WavFrontend(
44
+ cmvn_file=cmvn_file,
45
+ **config['frontend_conf']
46
+ )
47
+ self.ort_infer = OrtInferSession(model_file, device_id, intra_op_num_threads=intra_op_num_threads)
48
+ self.batch_size = batch_size
49
+ self.plot_timestamp_to = plot_timestamp_to
50
+ self.pred_bias = pred_bias
51
+
52
+ def __call__(self, wav_content: Union[str, np.ndarray, List[str]], **kwargs) -> List:
53
+ waveform_list = self.load_data(wav_content, self.frontend.opts.frame_opts.samp_freq)
54
+ waveform_nums = len(waveform_list)
55
+ asr_res = []
56
+ for beg_idx in range(0, waveform_nums, self.batch_size):
57
+
58
+ end_idx = min(waveform_nums, beg_idx + self.batch_size)
59
+ feats, feats_len = self.extract_feat(waveform_list[beg_idx:end_idx])
60
+ try:
61
+ outputs = self.infer(feats, feats_len)
62
+ am_scores, valid_token_lens = outputs[0], outputs[1]
63
+ if len(outputs) == 4:
64
+ # for BiCifParaformer Inference
65
+ us_alphas, us_peaks = outputs[2], outputs[3]
66
+ else:
67
+ us_alphas, us_peaks = None, None
68
+ except ONNXRuntimeError:
69
+ #logging.warning(traceback.format_exc())
70
+ logging.warning("input wav is silence or noise")
71
+ preds = ['']
72
+ else:
73
+ preds = self.decode(am_scores, valid_token_lens)
74
+ if us_peaks is None:
75
+ for pred in preds:
76
+ pred = sentence_postprocess(pred)
77
+ asr_res.append({'preds': pred})
78
+ else:
79
+ for pred, us_peaks_ in zip(preds, us_peaks):
80
+ raw_tokens = pred
81
+ timestamp, timestamp_raw = time_stamp_lfr6_onnx(us_peaks_, copy.copy(raw_tokens))
82
+ text_proc, timestamp_proc, _ = sentence_postprocess(raw_tokens, timestamp_raw)
83
+ # logging.warning(timestamp)
84
+ if len(self.plot_timestamp_to):
85
+ self.plot_wave_timestamp(waveform_list[0], timestamp, self.plot_timestamp_to)
86
+ asr_res.append({'preds': text_proc, 'timestamp': timestamp_proc, "raw_tokens": raw_tokens})
87
+ return asr_res
88
+
89
+ def plot_wave_timestamp(self, wav, text_timestamp, dest):
90
+ # TODO: Plot the wav and timestamp results with matplotlib
91
+ import matplotlib
92
+ matplotlib.use('Agg')
93
+ matplotlib.rc("font", family='Alibaba PuHuiTi') # set it to a font that your system supports
94
+ import matplotlib.pyplot as plt
95
+ fig, ax1 = plt.subplots(figsize=(11, 3.5), dpi=320)
96
+ ax2 = ax1.twinx()
97
+ ax2.set_ylim([0, 2.0])
98
+ # plot waveform
99
+ ax1.set_ylim([-0.3, 0.3])
100
+ time = np.arange(wav.shape[0]) / 16000
101
+ ax1.plot(time, wav/wav.max()*0.3, color='gray', alpha=0.4)
102
+ # plot lines and text
103
+ for (char, start, end) in text_timestamp:
104
+ ax1.vlines(start, -0.3, 0.3, ls='--')
105
+ ax1.vlines(end, -0.3, 0.3, ls='--')
106
+ x_adj = 0.045 if char != '<sil>' else 0.12
107
+ ax1.text((start + end) * 0.5 - x_adj, 0, char)
108
+ # plt.legend()
109
+ plotname = "{}/timestamp.png".format(dest)
110
+ plt.savefig(plotname, bbox_inches='tight')
111
+
112
+ def load_data(self,
113
+ wav_content: Union[str, np.ndarray, List[str]], fs: int = None) -> List:
114
+ def load_wav(path: str) -> np.ndarray:
115
+ waveform, _ = librosa.load(path, sr=fs)
116
+ return waveform
117
+
118
+ if isinstance(wav_content, np.ndarray):
119
+ return [wav_content]
120
+
121
+ if isinstance(wav_content, str):
122
+ return [load_wav(wav_content)]
123
+
124
+ if isinstance(wav_content, list):
125
+ if isinstance(wav_content[0], np.ndarray):
126
+ return wav_content
127
+ else:
128
+ return [load_wav(path) for path in wav_content]
129
+
130
+ raise TypeError(
131
+ f'The type of {wav_content} is not in [str, np.ndarray, list]')
132
+
133
+ def extract_feat(self,
134
+ waveform_list: List[np.ndarray]
135
+ ) -> Tuple[np.ndarray, np.ndarray]:
136
+ feats, feats_len = [], []
137
+ for waveform in waveform_list:
138
+ speech, _ = self.frontend.fbank(waveform)
139
+ feat, feat_len = self.frontend.lfr_cmvn(speech)
140
+ feats.append(feat)
141
+ feats_len.append(feat_len)
142
+
143
+ feats = self.pad_feats(feats, np.max(feats_len))
144
+ feats_len = np.array(feats_len).astype(np.int32)
145
+ return feats, feats_len
146
+
147
+ @staticmethod
148
+ def pad_feats(feats: List[np.ndarray], max_feat_len: int) -> np.ndarray:
149
+ def pad_feat(feat: np.ndarray, cur_len: int) -> np.ndarray:
150
+ pad_width = ((0, max_feat_len - cur_len), (0, 0))
151
+ return np.pad(feat, pad_width, 'constant', constant_values=0)
152
+
153
+ feat_res = [pad_feat(feat, feat.shape[0]) for feat in feats]
154
+ feats = np.array(feat_res).astype(np.float32)
155
+ return feats
156
+
157
+ def infer(self, feats: np.ndarray,
158
+ feats_len: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
159
+ outputs = self.ort_infer([feats, feats_len])
160
+ return outputs
161
+
162
+ def decode(self, am_scores: np.ndarray, token_nums: int) -> List[str]:
163
+ return [self.decode_one(am_score, token_num)
164
+ for am_score, token_num in zip(am_scores, token_nums)]
165
+
166
+ def decode_one(self,
167
+ am_score: np.ndarray,
168
+ valid_token_num: int) -> List[str]:
169
+ yseq = am_score.argmax(axis=-1)
170
+ score = am_score.max(axis=-1)
171
+ score = np.sum(score, axis=-1)
172
+
173
+ # pad with mask tokens to ensure compatibility with sos/eos tokens
174
+ # asr_model.sos:1 asr_model.eos:2
175
+ yseq = np.array([1] + yseq.tolist() + [2])
176
+ hyp = Hypothesis(yseq=yseq, score=score)
177
+
178
+ # remove sos/eos and get results
179
+ last_pos = -1
180
+ token_int = hyp.yseq[1:last_pos].tolist()
181
+
182
+ # remove blank symbol id, which is assumed to be 0
183
+ token_int = list(filter(lambda x: x not in (0, 2), token_int))
184
+
185
+ # Change integer-ids to tokens
186
+ token = self.converter.ids2tokens(token_int)
187
+ token = token[:valid_token_num-self.pred_bias]
188
+ # texts = sentence_postprocess(token)
189
+ return token
190
+
funasr_onnx/punc_bin.py ADDED
@@ -0,0 +1,249 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ import os.path
4
+ from pathlib import Path
5
+ from typing import List, Union, Tuple
6
+ import numpy as np
7
+
8
+ from .utils.utils import (ONNXRuntimeError,
9
+ OrtInferSession, get_logger,
10
+ read_yaml)
11
+ from .utils.utils import (TokenIDConverter, split_to_mini_sentence,code_mix_split_words)
12
+ logging = get_logger()
13
+
14
+
15
+ class CT_Transformer():
16
+ def __init__(self, model_dir: Union[str, Path] = None,
17
+ batch_size: int = 1,
18
+ device_id: Union[str, int] = "-1",
19
+ quantize: bool = False,
20
+ intra_op_num_threads: int = 4
21
+ ):
22
+
23
+ if not Path(model_dir).exists():
24
+ raise FileNotFoundError(f'{model_dir} does not exist.')
25
+
26
+ model_file = os.path.join(model_dir, 'model.onnx')
27
+ if quantize:
28
+ model_file = os.path.join(model_dir, 'model_quant.onnx')
29
+ config_file = os.path.join(model_dir, 'punc.yaml')
30
+ config = read_yaml(config_file)
31
+
32
+ self.converter = TokenIDConverter(config['token_list'])
33
+ self.ort_infer = OrtInferSession(model_file, device_id, intra_op_num_threads=intra_op_num_threads)
34
+ self.batch_size = 1
35
+ self.punc_list = config['punc_list']
36
+ self.period = 0
37
+ for i in range(len(self.punc_list)):
38
+ if self.punc_list[i] == ",":
39
+ self.punc_list[i] = ","
40
+ elif self.punc_list[i] == "?":
41
+ self.punc_list[i] = "?"
42
+ elif self.punc_list[i] == "。":
43
+ self.period = i
44
+
45
+ def __call__(self, text: Union[list, str], split_size=20):
46
+ split_text = code_mix_split_words(text)
47
+ split_text_id = self.converter.tokens2ids(split_text)
48
+ mini_sentences = split_to_mini_sentence(split_text, split_size)
49
+ mini_sentences_id = split_to_mini_sentence(split_text_id, split_size)
50
+ assert len(mini_sentences) == len(mini_sentences_id)
51
+ cache_sent = []
52
+ cache_sent_id = []
53
+ new_mini_sentence = ""
54
+ new_mini_sentence_punc = []
55
+ cache_pop_trigger_limit = 200
56
+ for mini_sentence_i in range(len(mini_sentences)):
57
+ mini_sentence = mini_sentences[mini_sentence_i]
58
+ mini_sentence_id = mini_sentences_id[mini_sentence_i]
59
+ mini_sentence = cache_sent + mini_sentence
60
+ mini_sentence_id = np.array(cache_sent_id + mini_sentence_id, dtype='int64')
61
+ data = {
62
+ "text": mini_sentence_id[None,:],
63
+ "text_lengths": np.array([len(mini_sentence_id)], dtype='int32'),
64
+ }
65
+ try:
66
+ outputs = self.infer(data['text'], data['text_lengths'])
67
+ y = outputs[0]
68
+ punctuations = np.argmax(y,axis=-1)[0]
69
+ assert punctuations.size == len(mini_sentence)
70
+ except ONNXRuntimeError:
71
+ logging.warning("error")
72
+
73
+ # Search for the last Period/QuestionMark as cache
74
+ if mini_sentence_i < len(mini_sentences) - 1:
75
+ sentenceEnd = -1
76
+ last_comma_index = -1
77
+ for i in range(len(punctuations) - 2, 1, -1):
78
+ if self.punc_list[punctuations[i]] == "。" or self.punc_list[punctuations[i]] == "?":
79
+ sentenceEnd = i
80
+ break
81
+ if last_comma_index < 0 and self.punc_list[punctuations[i]] == ",":
82
+ last_comma_index = i
83
+
84
+ if sentenceEnd < 0 and len(mini_sentence) > cache_pop_trigger_limit and last_comma_index >= 0:
85
+ # The sentence it too long, cut off at a comma.
86
+ sentenceEnd = last_comma_index
87
+ punctuations[sentenceEnd] = self.period
88
+ cache_sent = mini_sentence[sentenceEnd + 1:]
89
+ cache_sent_id = mini_sentence_id[sentenceEnd + 1:].tolist()
90
+ mini_sentence = mini_sentence[0:sentenceEnd + 1]
91
+ punctuations = punctuations[0:sentenceEnd + 1]
92
+
93
+ new_mini_sentence_punc += [int(x) for x in punctuations]
94
+ words_with_punc = []
95
+ for i in range(len(mini_sentence)):
96
+ if i > 0:
97
+ if len(mini_sentence[i][0].encode()) == 1 and len(mini_sentence[i - 1][0].encode()) == 1:
98
+ mini_sentence[i] = " " + mini_sentence[i]
99
+ words_with_punc.append(mini_sentence[i])
100
+ if self.punc_list[punctuations[i]] != "_":
101
+ words_with_punc.append(self.punc_list[punctuations[i]])
102
+ new_mini_sentence += "".join(words_with_punc)
103
+ # Add Period for the end of the sentence
104
+ new_mini_sentence_out = new_mini_sentence
105
+ new_mini_sentence_punc_out = new_mini_sentence_punc
106
+ if mini_sentence_i == len(mini_sentences) - 1:
107
+ if new_mini_sentence[-1] == "," or new_mini_sentence[-1] == "、":
108
+ new_mini_sentence_out = new_mini_sentence[:-1] + "。"
109
+ new_mini_sentence_punc_out = new_mini_sentence_punc[:-1] + [self.period]
110
+ elif new_mini_sentence[-1] != "。" and new_mini_sentence[-1] != "?":
111
+ new_mini_sentence_out = new_mini_sentence + "。"
112
+ new_mini_sentence_punc_out = new_mini_sentence_punc[:-1] + [self.period]
113
+ return new_mini_sentence_out, new_mini_sentence_punc_out
114
+
115
+ def infer(self, feats: np.ndarray,
116
+ feats_len: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
117
+ outputs = self.ort_infer([feats, feats_len])
118
+ return outputs
119
+
120
+
121
+ class CT_Transformer_VadRealtime(CT_Transformer):
122
+ def __init__(self, model_dir: Union[str, Path] = None,
123
+ batch_size: int = 1,
124
+ device_id: Union[str, int] = "-1",
125
+ quantize: bool = False,
126
+ intra_op_num_threads: int = 4
127
+ ):
128
+ super(CT_Transformer_VadRealtime, self).__init__(model_dir, batch_size, device_id, quantize, intra_op_num_threads)
129
+
130
+ def __call__(self, text: str, param_dict: map, split_size=20):
131
+ cache_key = "cache"
132
+ assert cache_key in param_dict
133
+ cache = param_dict[cache_key]
134
+ if cache is not None and len(cache) > 0:
135
+ precache = "".join(cache)
136
+ else:
137
+ precache = ""
138
+ cache = []
139
+ full_text = precache + text
140
+ split_text = code_mix_split_words(full_text)
141
+ split_text_id = self.converter.tokens2ids(split_text)
142
+ mini_sentences = split_to_mini_sentence(split_text, split_size)
143
+ mini_sentences_id = split_to_mini_sentence(split_text_id, split_size)
144
+ new_mini_sentence_punc = []
145
+ assert len(mini_sentences) == len(mini_sentences_id)
146
+
147
+ cache_sent = []
148
+ cache_sent_id = np.array([], dtype='int32')
149
+ sentence_punc_list = []
150
+ sentence_words_list = []
151
+ cache_pop_trigger_limit = 200
152
+ skip_num = 0
153
+ for mini_sentence_i in range(len(mini_sentences)):
154
+ mini_sentence = mini_sentences[mini_sentence_i]
155
+ mini_sentence_id = mini_sentences_id[mini_sentence_i]
156
+ mini_sentence = cache_sent + mini_sentence
157
+ mini_sentence_id = np.concatenate((cache_sent_id, mini_sentence_id), axis=0)
158
+ text_length = len(mini_sentence_id)
159
+ data = {
160
+ "input": mini_sentence_id[None,:],
161
+ "text_lengths": np.array([text_length], dtype='int32'),
162
+ "vad_mask": self.vad_mask(text_length, len(cache) - 1)[None, None, :, :].astype(np.float32),
163
+ "sub_masks": np.tril(np.ones((text_length, text_length), dtype=np.float32))[None, None, :, :].astype(np.float32)
164
+ }
165
+ try:
166
+ outputs = self.infer(data['input'], data['text_lengths'], data['vad_mask'], data["sub_masks"])
167
+ y = outputs[0]
168
+ punctuations = np.argmax(y,axis=-1)[0]
169
+ assert punctuations.size == len(mini_sentence)
170
+ except ONNXRuntimeError:
171
+ logging.warning("error")
172
+
173
+ # Search for the last Period/QuestionMark as cache
174
+ if mini_sentence_i < len(mini_sentences) - 1:
175
+ sentenceEnd = -1
176
+ last_comma_index = -1
177
+ for i in range(len(punctuations) - 2, 1, -1):
178
+ if self.punc_list[punctuations[i]] == "。" or self.punc_list[punctuations[i]] == "?":
179
+ sentenceEnd = i
180
+ break
181
+ if last_comma_index < 0 and self.punc_list[punctuations[i]] == ",":
182
+ last_comma_index = i
183
+
184
+ if sentenceEnd < 0 and len(mini_sentence) > cache_pop_trigger_limit and last_comma_index >= 0:
185
+ # The sentence it too long, cut off at a comma.
186
+ sentenceEnd = last_comma_index
187
+ punctuations[sentenceEnd] = self.period
188
+ cache_sent = mini_sentence[sentenceEnd + 1:]
189
+ cache_sent_id = mini_sentence_id[sentenceEnd + 1:]
190
+ mini_sentence = mini_sentence[0:sentenceEnd + 1]
191
+ punctuations = punctuations[0:sentenceEnd + 1]
192
+
193
+ punctuations_np = [int(x) for x in punctuations]
194
+ new_mini_sentence_punc += punctuations_np
195
+ sentence_punc_list += [self.punc_list[int(x)] for x in punctuations_np]
196
+ sentence_words_list += mini_sentence
197
+
198
+ assert len(sentence_punc_list) == len(sentence_words_list)
199
+ words_with_punc = []
200
+ sentence_punc_list_out = []
201
+ for i in range(0, len(sentence_words_list)):
202
+ if i > 0:
203
+ if len(sentence_words_list[i][0].encode()) == 1 and len(sentence_words_list[i - 1][-1].encode()) == 1:
204
+ sentence_words_list[i] = " " + sentence_words_list[i]
205
+ if skip_num < len(cache):
206
+ skip_num += 1
207
+ else:
208
+ words_with_punc.append(sentence_words_list[i])
209
+ if skip_num >= len(cache):
210
+ sentence_punc_list_out.append(sentence_punc_list[i])
211
+ if sentence_punc_list[i] != "_":
212
+ words_with_punc.append(sentence_punc_list[i])
213
+ sentence_out = "".join(words_with_punc)
214
+
215
+ sentenceEnd = -1
216
+ for i in range(len(sentence_punc_list) - 2, 1, -1):
217
+ if sentence_punc_list[i] == "。" or sentence_punc_list[i] == "?":
218
+ sentenceEnd = i
219
+ break
220
+ cache_out = sentence_words_list[sentenceEnd + 1:]
221
+ if sentence_out[-1] in self.punc_list:
222
+ sentence_out = sentence_out[:-1]
223
+ sentence_punc_list_out[-1] = "_"
224
+ param_dict[cache_key] = cache_out
225
+ return sentence_out, sentence_punc_list_out, cache_out
226
+
227
+ def vad_mask(self, size, vad_pos, dtype=np.bool):
228
+ """Create mask for decoder self-attention.
229
+
230
+ :param int size: size of mask
231
+ :param int vad_pos: index of vad index
232
+ :param torch.dtype dtype: result dtype
233
+ :rtype: torch.Tensor (B, Lmax, Lmax)
234
+ """
235
+ ret = np.ones((size, size), dtype=dtype)
236
+ if vad_pos <= 0 or vad_pos >= size:
237
+ return ret
238
+ sub_corner = np.zeros(
239
+ (vad_pos - 1, size - vad_pos), dtype=dtype)
240
+ ret[0:vad_pos - 1, vad_pos:] = sub_corner
241
+ return ret
242
+
243
+ def infer(self, feats: np.ndarray,
244
+ feats_len: np.ndarray,
245
+ vad_mask: np.ndarray,
246
+ sub_masks: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
247
+ outputs = self.ort_infer([feats, feats_len, vad_mask, sub_masks])
248
+ return outputs
249
+
funasr_onnx/utils/__init__.py ADDED
File without changes
funasr_onnx/utils/__pycache__/__init__.cpython-38.pyc ADDED
Binary file (164 Bytes). View file
 
funasr_onnx/utils/__pycache__/e2e_vad.cpython-38.pyc ADDED
Binary file (16.4 kB). View file
 
funasr_onnx/utils/__pycache__/frontend.cpython-38.pyc ADDED
Binary file (6.1 kB). View file
 
funasr_onnx/utils/__pycache__/postprocess_utils.cpython-38.pyc ADDED
Binary file (3.84 kB). View file
 
funasr_onnx/utils/__pycache__/timestamp_utils.cpython-38.pyc ADDED
Binary file (1.52 kB). View file
 
funasr_onnx/utils/__pycache__/utils.cpython-38.pyc ADDED
Binary file (10.8 kB). View file
 
funasr_onnx/utils/e2e_vad.py ADDED
@@ -0,0 +1,607 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from enum import Enum
2
+ from typing import List, Tuple, Dict, Any
3
+
4
+ import math
5
+ import numpy as np
6
+
7
+ class VadStateMachine(Enum):
8
+ kVadInStateStartPointNotDetected = 1
9
+ kVadInStateInSpeechSegment = 2
10
+ kVadInStateEndPointDetected = 3
11
+
12
+
13
+ class FrameState(Enum):
14
+ kFrameStateInvalid = -1
15
+ kFrameStateSpeech = 1
16
+ kFrameStateSil = 0
17
+
18
+
19
+ # final voice/unvoice state per frame
20
+ class AudioChangeState(Enum):
21
+ kChangeStateSpeech2Speech = 0
22
+ kChangeStateSpeech2Sil = 1
23
+ kChangeStateSil2Sil = 2
24
+ kChangeStateSil2Speech = 3
25
+ kChangeStateNoBegin = 4
26
+ kChangeStateInvalid = 5
27
+
28
+
29
+ class VadDetectMode(Enum):
30
+ kVadSingleUtteranceDetectMode = 0
31
+ kVadMutipleUtteranceDetectMode = 1
32
+
33
+
34
+ class VADXOptions:
35
+ def __init__(
36
+ self,
37
+ sample_rate: int = 16000,
38
+ detect_mode: int = VadDetectMode.kVadMutipleUtteranceDetectMode.value,
39
+ snr_mode: int = 0,
40
+ max_end_silence_time: int = 800,
41
+ max_start_silence_time: int = 3000,
42
+ do_start_point_detection: bool = True,
43
+ do_end_point_detection: bool = True,
44
+ window_size_ms: int = 200,
45
+ sil_to_speech_time_thres: int = 150,
46
+ speech_to_sil_time_thres: int = 150,
47
+ speech_2_noise_ratio: float = 1.0,
48
+ do_extend: int = 1,
49
+ lookback_time_start_point: int = 200,
50
+ lookahead_time_end_point: int = 100,
51
+ max_single_segment_time: int = 60000,
52
+ nn_eval_block_size: int = 8,
53
+ dcd_block_size: int = 4,
54
+ snr_thres: int = -100.0,
55
+ noise_frame_num_used_for_snr: int = 100,
56
+ decibel_thres: int = -100.0,
57
+ speech_noise_thres: float = 0.6,
58
+ fe_prior_thres: float = 1e-4,
59
+ silence_pdf_num: int = 1,
60
+ sil_pdf_ids: List[int] = [0],
61
+ speech_noise_thresh_low: float = -0.1,
62
+ speech_noise_thresh_high: float = 0.3,
63
+ output_frame_probs: bool = False,
64
+ frame_in_ms: int = 10,
65
+ frame_length_ms: int = 25,
66
+ ):
67
+ self.sample_rate = sample_rate
68
+ self.detect_mode = detect_mode
69
+ self.snr_mode = snr_mode
70
+ self.max_end_silence_time = max_end_silence_time
71
+ self.max_start_silence_time = max_start_silence_time
72
+ self.do_start_point_detection = do_start_point_detection
73
+ self.do_end_point_detection = do_end_point_detection
74
+ self.window_size_ms = window_size_ms
75
+ self.sil_to_speech_time_thres = sil_to_speech_time_thres
76
+ self.speech_to_sil_time_thres = speech_to_sil_time_thres
77
+ self.speech_2_noise_ratio = speech_2_noise_ratio
78
+ self.do_extend = do_extend
79
+ self.lookback_time_start_point = lookback_time_start_point
80
+ self.lookahead_time_end_point = lookahead_time_end_point
81
+ self.max_single_segment_time = max_single_segment_time
82
+ self.nn_eval_block_size = nn_eval_block_size
83
+ self.dcd_block_size = dcd_block_size
84
+ self.snr_thres = snr_thres
85
+ self.noise_frame_num_used_for_snr = noise_frame_num_used_for_snr
86
+ self.decibel_thres = decibel_thres
87
+ self.speech_noise_thres = speech_noise_thres
88
+ self.fe_prior_thres = fe_prior_thres
89
+ self.silence_pdf_num = silence_pdf_num
90
+ self.sil_pdf_ids = sil_pdf_ids
91
+ self.speech_noise_thresh_low = speech_noise_thresh_low
92
+ self.speech_noise_thresh_high = speech_noise_thresh_high
93
+ self.output_frame_probs = output_frame_probs
94
+ self.frame_in_ms = frame_in_ms
95
+ self.frame_length_ms = frame_length_ms
96
+
97
+
98
+ class E2EVadSpeechBufWithDoa(object):
99
+ def __init__(self):
100
+ self.start_ms = 0
101
+ self.end_ms = 0
102
+ self.buffer = []
103
+ self.contain_seg_start_point = False
104
+ self.contain_seg_end_point = False
105
+ self.doa = 0
106
+
107
+ def Reset(self):
108
+ self.start_ms = 0
109
+ self.end_ms = 0
110
+ self.buffer = []
111
+ self.contain_seg_start_point = False
112
+ self.contain_seg_end_point = False
113
+ self.doa = 0
114
+
115
+
116
+ class E2EVadFrameProb(object):
117
+ def __init__(self):
118
+ self.noise_prob = 0.0
119
+ self.speech_prob = 0.0
120
+ self.score = 0.0
121
+ self.frame_id = 0
122
+ self.frm_state = 0
123
+
124
+
125
+ class WindowDetector(object):
126
+ def __init__(self, window_size_ms: int, sil_to_speech_time: int,
127
+ speech_to_sil_time: int, frame_size_ms: int):
128
+ self.window_size_ms = window_size_ms
129
+ self.sil_to_speech_time = sil_to_speech_time
130
+ self.speech_to_sil_time = speech_to_sil_time
131
+ self.frame_size_ms = frame_size_ms
132
+
133
+ self.win_size_frame = int(window_size_ms / frame_size_ms)
134
+ self.win_sum = 0
135
+ self.win_state = [0] * self.win_size_frame # 初始化窗
136
+
137
+ self.cur_win_pos = 0
138
+ self.pre_frame_state = FrameState.kFrameStateSil
139
+ self.cur_frame_state = FrameState.kFrameStateSil
140
+ self.sil_to_speech_frmcnt_thres = int(sil_to_speech_time / frame_size_ms)
141
+ self.speech_to_sil_frmcnt_thres = int(speech_to_sil_time / frame_size_ms)
142
+
143
+ self.voice_last_frame_count = 0
144
+ self.noise_last_frame_count = 0
145
+ self.hydre_frame_count = 0
146
+
147
+ def Reset(self) -> None:
148
+ self.cur_win_pos = 0
149
+ self.win_sum = 0
150
+ self.win_state = [0] * self.win_size_frame
151
+ self.pre_frame_state = FrameState.kFrameStateSil
152
+ self.cur_frame_state = FrameState.kFrameStateSil
153
+ self.voice_last_frame_count = 0
154
+ self.noise_last_frame_count = 0
155
+ self.hydre_frame_count = 0
156
+
157
+ def GetWinSize(self) -> int:
158
+ return int(self.win_size_frame)
159
+
160
+ def DetectOneFrame(self, frameState: FrameState, frame_count: int) -> AudioChangeState:
161
+ cur_frame_state = FrameState.kFrameStateSil
162
+ if frameState == FrameState.kFrameStateSpeech:
163
+ cur_frame_state = 1
164
+ elif frameState == FrameState.kFrameStateSil:
165
+ cur_frame_state = 0
166
+ else:
167
+ return AudioChangeState.kChangeStateInvalid
168
+ self.win_sum -= self.win_state[self.cur_win_pos]
169
+ self.win_sum += cur_frame_state
170
+ self.win_state[self.cur_win_pos] = cur_frame_state
171
+ self.cur_win_pos = (self.cur_win_pos + 1) % self.win_size_frame
172
+
173
+ if self.pre_frame_state == FrameState.kFrameStateSil and self.win_sum >= self.sil_to_speech_frmcnt_thres:
174
+ self.pre_frame_state = FrameState.kFrameStateSpeech
175
+ return AudioChangeState.kChangeStateSil2Speech
176
+
177
+ if self.pre_frame_state == FrameState.kFrameStateSpeech and self.win_sum <= self.speech_to_sil_frmcnt_thres:
178
+ self.pre_frame_state = FrameState.kFrameStateSil
179
+ return AudioChangeState.kChangeStateSpeech2Sil
180
+
181
+ if self.pre_frame_state == FrameState.kFrameStateSil:
182
+ return AudioChangeState.kChangeStateSil2Sil
183
+ if self.pre_frame_state == FrameState.kFrameStateSpeech:
184
+ return AudioChangeState.kChangeStateSpeech2Speech
185
+ return AudioChangeState.kChangeStateInvalid
186
+
187
+ def FrameSizeMs(self) -> int:
188
+ return int(self.frame_size_ms)
189
+
190
+
191
+ class E2EVadModel():
192
+ def __init__(self, vad_post_args: Dict[str, Any]):
193
+ super(E2EVadModel, self).__init__()
194
+ self.vad_opts = VADXOptions(**vad_post_args)
195
+ self.windows_detector = WindowDetector(self.vad_opts.window_size_ms,
196
+ self.vad_opts.sil_to_speech_time_thres,
197
+ self.vad_opts.speech_to_sil_time_thres,
198
+ self.vad_opts.frame_in_ms)
199
+ # self.encoder = encoder
200
+ # init variables
201
+ self.is_final = False
202
+ self.data_buf_start_frame = 0
203
+ self.frm_cnt = 0
204
+ self.latest_confirmed_speech_frame = 0
205
+ self.lastest_confirmed_silence_frame = -1
206
+ self.continous_silence_frame_count = 0
207
+ self.vad_state_machine = VadStateMachine.kVadInStateStartPointNotDetected
208
+ self.confirmed_start_frame = -1
209
+ self.confirmed_end_frame = -1
210
+ self.number_end_time_detected = 0
211
+ self.sil_frame = 0
212
+ self.sil_pdf_ids = self.vad_opts.sil_pdf_ids
213
+ self.noise_average_decibel = -100.0
214
+ self.pre_end_silence_detected = False
215
+ self.next_seg = True
216
+
217
+ self.output_data_buf = []
218
+ self.output_data_buf_offset = 0
219
+ self.frame_probs = []
220
+ self.max_end_sil_frame_cnt_thresh = self.vad_opts.max_end_silence_time - self.vad_opts.speech_to_sil_time_thres
221
+ self.speech_noise_thres = self.vad_opts.speech_noise_thres
222
+ self.scores = None
223
+ self.max_time_out = False
224
+ self.decibel = []
225
+ self.data_buf = None
226
+ self.data_buf_all = None
227
+ self.waveform = None
228
+ self.ResetDetection()
229
+
230
+ def AllResetDetection(self):
231
+ self.is_final = False
232
+ self.data_buf_start_frame = 0
233
+ self.frm_cnt = 0
234
+ self.latest_confirmed_speech_frame = 0
235
+ self.lastest_confirmed_silence_frame = -1
236
+ self.continous_silence_frame_count = 0
237
+ self.vad_state_machine = VadStateMachine.kVadInStateStartPointNotDetected
238
+ self.confirmed_start_frame = -1
239
+ self.confirmed_end_frame = -1
240
+ self.number_end_time_detected = 0
241
+ self.sil_frame = 0
242
+ self.sil_pdf_ids = self.vad_opts.sil_pdf_ids
243
+ self.noise_average_decibel = -100.0
244
+ self.pre_end_silence_detected = False
245
+ self.next_seg = True
246
+
247
+ self.output_data_buf = []
248
+ self.output_data_buf_offset = 0
249
+ self.frame_probs = []
250
+ self.max_end_sil_frame_cnt_thresh = self.vad_opts.max_end_silence_time - self.vad_opts.speech_to_sil_time_thres
251
+ self.speech_noise_thres = self.vad_opts.speech_noise_thres
252
+ self.scores = None
253
+ self.max_time_out = False
254
+ self.decibel = []
255
+ self.data_buf = None
256
+ self.data_buf_all = None
257
+ self.waveform = None
258
+ self.ResetDetection()
259
+
260
+ def ResetDetection(self):
261
+ self.continous_silence_frame_count = 0
262
+ self.latest_confirmed_speech_frame = 0
263
+ self.lastest_confirmed_silence_frame = -1
264
+ self.confirmed_start_frame = -1
265
+ self.confirmed_end_frame = -1
266
+ self.vad_state_machine = VadStateMachine.kVadInStateStartPointNotDetected
267
+ self.windows_detector.Reset()
268
+ self.sil_frame = 0
269
+ self.frame_probs = []
270
+
271
+ def ComputeDecibel(self) -> None:
272
+ frame_sample_length = int(self.vad_opts.frame_length_ms * self.vad_opts.sample_rate / 1000)
273
+ frame_shift_length = int(self.vad_opts.frame_in_ms * self.vad_opts.sample_rate / 1000)
274
+ if self.data_buf_all is None:
275
+ self.data_buf_all = self.waveform[0] # self.data_buf is pointed to self.waveform[0]
276
+ self.data_buf = self.data_buf_all
277
+ else:
278
+ self.data_buf_all = np.concatenate((self.data_buf_all, self.waveform[0]))
279
+ for offset in range(0, self.waveform.shape[1] - frame_sample_length + 1, frame_shift_length):
280
+ self.decibel.append(
281
+ 10 * math.log10(np.square((self.waveform[0][offset: offset + frame_sample_length])).sum() + \
282
+ 0.000001))
283
+
284
+ def ComputeScores(self, scores: np.ndarray) -> None:
285
+ # scores = self.encoder(feats, in_cache) # return B * T * D
286
+ self.vad_opts.nn_eval_block_size = scores.shape[1]
287
+ self.frm_cnt += scores.shape[1] # count total frames
288
+ if self.scores is None:
289
+ self.scores = scores # the first calculation
290
+ else:
291
+ self.scores = np.concatenate((self.scores, scores), axis=1)
292
+
293
+ def PopDataBufTillFrame(self, frame_idx: int) -> None: # need check again
294
+ while self.data_buf_start_frame < frame_idx:
295
+ if len(self.data_buf) >= int(self.vad_opts.frame_in_ms * self.vad_opts.sample_rate / 1000):
296
+ self.data_buf_start_frame += 1
297
+ self.data_buf = self.data_buf_all[self.data_buf_start_frame * int(
298
+ self.vad_opts.frame_in_ms * self.vad_opts.sample_rate / 1000):]
299
+
300
+ def PopDataToOutputBuf(self, start_frm: int, frm_cnt: int, first_frm_is_start_point: bool,
301
+ last_frm_is_end_point: bool, end_point_is_sent_end: bool) -> None:
302
+ self.PopDataBufTillFrame(start_frm)
303
+ expected_sample_number = int(frm_cnt * self.vad_opts.sample_rate * self.vad_opts.frame_in_ms / 1000)
304
+ if last_frm_is_end_point:
305
+ extra_sample = max(0, int(self.vad_opts.frame_length_ms * self.vad_opts.sample_rate / 1000 - \
306
+ self.vad_opts.sample_rate * self.vad_opts.frame_in_ms / 1000))
307
+ expected_sample_number += int(extra_sample)
308
+ if end_point_is_sent_end:
309
+ expected_sample_number = max(expected_sample_number, len(self.data_buf))
310
+ if len(self.data_buf) < expected_sample_number:
311
+ print('error in calling pop data_buf\n')
312
+
313
+ if len(self.output_data_buf) == 0 or first_frm_is_start_point:
314
+ self.output_data_buf.append(E2EVadSpeechBufWithDoa())
315
+ self.output_data_buf[-1].Reset()
316
+ self.output_data_buf[-1].start_ms = start_frm * self.vad_opts.frame_in_ms
317
+ self.output_data_buf[-1].end_ms = self.output_data_buf[-1].start_ms
318
+ self.output_data_buf[-1].doa = 0
319
+ cur_seg = self.output_data_buf[-1]
320
+ if cur_seg.end_ms != start_frm * self.vad_opts.frame_in_ms:
321
+ print('warning\n')
322
+ out_pos = len(cur_seg.buffer) # cur_seg.buff现在没做任何操作
323
+ data_to_pop = 0
324
+ if end_point_is_sent_end:
325
+ data_to_pop = expected_sample_number
326
+ else:
327
+ data_to_pop = int(frm_cnt * self.vad_opts.frame_in_ms * self.vad_opts.sample_rate / 1000)
328
+ if data_to_pop > len(self.data_buf):
329
+ print('VAD data_to_pop is bigger than self.data_buf.size()!!!\n')
330
+ data_to_pop = len(self.data_buf)
331
+ expected_sample_number = len(self.data_buf)
332
+
333
+ cur_seg.doa = 0
334
+ for sample_cpy_out in range(0, data_to_pop):
335
+ # cur_seg.buffer[out_pos ++] = data_buf_.back();
336
+ out_pos += 1
337
+ for sample_cpy_out in range(data_to_pop, expected_sample_number):
338
+ # cur_seg.buffer[out_pos++] = data_buf_.back()
339
+ out_pos += 1
340
+ if cur_seg.end_ms != start_frm * self.vad_opts.frame_in_ms:
341
+ print('Something wrong with the VAD algorithm\n')
342
+ self.data_buf_start_frame += frm_cnt
343
+ cur_seg.end_ms = (start_frm + frm_cnt) * self.vad_opts.frame_in_ms
344
+ if first_frm_is_start_point:
345
+ cur_seg.contain_seg_start_point = True
346
+ if last_frm_is_end_point:
347
+ cur_seg.contain_seg_end_point = True
348
+
349
+ def OnSilenceDetected(self, valid_frame: int):
350
+ self.lastest_confirmed_silence_frame = valid_frame
351
+ if self.vad_state_machine == VadStateMachine.kVadInStateStartPointNotDetected:
352
+ self.PopDataBufTillFrame(valid_frame)
353
+ # silence_detected_callback_
354
+ # pass
355
+
356
+ def OnVoiceDetected(self, valid_frame: int) -> None:
357
+ self.latest_confirmed_speech_frame = valid_frame
358
+ self.PopDataToOutputBuf(valid_frame, 1, False, False, False)
359
+
360
+ def OnVoiceStart(self, start_frame: int, fake_result: bool = False) -> None:
361
+ if self.vad_opts.do_start_point_detection:
362
+ pass
363
+ if self.confirmed_start_frame != -1:
364
+ print('not reset vad properly\n')
365
+ else:
366
+ self.confirmed_start_frame = start_frame
367
+
368
+ if not fake_result and self.vad_state_machine == VadStateMachine.kVadInStateStartPointNotDetected:
369
+ self.PopDataToOutputBuf(self.confirmed_start_frame, 1, True, False, False)
370
+
371
+ def OnVoiceEnd(self, end_frame: int, fake_result: bool, is_last_frame: bool) -> None:
372
+ for t in range(self.latest_confirmed_speech_frame + 1, end_frame):
373
+ self.OnVoiceDetected(t)
374
+ if self.vad_opts.do_end_point_detection:
375
+ pass
376
+ if self.confirmed_end_frame != -1:
377
+ print('not reset vad properly\n')
378
+ else:
379
+ self.confirmed_end_frame = end_frame
380
+ if not fake_result:
381
+ self.sil_frame = 0
382
+ self.PopDataToOutputBuf(self.confirmed_end_frame, 1, False, True, is_last_frame)
383
+ self.number_end_time_detected += 1
384
+
385
+ def MaybeOnVoiceEndIfLastFrame(self, is_final_frame: bool, cur_frm_idx: int) -> None:
386
+ if is_final_frame:
387
+ self.OnVoiceEnd(cur_frm_idx, False, True)
388
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
389
+
390
+ def GetLatency(self) -> int:
391
+ return int(self.LatencyFrmNumAtStartPoint() * self.vad_opts.frame_in_ms)
392
+
393
+ def LatencyFrmNumAtStartPoint(self) -> int:
394
+ vad_latency = self.windows_detector.GetWinSize()
395
+ if self.vad_opts.do_extend:
396
+ vad_latency += int(self.vad_opts.lookback_time_start_point / self.vad_opts.frame_in_ms)
397
+ return vad_latency
398
+
399
+ def GetFrameState(self, t: int) -> FrameState:
400
+ frame_state = FrameState.kFrameStateInvalid
401
+ cur_decibel = self.decibel[t]
402
+ cur_snr = cur_decibel - self.noise_average_decibel
403
+ # for each frame, calc log posterior probability of each state
404
+ if cur_decibel < self.vad_opts.decibel_thres:
405
+ frame_state = FrameState.kFrameStateSil
406
+ self.DetectOneFrame(frame_state, t, False)
407
+ return frame_state
408
+
409
+ sum_score = 0.0
410
+ noise_prob = 0.0
411
+ assert len(self.sil_pdf_ids) == self.vad_opts.silence_pdf_num
412
+ if len(self.sil_pdf_ids) > 0:
413
+ assert len(self.scores) == 1 # 只支持batch_size = 1的测试
414
+ sil_pdf_scores = [self.scores[0][t][sil_pdf_id] for sil_pdf_id in self.sil_pdf_ids]
415
+ sum_score = sum(sil_pdf_scores)
416
+ noise_prob = math.log(sum_score) * self.vad_opts.speech_2_noise_ratio
417
+ total_score = 1.0
418
+ sum_score = total_score - sum_score
419
+ speech_prob = math.log(sum_score)
420
+ if self.vad_opts.output_frame_probs:
421
+ frame_prob = E2EVadFrameProb()
422
+ frame_prob.noise_prob = noise_prob
423
+ frame_prob.speech_prob = speech_prob
424
+ frame_prob.score = sum_score
425
+ frame_prob.frame_id = t
426
+ self.frame_probs.append(frame_prob)
427
+ if math.exp(speech_prob) >= math.exp(noise_prob) + self.speech_noise_thres:
428
+ if cur_snr >= self.vad_opts.snr_thres and cur_decibel >= self.vad_opts.decibel_thres:
429
+ frame_state = FrameState.kFrameStateSpeech
430
+ else:
431
+ frame_state = FrameState.kFrameStateSil
432
+ else:
433
+ frame_state = FrameState.kFrameStateSil
434
+ if self.noise_average_decibel < -99.9:
435
+ self.noise_average_decibel = cur_decibel
436
+ else:
437
+ self.noise_average_decibel = (cur_decibel + self.noise_average_decibel * (
438
+ self.vad_opts.noise_frame_num_used_for_snr
439
+ - 1)) / self.vad_opts.noise_frame_num_used_for_snr
440
+
441
+ return frame_state
442
+
443
+
444
+ def __call__(self, score: np.ndarray, waveform: np.ndarray,
445
+ is_final: bool = False, max_end_sil: int = 800
446
+ ):
447
+ self.max_end_sil_frame_cnt_thresh = max_end_sil - self.vad_opts.speech_to_sil_time_thres
448
+ self.waveform = waveform # compute decibel for each frame
449
+ self.ComputeDecibel()
450
+ self.ComputeScores(score)
451
+ if not is_final:
452
+ self.DetectCommonFrames()
453
+ else:
454
+ self.DetectLastFrames()
455
+ segments = []
456
+ for batch_num in range(0, score.shape[0]): # only support batch_size = 1 now
457
+ segment_batch = []
458
+ if len(self.output_data_buf) > 0:
459
+ for i in range(self.output_data_buf_offset, len(self.output_data_buf)):
460
+ if not self.output_data_buf[i].contain_seg_start_point:
461
+ continue
462
+ if not self.next_seg and not self.output_data_buf[i].contain_seg_end_point:
463
+ continue
464
+ start_ms = self.output_data_buf[i].start_ms if self.next_seg else -1
465
+ if self.output_data_buf[i].contain_seg_end_point:
466
+ end_ms = self.output_data_buf[i].end_ms
467
+ self.next_seg = True
468
+ self.output_data_buf_offset += 1
469
+ else:
470
+ end_ms = -1
471
+ self.next_seg = False
472
+ segment = [start_ms, end_ms]
473
+ segment_batch.append(segment)
474
+ if segment_batch:
475
+ segments.append(segment_batch)
476
+ if is_final:
477
+ # reset class variables and clear the dict for the next query
478
+ self.AllResetDetection()
479
+ return segments
480
+
481
+ def DetectCommonFrames(self) -> int:
482
+ if self.vad_state_machine == VadStateMachine.kVadInStateEndPointDetected:
483
+ return 0
484
+ for i in range(self.vad_opts.nn_eval_block_size - 1, -1, -1):
485
+ frame_state = FrameState.kFrameStateInvalid
486
+ frame_state = self.GetFrameState(self.frm_cnt - 1 - i)
487
+ self.DetectOneFrame(frame_state, self.frm_cnt - 1 - i, False)
488
+
489
+ return 0
490
+
491
+ def DetectLastFrames(self) -> int:
492
+ if self.vad_state_machine == VadStateMachine.kVadInStateEndPointDetected:
493
+ return 0
494
+ for i in range(self.vad_opts.nn_eval_block_size - 1, -1, -1):
495
+ frame_state = FrameState.kFrameStateInvalid
496
+ frame_state = self.GetFrameState(self.frm_cnt - 1 - i)
497
+ if i != 0:
498
+ self.DetectOneFrame(frame_state, self.frm_cnt - 1 - i, False)
499
+ else:
500
+ self.DetectOneFrame(frame_state, self.frm_cnt - 1, True)
501
+
502
+ return 0
503
+
504
+ def DetectOneFrame(self, cur_frm_state: FrameState, cur_frm_idx: int, is_final_frame: bool) -> None:
505
+ tmp_cur_frm_state = FrameState.kFrameStateInvalid
506
+ if cur_frm_state == FrameState.kFrameStateSpeech:
507
+ if math.fabs(1.0) > self.vad_opts.fe_prior_thres:
508
+ tmp_cur_frm_state = FrameState.kFrameStateSpeech
509
+ else:
510
+ tmp_cur_frm_state = FrameState.kFrameStateSil
511
+ elif cur_frm_state == FrameState.kFrameStateSil:
512
+ tmp_cur_frm_state = FrameState.kFrameStateSil
513
+ state_change = self.windows_detector.DetectOneFrame(tmp_cur_frm_state, cur_frm_idx)
514
+ frm_shift_in_ms = self.vad_opts.frame_in_ms
515
+ if AudioChangeState.kChangeStateSil2Speech == state_change:
516
+ silence_frame_count = self.continous_silence_frame_count
517
+ self.continous_silence_frame_count = 0
518
+ self.pre_end_silence_detected = False
519
+ start_frame = 0
520
+ if self.vad_state_machine == VadStateMachine.kVadInStateStartPointNotDetected:
521
+ start_frame = max(self.data_buf_start_frame, cur_frm_idx - self.LatencyFrmNumAtStartPoint())
522
+ self.OnVoiceStart(start_frame)
523
+ self.vad_state_machine = VadStateMachine.kVadInStateInSpeechSegment
524
+ for t in range(start_frame + 1, cur_frm_idx + 1):
525
+ self.OnVoiceDetected(t)
526
+ elif self.vad_state_machine == VadStateMachine.kVadInStateInSpeechSegment:
527
+ for t in range(self.latest_confirmed_speech_frame + 1, cur_frm_idx):
528
+ self.OnVoiceDetected(t)
529
+ if cur_frm_idx - self.confirmed_start_frame + 1 > \
530
+ self.vad_opts.max_single_segment_time / frm_shift_in_ms:
531
+ self.OnVoiceEnd(cur_frm_idx, False, False)
532
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
533
+ elif not is_final_frame:
534
+ self.OnVoiceDetected(cur_frm_idx)
535
+ else:
536
+ self.MaybeOnVoiceEndIfLastFrame(is_final_frame, cur_frm_idx)
537
+ else:
538
+ pass
539
+ elif AudioChangeState.kChangeStateSpeech2Sil == state_change:
540
+ self.continous_silence_frame_count = 0
541
+ if self.vad_state_machine == VadStateMachine.kVadInStateStartPointNotDetected:
542
+ pass
543
+ elif self.vad_state_machine == VadStateMachine.kVadInStateInSpeechSegment:
544
+ if cur_frm_idx - self.confirmed_start_frame + 1 > \
545
+ self.vad_opts.max_single_segment_time / frm_shift_in_ms:
546
+ self.OnVoiceEnd(cur_frm_idx, False, False)
547
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
548
+ elif not is_final_frame:
549
+ self.OnVoiceDetected(cur_frm_idx)
550
+ else:
551
+ self.MaybeOnVoiceEndIfLastFrame(is_final_frame, cur_frm_idx)
552
+ else:
553
+ pass
554
+ elif AudioChangeState.kChangeStateSpeech2Speech == state_change:
555
+ self.continous_silence_frame_count = 0
556
+ if self.vad_state_machine == VadStateMachine.kVadInStateInSpeechSegment:
557
+ if cur_frm_idx - self.confirmed_start_frame + 1 > \
558
+ self.vad_opts.max_single_segment_time / frm_shift_in_ms:
559
+ self.max_time_out = True
560
+ self.OnVoiceEnd(cur_frm_idx, False, False)
561
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
562
+ elif not is_final_frame:
563
+ self.OnVoiceDetected(cur_frm_idx)
564
+ else:
565
+ self.MaybeOnVoiceEndIfLastFrame(is_final_frame, cur_frm_idx)
566
+ else:
567
+ pass
568
+ elif AudioChangeState.kChangeStateSil2Sil == state_change:
569
+ self.continous_silence_frame_count += 1
570
+ if self.vad_state_machine == VadStateMachine.kVadInStateStartPointNotDetected:
571
+ # silence timeout, return zero length decision
572
+ if ((self.vad_opts.detect_mode == VadDetectMode.kVadSingleUtteranceDetectMode.value) and (
573
+ self.continous_silence_frame_count * frm_shift_in_ms > self.vad_opts.max_start_silence_time)) \
574
+ or (is_final_frame and self.number_end_time_detected == 0):
575
+ for t in range(self.lastest_confirmed_silence_frame + 1, cur_frm_idx):
576
+ self.OnSilenceDetected(t)
577
+ self.OnVoiceStart(0, True)
578
+ self.OnVoiceEnd(0, True, False);
579
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
580
+ else:
581
+ if cur_frm_idx >= self.LatencyFrmNumAtStartPoint():
582
+ self.OnSilenceDetected(cur_frm_idx - self.LatencyFrmNumAtStartPoint())
583
+ elif self.vad_state_machine == VadStateMachine.kVadInStateInSpeechSegment:
584
+ if self.continous_silence_frame_count * frm_shift_in_ms >= self.max_end_sil_frame_cnt_thresh:
585
+ lookback_frame = int(self.max_end_sil_frame_cnt_thresh / frm_shift_in_ms)
586
+ if self.vad_opts.do_extend:
587
+ lookback_frame -= int(self.vad_opts.lookahead_time_end_point / frm_shift_in_ms)
588
+ lookback_frame -= 1
589
+ lookback_frame = max(0, lookback_frame)
590
+ self.OnVoiceEnd(cur_frm_idx - lookback_frame, False, False)
591
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
592
+ elif cur_frm_idx - self.confirmed_start_frame + 1 > \
593
+ self.vad_opts.max_single_segment_time / frm_shift_in_ms:
594
+ self.OnVoiceEnd(cur_frm_idx, False, False)
595
+ self.vad_state_machine = VadStateMachine.kVadInStateEndPointDetected
596
+ elif self.vad_opts.do_extend and not is_final_frame:
597
+ if self.continous_silence_frame_count <= int(
598
+ self.vad_opts.lookahead_time_end_point / frm_shift_in_ms):
599
+ self.OnVoiceDetected(cur_frm_idx)
600
+ else:
601
+ self.MaybeOnVoiceEndIfLastFrame(is_final_frame, cur_frm_idx)
602
+ else:
603
+ pass
604
+
605
+ if self.vad_state_machine == VadStateMachine.kVadInStateEndPointDetected and \
606
+ self.vad_opts.detect_mode == VadDetectMode.kVadMutipleUtteranceDetectMode.value:
607
+ self.ResetDetection()
funasr_onnx/utils/frontend.py ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- encoding: utf-8 -*-
2
+ from pathlib import Path
3
+ from typing import Any, Dict, Iterable, List, NamedTuple, Set, Tuple, Union
4
+
5
+ import numpy as np
6
+ from typeguard import check_argument_types
7
+ import kaldi_native_fbank as knf
8
+
9
+ root_dir = Path(__file__).resolve().parent
10
+
11
+ logger_initialized = {}
12
+
13
+
14
+ class WavFrontend():
15
+ """Conventional frontend structure for ASR.
16
+ """
17
+
18
+ def __init__(
19
+ self,
20
+ cmvn_file: str = None,
21
+ fs: int = 16000,
22
+ window: str = 'hamming',
23
+ n_mels: int = 80,
24
+ frame_length: int = 25,
25
+ frame_shift: int = 10,
26
+ lfr_m: int = 1,
27
+ lfr_n: int = 1,
28
+ dither: float = 1.0,
29
+ **kwargs,
30
+ ) -> None:
31
+ check_argument_types()
32
+
33
+ opts = knf.FbankOptions()
34
+ opts.frame_opts.samp_freq = fs
35
+ opts.frame_opts.dither = dither
36
+ opts.frame_opts.window_type = window
37
+ opts.frame_opts.frame_shift_ms = float(frame_shift)
38
+ opts.frame_opts.frame_length_ms = float(frame_length)
39
+ opts.mel_opts.num_bins = n_mels
40
+ opts.energy_floor = 0
41
+ opts.frame_opts.snip_edges = True
42
+ opts.mel_opts.debug_mel = False
43
+ self.opts = opts
44
+
45
+ self.lfr_m = lfr_m
46
+ self.lfr_n = lfr_n
47
+ self.cmvn_file = cmvn_file
48
+
49
+ if self.cmvn_file:
50
+ self.cmvn = self.load_cmvn()
51
+ self.fbank_fn = None
52
+ self.fbank_beg_idx = 0
53
+ self.reset_status()
54
+
55
+ def fbank(self,
56
+ waveform: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
57
+ waveform = waveform * (1 << 15)
58
+ self.fbank_fn = knf.OnlineFbank(self.opts)
59
+ self.fbank_fn.accept_waveform(self.opts.frame_opts.samp_freq, waveform.tolist())
60
+ frames = self.fbank_fn.num_frames_ready
61
+ mat = np.empty([frames, self.opts.mel_opts.num_bins])
62
+ for i in range(frames):
63
+ mat[i, :] = self.fbank_fn.get_frame(i)
64
+ feat = mat.astype(np.float32)
65
+ feat_len = np.array(mat.shape[0]).astype(np.int32)
66
+ return feat, feat_len
67
+
68
+ def fbank_online(self,
69
+ waveform: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
70
+ waveform = waveform * (1 << 15)
71
+ # self.fbank_fn = knf.OnlineFbank(self.opts)
72
+ self.fbank_fn.accept_waveform(self.opts.frame_opts.samp_freq, waveform.tolist())
73
+ frames = self.fbank_fn.num_frames_ready
74
+ mat = np.empty([frames, self.opts.mel_opts.num_bins])
75
+ for i in range(self.fbank_beg_idx, frames):
76
+ mat[i, :] = self.fbank_fn.get_frame(i)
77
+ # self.fbank_beg_idx += (frames-self.fbank_beg_idx)
78
+ feat = mat.astype(np.float32)
79
+ feat_len = np.array(mat.shape[0]).astype(np.int32)
80
+ return feat, feat_len
81
+
82
+ def reset_status(self):
83
+ self.fbank_fn = knf.OnlineFbank(self.opts)
84
+ self.fbank_beg_idx = 0
85
+
86
+ def lfr_cmvn(self, feat: np.ndarray) -> Tuple[np.ndarray, np.ndarray]:
87
+ if self.lfr_m != 1 or self.lfr_n != 1:
88
+ feat = self.apply_lfr(feat, self.lfr_m, self.lfr_n)
89
+
90
+ if self.cmvn_file:
91
+ feat = self.apply_cmvn(feat)
92
+
93
+ feat_len = np.array(feat.shape[0]).astype(np.int32)
94
+ return feat, feat_len
95
+
96
+ @staticmethod
97
+ def apply_lfr(inputs: np.ndarray, lfr_m: int, lfr_n: int) -> np.ndarray:
98
+ LFR_inputs = []
99
+
100
+ T = inputs.shape[0]
101
+ T_lfr = int(np.ceil(T / lfr_n))
102
+ left_padding = np.tile(inputs[0], ((lfr_m - 1) // 2, 1))
103
+ inputs = np.vstack((left_padding, inputs))
104
+ T = T + (lfr_m - 1) // 2
105
+ for i in range(T_lfr):
106
+ if lfr_m <= T - i * lfr_n:
107
+ LFR_inputs.append(
108
+ (inputs[i * lfr_n:i * lfr_n + lfr_m]).reshape(1, -1))
109
+ else:
110
+ # process last LFR frame
111
+ num_padding = lfr_m - (T - i * lfr_n)
112
+ frame = inputs[i * lfr_n:].reshape(-1)
113
+ for _ in range(num_padding):
114
+ frame = np.hstack((frame, inputs[-1]))
115
+
116
+ LFR_inputs.append(frame)
117
+ LFR_outputs = np.vstack(LFR_inputs).astype(np.float32)
118
+ return LFR_outputs
119
+
120
+ def apply_cmvn(self, inputs: np.ndarray) -> np.ndarray:
121
+ """
122
+ Apply CMVN with mvn data
123
+ """
124
+ frame, dim = inputs.shape
125
+ means = np.tile(self.cmvn[0:1, :dim], (frame, 1))
126
+ vars = np.tile(self.cmvn[1:2, :dim], (frame, 1))
127
+ inputs = (inputs + means) * vars
128
+ return inputs
129
+
130
+ def load_cmvn(self,) -> np.ndarray:
131
+ with open(self.cmvn_file, 'r', encoding='utf-8') as f:
132
+ lines = f.readlines()
133
+
134
+ means_list = []
135
+ vars_list = []
136
+ for i in range(len(lines)):
137
+ line_item = lines[i].split()
138
+ if line_item[0] == '<AddShift>':
139
+ line_item = lines[i + 1].split()
140
+ if line_item[0] == '<LearnRateCoef>':
141
+ add_shift_line = line_item[3:(len(line_item) - 1)]
142
+ means_list = list(add_shift_line)
143
+ continue
144
+ elif line_item[0] == '<Rescale>':
145
+ line_item = lines[i + 1].split()
146
+ if line_item[0] == '<LearnRateCoef>':
147
+ rescale_line = line_item[3:(len(line_item) - 1)]
148
+ vars_list = list(rescale_line)
149
+ continue
150
+
151
+ means = np.array(means_list).astype(np.float64)
152
+ vars = np.array(vars_list).astype(np.float64)
153
+ cmvn = np.array([means, vars])
154
+ return cmvn
155
+
156
+ def load_bytes(input):
157
+ middle_data = np.frombuffer(input, dtype=np.int16)
158
+ middle_data = np.asarray(middle_data)
159
+ if middle_data.dtype.kind not in 'iu':
160
+ raise TypeError("'middle_data' must be an array of integers")
161
+ dtype = np.dtype('float32')
162
+ if dtype.kind != 'f':
163
+ raise TypeError("'dtype' must be a floating point type")
164
+
165
+ i = np.iinfo(middle_data.dtype)
166
+ abs_max = 2 ** (i.bits - 1)
167
+ offset = i.min + abs_max
168
+ array = np.frombuffer((middle_data.astype(dtype) - offset) / abs_max, dtype=np.float32)
169
+ return array
170
+
171
+
172
+ def test():
173
+ path = "/nfs/zhifu.gzf/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/example/asr_example.wav"
174
+ import librosa
175
+ cmvn_file = "/nfs/zhifu.gzf/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/am.mvn"
176
+ config_file = "/nfs/zhifu.gzf/export/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/config.yaml"
177
+ from funasr.runtime.python.onnxruntime.rapid_paraformer.utils.utils import read_yaml
178
+ config = read_yaml(config_file)
179
+ waveform, _ = librosa.load(path, sr=None)
180
+ frontend = WavFrontend(
181
+ cmvn_file=cmvn_file,
182
+ **config['frontend_conf'],
183
+ )
184
+ speech, _ = frontend.fbank_online(waveform) #1d, (sample,), numpy
185
+ feat, feat_len = frontend.lfr_cmvn(speech) # 2d, (frame, 450), np.float32 -> torch, torch.from_numpy(), dtype, (1, frame, 450)
186
+
187
+ frontend.reset_status() # clear cache
188
+ return feat, feat_len
189
+
190
+ if __name__ == '__main__':
191
+ test()
funasr_onnx/utils/postprocess_utils.py ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Alibaba, Inc. and its affiliates.
2
+
3
+ import string
4
+ import logging
5
+ from typing import Any, List, Union
6
+
7
+
8
+ def isChinese(ch: str):
9
+ if '\u4e00' <= ch <= '\u9fff' or '\u0030' <= ch <= '\u0039':
10
+ return True
11
+ return False
12
+
13
+
14
+ def isAllChinese(word: Union[List[Any], str]):
15
+ word_lists = []
16
+ for i in word:
17
+ cur = i.replace(' ', '')
18
+ cur = cur.replace('</s>', '')
19
+ cur = cur.replace('<s>', '')
20
+ word_lists.append(cur)
21
+
22
+ if len(word_lists) == 0:
23
+ return False
24
+
25
+ for ch in word_lists:
26
+ if isChinese(ch) is False:
27
+ return False
28
+ return True
29
+
30
+
31
+ def isAllAlpha(word: Union[List[Any], str]):
32
+ word_lists = []
33
+ for i in word:
34
+ cur = i.replace(' ', '')
35
+ cur = cur.replace('</s>', '')
36
+ cur = cur.replace('<s>', '')
37
+ word_lists.append(cur)
38
+
39
+ if len(word_lists) == 0:
40
+ return False
41
+
42
+ for ch in word_lists:
43
+ if ch.isalpha() is False and ch != "'":
44
+ return False
45
+ elif ch.isalpha() is True and isChinese(ch) is True:
46
+ return False
47
+
48
+ return True
49
+
50
+
51
+ # def abbr_dispose(words: List[Any]) -> List[Any]:
52
+ def abbr_dispose(words: List[Any], time_stamp: List[List] = None) -> List[Any]:
53
+ words_size = len(words)
54
+ word_lists = []
55
+ abbr_begin = []
56
+ abbr_end = []
57
+ last_num = -1
58
+ ts_lists = []
59
+ ts_nums = []
60
+ ts_index = 0
61
+ for num in range(words_size):
62
+ if num <= last_num:
63
+ continue
64
+
65
+ if len(words[num]) == 1 and words[num].encode('utf-8').isalpha():
66
+ if num + 1 < words_size and words[
67
+ num + 1] == ' ' and num + 2 < words_size and len(
68
+ words[num +
69
+ 2]) == 1 and words[num +
70
+ 2].encode('utf-8').isalpha():
71
+ # found the begin of abbr
72
+ abbr_begin.append(num)
73
+ num += 2
74
+ abbr_end.append(num)
75
+ # to find the end of abbr
76
+ while True:
77
+ num += 1
78
+ if num < words_size and words[num] == ' ':
79
+ num += 1
80
+ if num < words_size and len(
81
+ words[num]) == 1 and words[num].encode(
82
+ 'utf-8').isalpha():
83
+ abbr_end.pop()
84
+ abbr_end.append(num)
85
+ last_num = num
86
+ else:
87
+ break
88
+ else:
89
+ break
90
+
91
+ for num in range(words_size):
92
+ if words[num] == ' ':
93
+ ts_nums.append(ts_index)
94
+ else:
95
+ ts_nums.append(ts_index)
96
+ ts_index += 1
97
+ last_num = -1
98
+ for num in range(words_size):
99
+ if num <= last_num:
100
+ continue
101
+
102
+ if num in abbr_begin:
103
+ if time_stamp is not None:
104
+ begin = time_stamp[ts_nums[num]][0]
105
+ word_lists.append(words[num].upper())
106
+ num += 1
107
+ while num < words_size:
108
+ if num in abbr_end:
109
+ word_lists.append(words[num].upper())
110
+ last_num = num
111
+ break
112
+ else:
113
+ if words[num].encode('utf-8').isalpha():
114
+ word_lists.append(words[num].upper())
115
+ num += 1
116
+ if time_stamp is not None:
117
+ end = time_stamp[ts_nums[num]][1]
118
+ ts_lists.append([begin, end])
119
+ else:
120
+ word_lists.append(words[num])
121
+ if time_stamp is not None and words[num] != ' ':
122
+ begin = time_stamp[ts_nums[num]][0]
123
+ end = time_stamp[ts_nums[num]][1]
124
+ ts_lists.append([begin, end])
125
+ begin = end
126
+
127
+ if time_stamp is not None:
128
+ return word_lists, ts_lists
129
+ else:
130
+ return word_lists
131
+
132
+
133
+ def sentence_postprocess(words: List[Any], time_stamp: List[List] = None):
134
+ middle_lists = []
135
+ word_lists = []
136
+ word_item = ''
137
+ ts_lists = []
138
+
139
+ # wash words lists
140
+ for i in words:
141
+ word = ''
142
+ if isinstance(i, str):
143
+ word = i
144
+ else:
145
+ word = i.decode('utf-8')
146
+
147
+ if word in ['<s>', '</s>', '<unk>']:
148
+ continue
149
+ else:
150
+ middle_lists.append(word)
151
+
152
+ # all chinese characters
153
+ if isAllChinese(middle_lists):
154
+ for i, ch in enumerate(middle_lists):
155
+ word_lists.append(ch.replace(' ', ''))
156
+ if time_stamp is not None:
157
+ ts_lists = time_stamp
158
+
159
+ # all alpha characters
160
+ elif isAllAlpha(middle_lists):
161
+ ts_flag = True
162
+ for i, ch in enumerate(middle_lists):
163
+ if ts_flag and time_stamp is not None:
164
+ begin = time_stamp[i][0]
165
+ end = time_stamp[i][1]
166
+ word = ''
167
+ if '@@' in ch:
168
+ word = ch.replace('@@', '')
169
+ word_item += word
170
+ if time_stamp is not None:
171
+ ts_flag = False
172
+ end = time_stamp[i][1]
173
+ else:
174
+ word_item += ch
175
+ word_lists.append(word_item)
176
+ word_lists.append(' ')
177
+ word_item = ''
178
+ if time_stamp is not None:
179
+ ts_flag = True
180
+ end = time_stamp[i][1]
181
+ ts_lists.append([begin, end])
182
+ begin = end
183
+
184
+ # mix characters
185
+ else:
186
+ alpha_blank = False
187
+ ts_flag = True
188
+ begin = -1
189
+ end = -1
190
+ for i, ch in enumerate(middle_lists):
191
+ if ts_flag and time_stamp is not None:
192
+ begin = time_stamp[i][0]
193
+ end = time_stamp[i][1]
194
+ word = ''
195
+ if isAllChinese(ch):
196
+ if alpha_blank is True:
197
+ word_lists.pop()
198
+ word_lists.append(ch)
199
+ alpha_blank = False
200
+ if time_stamp is not None:
201
+ ts_flag = True
202
+ ts_lists.append([begin, end])
203
+ begin = end
204
+ elif '@@' in ch:
205
+ word = ch.replace('@@', '')
206
+ word_item += word
207
+ alpha_blank = False
208
+ if time_stamp is not None:
209
+ ts_flag = False
210
+ end = time_stamp[i][1]
211
+ elif isAllAlpha(ch):
212
+ word_item += ch
213
+ word_lists.append(word_item)
214
+ word_lists.append(' ')
215
+ word_item = ''
216
+ alpha_blank = True
217
+ if time_stamp is not None:
218
+ ts_flag = True
219
+ end = time_stamp[i][1]
220
+ ts_lists.append([begin, end])
221
+ begin = end
222
+ else:
223
+ raise ValueError('invalid character: {}'.format(ch))
224
+
225
+ if time_stamp is not None:
226
+ word_lists, ts_lists = abbr_dispose(word_lists, ts_lists)
227
+ real_word_lists = []
228
+ for ch in word_lists:
229
+ if ch != ' ':
230
+ real_word_lists.append(ch)
231
+ sentence = ' '.join(real_word_lists).strip()
232
+ return sentence, ts_lists, real_word_lists
233
+ else:
234
+ word_lists = abbr_dispose(word_lists)
235
+ real_word_lists = []
236
+ for ch in word_lists:
237
+ if ch != ' ':
238
+ real_word_lists.append(ch)
239
+ sentence = ''.join(word_lists).strip()
240
+ return sentence, real_word_lists
funasr_onnx/utils/timestamp_utils.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+
3
+
4
+ def time_stamp_lfr6_onnx(us_cif_peak, char_list, begin_time=0.0, total_offset=-1.5):
5
+ if not len(char_list):
6
+ return []
7
+ START_END_THRESHOLD = 5
8
+ MAX_TOKEN_DURATION = 30
9
+ TIME_RATE = 10.0 * 6 / 1000 / 3 # 3 times upsampled
10
+ cif_peak = us_cif_peak.reshape(-1)
11
+ num_frames = cif_peak.shape[-1]
12
+ if char_list[-1] == '</s>':
13
+ char_list = char_list[:-1]
14
+ # char_list = [i for i in text]
15
+ timestamp_list = []
16
+ new_char_list = []
17
+ # for bicif model trained with large data, cif2 actually fires when a character starts
18
+ # so treat the frames between two peaks as the duration of the former token
19
+ fire_place = np.where(cif_peak>1.0-1e-4)[0] + total_offset # np format
20
+ num_peak = len(fire_place)
21
+ assert num_peak == len(char_list) + 1 # number of peaks is supposed to be number of tokens + 1
22
+ # begin silence
23
+ if fire_place[0] > START_END_THRESHOLD:
24
+ # char_list.insert(0, '<sil>')
25
+ timestamp_list.append([0.0, fire_place[0]*TIME_RATE])
26
+ new_char_list.append('<sil>')
27
+ # tokens timestamp
28
+ for i in range(len(fire_place)-1):
29
+ new_char_list.append(char_list[i])
30
+ if i == len(fire_place)-2 or MAX_TOKEN_DURATION < 0 or fire_place[i+1] - fire_place[i] < MAX_TOKEN_DURATION:
31
+ timestamp_list.append([fire_place[i]*TIME_RATE, fire_place[i+1]*TIME_RATE])
32
+ else:
33
+ # cut the duration to token and sil of the 0-weight frames last long
34
+ _split = fire_place[i] + MAX_TOKEN_DURATION
35
+ timestamp_list.append([fire_place[i]*TIME_RATE, _split*TIME_RATE])
36
+ timestamp_list.append([_split*TIME_RATE, fire_place[i+1]*TIME_RATE])
37
+ new_char_list.append('<sil>')
38
+ # tail token and end silence
39
+ if num_frames - fire_place[-1] > START_END_THRESHOLD:
40
+ _end = (num_frames + fire_place[-1]) / 2
41
+ timestamp_list[-1][1] = _end*TIME_RATE
42
+ timestamp_list.append([_end*TIME_RATE, num_frames*TIME_RATE])
43
+ new_char_list.append("<sil>")
44
+ else:
45
+ timestamp_list[-1][1] = num_frames*TIME_RATE
46
+ if begin_time: # add offset time in model with vad
47
+ for i in range(len(timestamp_list)):
48
+ timestamp_list[i][0] = timestamp_list[i][0] + begin_time / 1000.0
49
+ timestamp_list[i][1] = timestamp_list[i][1] + begin_time / 1000.0
50
+ assert len(new_char_list) == len(timestamp_list)
51
+ res_str = ""
52
+ for char, timestamp in zip(new_char_list, timestamp_list):
53
+ res_str += "{} {} {};".format(char, timestamp[0], timestamp[1])
54
+ res = []
55
+ for char, timestamp in zip(new_char_list, timestamp_list):
56
+ if char != '<sil>':
57
+ res.append([int(timestamp[0] * 1000), int(timestamp[1] * 1000)])
58
+ return res_str, res
59
+
funasr_onnx/utils/utils.py ADDED
@@ -0,0 +1,289 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ import functools
4
+ import logging
5
+ import pickle
6
+ from pathlib import Path
7
+ from typing import Any, Dict, Iterable, List, NamedTuple, Set, Tuple, Union
8
+
9
+ import numpy as np
10
+ import yaml
11
+ from onnxruntime import (GraphOptimizationLevel, InferenceSession,
12
+ SessionOptions, get_available_providers, get_device)
13
+ from typeguard import check_argument_types
14
+
15
+ import warnings
16
+
17
+ root_dir = Path(__file__).resolve().parent
18
+
19
+ logger_initialized = {}
20
+
21
+
22
+ class TokenIDConverter():
23
+ def __init__(self, token_list: Union[List, str],
24
+ ):
25
+ check_argument_types()
26
+
27
+ # self.token_list = self.load_token(token_path)
28
+ self.token_list = token_list
29
+ self.unk_symbol = token_list[-1]
30
+
31
+ # @staticmethod
32
+ # def load_token(file_path: Union[Path, str]) -> List:
33
+ # if not Path(file_path).exists():
34
+ # raise TokenIDConverterError(f'The {file_path} does not exist.')
35
+ #
36
+ # with open(str(file_path), 'rb') as f:
37
+ # token_list = pickle.load(f)
38
+ #
39
+ # if len(token_list) != len(set(token_list)):
40
+ # raise TokenIDConverterError('The Token exists duplicated symbol.')
41
+ # return token_list
42
+
43
+ def get_num_vocabulary_size(self) -> int:
44
+ return len(self.token_list)
45
+
46
+ def ids2tokens(self,
47
+ integers: Union[np.ndarray, Iterable[int]]) -> List[str]:
48
+ if isinstance(integers, np.ndarray) and integers.ndim != 1:
49
+ raise TokenIDConverterError(
50
+ f"Must be 1 dim ndarray, but got {integers.ndim}")
51
+ return [self.token_list[i] for i in integers]
52
+
53
+ def tokens2ids(self, tokens: Iterable[str]) -> List[int]:
54
+ token2id = {v: i for i, v in enumerate(self.token_list)}
55
+ if self.unk_symbol not in token2id:
56
+ raise TokenIDConverterError(
57
+ f"Unknown symbol '{self.unk_symbol}' doesn't exist in the token_list"
58
+ )
59
+ unk_id = token2id[self.unk_symbol]
60
+ return [token2id.get(i, unk_id) for i in tokens]
61
+
62
+
63
+ class CharTokenizer():
64
+ def __init__(
65
+ self,
66
+ symbol_value: Union[Path, str, Iterable[str]] = None,
67
+ space_symbol: str = "<space>",
68
+ remove_non_linguistic_symbols: bool = False,
69
+ ):
70
+ check_argument_types()
71
+
72
+ self.space_symbol = space_symbol
73
+ self.non_linguistic_symbols = self.load_symbols(symbol_value)
74
+ self.remove_non_linguistic_symbols = remove_non_linguistic_symbols
75
+
76
+ @staticmethod
77
+ def load_symbols(value: Union[Path, str, Iterable[str]] = None) -> Set:
78
+ if value is None:
79
+ return set()
80
+
81
+ if isinstance(value, Iterable[str]):
82
+ return set(value)
83
+
84
+ file_path = Path(value)
85
+ if not file_path.exists():
86
+ logging.warning("%s doesn't exist.", file_path)
87
+ return set()
88
+
89
+ with file_path.open("r", encoding="utf-8") as f:
90
+ return set(line.rstrip() for line in f)
91
+
92
+ def text2tokens(self, line: Union[str, list]) -> List[str]:
93
+ tokens = []
94
+ while len(line) != 0:
95
+ for w in self.non_linguistic_symbols:
96
+ if line.startswith(w):
97
+ if not self.remove_non_linguistic_symbols:
98
+ tokens.append(line[: len(w)])
99
+ line = line[len(w):]
100
+ break
101
+ else:
102
+ t = line[0]
103
+ if t == " ":
104
+ t = "<space>"
105
+ tokens.append(t)
106
+ line = line[1:]
107
+ return tokens
108
+
109
+ def tokens2text(self, tokens: Iterable[str]) -> str:
110
+ tokens = [t if t != self.space_symbol else " " for t in tokens]
111
+ return "".join(tokens)
112
+
113
+ def __repr__(self):
114
+ return (
115
+ f"{self.__class__.__name__}("
116
+ f'space_symbol="{self.space_symbol}"'
117
+ f'non_linguistic_symbols="{self.non_linguistic_symbols}"'
118
+ f")"
119
+ )
120
+
121
+
122
+
123
+ class Hypothesis(NamedTuple):
124
+ """Hypothesis data type."""
125
+
126
+ yseq: np.ndarray
127
+ score: Union[float, np.ndarray] = 0
128
+ scores: Dict[str, Union[float, np.ndarray]] = dict()
129
+ states: Dict[str, Any] = dict()
130
+
131
+ def asdict(self) -> dict:
132
+ """Convert data to JSON-friendly dict."""
133
+ return self._replace(
134
+ yseq=self.yseq.tolist(),
135
+ score=float(self.score),
136
+ scores={k: float(v) for k, v in self.scores.items()},
137
+ )._asdict()
138
+
139
+
140
+ class TokenIDConverterError(Exception):
141
+ pass
142
+
143
+
144
+ class ONNXRuntimeError(Exception):
145
+ pass
146
+
147
+
148
+ class OrtInferSession():
149
+ def __init__(self, model_file, device_id=-1, intra_op_num_threads=4):
150
+ device_id = str(device_id)
151
+ sess_opt = SessionOptions()
152
+ sess_opt.intra_op_num_threads = intra_op_num_threads
153
+ sess_opt.log_severity_level = 4
154
+ sess_opt.enable_cpu_mem_arena = False
155
+ sess_opt.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL
156
+
157
+ cuda_ep = 'CUDAExecutionProvider'
158
+ cuda_provider_options = {
159
+ "device_id": device_id,
160
+ "arena_extend_strategy": "kNextPowerOfTwo",
161
+ "cudnn_conv_algo_search": "EXHAUSTIVE",
162
+ "do_copy_in_default_stream": "true",
163
+ }
164
+ cpu_ep = 'CPUExecutionProvider'
165
+ cpu_provider_options = {
166
+ "arena_extend_strategy": "kSameAsRequested",
167
+ }
168
+
169
+ EP_list = []
170
+ if device_id != "-1" and get_device() == 'GPU' \
171
+ and cuda_ep in get_available_providers():
172
+ EP_list = [(cuda_ep, cuda_provider_options)]
173
+ EP_list.append((cpu_ep, cpu_provider_options))
174
+
175
+ self._verify_model(model_file)
176
+ self.session = InferenceSession(model_file,
177
+ sess_options=sess_opt,
178
+ providers=EP_list)
179
+
180
+ if device_id != "-1" and cuda_ep not in self.session.get_providers():
181
+ warnings.warn(f'{cuda_ep} is not avaiable for current env, the inference part is automatically shifted to be executed under {cpu_ep}.\n'
182
+ 'Please ensure the installed onnxruntime-gpu version matches your cuda and cudnn version, '
183
+ 'you can check their relations from the offical web site: '
184
+ 'https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html',
185
+ RuntimeWarning)
186
+
187
+ def __call__(self,
188
+ input_content: List[Union[np.ndarray, np.ndarray]]) -> np.ndarray:
189
+ input_dict = dict(zip(self.get_input_names(), input_content))
190
+ try:
191
+ return self.session.run(self.get_output_names(), input_dict)
192
+ except Exception as e:
193
+ raise ONNXRuntimeError('ONNXRuntime inferece failed.') from e
194
+
195
+ def get_input_names(self, ):
196
+ return [v.name for v in self.session.get_inputs()]
197
+
198
+ def get_output_names(self,):
199
+ return [v.name for v in self.session.get_outputs()]
200
+
201
+ def get_character_list(self, key: str = 'character'):
202
+ return self.meta_dict[key].splitlines()
203
+
204
+ def have_key(self, key: str = 'character') -> bool:
205
+ self.meta_dict = self.session.get_modelmeta().custom_metadata_map
206
+ if key in self.meta_dict.keys():
207
+ return True
208
+ return False
209
+
210
+ @staticmethod
211
+ def _verify_model(model_path):
212
+ model_path = Path(model_path)
213
+ if not model_path.exists():
214
+ raise FileNotFoundError(f'{model_path} does not exists.')
215
+ if not model_path.is_file():
216
+ raise FileExistsError(f'{model_path} is not a file.')
217
+
218
+ def split_to_mini_sentence(words: list, word_limit: int = 20):
219
+ assert word_limit > 1
220
+ if len(words) <= word_limit:
221
+ return [words]
222
+ sentences = []
223
+ length = len(words)
224
+ sentence_len = length // word_limit
225
+ for i in range(sentence_len):
226
+ sentences.append(words[i * word_limit:(i + 1) * word_limit])
227
+ if length % word_limit > 0:
228
+ sentences.append(words[sentence_len * word_limit:])
229
+ return sentences
230
+
231
+ def code_mix_split_words(text: str):
232
+ words = []
233
+ segs = text.split()
234
+ for seg in segs:
235
+ # There is no space in seg.
236
+ current_word = ""
237
+ for c in seg:
238
+ if len(c.encode()) == 1:
239
+ # This is an ASCII char.
240
+ current_word += c
241
+ else:
242
+ # This is a Chinese char.
243
+ if len(current_word) > 0:
244
+ words.append(current_word)
245
+ current_word = ""
246
+ words.append(c)
247
+ if len(current_word) > 0:
248
+ words.append(current_word)
249
+ return words
250
+
251
+ def read_yaml(yaml_path: Union[str, Path]) -> Dict:
252
+ if not Path(yaml_path).exists():
253
+ raise FileExistsError(f'The {yaml_path} does not exist.')
254
+
255
+ with open(str(yaml_path), 'rb') as f:
256
+ data = yaml.load(f, Loader=yaml.Loader)
257
+ return data
258
+
259
+
260
+ @functools.lru_cache()
261
+ def get_logger(name='funasr_onnx'):
262
+ """Initialize and get a logger by name.
263
+ If the logger has not been initialized, this method will initialize the
264
+ logger by adding one or two handlers, otherwise the initialized logger will
265
+ be directly returned. During initialization, a StreamHandler will always be
266
+ added.
267
+ Args:
268
+ name (str): Logger name.
269
+ Returns:
270
+ logging.Logger: The expected logger.
271
+ """
272
+ logger = logging.getLogger(name)
273
+ if name in logger_initialized:
274
+ return logger
275
+
276
+ for logger_name in logger_initialized:
277
+ if name.startswith(logger_name):
278
+ return logger
279
+
280
+ formatter = logging.Formatter(
281
+ '[%(asctime)s] %(name)s %(levelname)s: %(message)s',
282
+ datefmt="%Y/%m/%d %H:%M:%S")
283
+
284
+ sh = logging.StreamHandler()
285
+ sh.setFormatter(formatter)
286
+ logger.addHandler(sh)
287
+ logger_initialized[name] = True
288
+ logger.propagate = False
289
+ return logger
funasr_onnx/vad_bin.py ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ import os.path
4
+ from pathlib import Path
5
+ from typing import List, Union, Tuple
6
+
7
+ import copy
8
+ import librosa
9
+ import numpy as np
10
+
11
+ from .utils.utils import (ONNXRuntimeError,
12
+ OrtInferSession, get_logger,
13
+ read_yaml)
14
+ from .utils.frontend import WavFrontend
15
+ from .utils.e2e_vad import E2EVadModel
16
+
17
+ logging = get_logger()
18
+
19
+
20
+ class Fsmn_vad():
21
+ def __init__(self, model_dir: Union[str, Path] = None,
22
+ batch_size: int = 1,
23
+ device_id: Union[str, int] = "-1",
24
+ quantize: bool = False,
25
+ intra_op_num_threads: int = 4,
26
+ max_end_sil: int = None,
27
+ ):
28
+
29
+ if not Path(model_dir).exists():
30
+ raise FileNotFoundError(f'{model_dir} does not exist.')
31
+
32
+ model_file = os.path.join(model_dir, 'model.onnx')
33
+ if quantize:
34
+ model_file = os.path.join(model_dir, 'model_quant.onnx')
35
+ config_file = os.path.join(model_dir, 'vad.yaml')
36
+ cmvn_file = os.path.join(model_dir, 'vad.mvn')
37
+ config = read_yaml(config_file)
38
+
39
+ self.frontend = WavFrontend(
40
+ cmvn_file=cmvn_file,
41
+ **config['frontend_conf']
42
+ )
43
+ self.ort_infer = OrtInferSession(model_file, device_id, intra_op_num_threads=intra_op_num_threads)
44
+ self.batch_size = batch_size
45
+ self.vad_scorer = E2EVadModel(config["vad_post_conf"])
46
+ self.max_end_sil = max_end_sil if max_end_sil is not None else config["vad_post_conf"]["max_end_silence_time"]
47
+ self.encoder_conf = config["encoder_conf"]
48
+
49
+ def prepare_cache(self, in_cache: list = []):
50
+ if len(in_cache) > 0:
51
+ return in_cache
52
+ fsmn_layers = self.encoder_conf["fsmn_layers"]
53
+ proj_dim = self.encoder_conf["proj_dim"]
54
+ lorder = self.encoder_conf["lorder"]
55
+ for i in range(fsmn_layers):
56
+ cache = np.zeros((1, proj_dim, lorder-1, 1)).astype(np.float32)
57
+ in_cache.append(cache)
58
+ return in_cache
59
+
60
+
61
+ def __call__(self, audio_in: Union[str, np.ndarray, List[str]], **kwargs) -> List:
62
+ # waveform_list = self.load_data(audio_in, self.frontend.opts.frame_opts.samp_freq)
63
+
64
+ param_dict = kwargs.get('param_dict', dict())
65
+ is_final = param_dict.get('is_final', False)
66
+ audio_in_cache = param_dict.get('audio_in_cache', None)
67
+ audio_in_cum = audio_in
68
+ if audio_in_cache is not None:
69
+ audio_in_cum = np.concatenate((audio_in_cache, audio_in_cum))
70
+ param_dict['audio_in_cache'] = audio_in_cum
71
+ feats, feats_len = self.extract_feat([audio_in_cum])
72
+
73
+ in_cache = param_dict.get('in_cache', list())
74
+ in_cache = self.prepare_cache(in_cache)
75
+ beg_idx = param_dict.get('beg_idx',0)
76
+ # feats = feats[:, beg_idx:beg_idx+8, :]
77
+ param_dict['beg_idx'] = beg_idx + feats.shape[1]
78
+ try:
79
+ inputs = [feats]
80
+ inputs.extend(in_cache)
81
+ scores, out_caches = self.infer(inputs)
82
+ param_dict['in_cache'] = out_caches
83
+ segments = self.vad_scorer(scores, audio_in[None, :], is_final=is_final, max_end_sil=self.max_end_sil)
84
+ # print(segments)
85
+ if len(segments) == 1 and segments[0][0][1] != -1:
86
+ self.frontend.reset_status()
87
+
88
+
89
+ except ONNXRuntimeError:
90
+ logging.warning(traceback.format_exc())
91
+ logging.warning("input wav is silence or noise")
92
+ segments = []
93
+
94
+ return segments
95
+
96
+ def load_data(self,
97
+ wav_content: Union[str, np.ndarray, List[str]], fs: int = None) -> List:
98
+ def load_wav(path: str) -> np.ndarray:
99
+ waveform, _ = librosa.load(path, sr=fs)
100
+ return waveform
101
+
102
+ if isinstance(wav_content, np.ndarray):
103
+ return [wav_content]
104
+
105
+ if isinstance(wav_content, str):
106
+ return [load_wav(wav_content)]
107
+
108
+ if isinstance(wav_content, list):
109
+ return [load_wav(path) for path in wav_content]
110
+
111
+ raise TypeError(
112
+ f'The type of {wav_content} is not in [str, np.ndarray, list]')
113
+
114
+ def extract_feat(self,
115
+ waveform_list: List[np.ndarray]
116
+ ) -> Tuple[np.ndarray, np.ndarray]:
117
+ feats, feats_len = [], []
118
+ for waveform in waveform_list:
119
+ speech, _ = self.frontend.fbank(waveform)
120
+ feat, feat_len = self.frontend.lfr_cmvn(speech)
121
+ feats.append(feat)
122
+ feats_len.append(feat_len)
123
+
124
+ feats = self.pad_feats(feats, np.max(feats_len))
125
+ feats_len = np.array(feats_len).astype(np.int32)
126
+ return feats, feats_len
127
+
128
+ @staticmethod
129
+ def pad_feats(feats: List[np.ndarray], max_feat_len: int) -> np.ndarray:
130
+ def pad_feat(feat: np.ndarray, cur_len: int) -> np.ndarray:
131
+ pad_width = ((0, max_feat_len - cur_len), (0, 0))
132
+ return np.pad(feat, pad_width, 'constant', constant_values=0)
133
+
134
+ feat_res = [pad_feat(feat, feat.shape[0]) for feat in feats]
135
+ feats = np.array(feat_res).astype(np.float32)
136
+ return feats
137
+
138
+ def infer(self, feats: List) -> Tuple[np.ndarray, np.ndarray]:
139
+
140
+ outputs = self.ort_infer(feats)
141
+ scores, out_caches = outputs[0], outputs[1:]
142
+ return scores, out_caches
143
+
models/.gitattributes ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ punc_ct-transformer_zh-cn-common-vocab272727-pytorch/model.onnx filter=lfs diff=lfs merge=lfs -text
2
+ speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.onnx filter=lfs diff=lfs merge=lfs -text
3
+ speech_fsmn_vad_zh-cn-16k-common-pytorch/model.onnx filter=lfs diff=lfs merge=lfs -text
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/.mdl ADDED
Binary file (80 Bytes). View file
 
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/.msc ADDED
Binary file (500 Bytes). View file
 
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/README.md ADDED
@@ -0,0 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tasks:
3
+ - punctuation
4
+ domain:
5
+ - audio
6
+ model-type:
7
+ - Classification
8
+ frameworks:
9
+ - pytorch
10
+ metrics:
11
+ - f1_score
12
+ license: Apache License 2.0
13
+ language:
14
+ - cn
15
+ tags:
16
+ - CT-Transformer
17
+ - Alibaba
18
+ - ICASSP 2020
19
+ datasets:
20
+ train:
21
+ - 33M-samples online data
22
+ test:
23
+ - wikipedia data test
24
+ - 10000 industrial Mandarin sentences test
25
+ widgets:
26
+ - task: punctuation
27
+ inputs:
28
+ - type: text
29
+ name: input
30
+ title: 文本
31
+ examples:
32
+ - name: 1
33
+ title: 示例1
34
+ inputs:
35
+ - name: input
36
+ data: 我们都是木头人不会讲话不会动
37
+ inferencespec:
38
+ cpu: 1 #CPU数量
39
+ memory: 4096
40
+ ---
41
+
42
+ # Controllable Time-delay Transformer模型介绍
43
+
44
+ [//]: # (Controllable Time-delay Transformer 模型是一种端到端标点分类模型。)
45
+
46
+ [//]: # (常规的Transformer会依赖很远的未来信息,导致长时间结果不固定。Controllable Time-delay Transformer 在效果无损的情况下,有效控制标点的延时。)
47
+
48
+ # Highlights
49
+ - 中文标点通用模型:可用于语音识别模型输出文本的标点预测。
50
+ - 基于[Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary)场景的使用
51
+ - 基于[FunASR框架](https://github.com/alibaba-damo-academy/FunASR),可进行ASR,VAD,标点的自由组合
52
+ - 基于纯文本输入的标点预测
53
+
54
+ ## Release Notes
55
+ - 2023年3月(3月17号发布):[funasr-0.2.0](https://github.com/alibaba-damo-academy/FunASR/tree/main)
56
+ - 功能完善:
57
+ - 优化[标点通用模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary),提升模型效果。
58
+
59
+ - 2023年2月(2月17号发布):[funasr-0.2.0](https://github.com/alibaba-damo-academy/FunASR/tree/main), modelscope-1.3.0
60
+ - 功能完善:
61
+ - 优化[标点通用模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary),增加标点召回和精度,修复缺少标点等问题。
62
+
63
+ - 2023年1月(预计1月16号发布):funasr-0.1.6, modelscope-1.1.4
64
+ - 模型功能完善:
65
+ - Modelscope模型推理pipeline,新增加多种输入音频方式,如wav.scp、音频bytes、音频采样点、WAV格式等。
66
+ - [Paraformer-large模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),新增加基于ModelScope微调定制模型,新增加batch级解码,加快推理速度。
67
+ - [AISHELL-1学术集Paraformer模型](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary),
68
+ [AISHELL-1学术集ParaformerBert模型](https://modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary),
69
+ [AISHELL-1学术集Conformer模型](https://modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary)、
70
+ [AISHELL-2学术集Paraformer模型](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary),
71
+ [AISHELL-2学术集ParaformerBert模型](https://www.modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary)、
72
+ [AISHELL-2学术集Conformer模型](https://www.modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary),
73
+ 新增加基于ModelScope微调定制模型,其中,Paraformer与ParaformerBert模型新增加batch级解码,加快推理速度。
74
+ - 上线新模型:
75
+ - [Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),集成VAD、ASR、标点与时间戳功能,可直接对时长为数小时音频进行识别,并输出带标点文字与时间戳。
76
+ - [中文无监督预训练Data2vec模型](https://www.modelscope.cn/models/damo/speech_data2vec_pretrain-zh-cn-aishell2-16k-pytorch/summary),采用Data2vec结构,基于AISHELL-2数据的中文无监督预训练模型,支持ASR或者下游任务微调模型。
77
+ - [语音端点检查VAD模型](https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch/summary),可用于检测长语音片段中有效语音的起止时间点。
78
+ - [中文标点预测通用模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary),可用于语音识别模型输出文本的标点预测。
79
+ - [8K UniASR流式模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary),[8K UniASR模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline/summary),一种流式与离线一体化语音识别模型,进行流式语音识别的同时,能够以较低延时输出离线识别结果来纠正预测文本。
80
+ - Paraformer-large基于[AISHELL-1微调模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell1-vocab8404-pytorch/summary)、[AISHELL-2微调模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell2-vocab8404-pytorch/summary),将Paraformer-large模型分别基于AISHELL-1与AISHELL-2数据微调。
81
+ - [说话人确认模型](https://www.modelscope.cn/models/damo/speech_xvector_sv-zh-cn-cnceleb-16k-spk3465-pytorch/summary) ,可用于说话人确认,也可以用来做说话人特征提取。
82
+ - [小尺寸设备端Paraformer指令词模型](https://www.modelscope.cn/models/damo/speech_paraformer-tiny-commandword_asr_nat-zh-cn-16k-vocab544-pytorch/summary),Paraformer-tiny指令词版本,使用小参数量模型支持指令词识别。
83
+ - 将原TensorFlow模型升级为Pytorch模型,进行推理,并支持微调定制,包括:
84
+ - 16K 模型:[Paraformer中文](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary)、
85
+ [Paraformer-large中文](https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary)、
86
+ [UniASR中文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary)、
87
+ [UniASR-large中文](https://modelscope.cn/models/damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary)、
88
+ [UniASR中文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-online/summary)、
89
+ [UniASR方言](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-offline/summary)、
90
+ [UniASR方言流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-online/summary)、
91
+ [UniASR日语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-offline/summary)、
92
+ [UniASR日语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-online/summary)、
93
+ [UniASR印尼语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-offline/summary)、
94
+ [UniASR印尼语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-online/summary)、
95
+ [UniASR葡萄牙语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-offline/summary)、
96
+ [UniASR葡萄牙语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-online/summary)、
97
+ [UniASR英文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-offline/summary)、
98
+ [UniASR英文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-online/summary)、
99
+ [UniASR俄语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-offline/summary)、
100
+ [UniASR俄语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-online/summary)、
101
+ [UniASR韩语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-offline/summary)、
102
+ [UniASR韩语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-online/summary)、
103
+ [UniASR西班牙语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-offline/summary)、
104
+ [UniASR西班牙语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-online/summary)、
105
+ [UniASR粤语简体](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-offline/files)、
106
+ [UniASR粤语简体流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online/files)、
107
+ - 8K 模型:[Paraformer中文](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1/summary)、
108
+ [UniASR中文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary)、
109
+ [UniASR中文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary)
110
+
111
+ - 2022年11月:funasr-0.1.4, modelscope-1.1.3
112
+ - Paraformer-large非自回归模型上线,多个公开数据集上取得SOTA效果,FunASR框架:
113
+ - 支持基于ModelScope推理。
114
+ - 支持基于[FunASR框架](https://github.com/alibaba-damo-academy/FunASR)微调和推理。
115
+
116
+ ## 项目介绍
117
+
118
+ Controllable Time-delay Transformer是达摩院语音团队提出的高效后处理框架中的标点模块���本项目为中文通用标点模型,模型可以被应用于文本类输入的标点预测,也可应用于语音识别结果的后处理步骤,协助语音识别模块输出具有可读性的文本结果。
119
+
120
+ <p align="center">
121
+ <img src="fig/struct.png" alt="Controllable Time-delay Transformer模型结构" width="500" />
122
+
123
+ Controllable Time-delay Transformer 模型结构如上图所示,由 Embedding、Encoder 和 Predictor 三部分组成。Embedding 是词向量叠加位置向量。Encoder可以采用不同的网络结构,例如self-attention,conformer,SAN-M等。Predictor 预测每个token后的标点类型。
124
+
125
+ 在模型的选择上采用了性能优越的Transformer模型。Transformer模型在获得良好性能的同时,由于模型自身序列化输入等特性,会给系统带来较大时延。常规的Transformer可以看到未来的全部信息,导致标点会依赖很远的未来信息。这会给用户带来一种标点一直在变化刷新,长时间结果不固定的不良感受。基于这一问题,我们创新性的提出了可控时延的Transformer模型(Controllable Time-Delay Transformer, CT-Transformer),在模型性能无损失的情况下,有效控制标点的延时。
126
+
127
+ 更详细的细节见:
128
+ - 论文: [CONTROLLABLE TIME-DELAY TRANSFORMER FOR REAL-TIME PUNCTUATION PREDICTION AND DISFLUENCY DETECTION](https://arxiv.org/pdf/2003.01309.pdf)
129
+
130
+ ## 如何使用与训练自己的模型
131
+
132
+ 本项目提供的预训练模型是基于大数据训练的通用领域识别模型,开发者可以基于此模型进一步利用ModelScope的微调功能或者本项目对应的Github代码仓库[FunASR](https://github.com/alibaba-damo-academy/FunASR)进一步进行模型的领域定制化。
133
+
134
+ ### 在Notebook中开发
135
+
136
+ 对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框,首次使用会提示您关联阿里云账号,按提示操作即可。关联账号后可进入选择启动实例界面,选择计算资源,建立实例,待实例创建完成后进入开发环境,进行调用。
137
+
138
+
139
+ #### 基于ModelScope进行推理
140
+
141
+ 以下为三种支持格式及api调用方式参考如下范例:
142
+ - text.scp文件路径,例如example/punc_example.txt,格式为: key + "\t" + value
143
+ ```sh
144
+ cat example/punc_example.txt
145
+ 1 跨境河流是养育沿岸人民的生命之源
146
+ 2 从存储上来说仅仅是全景图片它就会是图片的四倍的容量
147
+ 3 那今天的会就到这里吧happy new year明年见
148
+ ```
149
+ ```python
150
+ from modelscope.pipelines import pipeline
151
+ from modelscope.utils.constant import Tasks
152
+
153
+ inference_pipline = pipeline(
154
+ task=Tasks.punctuation,
155
+ model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
156
+ model_revision="v1.1.7")
157
+
158
+ rec_result = inference_pipline(text_in='example/punc_example.txt')
159
+ print(rec_result)
160
+ ```
161
+ - text二进制数据,例如:用户直接从文件里读出bytes数据
162
+ ```python
163
+ rec_result = inference_pipline(text_in='我们都是木头人不会讲话不会动')
164
+ ```
165
+ - text文件url,例如:https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_text/punc_example.txt
166
+ ```python
167
+ rec_result = inference_pipline(text_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_text/punc_example.txt')
168
+ ```
169
+
170
+
171
+ #### 基于ModelScope进行微调
172
+ 待开发
173
+
174
+
175
+ ### 在本地机器中开发
176
+
177
+ #### 基于ModelScope进行微调和推理
178
+
179
+ 支持基于ModelScope上数据集及私有数据集进行定制微调和推理,使用方式同Notebook中开发。
180
+
181
+ #### 基于FunASR进行微调和推理
182
+
183
+ FunASR框架支持魔搭社区开源的工业级的语音识别模型的training & finetuning,使得研究人员和开发者可以更加便捷的进行语音识别模型的研究和生产,目前已在Github开源:https://github.com/alibaba-damo-academy/FunASR
184
+
185
+ #### FunASR框架安装
186
+
187
+ - 安装FunASR和ModelScope
188
+
189
+ ```sh
190
+ pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
191
+ git clone https://github.com/alibaba/FunASR.git
192
+ cd FunASR
193
+ pip install --editable ./
194
+ ```
195
+
196
+
197
+ #### 基于FunASR进行推理
198
+
199
+ 接下来会以私有数据集为例,介绍如何在FunASR框架中使用本模型进行推理以及微调。
200
+
201
+ ```sh
202
+ cd egs_modelscope/punctuation/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/
203
+ python infer.py
204
+ ```
205
+
206
+ #### 基于FunASR进行微调
207
+ 待开发
208
+
209
+ ## Benchmark
210
+ 中文标点预测通用模型在自采集的通用领域业务场景数据上有良好效果。训练数据大约33M个sample,每个sample可能包含1句或多句。
211
+
212
+ ### 自采集数据(20000+ samples)
213
+
214
+ | precision | recall | f1_score |
215
+ |:------------------------------------:|:-------------------------------------:|:-------------------------------------:|
216
+ | <div style="width: 150pt">53.8</div> | <div style="width: 150pt">60.0</div> | <div style="width: 150pt">56.5</div> |
217
+
218
+ ## 使用方式以及适用范围
219
+
220
+ 运行范围
221
+ - 现阶段只能在Linux-x86_64运行,不支持Mac和Windows。
222
+
223
+ 使用方式
224
+ - 直接推理:可以直接对输入文本进行计算,输出带有标点的目标文字。
225
+
226
+ 使用范围与目标场景
227
+ - 适合对文本数据进行标点预测,文本长度不限。
228
+
229
+ ## 相关论文以及引用信息
230
+
231
+ ```BibTeX
232
+ @inproceedings{chen2020controllable,
233
+ title={Controllable Time-Delay Transformer for Real-Time Punctuation Prediction and Disfluency Detection},
234
+ author={Chen, Qian and Chen, Mengzhe and Li, Bo and Wang, Wen},
235
+ booktitle={ICASSP 2020-2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
236
+ pages={8069--8073},
237
+ year={2020},
238
+ organization={IEEE}
239
+ }
240
+ ```
241
+
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/config.yaml ADDED
The diff for this file is too large to render. See raw diff
 
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/configuration.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "framework": "pytorch",
3
+ "task" : "punctuation",
4
+ "model" : {
5
+ "type" : "generic-punc",
6
+ "punc_model_name" : "punc.pb",
7
+ "punc_model_config" : {
8
+ "type": "pytorch",
9
+ "code_base": "funasr",
10
+ "mode": "punc",
11
+ "lang": "zh-cn",
12
+ "batch_size": 1,
13
+ "punc_config": "punc.yaml",
14
+ "model": "damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch"
15
+ }
16
+ },
17
+ "pipeline": {
18
+ "type":"punc-inference"
19
+ }
20
+ }
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/fig/struct.png ADDED
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a89e15b0cdc3426a1d692658bbf4b63d3aeeba7235e2dbf5b3369f9a6767182b
3
+ size 292073789
models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/punc.yaml ADDED
The diff for this file is too large to render. See raw diff
 
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/.mdl ADDED
Binary file (68 Bytes). View file
 
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/.msc ADDED
Binary file (493 Bytes). View file
 
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/README.md ADDED
@@ -0,0 +1,260 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tasks:
3
+ - voice-activity-detection
4
+ domain:
5
+ - audio
6
+ model-type:
7
+ - VAD model
8
+ frameworks:
9
+ - pytorch
10
+ backbone:
11
+ - fsmn
12
+ metrics:
13
+ - f1_score
14
+ license: Apache License 2.0
15
+ language:
16
+ - cn
17
+ tags:
18
+ - FSMN
19
+ - Alibaba
20
+ - Online
21
+ datasets:
22
+ train:
23
+ - 20,000 hour industrial Mandarin task
24
+ test:
25
+ - 20,000 hour industrial Mandarin task
26
+ widgets:
27
+ - task: voice-activity-detection
28
+ inputs:
29
+ - type: audio
30
+ name: input
31
+ title: 音频
32
+ examples:
33
+ - name: 1
34
+ title: 示例1
35
+ inputs:
36
+ - name: input
37
+ data: git://example/vad_example.wav
38
+ inferencespec:
39
+ cpu: 1 #CPU数量
40
+ memory: 4096
41
+ ---
42
+
43
+ # FSMN-Monophone VAD 模型介绍
44
+
45
+ [//]: # (FSMN-Monophone VAD 模型)
46
+
47
+ ## Highlight
48
+ - 16k中文通用VAD模型:可用于检测长语音片段中有效语音的起止时间点。
49
+ - 基于[Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary)场景的使用
50
+ - 基于[FunASR框架](https://github.com/alibaba-damo-academy/FunASR),可进行ASR,VAD,[中文标点](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary)的自由组合
51
+ - 基于音频数据的有效语音片段起止时间点检测
52
+
53
+ ## Release Notes
54
+
55
+
56
+ - 2023年1月(预计1月16号发布):funasr-0.1.6, modelscope-1.1.4
57
+ - 模型功能完善:
58
+ - Modelscope模型推理pipeline,新增加多种输入音频方式,如wav.scp、音频bytes、音频采样点、WAV格式等。
59
+ - [Paraformer-large模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),新增加基于ModelScope微调定制模型,新增加batch级解码,加快推理速度。
60
+ - [AISHELL-1学术集Paraformer模型](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary),
61
+ [AISHELL-1学术集ParaformerBert模型](https://modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary),
62
+ [AISHELL-1学术集Conformer模型](https://modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary)、
63
+ [AISHELL-2学术集Paraformer模型](https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary),
64
+ [AISHELL-2学术集ParaformerBert模型](https://www.modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary)、
65
+ [AISHELL-2学术集Conformer模型](https://www.modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary),
66
+ 新增加基于ModelScope微调定制模型,其中,Paraformer与ParaformerBert模型新增加batch级解码,加快推理速度。
67
+ - 上线新模型:
68
+ - [Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),集成VAD、ASR、标点与时间戳功能,可直接对时长为数小时音频进行识别,并输出带标点文字与时间戳。
69
+ - [中文无监督预训练Data2vec模型](https://www.modelscope.cn/models/damo/speech_data2vec_pretrain-zh-cn-aishell2-16k-pytorch/summary),采用Data2vec结构,基于AISHELL-2数据的中文无监督预训练模型,支持ASR或者下游任务微调模型。
70
+ - [语音端点检查VAD模型](https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch/summary),可用于检测长语音片段中有效语音的起止时间点。
71
+ - [中文标点预测通用模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary),可用于语音识别模型输出文本的标点预测。
72
+ - [8K UniASR流式模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary),[8K UniASR模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline/summary),一种流式与离线一体化语音识别模型,进行流式语音识别的同时,能够以较低延时输出离线识别结果来纠正预测文本。
73
+ - Paraformer-large基于[AISHELL-1微调模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell1-vocab8404-pytorch/summary)、[AISHELL-2微调模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell2-vocab8404-pytorch/summary),将Paraformer-large模型分别基于AISHELL-1与AISHELL-2数据微调。
74
+ - [说话人确认模型](https://www.modelscope.cn/models/damo/speech_xvector_sv-zh-cn-cnceleb-16k-spk3465-pytorch/summary) ,可用于说话人确认,也可以用来做说话人特征提取。
75
+ - [小尺寸设备端Paraformer指令词模型](https://www.modelscope.cn/models/damo/speech_paraformer-tiny-commandword_asr_nat-zh-cn-16k-vocab544-pytorch/summary),Paraformer-tiny指令词版本,使用小参数量模型支持指令词识别。
76
+ - 将原TensorFlow模型升级为Pytorch模型,进行推理,并支持微调定制,包括:
77
+ - 16K 模型:[Paraformer中文](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary)、
78
+ [Paraformer-large中文](https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary)、
79
+ [UniASR中文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary)、
80
+ [UniASR-large中文](https://modelscope.cn/models/damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary)、
81
+ [UniASR中文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-online/summary)、
82
+ [UniASR方言](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-offline/summary)、
83
+ [UniASR方言流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-online/summary)、
84
+ [UniASR日语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-offline/summary)、
85
+ [UniASR日语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-online/summary)、
86
+ [UniASR印尼语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-offline/summary)、
87
+ [UniASR印尼语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-online/summary)、
88
+ [UniASR葡萄牙语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-offline/summary)、
89
+ [UniASR葡萄牙语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-online/summary)、
90
+ [UniASR英文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-offline/summary)、
91
+ [UniASR英文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-online/summary)、
92
+ [UniASR俄语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-offline/summary)、
93
+ [UniASR俄语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-online/summary)、
94
+ [UniASR韩语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-offline/summary)、
95
+ [UniASR韩语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-online/summary)、
96
+ [UniASR西班牙语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-offline/summary)、
97
+ [UniASR西班牙语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-online/summary)、
98
+ [UniASR粤语简体](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-offline/files)、
99
+ [UniASR粤语简体流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online/files)、
100
+ - 8K 模型:[Paraformer中文](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1/summary)、
101
+ [UniASR中文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary)、
102
+ [UniASR中文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary)
103
+
104
+ - 2022年11月:funasr-0.1.4, modelscope-1.1.3
105
+ - Paraformer-large非自回归模型上线,多个公开数据集上取得SOTA效果,FunASR框架:
106
+ - 支持基于ModelScope推理。
107
+ - 支持基于[FunASR框架](https://github.com/alibaba-damo-academy/FunASR)微调和推理。
108
+
109
+ ## 项目介绍
110
+
111
+ FSMN-Monophone VAD是达摩院语音团队提出的高效语音端点检测模型,用于检测输入音频中有效语音的起止时间点信息,并将检测出来的有效音频片段输入识别引擎进行识别,减少无效语音带来的识别错误。
112
+
113
+ <p align="center">
114
+ <img src="fig/struct.png" alt="VAD模型结构" width="500" />
115
+
116
+ FSMN-Monophone VAD模型结构如上图所示:模型结构层面,FSMN模型结构建模时可考虑上下文信息,训练和推理速度快,且时延可控;同时根据VAD模型size以及低时延的要求,对FSMN的网络结构、右看帧数进行了适配。在建模单元层面,speech信息比较丰富,仅用单类来表征学习能力有限,我们将单一speech类升级为Monophone。建模单元细分,可以避免参数平均,抽象学习能力增强,区分性更好。
117
+
118
+
119
+ ## 如何使用与训练自己的模型
120
+
121
+
122
+ 本项目提供的预训练模型是基于大数据训练的通用领域VAD模型,开发者可以基于此模型进一步利用ModelScope的微调功能或者本项目对应的Github代码仓库[FunASR](https://github.com/alibaba-damo-academy/FunASR)进一步进行模型的效果优化。
123
+
124
+ ### 在Notebook中开发
125
+
126
+ 对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框,首次使用会提示您关联阿里云账号,按提示操作即可。关联账号后可进入选择启动实例界面,选择计算资源,建立实例,待实例创建完成后进入开发环境,输入api调用实例。
127
+
128
+ #### 基于ModelScope进行推理
129
+
130
+ - 推理支持音频格式如下:
131
+ - wav文件路径,例如:data/test/audios/vad_example.wav
132
+ - wav文件url,例如:https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example.wav
133
+ - wav二进制数据,格式bytes,例如:用户直接从文件里读出bytes数据或者是麦克风录出bytes数据。
134
+ - 已解析的audio音频,例如:audio, rate = soundfile.read("vad_example_zh.wav"),类型为numpy.ndarray或者torch.Tensor。
135
+ - wav.scp文件,需符合如下要求:
136
+
137
+ ```sh
138
+ cat wav.scp
139
+ vad_example1 data/test/audios/vad_example1.wav
140
+ vad_example2 data/test/audios/vad_example2.wav
141
+ ...
142
+ ```
143
+
144
+ - 若输入格式wav文件url,api调用方式可参考如下范例:
145
+
146
+ ```python
147
+ from modelscope.pipelines import pipeline
148
+ from modelscope.utils.constant import Tasks
149
+
150
+ inference_pipeline = pipeline(
151
+ task=Tasks.voice_activity_detection,
152
+ model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',
153
+ model_revision='v1.1.8',
154
+ )
155
+
156
+ segments_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example.wav')
157
+ print(segments_result)
158
+ ```
159
+
160
+ - 输入音频为pcm格式,调用api时需要传入音频采样率参数audio_fs,例如:
161
+
162
+ ```python
163
+ segments_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/vad_example.pcm', audio_fs=16000)
164
+ ```
165
+
166
+ - 若输入格式为文件wav.scp(注:文件名需要以.scp结尾),可添加 output_dir 参数将识别结果写入文件中,参考示例如下:
167
+
168
+ ```python
169
+ inference_pipeline = pipeline(
170
+ task=Tasks.voice_activity_detection,
171
+ model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',
172
+ model_revision='v1.1.8',
173
+ output_dir='./output_dir',
174
+ )
175
+
176
+ inference_pipeline(audio_in="wav.scp")
177
+ ```
178
+ 识别结果输出路径结构如下:
179
+
180
+ ```sh
181
+ tree output_dir/
182
+ output_dir/
183
+ └── 1best_recog
184
+ └── text
185
+
186
+ 1 directory, 1 files
187
+ ```
188
+ text:VAD检测语音起止时间点结果文件(单位:ms)
189
+
190
+ - 若输入音频为已解析的audio音频,api调用方式可参考如下范例:
191
+
192
+ ```python
193
+ import soundfile
194
+
195
+ waveform, sample_rate = soundfile.read("vad_example_zh.wav")
196
+ segments_result = inference_pipeline(audio_in=waveform)
197
+ print(segments_result)
198
+ ```
199
+
200
+ - VAD常用参数调整说明(参考:vad.yaml文件):
201
+ - max_end_silence_time:尾部连续检测到多长时间静音进行尾点判停,参数范围500ms~6000ms,默认值800ms(该值过低容易出现语音提前截断的情况)。
202
+ - speech_noise_thres:speech的得分减去noise的得分大于此值则判断为speech,参数范围:(-1,1)
203
+ - 取值越趋于-1,噪音被误判定为语音的概率越大,FA越高
204
+ - 取值越趋于+1,语音被误判定为噪音的概率越大,Pmiss越高
205
+ - 通常情况下,该值会根据当前模型在长语音测试集上的效果取balance
206
+
207
+ #### 基于ModelScope进行微调
208
+
209
+ 待开发
210
+
211
+ ### 在本地机器中开发
212
+
213
+ #### 基于ModelScope进行微调和推理
214
+
215
+ 支持基于ModelScope上数据集及私有数据集进行定制微调和推理,使用方式同Notebook中开发。
216
+
217
+ #### 基于FunASR进行微调和推理
218
+
219
+ FunASR框架支持魔搭社区开源的工业级的语音识别模型的training & finetuning,使得研究人员和开发者可以更加便捷的进行语音识别模型的研究和生产,目前已在Github开源:https://github.com/alibaba-damo-academy/FunASR
220
+
221
+ #### FunASR框架安装
222
+
223
+ - 安装FunASR和ModelScope
224
+
225
+ ```sh
226
+ pip install "modelscope[audio_asr]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
227
+ git clone https://github.com/alibaba/FunASR.git
228
+ cd FunASR
229
+ pip install --editable ./
230
+ ```
231
+
232
+ #### 基于FunASR进行推理
233
+
234
+ 接下来会以私有数据集为例,介绍如何在FunASR框架中使用VAD上进行推理。
235
+
236
+ ```sh
237
+ cd egs_modelscope/vad/speech_fsmn_vad_zh-cn-16k-common/
238
+ python infer.py
239
+ ```
240
+
241
+ ## 使用方式以及适用范围
242
+
243
+ 运行范围
244
+ - 现阶段只能在Linux-x86_64运行,不支持Mac和Windows。
245
+
246
+ 使用方式
247
+ - 直接推理:可以直接对长语音数据进行计算,有效语音片段的起止时间点信息(单位:ms)。
248
+
249
+ ## 相关论文以及引用信息
250
+
251
+ ```BibTeX
252
+ @inproceedings{zhang2018deep,
253
+ title={Deep-FSMN for large vocabulary continuous speech recognition},
254
+ author={Zhang, Shiliang and Lei, Ming and Yan, Zhijie and Dai, Lirong},
255
+ booktitle={2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
256
+ pages={5869--5873},
257
+ year={2018},
258
+ organization={IEEE}
259
+ }
260
+ ```
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/configuration.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "framework": "pytorch",
3
+ "task" : "voice-activity-detection",
4
+ "model" : {
5
+ "type" : "generic-asr",
6
+ "am_model_name": "vad.pb",
7
+ "model_config" : {
8
+ "type": "pytorch",
9
+ "code_base": "funasr",
10
+ "mode": "offline",
11
+ "lang": "zh-cn",
12
+ "batch_size": 1,
13
+ "vad_model_name": "vad.pb",
14
+ "vad_model_config": "vad.yaml",
15
+ "vad_mvn_file": "vad.mvn",
16
+ "model": "damo/speech_fsmn_vad_zh-cn-16k-common-pytorch"
17
+ }
18
+ },
19
+ "pipeline": {
20
+ "type":"vad-inference"
21
+ }
22
+ }
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/fig/struct.png ADDED
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:756887ce01695a9bb00dd85ca0f743653de03b18ba54d2e9ef4f4bb9b3edbf9f
3
+ size 1730426
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/vad.mvn ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ <Nnet>
2
+ <Splice> 400 400
3
+ [ 0 ]
4
+ <AddShift> 400 400
5
+ <LearnRateCoef> 0 [ -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 ]
6
+ <Rescale> 400 400
7
+ <LearnRateCoef> 0 [ 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 ]
8
+ </Nnet>
models/speech_fsmn_vad_zh-cn-16k-common-pytorch/vad.yaml ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ input_size: null
2
+ frontend: wav_frontend
3
+ frontend_conf:
4
+ fs: 16000
5
+ window: hamming
6
+ n_mels: 80
7
+ frame_length: 25
8
+ frame_shift: 10
9
+ dither: 0.0
10
+ lfr_m: 5
11
+ lfr_n: 1
12
+
13
+ model: e2evad
14
+ encoder: fsmn
15
+ encoder_conf:
16
+ input_dim: 400
17
+ input_affine_dim: 140
18
+ fsmn_layers: 4
19
+ linear_dim: 250
20
+ proj_dim: 128
21
+ lorder: 20
22
+ rorder: 0
23
+ lstride: 1
24
+ rstride: 0
25
+ output_affine_dim: 140
26
+ output_dim: 248
27
+
28
+ vad_post_conf:
29
+ sample_rate: 16000
30
+ detect_mode: 1
31
+ snr_mode: 0
32
+ max_end_silence_time: 1000
33
+ max_start_silence_time: 3000
34
+ do_start_point_detection: True
35
+ do_end_point_detection: True
36
+ window_size_ms: 200
37
+ sil_to_speech_time_thres: 150
38
+ speech_to_sil_time_thres: 150
39
+ speech_2_noise_ratio: 1.0
40
+ do_extend: 1
41
+ lookback_time_start_point: 200
42
+ lookahead_time_end_point: 100
43
+ max_single_segment_time: 60000
44
+ snr_thres: -100.0
45
+ noise_frame_num_used_for_snr: 100
46
+ decibel_thres: -100.0
47
+ speech_noise_thres: 0.6
48
+ fe_prior_thres: 0.0001
49
+ silence_pdf_num: 1
50
+ sil_pdf_ids: [0]
51
+ speech_noise_thresh_low: -0.1
52
+ speech_noise_thresh_high: 0.3
53
+ output_frame_probs: False
54
+ frame_in_ms: 10
55
+ frame_length_ms: 25
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/.mdl ADDED
Binary file (94 Bytes). View file
 
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/.msc ADDED
Binary file (883 Bytes). View file
 
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/README.md ADDED
@@ -0,0 +1,503 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tasks:
3
+ - auto-speech-recognition
4
+ domain:
5
+ - audio
6
+ model-type:
7
+ - Non-autoregressive
8
+ frameworks:
9
+ - pytorch
10
+ backbone:
11
+ - transformer/conformer
12
+ metrics:
13
+ - CER
14
+ license: Apache License 2.0
15
+ language:
16
+ - cn
17
+ tags:
18
+ - Paraformer
19
+ - Alibaba
20
+ - INTERSPEECH 2022
21
+ datasets:
22
+ train:
23
+ - 60,000 hour industrial Mandarin task
24
+ test:
25
+ - AISHELL-1 dev/test
26
+ - AISHELL-2 dev_android/dev_ios/dev_mic/test_android/test_ios/test_mic
27
+ - WentSpeech dev/test_meeting/test_net
28
+ - SpeechIO TIOBE
29
+ - 60,000 hour industrial Mandarin task
30
+ indexing:
31
+ results:
32
+ - task:
33
+ name: Automatic Speech Recognition
34
+ dataset:
35
+ name: 60,000 hour industrial Mandarin task
36
+ type: audio # optional
37
+ args: 16k sampling rate, 8404 characters # optional
38
+ metrics:
39
+ - type: CER
40
+ value: 8.53% # float
41
+ description: greedy search, withou lm, avg.
42
+ args: default
43
+ - type: RTF
44
+ value: 0.0251 # float
45
+ description: GPU inference on V100
46
+ args: batch_size=1
47
+ widgets:
48
+ - task: auto-speech-recognition
49
+ inputs:
50
+ - type: audio
51
+ name: input
52
+ title: 音频
53
+ examples:
54
+ - name: 1
55
+ title: 示例1
56
+ inputs:
57
+ - name: input
58
+ data: git://example/asr_example.wav
59
+ inferencespec:
60
+ cpu: 8 #CPU数量
61
+ memory: 4096
62
+ finetune-support: True
63
+ ---
64
+
65
+
66
+ # Paraformer-large模型介绍
67
+
68
+ ## Highlights
69
+ - 热词版本:[Paraformer-large热词版模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404/summary)支持热词定制功能,基于提供的热词列表进行激励增强,提升热词的召回率和准确率。
70
+ - 长音频版本:[Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),集成VAD、ASR、标点与时间戳功能,可直接对时长为数小时音频进行识别,并输出带标点文字与时间戳。
71
+
72
+ ## Release Notes
73
+
74
+ - 2023年2月(2月17号发布):[funasr-0.2.0](https://github.com/alibaba-damo-academy/FunASR/tree/main), modelscope-1.3.0
75
+ - 功能完善:
76
+ - 新增加模型导出功能,Modelscope中所有Paraformer模型与本地finetune模型,支持一键导出[onnx格式模型与torchscripts格式模型](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/export),用于模型部署。
77
+ - 新增加Paraformer模型[onnxruntime部署功能](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/python/onnxruntime/paraformer/rapid_paraformer),无须安装Modelscope与FunASR,即可部署,cpu实测,onnxruntime推理速度提升近3倍(rtf: 0.110->0.038)。
78
+ - 新增加[grpc服务功能](https://github.com/alibaba-damo-academy/FunASR/tree/main/funasr/runtime/python/grpc),支持对Modelscope推理pipeline进行服务部署,也支持对onnxruntime进行服务部署。
79
+ - 优化[Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary)时间戳,对badcase时间戳预测准确率有较大幅度提升,平均首尾时间戳偏移74.7ms,[详见论文](https://arxiv.org/abs/2301.12343)。
80
+ - 新增加任意VAD模型、ASR模型与标点模型自由组合功能,可以自由组合Modelscope中任意模型以及本地finetune后的模型进行推理,[用法示例](https://github.com/alibaba-damo-academy/FunASR/discussions/134)。
81
+ - 优化[标点通用模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary),增加标点召回和精度,修复缺少标点
82
+ 等问题。
83
+ - 新增加采样率自适应功能,任意输入采样率音频会自动匹配到模型采样率;新增加多种语音格式支持,如,mp3、flac、ogg、opus等。
84
+
85
+ - 上线新模型:
86
+ - [Paraformer-large热词模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404/summary),可实现热词定制化,基于提供的热词列表,对热词进行激励增强,提升模型对热词的召回。
87
+ - [MFCCA多通道多说话人识别模型](https://www.modelscope.cn/models/NPU-ASLP/speech_mfcca_asr-zh-cn-16k-alimeeting-vocab4950/summary),与西工大音频语音与语言处理研究组合作论文,一种基于多帧跨通道注意力机制的多通道语音识别模型。
88
+ - [8k语音端点检测VAD模型](https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-8k-common/summary),可用于检测长语音片段中有效语音的起止时间点,支持流式输入,最小支持10ms语音输入流。
89
+ - UniASR流式离线一体化模型:
90
+ [16k UniASR闽南语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-minnan-16k-common-vocab3825/summary)、
91
+ [16k UniASR法语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-fr-16k-common-vocab3472-tensorflow1-online/summary)、
92
+ [16k UniASR德语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-de-16k-common-vocab3690-tensorflow1-online/summary)、
93
+ [16k UniASR越南语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-vi-16k-common-vocab1001-pytorch-online/summary)、
94
+ [16k UniASR波斯语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-fa-16k-common-vocab1257-pytorch-online/summary)。
95
+ - [基于Data2vec结构无监督预训练Paraformer模型](https://www.modelscope.cn/models/damo/speech_data2vec_pretrain-paraformer-zh-cn-aishell2-16k/summary),采用Data2vec无监督预训练初值模型,在AISHELL-1数据中finetune Paraformer模型。
96
+
97
+ - 2023年1月(1月16号发布):[funasr-0.1.6](https://github.com/alibaba-damo-academy/FunASR/tree/main), modelscope-1.2.0
98
+ - 上线新模型:
99
+ - [Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),集成VAD、ASR、标点与时间戳功能,可直接对时长为数小时音频进行识别,并输出带标点文字与时间戳。
100
+ - [中文无监督预训练Data2vec模型](https://www.modelscope.cn/models/damo/speech_data2vec_pretrain-zh-cn-aishell2-16k-pytorch/summary),采用Data2vec结构,基于AISHELL-2数据的中文无监督预训练模型,支持ASR或者下游任务微调模型。
101
+ - [16k语音端点检测VAD模型](https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch/summary),可用于检测长语音片段中有效语音的起止时间点。
102
+ - [中文标点预测通用模型](https://www.modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/summary),可用于语音识别模型输出文本的标点预测。
103
+ - [8K UniASR流式模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-online/summary),[8K UniASR模型](https://www.modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab3445-pytorch-offline/summary),一种流式与离线一体化语音识别模型,进行流式语音识别的同时,能够以较低延时输出离线识别结果来纠正预测文本。
104
+ - Paraformer-large基于[AISHELL-1微调模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell1-vocab8404-pytorch/summary)、[AISHELL-2微调模型](https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-aishell2-vocab8404-pytorch/summary),将Paraformer-large模型分别基于AISHELL-1与AISHELL-2数据微调。
105
+ - [说话人确认模型](https://www.modelscope.cn/models/damo/speech_xvector_sv-zh-cn-cnceleb-16k-spk3465-pytorch/summary) ,可用于说话人确认,也可以用来做说话人特征提取。
106
+ - [小尺寸设备端Paraformer指令词模型](https://www.modelscope.cn/models/damo/speech_paraformer-tiny-commandword_asr_nat-zh-cn-16k-vocab544-pytorch/summary),Paraformer-tiny指令词版本,使用小参数量模型支持指令词识别。
107
+ - 将原TensorFlow模型升级为Pytorch模型,进行推理,并支持微调定制,包括:
108
+ - 16K 模型:[Paraformer中文](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary)、
109
+ [Paraformer-large中文](https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8358-tensorflow1/summary)、
110
+ [UniASR中文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary)、
111
+ [UniASR-large中文](https://modelscope.cn/models/damo/speech_UniASR-large_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-offline/summary)、
112
+ [UniASR中文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-16k-common-vocab8358-tensorflow1-online/summary)、
113
+ [UniASR方言](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-offline/summary)、
114
+ [UniASR方言流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cn-dialect-16k-vocab8358-tensorflow1-online/summary)、
115
+ [UniASR日语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-offline/summary)、
116
+ [UniASR日语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ja-16k-common-vocab93-tensorflow1-online/summary)、
117
+ [UniASR印尼语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-offline/summary)、
118
+ [UniASR印尼语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-id-16k-common-vocab1067-tensorflow1-online/summary)、
119
+ [UniASR葡萄牙语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-offline/summary)、
120
+ [UniASR葡萄牙语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-pt-16k-common-vocab1617-tensorflow1-online/summary)、
121
+ [UniASR英文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-offline/summary)、
122
+ [UniASR英文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-en-16k-common-vocab1080-tensorflow1-online/summary)、
123
+ [UniASR俄语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-offline/summary)、
124
+ [UniASR俄语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ru-16k-common-vocab1664-tensorflow1-online/summary)、
125
+ [UniASR韩语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-offline/summary)、
126
+ [UniASR韩语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-ko-16k-common-vocab6400-tensorflow1-online/summary)、
127
+ [UniASR西班牙语](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-offline/summary)、
128
+ [UniASR西班牙语流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-es-16k-common-vocab3445-tensorflow1-online/summary)、
129
+ [UniASR粤语简体](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-offline/files)、
130
+ [UniASR粤语简体流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online/files)、
131
+ - 8K 模型:[Paraformer中文](https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-8k-common-vocab8358-tensorflow1/summary)、
132
+ [UniASR中文](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary)、
133
+ [UniASR中文流式模型](https://modelscope.cn/models/damo/speech_UniASR_asr_2pass-zh-cn-8k-common-vocab8358-tensorflow1-offline/summary)
134
+
135
+ [//]: # ( - 功能完善:)
136
+
137
+ [//]: # ( - Modelscope模型推理pipeline,Paraformer模型新增加batch级解码;新增加多种输入音频方式,如wav.scp、音频bytes、音频采样点、WAV格式等。)
138
+
139
+ [//]: # ( - 新增加基于ModelScope微调定制pipeline,其中,,加快推理速度。)
140
+
141
+ [//]: # ( - [Paraformer-large模型]&#40;https://www.modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary&#41;,新增加基于ModelScope微调定制模型,新增加batch级解码,加快推理速度。)
142
+
143
+ [//]: # ( - [AISHELL-1学术集Paraformer模型]&#40;https://modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary&#41;,)
144
+
145
+ [//]: # ( [AISHELL-1学术集ParaformerBert模型]&#40;https://modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary&#41;,)
146
+
147
+ [//]: # ( [AISHELL-1学术集Conformer模型]&#40;https://modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell1-vocab4234-pytorch/summary&#41;、)
148
+
149
+ [//]: # ( [AISHELL-2学术集Paraformer模型]&#40;https://www.modelscope.cn/models/damo/speech_paraformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary&#41;,)
150
+
151
+ [//]: # ( [AISHELL-2学术集ParaformerBert模型]&#40;https://www.modelscope.cn/models/damo/speech_paraformerbert_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary&#41;、)
152
+
153
+ [//]: # ( [AISHELL-2学术集Conformer模型]&#40;https://www.modelscope.cn/models/damo/speech_conformer_asr_nat-zh-cn-16k-aishell2-vocab5212-pytorch/summary&#41;,)
154
+ [//]: # ( 新增加基于ModelScope微调定制模型,其中,Paraformer与ParaformerBert模型新增加batch级解码,加快推理速度。)
155
+
156
+
157
+ ## 项目介绍
158
+
159
+ Paraformer是达摩院语音团队提出的一种高效的非自回归端到端语音识别框架。本项目为Paraformer中文通用语音识别模型,采用工业级数万小时的标注音频进行模型训练,保证了模型的通用识别效果。模型可以被应用于语音输入法、语音导航、智能会议纪要等场景。
160
+
161
+ <p align="center">
162
+ <img src="fig/struct.png" alt="Paraformer模型结构" width="500" />
163
+
164
+
165
+ Paraformer模型结构如上图所示,由 Encoder、Predictor、Sampler、Decoder 与 Loss function 五部分组成。Encoder可以采用不同的网络结构,例如self-attention,conformer,SAN-M等。Predictor 为两层FFN,预测目标文字个数以及抽取目标文字对应的声学向量。Sampler 为无可学习参数模块,依据输入的声学向量和目标向量,生产含有语义的特征向量。Decoder 结构与自回归模型类似,为双向建模(自回归为单向建模)。Loss function 部分,除了交叉熵(CE)与 MWER 区分性优化目标,还包括了 Predictor 优化目标 MAE。
166
+
167
+
168
+ 其核心点主要有:
169
+ - Predictor 模块:基于 Continuous integrate-and-fire (CIF) 的 预测器 (Predictor) 来抽取目标文字对应的声学特征向量,可以更加准确的预测语音中目标文字个数。
170
+ - Sampler:通过采样,将声学特征向量与目标文字向量变换成含有语义信息的特征向量,配合双向的 Decoder 来增强模型对于上下文的建模能力。
171
+ - 基���负样本采样的 MWER 训练准则。
172
+
173
+ 更详细的细节见:
174
+ - 论文: [Paraformer: Fast and Accurate Parallel Transformer for Non-autoregressive End-to-End Speech Recognition](https://arxiv.org/abs/2206.08317)
175
+ - 论文解读:[Paraformer: 高识别率、高计算效率的单轮非自回归端到端语音识别模型](https://mp.weixin.qq.com/s/xQ87isj5_wxWiQs4qUXtVw)
176
+
177
+
178
+ ## 如何使用与训练自己的模型
179
+
180
+ 本项目提供的预训练模型是基于大数据训练的通用领域识别模型,开发者可以基于此模型进一步利用ModelScope的微调功能或者本项目对应的Github代码仓库[FunASR](https://github.com/alibaba-damo-academy/FunASR)进一步进行模型的领域定制化。
181
+
182
+ ### 在Notebook中开发
183
+
184
+ 对于有开发需求的使用者,特别推荐您使用Notebook进行离线处理。先登录ModelScope账号,点击模型页面右上角的“在Notebook中打开”按钮出现对话框,首次使用会提示您关联阿里云账号,按提示操作即可。关联账号后可进入选择启动实例界面,选择计算资源,建立实例,待实例创建完成后进入开发环境,进行调用。
185
+
186
+ #### 基于ModelScope进行推理
187
+
188
+ - 推理支持音频格式如下:
189
+ - wav文件路径,例如:data/test/audios/asr_example.wav
190
+ - pcm文件路径,例如:data/test/audios/asr_example.pcm
191
+ - wav文件url,例如:https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav
192
+ - wav二进制数据,格式bytes,例如:用户直接从文件里读出bytes数据或者是麦克风录出bytes数据。
193
+ - 已解析的audio音频,例如:audio, rate = soundfile.read("asr_example_zh.wav"),类型为numpy.ndarray或者torch.Tensor。
194
+ - wav.scp文件,需符合如下要求:
195
+
196
+ ```sh
197
+ cat wav.scp
198
+ asr_example1 data/test/audios/asr_example1.wav
199
+ asr_example2 data/test/audios/asr_example2.wav
200
+ ...
201
+ ```
202
+
203
+ - 若输入格式wav文件url,api调用方式可参考如下范例:
204
+
205
+ ```python
206
+ from modelscope.pipelines import pipeline
207
+ from modelscope.utils.constant import Tasks
208
+
209
+ inference_pipeline = pipeline(
210
+ task=Tasks.auto_speech_recognition,
211
+ model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch')
212
+
213
+ rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav')
214
+ print(rec_result)
215
+ ```
216
+
217
+ - 输入音频为pcm格式,调用api时需要传入音频采样率参数audio_fs,例如:
218
+
219
+ ```python
220
+ rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.pcm', audio_fs=16000)
221
+ ```
222
+
223
+ - 输入音频为wav格式,api调用方式可参考如下范例:
224
+
225
+ ```python
226
+ rec_result = inference_pipeline(audio_in='asr_example_zh.wav')
227
+ ```
228
+
229
+ - 若输入格式为文件wav.scp(注:文件名需要以.scp结尾),可添加 output_dir 参数将识别结果写入文件中,api调用方式可参考如下范例:
230
+
231
+ ```python
232
+ inference_pipeline = pipeline(
233
+ task=Tasks.auto_speech_recognition,
234
+ model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
235
+ output_dir='./output_dir')
236
+
237
+ inference_pipeline(audio_in="wav.scp")
238
+ ```
239
+ 识别结果输出路径结构如下:
240
+
241
+ ```sh
242
+ tree output_dir/
243
+ output_dir/
244
+ └── 1best_recog
245
+ ├── rtf
246
+ ├── score
247
+ ├── text
248
+ └── time_stamp
249
+
250
+ 1 directory, 4 files
251
+ ```
252
+ rtf:计算过程耗时统计
253
+
254
+ score:识别路径得分
255
+
256
+ text:语音识别结果文件
257
+
258
+ time_stamp:时间戳结果文件
259
+
260
+ - 若输入音频为已解析的audio音频,api调用方式可参考如下范例:
261
+
262
+ ```python
263
+ import soundfile
264
+
265
+ waveform, sample_rate = soundfile.read("asr_example_zh.wav")
266
+ rec_result = inference_pipeline(audio_in=waveform)
267
+ ```
268
+
269
+ - ASR、VAD、PUNC模型自由组合
270
+
271
+ 可根据使用需求对VAD和PUNC标点模型进行自由组合,使用方式如下:
272
+ ```python
273
+ inference_pipeline = pipeline(
274
+ task=Tasks.auto_speech_recognition,
275
+ model='damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch',
276
+ vad_model='damo/speech_fsmn_vad_zh-cn-16k-common-pytorch',
277
+ vad_model_revision="v1.1.8",
278
+ punc_model='damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch',
279
+ punc_model_revision="v1.1.6",
280
+ )
281
+ ```
282
+ 若不使用PUNC模型,可配置punc_model="",或不传入punc_model参数,如需加入LM模型,可增加配置lm_model='damo/speech_transformer_lm_zh-cn-common-vocab8404-pytorch'。
283
+
284
+ 长音频版本模型默认开启时间戳,若不使用时间戳,可通过传入参数param_dict['use_timestamp'] = False关闭时间戳,使用方式如下:
285
+ ```python
286
+ param_dict['use_timestamp'] = False
287
+ rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav', param_dict=param_dict)
288
+ )
289
+ ```
290
+
291
+
292
+ #### 基于ModelScope进行微调
293
+
294
+ - 基于ModelScope上数据集进行微调:
295
+
296
+ 以[AISHELL-1](https://www.modelscope.cn/datasets/speech_asr/speech_asr_aishell1_trainsets/summary)数据集为例,完整数据集已经上传ModelScope,可通过数据集英文名(speech_asr_aishell1_trainsets)搜索:
297
+
298
+
299
+ ```python
300
+ import os
301
+ from modelscope.metainfo import Trainers
302
+ from modelscope.trainers import build_trainer
303
+ from modelscope.msdatasets.audio.asr_dataset import ASRDataset
304
+
305
+ def modelscope_finetune(params):
306
+ if not os.path.exists(params.output_dir):
307
+ os.makedirs(params.output_dir, exist_ok=True)
308
+ # dataset split ["train", "validation"]
309
+ ds_dict = ASRDataset.load(params.data_path, namespace='speech_asr')
310
+ kwargs = dict(
311
+ model=params.model,
312
+ data_dir=ds_dict,
313
+ dataset_type=params.dataset_type,
314
+ work_dir=params.output_dir,
315
+ batch_bins=params.batch_bins,
316
+ max_epoch=params.max_epoch,
317
+ lr=params.lr)
318
+ trainer = build_trainer(Trainers.speech_asr_trainer, default_args=kwargs)
319
+ trainer.train()
320
+
321
+
322
+ if __name__ == '__main__':
323
+ from funasr.utils.modelscope_param import modelscope_args
324
+ params = modelscope_args(model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch")
325
+ params.output_dir = "./checkpoint" # 模型保存路径
326
+ params.data_path = "speech_asr_aishell1_trainsets" # 数据路径,可以为modelscope中已上传数据,也可以是本地数据
327
+ params.dataset_type = "small" # 小数据量设置small,若数据量大于1000小时,请使用large
328
+ params.batch_bins = 2000 # batch size,如果dataset_type="small",batch_bins单位为fbank特征帧数,如果dataset_type="large",batch_bins单位为毫秒,
329
+ params.max_epoch = 50 # 最大训练轮数
330
+ params.lr = 0.00005 # 设置学习率
331
+
332
+ modelscope_finetune(params)
333
+ ```
334
+
335
+
336
+ 可将上述代码保存为py文件(如finetune.py),直接python finetune.py运行;若使用多卡进行训练,如下命令:
337
+
338
+ ```sh
339
+ CUDA_VISIBLE_DEVICES=1,2 python -m torch.distributed.launch --nproc_per_node 2 finetune.py > log.txt 2>&1
340
+ ```
341
+
342
+ - 基于私有数据集进行微调:
343
+ 只需要设置本地数据存放路径即可:
344
+ ```python
345
+ params.data_path = "speech_asr_aishell1_trainsets"
346
+ ```
347
+
348
+ 私有数据集格式按如下准备:
349
+ ```sh
350
+ tree ./example_data/
351
+ ./example_data/
352
+ ├── validation
353
+ │ ├── text
354
+ │ └── wav.scp
355
+ └── train
356
+ ├── text
357
+ └── wav.scp
358
+ 2 directories, 4 files
359
+ ```
360
+
361
+ 其中,text文件中存放音频标注,wav.scp文件中存放wav音频绝对路径,样例如下:
362
+
363
+ ```sh
364
+ cat ./example_data/text
365
+ BAC009S0002W0122 而 对 楼 市 成 交 抑 制 作 用 最 大 的 限 购
366
+ BAC009S0002W0123 也 成 为 地 方 政 府 的 眼 中 钉
367
+
368
+ cat ./example_data/wav.scp
369
+ BAC009S0002W0122 /mnt/data/wav/train/S0002/BAC009S0002W0122.wav
370
+ BAC009S0002W0123 /mnt/data/wav/train/S0002/BAC009S0002W0123.wav
371
+ ```
372
+
373
+
374
+ ### 在本地机器中开发
375
+
376
+ #### 基于ModelScope进行微调和推理
377
+
378
+ 支持基于ModelScope上数据集及私有数据集进行定制微调和推理,使用方式同Notebook中开发。
379
+
380
+ #### 基于FunASR进行微调和推理
381
+
382
+ FunASR框架支持魔搭社区开源的工业级的语音识别模型的training & finetuning,使得研究人员和开发者可以更加便捷的进行语音识别模型的研究和生产,目前已在Github开源:https://github.com/alibaba-damo-academy/FunASR 。若在使用过程中遇到任何问题,欢迎联系我们:[联系方式](https://github.com/alibaba-damo-academy/FunASR/blob/main/docs/images/dingding.jpg)
383
+
384
+ #### FunASR框架安装
385
+
386
+ - 安装FunASR和ModelScope,[详见](https://github.com/alibaba-damo-academy/FunASR/wiki)
387
+
388
+ ```sh
389
+ pip install "modelscope[audio_asr]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
390
+ git clone https://github.com/alibaba/FunASR.git
391
+ cd FunASR
392
+ pip install --editable ./
393
+ ```
394
+
395
+ #### 基于FunASR进行推理
396
+
397
+ 接下来会以私有数据集为例,介绍如何在FunASR框架中使用Paraformer-large进行推理以及微调。
398
+
399
+ ```sh
400
+ cd egs_modelscope/paraformer/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
401
+ python infer.py
402
+ ```
403
+
404
+ #### 基于FunASR进行微调
405
+ ```sh
406
+ cd egs_modelscope/paraformer/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch
407
+ python finetune.py
408
+ ```
409
+
410
+ 若修改输出路径、数据路径、采样率、batch_size等配置及使用多卡训练,可参照在Notebook开发中私有数据微调部分的代码,修改finetune.py文件中配置。
411
+
412
+
413
+ ## Benchmark
414
+ 结合大数据、大模型优化的Paraformer在一序列语音识别的benchmark上获得当前SOTA的效果,以下展示学术数据集AISHELL-1、AISHELL-2、WenetSpeech,公开评测项目SpeechIO TIOBE白盒测试场景的效果。在学术界常用的中文语音识别评测任务中,其表现远远超于目前公开发表论文中的结果,远好于单独封闭数据集上的模型。
415
+
416
+ ### AISHELL-1
417
+
418
+ | AISHELL-1 test | w/o LM | w/ LM |
419
+ |:------------------------------------------------:|:-------------------------------------:|:-------------------------------------:|
420
+ | <div style="width: 150pt">Espnet</div> | <div style="width: 150pt">4.90</div> | <div style="width: 150pt">4.70</div> |
421
+ | <div style="width: 150pt">Wenet</div> | <div style="width: 150pt">4.61</div> | <div style="width: 150pt">4.36</div> |
422
+ | <div style="width: 150pt">K2</div> | <div style="width: 150pt">-</div> | <div style="width: 150pt">4.26</div> |
423
+ | <div style="width: 150pt">Blockformer</div> | <div style="width: 150pt">4.29</div> | <div style="width: 150pt">4.05</div> |
424
+ | <div style="width: 150pt">Paraformer-large</div> | <div style="width: 150pt">1.95</div> | <div style="width: 150pt">1.68</div> |
425
+
426
+ ### AISHELL-2
427
+
428
+ | | dev_ios| test_android| test_ios|test_mic|
429
+ |:-------------------------------------------------:|:-------------------------------------:|:-------------------------------------:|:------------------------------------:|:------------------------------------:|
430
+ | <div style="width: 150pt">Espnet</div> | <div style="width: 70pt">5.40</div> |<div style="width: 70pt">6.10</div> |<div style="width: 70pt">5.70</div> |<div style="width: 70pt">6.10</div> |
431
+ | <div style="width: 150pt">WeNet</div> | <div style="width: 70pt">-</div> |<div style="width: 70pt">-</div> |<div style="width: 70pt">5.39</div> |<div style="width: 70pt">-</div> |
432
+ | <div style="width: 150pt">Paraformer-large</div> | <div style="width: 70pt">2.80</div> |<div style="width: 70pt">3.13</div> |<div style="width: 70pt">2.85</div> |<div style="width: 70pt">3.06</div> |
433
+
434
+
435
+ ### Wenetspeech
436
+
437
+ | | dev| test_meeting| test_net|
438
+ |:-------------------------------------------------:|:-------------------------------------:|:-------------------------------------:|:------------------------------------:|
439
+ | <div style="width: 150pt">Espnet</div> | <div style="width: 100pt">9.70</div> |<div style="width: 100pt">15.90</div> |<div style="width: 100pt">8.80</div> |
440
+ | <div style="width: 150pt">WeNet</div> | <div style="width: 100pt">8.60</div> |<div style="width: 100pt">17.34</div> |<div style="width: 100pt">9.26</div> |
441
+ | <div style="width: 150pt">K2</div> | <div style="width: 100pt">7.76</div> |<div style="width: 100pt">13.41</div> |<div style="width: 100pt">8.71</div> |
442
+ | <div style="width: 150pt">Paraformer-large</div> | <div style="width: 100pt">3.57</div> |<div style="width: 100pt">6.97</div> |<div style="width: 100pt">6.74</div> |
443
+
444
+ ### SpeechIO TIOBE
445
+
446
+ Paraformer-large模型结合Transformer-LM模型做shallow fusion,在公开评测项目SpeechIO TIOBE白盒测试场景上获得当前SOTA的效果,目前[Transformer-LM模型](https://modelscope.cn/models/damo/speech_transformer_lm_zh-cn-common-vocab8404-pytorch/summary)已在ModelScope上开源,以下展示SpeechIO TIOBE白盒测试场景without LM、with Transformer-LM的效果:
447
+
448
+ - Decode config w/o LM:
449
+ - Decode without LM
450
+ - Beam size: 1
451
+ - Decode config w/ LM:
452
+ - Decode with [Transformer-LM](https://modelscope.cn/models/damo/speech_transformer_lm_zh-cn-common-vocab8404-pytorch/summary)
453
+ - Beam size: 10
454
+ - LM weight: 0.15
455
+
456
+ | testset | w/o LM | w/ LM |
457
+ |:------------------:|:----:|:----:|
458
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00001</div>| <div style="width: 150pt">0.49</div> | <div style="width: 150pt">0.35</div> |
459
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00002</div>| <div style="width: 150pt">3.23</div> | <div style="width: 150pt">2.86</div> |
460
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00003</div>| <div style="width: 150pt">1.13</div> | <div style="width: 150pt">0.80</div> |
461
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00004</div>| <div style="width: 150pt">1.33</div> | <div style="width: 150pt">1.10</div> |
462
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00005</div>| <div style="width: 150pt">1.41</div> | <div style="width: 150pt">1.18</div> |
463
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00006</div>| <div style="width: 150pt">5.25</div> | <div style="width: 150pt">4.85</div> |
464
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00007</div>| <div style="width: 150pt">5.51</div> | <div style="width: 150pt">4.97</div> |
465
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00008</div>| <div style="width: 150pt">3.69</div> | <div style="width: 150pt">3.18</div> |
466
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH00009</div>| <div style="width: 150pt">3.02</div> | <div style="width: 150pt">2.78</div> |
467
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH000010</div>| <div style="width: 150pt">3.35</div> | <div style="width: 150pt">2.99</div> |
468
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH000011</div>| <div style="width: 150pt">1.54</div> | <div style="width: 150pt">1.25</div> |
469
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH000012</div>| <div style="width: 150pt">2.06</div> | <div style="width: 150pt">1.68</div> |
470
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH000013</div>| <div style="width: 150pt">2.57</div> | <div style="width: 150pt">2.25</div> |
471
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH000014</div>| <div style="width: 150pt">3.86</div> | <div style="width: 150pt">3.08</div> |
472
+ |<div style="width: 200pt">SPEECHIO_ASR_ZH000015</div>| <div style="width: 150pt">3.34</div> | <div style="width: 150pt">2.67</div> |
473
+
474
+
475
+ ## 使用方式以及适用范围
476
+
477
+ 运行范围
478
+ - 现阶段只能在Linux-x86_64运行,不支持Mac和Windows。
479
+
480
+ 使用方式
481
+ - 直接推理:可以直接对输入音频进行解码,输出目标文字。
482
+ - 微调:加载训练好的模型,采用私有或者开源数据进行模型训练。
483
+
484
+ 使用范围与目标场景
485
+ - 适合与离线语音识别场景,如录音文件转写,配合GPU推理效果更加,推荐输入语音时长在20s以下,若想解码长音频,推荐使用[Paraformer-large长音频模型](https://www.modelscope.cn/models/damo/speech_paraformer-large-vad-punc_asr_nat-zh-cn-16k-common-vocab8404-pytorch/summary),集成VAD、ASR、标点与时间戳功能,可直接对时长为数小时音频进行识别,并输出带标点文字与时间戳。
486
+
487
+
488
+ ## 模型局限性以及可能的偏差
489
+
490
+ 考虑到特征提取流程和工具以及训练工具差异,会对CER的数据带来一定的差异(<0.1%),推理GPU环境差异导致的RTF数值差异。
491
+
492
+
493
+
494
+ ## 相关论文以及引用信息
495
+
496
+ ```BibTeX
497
+ @inproceedings{gao2022paraformer,
498
+ title={Paraformer: Fast and Accurate Parallel Transformer for Non-autoregressive End-to-End Speech Recognition},
499
+ author={Gao, Zhifu and Zhang, Shiliang and McLoughlin, Ian and Yan, Zhijie},
500
+ booktitle={INTERSPEECH},
501
+ year={2022}
502
+ }
503
+ ```
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/am.mvn ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ <Nnet>
2
+ <Splice> 560 560
3
+ [ 0 ]
4
+ <AddShift> 560 560
5
+ <LearnRateCoef> 0 [ -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 -8.311879 -8.600912 -9.615928 -10.43595 -11.21292 -11.88333 -12.36243 -12.63706 -12.8818 -12.83066 -12.89103 -12.95666 -13.19763 -13.40598 -13.49113 -13.5546 -13.55639 -13.51915 -13.68284 -13.53289 -13.42107 -13.65519 -13.50713 -13.75251 -13.76715 -13.87408 -13.73109 -13.70412 -13.56073 -13.53488 -13.54895 -13.56228 -13.59408 -13.62047 -13.64198 -13.66109 -13.62669 -13.58297 -13.57387 -13.4739 -13.53063 -13.48348 -13.61047 -13.64716 -13.71546 -13.79184 -13.90614 -14.03098 -14.18205 -14.35881 -14.48419 -14.60172 -14.70591 -14.83362 -14.92122 -15.00622 -15.05122 -15.03119 -14.99028 -14.92302 -14.86927 -14.82691 -14.7972 -14.76909 -14.71356 -14.61277 -14.51696 -14.42252 -14.36405 -14.30451 -14.23161 -14.19851 -14.16633 -14.15649 -14.10504 -13.99518 -13.79562 -13.3996 -12.7767 -11.71208 ]
6
+ <Rescale> 560 560
7
+ <LearnRateCoef> 0 [ 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 0.155775 0.154484 0.1527379 0.1518718 0.1506028 0.1489256 0.147067 0.1447061 0.1436307 0.1443568 0.1451849 0.1455157 0.1452821 0.1445717 0.1439195 0.1435867 0.1436018 0.1438781 0.1442086 0.1448844 0.1454756 0.145663 0.146268 0.1467386 0.1472724 0.147664 0.1480913 0.1483739 0.1488841 0.1493636 0.1497088 0.1500379 0.1502916 0.1505389 0.1506787 0.1507102 0.1505992 0.1505445 0.1505938 0.1508133 0.1509569 0.1512396 0.1514625 0.1516195 0.1516156 0.1515561 0.1514966 0.1513976 0.1512612 0.151076 0.1510596 0.1510431 0.151077 0.1511168 0.1511917 0.151023 0.1508045 0.1505885 0.1503493 0.1502373 0.1501726 0.1500762 0.1500065 0.1499782 0.150057 0.1502658 0.150469 0.1505335 0.1505505 0.1505328 0.1504275 0.1502438 0.1499674 0.1497118 0.1494661 0.1493102 0.1493681 0.1495501 0.1499738 0.1509654 ]
8
+ </Nnet>
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/config.yaml ADDED
@@ -0,0 +1,8624 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ config: examples/aishell_demo/paraformer_s2/conf/train_asr_paraformer_sanm_50e_16d_2048_512_lfr6.yaml
2
+ print_config: false
3
+ log_level: INFO
4
+ dry_run: false
5
+ iterator_type: sequence
6
+ output_dir: /nfs/FunASR_results/paraformer/1m-1gpu/baseline_train_asr_paraformer_sanm_50e_16d_2048_512_lfr6_fbank_zh_char_local
7
+ ngpu: 1
8
+ seed: 0
9
+ num_workers: 16
10
+ num_att_plot: 3
11
+ dist_backend: nccl
12
+ dist_init_method: file:///nfs/FunASR_results/paraformer/1m-1gpu/baseline_train_asr_paraformer_sanm_50e_16d_2048_512_lfr6_fbank_zh_char_local/ddp_init
13
+ dist_world_size: 1
14
+ dist_rank: 0
15
+ local_rank: 0
16
+ dist_master_addr: null
17
+ dist_master_port: null
18
+ dist_launcher: null
19
+ multiprocessing_distributed: true
20
+ unused_parameters: true
21
+ sharded_ddp: false
22
+ cudnn_enabled: true
23
+ cudnn_benchmark: false
24
+ cudnn_deterministic: true
25
+ collect_stats: false
26
+ write_collected_feats: false
27
+ max_epoch: 20
28
+ patience: null
29
+ val_scheduler_criterion:
30
+ - valid
31
+ - acc
32
+ early_stopping_criterion:
33
+ - valid
34
+ - loss
35
+ - min
36
+ best_model_criterion:
37
+ - - valid
38
+ - acc
39
+ - max
40
+ keep_nbest_models: 5
41
+ nbest_averaging_interval: 0
42
+ grad_clip: 5
43
+ grad_clip_type: 2.0
44
+ grad_noise: false
45
+ accum_grad: 1
46
+ no_forward_run: false
47
+ resume: true
48
+ train_dtype: float32
49
+ use_amp: false
50
+ log_interval: 50
51
+ use_matplotlib: true
52
+ use_tensorboard: true
53
+ use_wandb: false
54
+ wandb_project: null
55
+ wandb_id: null
56
+ wandb_entity: null
57
+ wandb_name: null
58
+ wandb_model_log_interval: -1
59
+ detect_anomaly: false
60
+ pretrain_path: null
61
+ init_param:
62
+ - /nfs/init_model/paraformer_9k_bigmodel.pth
63
+ ignore_init_mismatch: false
64
+ freeze_param: []
65
+ num_iters_per_epoch: null
66
+ batch_size: 20
67
+ valid_batch_size: null
68
+ batch_bins: 1000
69
+ valid_batch_bins: null
70
+ train_shape_file:
71
+ - /nfs/dataset/data/asr_stats_fbank_zh_char/train/speech_shape
72
+ - /nfs/dataset/data/asr_stats_fbank_zh_char/train/text_shape.char
73
+ valid_shape_file:
74
+ - /nfs/dataset/data/asr_stats_fbank_zh_char/dev/speech_shape
75
+ - /nfs/dataset/data/asr_stats_fbank_zh_char/dev/text_shape.char
76
+ batch_type: length
77
+ valid_batch_type: null
78
+ fold_length:
79
+ - 512
80
+ - 150
81
+ sort_in_batch: descending
82
+ sort_batch: descending
83
+ multiple_iterator: false
84
+ chunk_length: 500
85
+ chunk_shift_ratio: 0.5
86
+ num_cache_chunks: 1024
87
+ train_data_file: /nfs/dataset/data/dump/fbank/train/ark_txt.scp
88
+ valid_data_file: /nfs/dataset/data/dump/fbank/dev/ark_txt.scp
89
+ train_data_path_and_name_and_type:
90
+ - - /nfs/dataset/data/dump/fbank/train/feats.scp
91
+ - speech
92
+ - kaldi_ark
93
+ - - /nfs/dataset/data/dump/fbank/train/text
94
+ - text
95
+ - text
96
+ valid_data_path_and_name_and_type:
97
+ - - /nfs/dataset/data/dump/fbank/dev/feats.scp
98
+ - speech
99
+ - kaldi_ark
100
+ - - /nfs/dataset/data/dump/fbank/dev/text
101
+ - text
102
+ - text
103
+ allow_variable_data_keys: false
104
+ max_cache_size: 0.0
105
+ max_cache_fd: 32
106
+ valid_max_cache_size: null
107
+ optim: adam
108
+ optim_conf:
109
+ lr: 0.0005
110
+ scheduler: warmuplr
111
+ scheduler_conf:
112
+ warmup_steps: 30000
113
+ use_pai: false
114
+ num_worker_count: 1
115
+ access_key_id: null
116
+ access_key_secret: null
117
+ endpoint: null
118
+ bucket_name: null
119
+ oss_bucket: null
120
+ token_list:
121
+ - <blank>
122
+ - <s>
123
+ - </s>
124
+ - and@@
125
+ - 筑
126
+ - 陨
127
+ - 眺
128
+ - 塘
129
+ - 檩
130
+ - 衷
131
+ - 氧
132
+ - 孔
133
+ - 阖
134
+ - 邠
135
+ - 坎
136
+ - 喵
137
+ - 曰
138
+ - 鼠
139
+ - 隐
140
+ - 腊
141
+ - 族
142
+ - 矧
143
+ - 敉
144
+ - 俜
145
+ - 似
146
+ - 怫
147
+ - 塔
148
+ - price
149
+ - 春
150
+ - 罍
151
+ - 娅
152
+ - 棉
153
+ - 弃
154
+ - 茱
155
+ - 应
156
+ - 汈
157
+ - 擦
158
+ - 贺
159
+ - 鹇
160
+ - these
161
+ - 迅
162
+ - 诬
163
+ - do@@
164
+ - 盍
165
+ - 秕
166
+ - 啃
167
+ - 颟
168
+ - 辑
169
+ - 彘
170
+ - ps
171
+ - 斜
172
+ - 瞭
173
+ - 铟
174
+ - 漭
175
+ - 蹇
176
+ - 旆
177
+ - 窳
178
+ - 臊
179
+ - 览
180
+ - 嘿
181
+ - 淖
182
+ - 尴
183
+ - 袆
184
+ - 斧
185
+ - 筹
186
+ - 媵
187
+ - 挞
188
+ - 臧
189
+ - 齐
190
+ - 璨
191
+ - 笥
192
+ - 滂
193
+ - 即
194
+ - 愔
195
+ - 思
196
+ - gr@@
197
+ - 幅
198
+ - 祛
199
+ - 箬
200
+ - 礁
201
+ - 茅
202
+ - 北
203
+ - 澡
204
+ - 俭
205
+ - 蘅
206
+ - ing
207
+ - 肺
208
+ - 肢
209
+ - 巢
210
+ - 九
211
+ - 蠓
212
+ - 路
213
+ - 藻
214
+ - 沱
215
+ - ness
216
+ - 璐
217
+ - 积
218
+ - 寞
219
+ - 栳
220
+ - 舆
221
+ - 医
222
+ - 眷
223
+ - 岳
224
+ - 勘
225
+ - 璃
226
+ - 黔
227
+ - 犇
228
+ - 哎
229
+ - 罡
230
+ - k
231
+ - 丝
232
+ - de
233
+ - 跣
234
+ - 梦
235
+ - 需
236
+ - 毅
237
+ - 峡
238
+ - 竞
239
+ - 砦
240
+ - 研
241
+ - 眙
242
+ - 滋
243
+ - 鹳
244
+ - 肝
245
+ - 阼
246
+ - per
247
+ - 忱
248
+ - 乏
249
+ - 废
250
+ - 邦
251
+ - 輶
252
+ - 驯
253
+ - 夫
254
+ - 寳
255
+ - 忪
256
+ - 崑
257
+ - 睾
258
+ - 逗
259
+ - 峰
260
+ - 越
261
+ - 狗
262
+ - 蟒
263
+ - 笆
264
+ - 适
265
+ - 洇
266
+ - 缶
267
+ - ore
268
+ - 辎
269
+ - 粤
270
+ - 蹴
271
+ - 黄
272
+ - 浞
273
+ - comp@@
274
+ - 犀
275
+ - 藏
276
+ - 本
277
+ - 嗖
278
+ - 黻
279
+ - 這
280
+ - 绰
281
+ - 鉏
282
+ - 麼
283
+ - 喆
284
+ - 袪
285
+ - 刚
286
+ - 侦
287
+ - ic@@
288
+ - 骧
289
+ - 瓫
290
+ - 柤
291
+ - 桃
292
+ - 鲴
293
+ - 褙
294
+ - 韵
295
+ - 妓
296
+ - 甍
297
+ - to@@
298
+ - 轱
299
+ - 塑
300
+ - 坯
301
+ - 貌
302
+ - n@@
303
+ - 蕞
304
+ - 疡
305
+ - 伏
306
+ - 酉
307
+ - 暇
308
+ - 霖
309
+ - 了
310
+ - 萸
311
+ - 嘶
312
+ - nu@@
313
+ - 挼
314
+ - by
315
+ - 聩
316
+ - 袓
317
+ - 嶓
318
+ - 桎
319
+ - 抖
320
+ - 攥
321
+ - 鞬
322
+ - 毳
323
+ - 旗
324
+ - 庸
325
+ - 呋
326
+ - 诲
327
+ - tting
328
+ - 狭
329
+ - 魄
330
+ - 伎
331
+ - 喋
332
+ - 樱
333
+ - 翎
334
+ - 怯
335
+ - 场
336
+ - 睽
337
+ - 盒
338
+ - times
339
+ - 鲳
340
+ - 爆
341
+ - 绵
342
+ - 皋
343
+ - 尢
344
+ - 嘎
345
+ - 渝
346
+ - 迂
347
+ - 嘁
348
+ - 袷
349
+ - 始
350
+ - 奚
351
+ - 台
352
+ - 禄
353
+ - 挢
354
+ - 座
355
+ - 绀
356
+ - 漱
357
+ - 龃
358
+ - tu@@
359
+ - 榫
360
+ - 诛
361
+ - minu@@
362
+ - 萼
363
+ - 裛
364
+ - 玠
365
+ - 谵
366
+ - 亳
367
+ - 副
368
+ - any@@
369
+ - 诊
370
+ - 唑
371
+ - 頫
372
+ - 斿
373
+ - 赁
374
+ - 骇
375
+ - 训
376
+ - 母
377
+ - 床
378
+ - 微
379
+ - 椰
380
+ - 迢
381
+ - 埃
382
+ - 辏
383
+ - 汩
384
+ - 叟
385
+ - 辔
386
+ - 隙
387
+ - 遵
388
+ - pp@@
389
+ - 翕
390
+ - 佬
391
+ - 栖
392
+ - 踉
393
+ - 皕
394
+ - 苏
395
+ - 痂
396
+ - 奋
397
+ - 阄
398
+ - 悌
399
+ - 点
400
+ - 碡
401
+ - 茎
402
+ - 睫
403
+ - 闫
404
+ - few
405
+ - 籁
406
+ - 孰
407
+ - 拥
408
+ - for
409
+ - 曾
410
+ - ���
411
+ - 辞
412
+ - 赖
413
+ - 姆
414
+ - 与
415
+ - 诰
416
+ - 怨
417
+ - 沙
418
+ - with@@
419
+ - 睱
420
+ - 谓
421
+ - 晰
422
+ - 嗌
423
+ - id
424
+ - aga@@
425
+ - 実
426
+ - 魏
427
+ - 鲟
428
+ - 寅
429
+ - 滗
430
+ - 珲
431
+ - 腑
432
+ - 冠
433
+ - 夺
434
+ - 娶
435
+ - 宇
436
+ - 侩
437
+ - 筘
438
+ - an
439
+ - 磺
440
+ - 邛
441
+ - 着
442
+ - 踵
443
+ - ite
444
+ - 狝
445
+ - ele@@
446
+ - 蓼
447
+ - 猿
448
+ - 豆
449
+ - 蔷
450
+ - 沽
451
+ - 去
452
+ - 铥
453
+ - 癀
454
+ - 站
455
+ - 甪
456
+ - 璧
457
+ - 范
458
+ - 哓
459
+ - 菏
460
+ - 龠
461
+ - 岷
462
+ - 嫉
463
+ - 拧
464
+ - 札
465
+ - 戒
466
+ - 琏
467
+ - 绪
468
+ - 澌
469
+ - 楠
470
+ - 莱
471
+ - cer@@
472
+ - here
473
+ - 别
474
+ - 帻
475
+ - 嗉
476
+ - 假
477
+ - 拽
478
+ - 髭
479
+ - 穰
480
+ - 勋
481
+ - 栓
482
+ - 塬
483
+ - ou@@
484
+ - 橫
485
+ - 刻
486
+ - 侣
487
+ - 鎉
488
+ - bre@@
489
+ - 趸
490
+ - 稳
491
+ - 岌
492
+ - 拎
493
+ - 落
494
+ - 岙
495
+ - 氨
496
+ - 桴
497
+ - 鬶
498
+ - clu@@
499
+ - 蚣
500
+ - 肌
501
+ - 讹
502
+ - 骼
503
+ - 忧
504
+ - 雹
505
+ - 0@@
506
+ - 算
507
+ - 腔
508
+ - 璇
509
+ - 酣
510
+ - 锭
511
+ - 蟾
512
+ - 逦
513
+ - 椟
514
+ - 频
515
+ - ts
516
+ - 矫
517
+ - 拨
518
+ - 珅
519
+ - 侨
520
+ - 蚨
521
+ - 皯
522
+ - 翛
523
+ - 儋
524
+ - 恳
525
+ - 瀍
526
+ - 敌
527
+ - 砬
528
+ - 奁
529
+ - 耵
530
+ - 烂
531
+ - 绿
532
+ - 缆
533
+ - 辣
534
+ - time
535
+ - 蔗
536
+ - too
537
+ - 圾
538
+ - 骞
539
+ - 慥
540
+ - 啶
541
+ - 帔
542
+ - 楢
543
+ - bi@@
544
+ - 蚤
545
+ - 浛
546
+ - ine
547
+ - 綦
548
+ - old
549
+ - 肩
550
+ - 擎
551
+ - ling
552
+ - 瘆
553
+ - 娲
554
+ - prob@@
555
+ - 暑
556
+ - 鲨
557
+ - 焚
558
+ - 剽
559
+ - 玚
560
+ - 乔
561
+ - 纪
562
+ - bo@@
563
+ - 熏
564
+ - 毗
565
+ - 鳙
566
+ - 鞥
567
+ - 絜
568
+ - 糠
569
+ - 菔
570
+ - 廛
571
+ - 谪
572
+ - 冬
573
+ - 遐
574
+ - 衽
575
+ - ich
576
+ - 柿
577
+ - 峭
578
+ - 渴
579
+ - 亓
580
+ - 荠
581
+ - 蝠
582
+ - 扆
583
+ - 鄞
584
+ - 诎
585
+ - 尙
586
+ - 摸
587
+ - 牙
588
+ - 薤
589
+ - da@@
590
+ - w
591
+ - 呜
592
+ - 陂
593
+ - 磻
594
+ - 匹
595
+ - while
596
+ - 迁
597
+ - 良
598
+ - 郤
599
+ - ct@@
600
+ - 蚕
601
+ - 浥
602
+ - 鲋
603
+ - 腱
604
+ - pres@@
605
+ - 氕
606
+ - 颉
607
+ - 夥
608
+ - ter@@
609
+ - 左
610
+ - 侉
611
+ - 妍
612
+ - 嚒
613
+ - 殖
614
+ - 私
615
+ - bas@@
616
+ - 锱
617
+ - 篪
618
+ - 吻
619
+ - 鄅
620
+ - 鳗
621
+ - 疳
622
+ - cor@@
623
+ - 毛
624
+ - 歼
625
+ - 邵
626
+ - 圪
627
+ - inn
628
+ - 舛
629
+ - 埗
630
+ - 貉
631
+ - 帐
632
+ - 妮
633
+ - ged
634
+ - 窒
635
+ - put
636
+ - 诉
637
+ - 堌
638
+ - 气
639
+ - 國
640
+ - 摩
641
+ - 沫
642
+ - 谁
643
+ - 转
644
+ - 语
645
+ - 琵
646
+ - 羊
647
+ - 檠
648
+ - 慎
649
+ - 踮
650
+ - 啾
651
+ - 瞻
652
+ - 山
653
+ - 播
654
+ - 筌
655
+ - 财
656
+ - 飚
657
+ - 苟
658
+ - 扣
659
+ - mis@@
660
+ - 桌
661
+ - 侑
662
+ - jo@@
663
+ - ke@@
664
+ - 冶
665
+ - 滔
666
+ - 蠹
667
+ - 呓
668
+ - 捷
669
+ - 证
670
+ - 崞
671
+ - 阵
672
+ - 掐
673
+ - 劳
674
+ - 皆
675
+ - 巧
676
+ - 肏
677
+ - 肆
678
+ - 葆
679
+ - 檄
680
+ - 画
681
+ - 狨
682
+ - 谧
683
+ - 傑
684
+ - 诱
685
+ - 纭
686
+ - 荥
687
+ - 厥
688
+ - bri@@
689
+ - 绁
690
+ - 睇
691
+ - 布
692
+ - 江
693
+ - 噎
694
+ - 灞
695
+ - 鄏
696
+ - 煊
697
+ - 蒹
698
+ - 厮
699
+ - 馓
700
+ - 狴
701
+ - 碍
702
+ - 穷
703
+ - lar@@
704
+ - 食
705
+ - 迩
706
+ - meeting
707
+ - tter
708
+ - 趣
709
+ - 辜
710
+ - 椁
711
+ - 汽
712
+ - 燠
713
+ - ate
714
+ - 礴
715
+ - 骈
716
+ - will
717
+ - not
718
+ - 煽
719
+ - 嗳
720
+ - 秆
721
+ - 勤
722
+ - 陆
723
+ - 键
724
+ - 墎
725
+ - 官
726
+ - 蘧
727
+ - 酤
728
+ - 唐
729
+ - 颓
730
+ - 仝
731
+ - iting
732
+ - 田
733
+ - 楫
734
+ - 瑁
735
+ - 鄢
736
+ - our
737
+ - 诘
738
+ - venue
739
+ - 霜
740
+ - 镏
741
+ - 痫
742
+ - 娟
743
+ - 婢
744
+ - 埋
745
+ - 汕
746
+ - 铋
747
+ - 徭
748
+ - 隰
749
+ - 猊
750
+ - 卞
751
+ - 慑
752
+ - said
753
+ - 裘
754
+ - bus@@
755
+ - 召
756
+ - 粱
757
+ - 返
758
+ - 缨
759
+ - 纻
760
+ - 磋
761
+ - 炴
762
+ - 凊
763
+ - 曝
764
+ - 兀
765
+ - 洼
766
+ - 杓
767
+ - 榆
768
+ - hotels
769
+ - 睹
770
+ - 糯
771
+ - 窘
772
+ - 葩
773
+ - 帮
774
+ - 荷
775
+ - 塌
776
+ - 矍
777
+ - 圯
778
+ - er@@
779
+ - 蚪
780
+ - 篼
781
+ - 咳
782
+ - 吸
783
+ - 喃
784
+ - 岩
785
+ - 嚟
786
+ - 谱
787
+ - 崆
788
+ - 蟭
789
+ - wal@@
790
+ - 姗
791
+ - 谛
792
+ - 东
793
+ - 菱
794
+ - ction
795
+ - 肫
796
+ - 祥
797
+ - 述
798
+ - 璋
799
+ - 仙
800
+ - 唇
801
+ - 硕
802
+ - 嘉
803
+ - 醒
804
+ - 兔
805
+ - 恒
806
+ - 银
807
+ - 収
808
+ - cre@@
809
+ - 弭
810
+ - 曌
811
+ - 螯
812
+ - 苡
813
+ - 疾
814
+ - 鸱
815
+ - 权
816
+ - 搔
817
+ - 途
818
+ - 茂
819
+ - 皑
820
+ - 补
821
+ - 肃
822
+ - ns
823
+ - market
824
+ - 讠
825
+ - 阈
826
+ - 机
827
+ - 苒
828
+ - 髙
829
+ - is@@
830
+ - 幢
831
+ - 郐
832
+ - 萎
833
+ - 帛
834
+ - 烖
835
+ - 襟
836
+ - 崟
837
+ - 溶
838
+ - 螺
839
+ - 铲
840
+ - 仉
841
+ - 舌
842
+ - 敖
843
+ - 倍
844
+ - 锏
845
+ - 鸦
846
+ - 夌
847
+ - 埌
848
+ - 腰
849
+ - 雠
850
+ - ol@@
851
+ - 涙
852
+ - 翳
853
+ - 夹
854
+ - 疏
855
+ - el
856
+ - 驭
857
+ - 鹯
858
+ - 瑜
859
+ - 薛
860
+ - 奇
861
+ - 娴
862
+ - 靳
863
+ - 镥
864
+ - 伍
865
+ - 暨
866
+ - what
867
+ - 萧
868
+ - 皴
869
+ - 烦
870
+ - 敷
871
+ - 样
872
+ - ri@@
873
+ - 睆
874
+ - 伦
875
+ - 後
876
+ - 祺
877
+ - 贾
878
+ - 汹
879
+ - 箸
880
+ - 掂
881
+ - 械
882
+ - ob@@
883
+ - 赜
884
+ - 黎
885
+ - 潵
886
+ - 鲽
887
+ - 牒
888
+ - 罐
889
+ - inter@@
890
+ - 冰
891
+ - 成
892
+ - 薳
893
+ - if
894
+ - 堡
895
+ - 搜
896
+ - 漪
897
+ - 赕
898
+ - 症
899
+ - 参
900
+ - 鲫
901
+ - 克
902
+ - 浴
903
+ - 薹
904
+ - 梫
905
+ - 调
906
+ - 劢
907
+ - 茹
908
+ - 飐
909
+ - r
910
+ - her
911
+ - 鲊
912
+ - 妪
913
+ - 惟
914
+ - 榜
915
+ - 谒
916
+ - 梃
917
+ - twenty
918
+ - ni@@
919
+ - 猥
920
+ - 兴
921
+ - 氓
922
+ - 肘
923
+ - 饕
924
+ - 陵
925
+ - within
926
+ - 轲
927
+ - cted
928
+ - 単
929
+ - 嚗
930
+ - 唼
931
+ - inte@@
932
+ - 钋
933
+ - 抒
934
+ - 郓
935
+ - 牖
936
+ - 蔻
937
+ - 邂
938
+ - 懦
939
+ - 邻
940
+ - 茸
941
+ - 辈
942
+ - 种
943
+ - 黹
944
+ - hard
945
+ - 悦
946
+ - 综
947
+ - ved
948
+ - oo@@
949
+ - used
950
+ - 溱
951
+ - 藁
952
+ - 士
953
+ - 猝
954
+ - 芹
955
+ - char@@
956
+ - we
957
+ - 呒
958
+ - ss@@
959
+ - 岐
960
+ - 桖
961
+ - 迟
962
+ - 荞
963
+ - 哏
964
+ - 仵
965
+ - 抟
966
+ - 淇
967
+ - il
968
+ - 电
969
+ - 褀
970
+ - 果
971
+ - bir@@
972
+ - ges
973
+ - 暻
974
+ - 椊
975
+ - 吴
976
+ - sal@@
977
+ - 獐
978
+ - 煲
979
+ - 箥
980
+ - 爰
981
+ - 呣
982
+ - 邶
983
+ - 尻
984
+ - 水
985
+ - sh@@
986
+ - fore
987
+ - mat@@
988
+ - 浅
989
+ - 枘
990
+ - 稷
991
+ - 艨
992
+ - 唧
993
+ - can@@
994
+ - eng
995
+ - know
996
+ - 桠
997
+ - 亵
998
+ - tou@@
999
+ - 伥
1000
+ - 虏
1001
+ - 綮
1002
+ - sha@@
1003
+ - 腌
1004
+ - 蔓
1005
+ - 莶
1006
+ - 戬
1007
+ - 鋆
1008
+ - 酥
1009
+ - 璜
1010
+ - 阐
1011
+ - 贶
1012
+ - 远
1013
+ - 验
1014
+ - dre@@
1015
+ - 赎
1016
+ - 惭
1017
+ - 裴
1018
+ - 晌
1019
+ - 铡
1020
+ - 愆
1021
+ - 隧
1022
+ - 祐
1023
+ - 貔
1024
+ - 片
1025
+ - al
1026
+ - 抾
1027
+ - 柰
1028
+ - 探
1029
+ - 喈
1030
+ - 蟮
1031
+ - 潎
1032
+ - 批
1033
+ - 胴
1034
+ - 郁
1035
+ - 蓿
1036
+ - 稿
1037
+ - 傲
1038
+ - 垒
1039
+ - 甙
1040
+ - 靼
1041
+ - chic@@
1042
+ - 效
1043
+ - 栗
1044
+ - 齁
1045
+ - 仲
1046
+ - 担
1047
+ - har@@
1048
+ - 仟
1049
+ - 砂
1050
+ - i
1051
+ - 舰
1052
+ - 吝
1053
+ - 慆
1054
+ - 芸
1055
+ - why
1056
+ - tic
1057
+ - 哥
1058
+ - 佩
1059
+ - 铀
1060
+ - 妊
1061
+ - x
1062
+ - 刍
1063
+ - 殄
1064
+ - 躬
1065
+ - 莙
1066
+ - 客
1067
+ - 拚
1068
+ - 葬
1069
+ - 哼
1070
+ - 婵
1071
+ - ance
1072
+ - 棺
1073
+ - 没
1074
+ - 崎
1075
+ - 曛
1076
+ - 宛
1077
+ - 斌
1078
+ - 掠
1079
+ - 醇
1080
+ - 庾
1081
+ - 黥
1082
+ - 乗
1083
+ - 旉
1084
+ - 铰
1085
+ - 寨
1086
+ - 钨
1087
+ - 沥
1088
+ - gh@@
1089
+ - 吇
1090
+ - 嬖
1091
+ - 厨
1092
+ - 箔
1093
+ - ah
1094
+ - 譞
1095
+ - 鲖
1096
+ - 蒗
1097
+ - 銶
1098
+ - 角
1099
+ - 脏
1100
+ - 夬
1101
+ - who
1102
+ - 毂
1103
+ - 赓
1104
+ - 嘢
1105
+ - 蹶
1106
+ - 駃
1107
+ - avenue
1108
+ - 呃
1109
+ - that's
1110
+ - 訾
1111
+ - 蒜
1112
+ - 就
1113
+ - 抿
1114
+ - 霫
1115
+ - que@@
1116
+ - 牁
1117
+ - 叻
1118
+ - 绌
1119
+ - 捣
1120
+ - 埭
1121
+ - 蛩
1122
+ - 迤
1123
+ - ir
1124
+ - 最
1125
+ - 不
1126
+ - 鹚
1127
+ - 钧
1128
+ - 晃
1129
+ - 钍
1130
+ - 岍
1131
+ - 烯
1132
+ - 授
1133
+ - 笨
1134
+ - 馔
1135
+ - 甸
1136
+ - 啰
1137
+ - 赌
1138
+ - 蠼
1139
+ - 荆
1140
+ - 濉
1141
+ - 摹
1142
+ - 剔
1143
+ - 浪
1144
+ - 瓦
1145
+ - 涤
1146
+ - 阬
1147
+ - eng@@
1148
+ - 墨
1149
+ - 鲢
1150
+ - 老
1151
+ - 拮
1152
+ - 轿
1153
+ - 弈
1154
+ - 秸
1155
+ - ken
1156
+ - 省
1157
+ - 穹
1158
+ - 跨
1159
+ - 芤
1160
+ - 剰
1161
+ - 湍
1162
+ - 吥
1163
+ - 喧
1164
+ - 借
1165
+ - 伯
1166
+ - 咋
1167
+ - 噢
1168
+ - 剩
1169
+ - 略
1170
+ - 图
1171
+ - 毕
1172
+ - 爻
1173
+ - 箭
1174
+ - ans@@
1175
+ - 'no'
1176
+ - 缣
1177
+ - fic@@
1178
+ - 必
1179
+ - 礻
1180
+ - 视
1181
+ - 侔
1182
+ - 乸
1183
+ - 缎
1184
+ - 比
1185
+ - 殉
1186
+ - 禅
1187
+ - 蹈
1188
+ - 茶
1189
+ - 沔
1190
+ - 腹
1191
+ - 更
1192
+ - 倢
1193
+ - 骑
1194
+ - 俦
1195
+ - 一
1196
+ - 巉
1197
+ - 糌
1198
+ - there
1199
+ - 笾
1200
+ - 泺
1201
+ - 虫
1202
+ - 随
1203
+ - 室
1204
+ - 谙
1205
+ - 淞
1206
+ - even
1207
+ - 嘌
1208
+ - 掉
1209
+ - 进
1210
+ - 栈
1211
+ - 隋
1212
+ - 钳
1213
+ - 饲
1214
+ - 裾
1215
+ - 搞
1216
+ - 朽
1217
+ - 嚏
1218
+ - 垱
1219
+ - 倘
1220
+ - sy@@
1221
+ - 蒂
1222
+ - 訚
1223
+ - 火
1224
+ - 葱
1225
+ - 踹
1226
+ - only
1227
+ - den@@
1228
+ - 胰
1229
+ - 曦
1230
+ - 汨
1231
+ - 奴
1232
+ - 院
1233
+ - 晶
1234
+ - 臇
1235
+ - 赭
1236
+ - 蚵
1237
+ - 便
1238
+ - 藜
1239
+ - 鍪
1240
+ - 穆
1241
+ - 尿
1242
+ - find
1243
+ - 偾
1244
+ - 项
1245
+ - 嬅
1246
+ - 济
1247
+ - area
1248
+ - 皿
1249
+ - 蹽
1250
+ - af@@
1251
+ - 曈
1252
+ - ger
1253
+ - 袭
1254
+ - 温
1255
+ - 包
1256
+ - 惎
1257
+ - 枝
1258
+ - 槁
1259
+ - 跑
1260
+ - 汇
1261
+ - 嫦
1262
+ - 崒
1263
+ - 颇
1264
+ - 丐
1265
+ - 丛
1266
+ - 哠
1267
+ - 鲲
1268
+ - 佯
1269
+ - 疱
1270
+ - 來
1271
+ - 彝
1272
+ - 件
1273
+ - 鸫
1274
+ - 张
1275
+ - 缋
1276
+ - 檎
1277
+ - 港
1278
+ - 尸
1279
+ - comm@@
1280
+ - 瘘
1281
+ - 囍
1282
+ - 锅
1283
+ - 惫
1284
+ - 衔
1285
+ - 蔚
1286
+ - 龚
1287
+ - 酱
1288
+ - ina
1289
+ - 尚
1290
+ - 孪
1291
+ - 蔵
1292
+ - 帧
1293
+ - 弯
1294
+ - 迄
1295
+ - 訇
1296
+ - 恕
1297
+ - 紡
1298
+ - 吱
1299
+ - 觐
1300
+ - 印
1301
+ - need
1302
+ - 叭
1303
+ - 茫
1304
+ - 汶
1305
+ - 邢
1306
+ - 磅
1307
+ - 焜
1308
+ - 蜣
1309
+ - 米
1310
+ - 俎
1311
+ - ath
1312
+ - 蛔
1313
+ - 组
1314
+ - 壹
1315
+ - 诈
1316
+ - ing@@
1317
+ - 希
1318
+ - 茨
1319
+ - 砧
1320
+ - has
1321
+ - 蝶
1322
+ - 矛
1323
+ - 拖
1324
+ - 乍
1325
+ - 浇
1326
+ - another
1327
+ - 输
1328
+ - 朗
1329
+ - 殡
1330
+ - 壶
1331
+ - 灿
1332
+ - 礌
1333
+ - 钡
1334
+ - 瓤
1335
+ - 序
1336
+ - 误
1337
+ - 毖
1338
+ - 静
1339
+ - 鸾
1340
+ - 墚
1341
+ - 璟
1342
+ - 咱
1343
+ - 惘
1344
+ - 化
1345
+ - 腾
1346
+ - 苍
1347
+ - 苼
1348
+ - 七
1349
+ - 芾
1350
+ - 囝
1351
+ - 淄
1352
+ - 馆
1353
+ - 榉
1354
+ - 荸
1355
+ - 摧
1356
+ - 醋
1357
+ - 缦
1358
+ - 帘
1359
+ - 蛋
1360
+ - 曙
1361
+ - 萩
1362
+ - 莉
1363
+ - 犸
1364
+ - 拜
1365
+ - 特
1366
+ - 蕊
1367
+ - 并
1368
+ - 冼
1369
+ - 埝
1370
+ - 茴
1371
+ - 佶
1372
+ - 噶
1373
+ - ked
1374
+ - port
1375
+ - 柠
1376
+ - 吶
1377
+ - 竿
1378
+ - 鞧
1379
+ - 糙
1380
+ - 栻
1381
+ - 褂
1382
+ - 杉
1383
+ - 陛
1384
+ - shi@@
1385
+ - 朋
1386
+ - 升
1387
+ - 钛
1388
+ - 拭
1389
+ - walk
1390
+ - 钱
1391
+ - 岸
1392
+ - 衲
1393
+ - 若
1394
+ - 燕
1395
+ - 墩
1396
+ - 戛
1397
+ - ations
1398
+ - 诳
1399
+ - 冨
1400
+ - 强
1401
+ - 掌
1402
+ - 腺
1403
+ - 淤
1404
+ - 鼍
1405
+ - 妥
1406
+ - 亥
1407
+ - 俵
1408
+ - 鹩
1409
+ - 占
1410
+ - 佤
1411
+ - 棋
1412
+ - does
1413
+ - tes
1414
+ - 拒
1415
+ - 劼
1416
+ - 绩
1417
+ - ren@@
1418
+ - 货
1419
+ - g@@
1420
+ - 深
1421
+ - 钯
1422
+ - 棬
1423
+ - 墟
1424
+ - 疼
1425
+ - 骊
1426
+ - 摅
1427
+ - 祧
1428
+ - 兊
1429
+ - 坠
1430
+ - int
1431
+ - use
1432
+ - 泞
1433
+ - 赦
1434
+ - 甾
1435
+ - 葺
1436
+ - 辘
1437
+ - 炆
1438
+ - 旭
1439
+ - 鸯
1440
+ - 茆
1441
+ - 融
1442
+ - 艄
1443
+ - 晖
1444
+ - 钺
1445
+ - 勉
1446
+ - 嘘
1447
+ - 龛
1448
+ - 蕙
1449
+ - 渀
1450
+ - 钞
1451
+ - 写
1452
+ - 弋
1453
+ - 颦
1454
+ - 灌
1455
+ - 埚
1456
+ - 鲷
1457
+ - 亡
1458
+ - 矩
1459
+ - 轰
1460
+ - a
1461
+ - 单
1462
+ - 觚
1463
+ - 呯
1464
+ - 祏
1465
+ - rec@@
1466
+ - 逢
1467
+ - 憧
1468
+ - 蒽
1469
+ - 內
1470
+ - 乡
1471
+ - 鸠
1472
+ - 卜
1473
+ - 庄
1474
+ - 仰
1475
+ - how
1476
+ - 铓
1477
+ - 踝
1478
+ - 隆
1479
+ - 避
1480
+ - 豌
1481
+ - low@@
1482
+ - ak
1483
+ - 劣
1484
+ - 哺
1485
+ - 头
1486
+ - proble@@
1487
+ - es
1488
+ - 说
1489
+ - 哇
1490
+ - 折
1491
+ - 祝
1492
+ - 偻
1493
+ - 揆
1494
+ - 的
1495
+ - 盎
1496
+ - 初
1497
+ - 骝
1498
+ - 荻
1499
+ - 饷
1500
+ - 耽
1501
+ - 莸
1502
+ - just
1503
+ - 簰
1504
+ - 现
1505
+ - pl@@
1506
+ - 籍
1507
+ - 珉
1508
+ - 蕲
1509
+ - 臌
1510
+ - 闪
1511
+ - 崮
1512
+ - gra@@
1513
+ - 琯
1514
+ - 圆
1515
+ - 瓴
1516
+ - 赬
1517
+ - 镧
1518
+ - 被
1519
+ - 共
1520
+ - 芯
1521
+ - 蚧
1522
+ - stu@@
1523
+ - mee@@
1524
+ - 沧
1525
+ - 伲
1526
+ - 觌
1527
+ - 筏
1528
+ - 庑
1529
+ - still
1530
+ - 题
1531
+ - wat@@
1532
+ - '4'
1533
+ - 绱
1534
+ - 入
1535
+ - 亚
1536
+ - sho@@
1537
+ - 珫
1538
+ - 饴
1539
+ - 點
1540
+ - than
1541
+ - good
1542
+ - l@@
1543
+ - 梁
1544
+ - 忿
1545
+ - 荐
1546
+ - 躺
1547
+ - 蹡
1548
+ - 呕
1549
+ - 圩
1550
+ - 唷
1551
+ - 陌
1552
+ - ue
1553
+ - 鲭
1554
+ - 碗
1555
+ - 怪
1556
+ - 飘
1557
+ - country
1558
+ - 粑
1559
+ - 怹
1560
+ - 飕
1561
+ - 烨
1562
+ - 吹
1563
+ - 嵇
1564
+ - 驺
1565
+ - 纰
1566
+ - in@@
1567
+ - 间
1568
+ - 馈
1569
+ - 榑
1570
+ - 窜
1571
+ - 泗
1572
+ - 硪
1573
+ - 躏
1574
+ - th
1575
+ - 耸
1576
+ - 贞
1577
+ - wom@@
1578
+ - 排
1579
+ - 箩
1580
+ - 绽
1581
+ - 舵
1582
+ - 焉
1583
+ - 振
1584
+ - 镶
1585
+ - thirty
1586
+ - 闲
1587
+ - 摁
1588
+ - 堰
1589
+ - 牵
1590
+ - 栋
1591
+ - 堤
1592
+ - 馀
1593
+ - 盟
1594
+ - t
1595
+ - 旄
1596
+ - 凇
1597
+ - 洣
1598
+ - 録
1599
+ - 韭
1600
+ - por@@
1601
+ - 孑
1602
+ - 茄
1603
+ - 闺
1604
+ - 淀
1605
+ - 坡
1606
+ - 烟
1607
+ - 洺
1608
+ - gre@@
1609
+ - 敦
1610
+ - 哉
1611
+ - 到
1612
+ - ding
1613
+ - 遑
1614
+ - 钒
1615
+ - 壳
1616
+ - lo
1617
+ - 纾
1618
+ - 砲
1619
+ - 灶
1620
+ - lee
1621
+ - 玘
1622
+ - up
1623
+ - 梵
1624
+ - 旖
1625
+ - 佗
1626
+ - 竽
1627
+ - 绋
1628
+ - 砩
1629
+ - 酒
1630
+ - 苯
1631
+ - 焕
1632
+ - 祚
1633
+ - 苁
1634
+ - 嗓
1635
+ - ail@@
1636
+ - 殽
1637
+ - om@@
1638
+ - 棨
1639
+ - 翼
1640
+ - 墼
1641
+ - 萄
1642
+ - 垭
1643
+ - 碱
1644
+ - cts
1645
+ - 渲
1646
+ - 矱
1647
+ - 掇
1648
+ - best
1649
+ - 锃
1650
+ - 谶
1651
+ - 喜
1652
+ - 雌
1653
+ - 辊
1654
+ - 啀
1655
+ - 嗞
1656
+ - 谢
1657
+ - 疹
1658
+ - 玎
1659
+ - 唤
1660
+ - 兆
1661
+ - 彳
1662
+ - 溧
1663
+ - 丕
1664
+ - 棒
1665
+ - 桁
1666
+ - 樓
1667
+ - 跟
1668
+ - 蝼
1669
+ - 哭
1670
+ - 啭
1671
+ - 替
1672
+ - 乩
1673
+ - 箪
1674
+ - 城
1675
+ - 朾
1676
+ - ear@@
1677
+ - 鲌
1678
+ - ship
1679
+ - 吕
1680
+ - 粉
1681
+ - 舜
1682
+ - 伛
1683
+ - 觏
1684
+ - 燮
1685
+ - 铊
1686
+ - 硝
1687
+ - 撤
1688
+ - 瘝
1689
+ - thanks
1690
+ - 锵
1691
+ - 圣
1692
+ - contin@@
1693
+ - 侬
1694
+ - 浮
1695
+ - 棵
1696
+ - 歭
1697
+ - ici@@
1698
+ - 珞
1699
+ - 褔
1700
+ - 券
1701
+ - 演
1702
+ - 箫
1703
+ - 缵
1704
+ - 篾
1705
+ - 鲮
1706
+ - 砒
1707
+ - 含
1708
+ - 郡
1709
+ - 快
1710
+ - 栏
1711
+ - 瘟
1712
+ - 饤
1713
+ - tw@@
1714
+ - 拃
1715
+ - 盹
1716
+ - 壕
1717
+ - 桯
1718
+ - 嗪
1719
+ - 鞨
1720
+ - 甏
1721
+ - 锫
1722
+ - 涕
1723
+ - 冕
1724
+ - 鄣
1725
+ - 淌
1726
+ - 辰
1727
+ - 唿
1728
+ - 暲
1729
+ - 蚀
1730
+ - 跋
1731
+ - 郸
1732
+ - 镀
1733
+ - ku@@
1734
+ - 赔
1735
+ - 姺
1736
+ - 课
1737
+ - 础
1738
+ - 耷
1739
+ - 涪
1740
+ - day
1741
+ - 笳
1742
+ - away
1743
+ - 稞
1744
+ - 鹈
1745
+ - 珍
1746
+ - 毯
1747
+ - 酮
1748
+ - 汀
1749
+ - 梆
1750
+ - 嫫
1751
+ - 准
1752
+ - ces
1753
+ - 巷
1754
+ - 晋
1755
+ - 肉
1756
+ - 莆
1757
+ - 痢
1758
+ - 缗
1759
+ - 怜
1760
+ - 鄙
1761
+ - 搠
1762
+ - fri@@
1763
+ - 仳
1764
+ - 该
1765
+ - 宓
1766
+ - 珂
1767
+ - 圉
1768
+ - 弨
1769
+ - 悬
1770
+ - buil@@
1771
+ - 绸
1772
+ - 太
1773
+ - 外
1774
+ - 祢
1775
+ - 蓍
1776
+ - 圹
1777
+ - 侓
1778
+ - 跸
1779
+ - 谊
1780
+ - 获
1781
+ - 髈
1782
+ - 迮
1783
+ - 鹤
1784
+ - 卦
1785
+ - 嗻
1786
+ - 佐
1787
+ - 愠
1788
+ - 媲
1789
+ - 殍
1790
+ - 齉
1791
+ - 妹
1792
+ - 残
1793
+ - 嗄
1794
+ - 钾
1795
+ - court
1796
+ - 踞
1797
+ - 脯
1798
+ - 菖
1799
+ - 琼
1800
+ - 傻
1801
+ - 三
1802
+ - 虿
1803
+ - 唪
1804
+ - 逶
1805
+ - 鲤
1806
+ - 镌
1807
+ - 肇
1808
+ - 弘
1809
+ - 李
1810
+ - 履
1811
+ - 恩
1812
+ - 蒌
1813
+ - 夙
1814
+ - 环
1815
+ - 坒
1816
+ - gar@@
1817
+ - ans
1818
+ - 嘣
1819
+ - 嵯
1820
+ - 命
1821
+ - 酢
1822
+ - 屏
1823
+ - 鈇
1824
+ - 麟
1825
+ - 旨
1826
+ - 旼
1827
+ - 疮
1828
+ - with
1829
+ - 解
1830
+ - 屈
1831
+ - 趴
1832
+ - 蠛
1833
+ - 密
1834
+ - 瞩
1835
+ - 屎
1836
+ - 显
1837
+ - 魁
1838
+ - 衯
1839
+ - 钇
1840
+ - 酩
1841
+ - 鳌
1842
+ - 戆
1843
+ - 芈
1844
+ - 十
1845
+ - gu@@
1846
+ - 陪
1847
+ - 黑
1848
+ - 缌
1849
+ - ch@@
1850
+ - 摇
1851
+ - 梨
1852
+ - 胼
1853
+ - 撷
1854
+ - 疤
1855
+ - 砟
1856
+ - el@@
1857
+ - 唛
1858
+ - 芪
1859
+ - 速
1860
+ - ol
1861
+ - 细
1862
+ - 馥
1863
+ - 犰
1864
+ - bal@@
1865
+ - 鲇
1866
+ - 韂
1867
+ - 焰
1868
+ - 胗
1869
+ - 粹
1870
+ - 枌
1871
+ - 嵬
1872
+ - 古
1873
+ - she
1874
+ - through
1875
+ - 筛
1876
+ - 翀
1877
+ - 协
1878
+ - se
1879
+ - 魃
1880
+ - 格
1881
+ - mes
1882
+ - 晥
1883
+ - 跱
1884
+ - 掺
1885
+ - 阕
1886
+ - 智
1887
+ - 松
1888
+ - st@@
1889
+ - 靠
1890
+ - 斟
1891
+ - 粒
1892
+ - 舞
1893
+ - 瀣
1894
+ - 棅
1895
+ - 茭
1896
+ - 韫
1897
+ - 鐎
1898
+ - 灵
1899
+ - 龢
1900
+ - 卷
1901
+ - lion
1902
+ - 曹
1903
+ - 哒
1904
+ - 皝
1905
+ - 哲
1906
+ - pe@@
1907
+ - 患
1908
+ - 逸
1909
+ - 涠
1910
+ - 蛰
1911
+ - 佣
1912
+ - 猇
1913
+ - 狈
1914
+ - nine
1915
+ - 囫
1916
+ - 风
1917
+ - 态
1918
+ - 慈
1919
+ - 慜
1920
+ - 俨
1921
+ - 汲
1922
+ - 肛
1923
+ - 隶
1924
+ - 坩
1925
+ - 赍
1926
+ - 海
1927
+ - 癫
1928
+ - my
1929
+ - 委
1930
+ - ill
1931
+ - 胤
1932
+ - 覩
1933
+ - 臬
1934
+ - 矶
1935
+ - 炷
1936
+ - 衬
1937
+ - 前
1938
+ - 馊
1939
+ - 伽
1940
+ - 艳
1941
+ - 妗
1942
+ - 肠
1943
+ - 檗
1944
+ - soon
1945
+ - 氙
1946
+ - 琅
1947
+ - 谏
1948
+ - light
1949
+ - 変
1950
+ - seven@@
1951
+ - 旸
1952
+ - 芭
1953
+ - en@@
1954
+ - 烧
1955
+ - 诃
1956
+ - 攘
1957
+ - 陧
1958
+ - 觅
1959
+ - 铑
1960
+ - 氐
1961
+ - 余
1962
+ - night
1963
+ - hou@@
1964
+ - 鹀
1965
+ - 膜
1966
+ - 炙
1967
+ - 抨
1968
+ - 珊
1969
+ - ses
1970
+ - 漩
1971
+ - both
1972
+ - 桉
1973
+ - 笺
1974
+ - 鎛
1975
+ - led
1976
+ - 披
1977
+ - 膛
1978
+ - 蜻
1979
+ - 菽
1980
+ - 娼
1981
+ - 団
1982
+ - 揽
1983
+ - 测
1984
+ - f@@
1985
+ - 芎
1986
+ - 吅
1987
+ - sion
1988
+ - 遹
1989
+ - 瓘
1990
+ - 慕
1991
+ - 他
1992
+ - 鄩
1993
+ - 矽
1994
+ - thou@@
1995
+ - 沒
1996
+ - 唁
1997
+ - 匿
1998
+ - 设
1999
+ - 嵖
2000
+ - 髹
2001
+ - ine@@
2002
+ - 恸
2003
+ - 窣
2004
+ - -@@
2005
+ - 街
2006
+ - 膝
2007
+ - 碑
2008
+ - national
2009
+ - it@@
2010
+ - 瘢
2011
+ - ci@@
2012
+ - 侮
2013
+ - l
2014
+ - 陉
2015
+ - 照
2016
+ - 原
2017
+ - 厐
2018
+ - 悚
2019
+ - 答
2020
+ - 犷
2021
+ - 罔
2022
+ - 绘
2023
+ - 敞
2024
+ - ys
2025
+ - 捆
2026
+ - 殚
2027
+ - 填
2028
+ - 挟
2029
+ - tal@@
2030
+ - 萌
2031
+ - 卑
2032
+ - 甃
2033
+ - 吉
2034
+ - 蜮
2035
+ - 帑
2036
+ - 笖
2037
+ - new
2038
+ - 昺
2039
+ - 诤
2040
+ - 襜
2041
+ - 矗
2042
+ - 藠
2043
+ - 苓
2044
+ - th@@
2045
+ - 哝
2046
+ - its
2047
+ - 蚋
2048
+ - ran@@
2049
+ - 澳
2050
+ - eight
2051
+ - 贱
2052
+ - 傕
2053
+ - 亦
2054
+ - 续
2055
+ - 槐
2056
+ - 筚
2057
+ - 追
2058
+ - 醺
2059
+ - 錾
2060
+ - 蹒
2061
+ - 玟
2062
+ - look
2063
+ - 圃
2064
+ - 颗
2065
+ - 旎
2066
+ - 圮
2067
+ - 绷
2068
+ - op@@
2069
+ - 咙
2070
+ - 槃
2071
+ - 冫
2072
+ - 乳
2073
+ - 鸣
2074
+ - 柴
2075
+ - 蚴
2076
+ - 擞
2077
+ - 锴
2078
+ - 姣
2079
+ - 惯
2080
+ - 管
2081
+ - 奎
2082
+ - ra@@
2083
+ - 瞠
2084
+ - 侍
2085
+ - 恵
2086
+ - 岬
2087
+ - 喎
2088
+ - 摭
2089
+ - 卺
2090
+ - wee@@
2091
+ - 羧
2092
+ - cep@@
2093
+ - fron@@
2094
+ - 妁
2095
+ - 很
2096
+ - 禹
2097
+ - 巯
2098
+ - 夼
2099
+ - 鄫
2100
+ - re@@
2101
+ - 动
2102
+ - 迓
2103
+ - 狐
2104
+ - 瑕
2105
+ - 棹
2106
+ - 屹
2107
+ - 皈
2108
+ - 陔
2109
+ - 殛
2110
+ - 仿
2111
+ - 蝥
2112
+ - 缘
2113
+ - 镫
2114
+ - 品
2115
+ - ase
2116
+ - row
2117
+ - 缜
2118
+ - stance
2119
+ - 予
2120
+ - custom@@
2121
+ - 抬
2122
+ - 鞶
2123
+ - 蛘
2124
+ - 埏
2125
+ - 漂
2126
+ - 凝
2127
+ - 虻
2128
+ - 姒
2129
+ - 痒
2130
+ - 邝
2131
+ - ss
2132
+ - 战
2133
+ - 悴
2134
+ - spe@@
2135
+ - 羝
2136
+ - 吮
2137
+ - 锗
2138
+ - 湘
2139
+ - 端
2140
+ - 淸
2141
+ - 孢
2142
+ - '3'
2143
+ - 郴
2144
+ - 卬
2145
+ - fif@@
2146
+ - 濯
2147
+ - 射
2148
+ - 簏
2149
+ - 锌
2150
+ - 啖
2151
+ - 懑
2152
+ - 霪
2153
+ - 棻
2154
+ - 簺
2155
+ - 怅
2156
+ - g
2157
+ - 毎
2158
+ - 犳
2159
+ - ffe@@
2160
+ - 镉
2161
+ - 閦
2162
+ - 吲
2163
+ - 驹
2164
+ - are@@
2165
+ - 埇
2166
+ - 心
2167
+ - 漴
2168
+ - 娃
2169
+ - 侯
2170
+ - 蔽
2171
+ - 值
2172
+ - 鲧
2173
+ - fr@@
2174
+ - ful
2175
+ - 嘹
2176
+ - 滥
2177
+ - 騠
2178
+ - ility
2179
+ - 喹
2180
+ - 悉
2181
+ - 嗽
2182
+ - 些
2183
+ - 硁
2184
+ - mer@@
2185
+ - 磊
2186
+ - 霆
2187
+ - 麝
2188
+ - 曲
2189
+ - 蜃
2190
+ - police
2191
+ - 镩
2192
+ - 笪
2193
+ - 苾
2194
+ - 靑
2195
+ - 凼
2196
+ - 多
2197
+ - 质
2198
+ - 缇
2199
+ - 嗫
2200
+ - 沏
2201
+ - ened
2202
+ - 花
2203
+ - 诹
2204
+ - 尉
2205
+ - 珥
2206
+ - 崩
2207
+ - ld
2208
+ - x@@
2209
+ - 揎
2210
+ - 纷
2211
+ - 缂
2212
+ - 轹
2213
+ - 庙
2214
+ - 渚
2215
+ - 鸪
2216
+ - 乒
2217
+ - 惧
2218
+ - peop@@
2219
+ - 歌
2220
+ - 唾
2221
+ - 樘
2222
+ - 膺
2223
+ - fro@@
2224
+ - 哂
2225
+ - 腼
2226
+ - 霄
2227
+ - 坞
2228
+ - 霰
2229
+ - 掎
2230
+ - 娿
2231
+ - 镬
2232
+ - 巨
2233
+ - 碇
2234
+ - 藩
2235
+ - 活
2236
+ - 荤
2237
+ - 团
2238
+ - 缪
2239
+ - 钵
2240
+ - 飞
2241
+ - 儡
2242
+ - 苤
2243
+ - 貊
2244
+ - 柄
2245
+ - 蓠
2246
+ - 防
2247
+ - 贮
2248
+ - 碾
2249
+ - 狞
2250
+ - 艏
2251
+ - 喏
2252
+ - 稚
2253
+ - 映
2254
+ - i'm
2255
+ - 谤
2256
+ - 蜿
2257
+ - 车
2258
+ - 乂
2259
+ - 寕
2260
+ - 啧
2261
+ - 虔
2262
+ - ster@@
2263
+ - 垣
2264
+ - 嗛
2265
+ - 讪
2266
+ - ves
2267
+ - again
2268
+ - 隗
2269
+ - 帜
2270
+ - 嗾
2271
+ - 绂
2272
+ - 公
2273
+ - 卮
2274
+ - 抱
2275
+ - 仕
2276
+ - 以
2277
+ - 栘
2278
+ - 拊
2279
+ - 萤
2280
+ - him
2281
+ - 荪
2282
+ - 淬
2283
+ - '7'
2284
+ - 鋹
2285
+ - 敢
2286
+ - 颖
2287
+ - ment
2288
+ - 嫩
2289
+ - 棕
2290
+ - show
2291
+ - 跩
2292
+ - out@@
2293
+ - 汤
2294
+ - 迕
2295
+ - 榨
2296
+ - 暗
2297
+ - 糍
2298
+ - 晡
2299
+ - '9'
2300
+ - 稂
2301
+ - 曼
2302
+ - 蒺
2303
+ - ture
2304
+ - 鬄
2305
+ - 逅
2306
+ - 岚
2307
+ - 芟
2308
+ - 昶
2309
+ - 埤
2310
+ - 幺
2311
+ - 猖
2312
+ - 伙
2313
+ - pub@@
2314
+ - 南
2315
+ - 荨
2316
+ - 趁
2317
+ - 淑
2318
+ - 嘲
2319
+ - 悔
2320
+ - 藉
2321
+ - 争
2322
+ - 渔
2323
+ - pool
2324
+ - 簟
2325
+ - 谀
2326
+ - 噘
2327
+ - 窀
2328
+ - 祟
2329
+ - 阜
2330
+ - 涸
2331
+ - 掖
2332
+ - 癃
2333
+ - 疑
2334
+ - 搢
2335
+ - 漏
2336
+ - 锉
2337
+ - 钹
2338
+ - 耱
2339
+ - 踢
2340
+ - 骎
2341
+ - 稣
2342
+ - 锲
2343
+ - 繇
2344
+ - 缊
2345
+ - 劈
2346
+ - 啻
2347
+ - 蕴
2348
+ - 仔
2349
+ - 昝
2350
+ - 且
2351
+ - 滚
2352
+ - 柢
2353
+ - 镊
2354
+ - 响
2355
+ - 凰
2356
+ - 噗
2357
+ - 瑴
2358
+ - 嗔
2359
+ - 简
2360
+ - 蜇
2361
+ - 有
2362
+ - 豢
2363
+ - ap@@
2364
+ - 啓
2365
+ - 翅
2366
+ - 愤
2367
+ - peri@@
2368
+ - 蚶
2369
+ - 弄
2370
+ - 禨
2371
+ - 蚡
2372
+ - 坝
2373
+ - 换
2374
+ - 纨
2375
+ - 蹑
2376
+ - for@@
2377
+ - 草
2378
+ - 荛
2379
+ - 懈
2380
+ - 奉
2381
+ - 鳊
2382
+ - 疗
2383
+ - 搂
2384
+ - 串
2385
+ - 幸
2386
+ - 岽
2387
+ - 牍
2388
+ - 蝰
2389
+ - 絶
2390
+ - 秣
2391
+ - 缴
2392
+ - at
2393
+ - 网
2394
+ - 嗑
2395
+ - 岗
2396
+ - 绊
2397
+ - 圳
2398
+ - 恁
2399
+ - 反
2400
+ - 方
2401
+ - 癞
2402
+ - 煞
2403
+ - 雪
2404
+ - 尤
2405
+ - 鐧
2406
+ - 麒
2407
+ - 黡
2408
+ - 殷
2409
+ - 都
2410
+ - 则
2411
+ - 剃
2412
+ - 揄
2413
+ - 毐
2414
+ - 噱
2415
+ - fi
2416
+ - 氹
2417
+ - 泠
2418
+ - 樾
2419
+ - 迳
2420
+ - 嫚
2421
+ - 齿
2422
+ - 殳
2423
+ - 墒
2424
+ - 役
2425
+ - 晟
2426
+ - 咔
2427
+ - 芃
2428
+ - 睁
2429
+ - 柽
2430
+ - 戍
2431
+ - 屺
2432
+ - 虱
2433
+ - 韦
2434
+ - 涅
2435
+ - 姚
2436
+ - 鋈
2437
+ - sure
2438
+ - 既
2439
+ - 涯
2440
+ - 甯
2441
+ - 嘤
2442
+ - 硞
2443
+ - som@@
2444
+ - 惴
2445
+ - 狻
2446
+ - 堑
2447
+ - 屉
2448
+ - 愿
2449
+ - li@@
2450
+ - 行
2451
+ - 谲
2452
+ - 嶂
2453
+ - 峣
2454
+ - 碜
2455
+ - 暂
2456
+ - h@@
2457
+ - 鏖
2458
+ - 瘊
2459
+ - 蜈
2460
+ - 浈
2461
+ - 萦
2462
+ - 职
2463
+ - 蚊
2464
+ - 汴
2465
+ - people
2466
+ - 妱
2467
+ - 鸰
2468
+ - 易
2469
+ - 芜
2470
+ - 挪
2471
+ - 影
2472
+ - 竹
2473
+ - 洸
2474
+ - 烀
2475
+ - 鹘
2476
+ - 胜
2477
+ - 兵
2478
+ - 咧
2479
+ - 楷
2480
+ - 币
2481
+ - 妖
2482
+ - ant
2483
+ - 臣
2484
+ - 桩
2485
+ - 创
2486
+ - 囹
2487
+ - na@@
2488
+ - 鞑
2489
+ - 楂
2490
+ - 逡
2491
+ - 惆
2492
+ - 卿
2493
+ - 闱
2494
+ - 耀
2495
+ - 那
2496
+ - 童
2497
+ - 钰
2498
+ - 玮
2499
+ - 郄
2500
+ - 昏
2501
+ - 乘
2502
+ - 钩
2503
+ - 晳
2504
+ - 笼
2505
+ - 核
2506
+ - 芙
2507
+ - 小
2508
+ - 忋
2509
+ - 区
2510
+ - as@@
2511
+ - 颢
2512
+ - our@@
2513
+ - that
2514
+ - 稻
2515
+ - 销
2516
+ - 韶
2517
+ - 刑
2518
+ - 延
2519
+ - k@@
2520
+ - teen
2521
+ - 幄
2522
+ - pic@@
2523
+ - 叱
2524
+ - 骷
2525
+ - 棰
2526
+ - 羁
2527
+ - 垝
2528
+ - 犴
2529
+ - 媱
2530
+ - 兄
2531
+ - 尓
2532
+ - 乞
2533
+ - 鲦
2534
+ - 划
2535
+ - 壬
2536
+ - 芡
2537
+ - hotel
2538
+ - 佃
2539
+ - 氯
2540
+ - 您
2541
+ - 颌
2542
+ - 汝
2543
+ - 缫
2544
+ - 幂
2545
+ - 竣
2546
+ - 喾
2547
+ - 疥
2548
+ - long
2549
+ - 广
2550
+ - 镂
2551
+ - 酫
2552
+ - ings
2553
+ - ood
2554
+ - 柊
2555
+ - 唣
2556
+ - 辽
2557
+ - 稀
2558
+ - 襞
2559
+ - 讼
2560
+ - 篱
2561
+ - 坻
2562
+ - 袂
2563
+ - 华
2564
+ - 自
2565
+ - 歧
2566
+ - 昂
2567
+ - 摺
2568
+ - gh
2569
+ - 聿
2570
+ - 犟
2571
+ - 敛
2572
+ - 牺
2573
+ - 旳
2574
+ - 锥
2575
+ - 玛
2576
+ - 低
2577
+ - 鄮
2578
+ - 漳
2579
+ - 叠
2580
+ - 川
2581
+ - 呼
2582
+ - where
2583
+ - 戳
2584
+ - 嗮
2585
+ - 琦
2586
+ - 厓
2587
+ - 窠
2588
+ - cas@@
2589
+ - 舷
2590
+ - 甦
2591
+ - 凛
2592
+ - 谖
2593
+ - 旷
2594
+ - 沌
2595
+ - 狒
2596
+ - 溉
2597
+ - 绍
2598
+ - 劲
2599
+ - 滟
2600
+ - in
2601
+ - 褊
2602
+ - fam@@
2603
+ - 楽
2604
+ - 金
2605
+ - 磕
2606
+ - see
2607
+ - 斩
2608
+ - 佛
2609
+ - 壅
2610
+ - 境
2611
+ - 诂
2612
+ - around
2613
+ - 羑
2614
+ - 浆
2615
+ - 矜
2616
+ - 铈
2617
+ - provi@@
2618
+ - 藐
2619
+ - 伉
2620
+ - 阶
2621
+ - 哀
2622
+ - 潼
2623
+ - 精
2624
+ - 像
2625
+ - 凶
2626
+ - 琇
2627
+ - 秧
2628
+ - 涂
2629
+ - 豫
2630
+ - 镒
2631
+ - 蒟
2632
+ - 叹
2633
+ - 颜
2634
+ - 莫
2635
+ - 阀
2636
+ - 痕
2637
+ - 爬
2638
+ - 嬲
2639
+ - 滓
2640
+ - 牮
2641
+ - 沐
2642
+ - 璈
2643
+ - 窸
2644
+ - 湮
2645
+ - 喊
2646
+ - 徘
2647
+ - 而
2648
+ - 仞
2649
+ - 蛆
2650
+ - 吵
2651
+ - 栟
2652
+ - 郯
2653
+ - 谄
2654
+ - 膑
2655
+ - 垯
2656
+ - 恰
2657
+ - 筠
2658
+ - 淝
2659
+ - 剌
2660
+ - vie@@
2661
+ - 估
2662
+ - first
2663
+ - 渊
2664
+ - 鶗
2665
+ - 缬
2666
+ - 踺
2667
+ - 呦
2668
+ - 宄
2669
+ - 颎
2670
+ - 蔼
2671
+ - 挒
2672
+ - 亹
2673
+ - 墉
2674
+ - 倧
2675
+ - 梪
2676
+ - 猱
2677
+ - 顼
2678
+ - 泫
2679
+ - 鸳
2680
+ - 赠
2681
+ - 聋
2682
+ - 鬲
2683
+ - 隽
2684
+ - 胚
2685
+ - 驱
2686
+ - 丶
2687
+ - 邪
2688
+ - 鲚
2689
+ - 韩
2690
+ - 婆
2691
+ - sed
2692
+ - it
2693
+ - 审
2694
+ - 屠
2695
+ - 众
2696
+ - 翩
2697
+ - 铺
2698
+ - 磨
2699
+ - 醲
2700
+ - 瘼
2701
+ - 佑
2702
+ - 霹
2703
+ - 臀
2704
+ - 坮
2705
+ - 俯
2706
+ - 舸
2707
+ - 辍
2708
+ - 谗
2709
+ - 甥
2710
+ - 祭
2711
+ - tell
2712
+ - 商
2713
+ - ace
2714
+ - 宾
2715
+ - 骡
2716
+ - 浍
2717
+ - 冉
2718
+ - 肾
2719
+ - im@@
2720
+ - win@@
2721
+ - 甬
2722
+ - 蹚
2723
+ - 粕
2724
+ - 脖
2725
+ - 遽
2726
+ - next
2727
+ - expe@@
2728
+ - 榕
2729
+ - 蹂
2730
+ - 邹
2731
+ - stru@@
2732
+ - 沁
2733
+ - 宸
2734
+ - 旮
2735
+ - 锁
2736
+ - 侂
2737
+ - 拢
2738
+ - 辫
2739
+ - 仁
2740
+ - be
2741
+ - 洱
2742
+ - 摘
2743
+ - 律
2744
+ - 预
2745
+ - 徕
2746
+ - 鬣
2747
+ - 挠
2748
+ - 戟
2749
+ - 嘴
2750
+ - 杖
2751
+ - 骍
2752
+ - 劵
2753
+ - 哮
2754
+ - 雁
2755
+ - 擀
2756
+ - 鴐
2757
+ - 衎
2758
+ - 芮
2759
+ - 据
2760
+ - 霭
2761
+ - com@@
2762
+ - 俗
2763
+ - 伝
2764
+ - ory
2765
+ - 轭
2766
+ - 博
2767
+ - 谐
2768
+ - 孺
2769
+ - te@@
2770
+ - 锹
2771
+ - 瞥
2772
+ - 导
2773
+ - 糜
2774
+ - 堙
2775
+ - 乾
2776
+ - 搌
2777
+ - 鏐
2778
+ - 你
2779
+ - con@@
2780
+ - 琍
2781
+ - art
2782
+ - 徇
2783
+ - 塞
2784
+ - 讽
2785
+ - 瞄
2786
+ - rence
2787
+ - 溢
2788
+ - 卉
2789
+ - 逞
2790
+ - 阮
2791
+ - 阊
2792
+ - 婊
2793
+ - mil@@
2794
+ - 专
2795
+ - 姜
2796
+ - 浉
2797
+ - 府
2798
+ - sing@@
2799
+ - 嗵
2800
+ - 哨
2801
+ - 砺
2802
+ - 吋
2803
+ - 闹
2804
+ - 败
2805
+ - 居
2806
+ - 娓
2807
+ - ce
2808
+ - 囟
2809
+ - 楼
2810
+ - 元
2811
+ - 鲥
2812
+ - 嗙
2813
+ - tely
2814
+ - 帷
2815
+ - 還
2816
+ - 懋
2817
+ - 欷
2818
+ - ong
2819
+ - 郝
2820
+ - 丨
2821
+ - breakfast
2822
+ - 崴
2823
+ - 橼
2824
+ - 停
2825
+ - 沾
2826
+ - under@@
2827
+ - tion@@
2828
+ - 非
2829
+ - 堵
2830
+ - 仆
2831
+ - 铗
2832
+ - 难
2833
+ - 蛑
2834
+ - 狙
2835
+ - 找
2836
+ - 熠
2837
+ - over@@
2838
+ - 檀
2839
+ - 鸩
2840
+ - 檐
2841
+ - 彀
2842
+ - 蟋
2843
+ - 腚
2844
+ - 槟
2845
+ - 泄
2846
+ - 舅
2847
+ - 痼
2848
+ - 秤
2849
+ - 氆
2850
+ - 罄
2851
+ - 啼
2852
+ - 啡
2853
+ - 冽
2854
+ - 疎
2855
+ - 嵨
2856
+ - 吿
2857
+ - 航
2858
+ - 采
2859
+ - mb@@
2860
+ - 裟
2861
+ - 檿
2862
+ - 辆
2863
+ - 眍
2864
+ - 溃
2865
+ - can
2866
+ - 唻
2867
+ - 媖
2868
+ - 佺
2869
+ - 狰
2870
+ - 仪
2871
+ - rent
2872
+ - 沓
2873
+ - 话
2874
+ - 霾
2875
+ - 婷
2876
+ - 雨
2877
+ - eigh@@
2878
+ - 白
2879
+ - 瞧
2880
+ - 澎
2881
+ - 洞
2882
+ - 阔
2883
+ - ta@@
2884
+ - 侧
2885
+ - 躇
2886
+ - 莘
2887
+ - 骏
2888
+ - 宰
2889
+ - 縠
2890
+ - birth
2891
+ - 萃
2892
+ - men@@
2893
+ - 秉
2894
+ - 轮
2895
+ - 刹
2896
+ - fl@@
2897
+ - 鸮
2898
+ - 忾
2899
+ - 胖
2900
+ - 攫
2901
+ - 磁
2902
+ - 飧
2903
+ - 鲈
2904
+ - 邙
2905
+ - 阌
2906
+ - 皂
2907
+ - 危
2908
+ - 搹
2909
+ - 靺
2910
+ - 唔
2911
+ - 撴
2912
+ - 柝
2913
+ - 垮
2914
+ - 膈
2915
+ - 辋
2916
+ - 榷
2917
+ - 邘
2918
+ - 锂
2919
+ - 戚
2920
+ - 蔹
2921
+ - 粝
2922
+ - 翊
2923
+ - 攵
2924
+ - 悯
2925
+ - 涝
2926
+ - 媞
2927
+ - 俤
2928
+ - 镲
2929
+ - 梳
2930
+ - 蓥
2931
+ - 艾
2932
+ - guest
2933
+ - 顿
2934
+ - 譬
2935
+ - 兹
2936
+ - 囚
2937
+ - 倌
2938
+ - 遣
2939
+ - 朔
2940
+ - such
2941
+ - 篷
2942
+ - 囷
2943
+ - 宫
2944
+ - 戊
2945
+ - 嵎
2946
+ - 娉
2947
+ - 箅
2948
+ - 檫
2949
+ - 玷
2950
+ - please
2951
+ - 彰
2952
+ - 蜓
2953
+ - 怃
2954
+ - 癯
2955
+ - 怛
2956
+ - 镇
2957
+ - 还
2958
+ - 诿
2959
+ - 庞
2960
+ - 开
2961
+ - 节
2962
+ - 卒
2963
+ - 逵
2964
+ - 颔
2965
+ - 杰
2966
+ - 蘸
2967
+ - 楚
2968
+ - 颍
2969
+ - 吐
2970
+ - 堃
2971
+ - 澜
2972
+ - 弧
2973
+ - 流
2974
+ - 堍
2975
+ - 严
2976
+ - 焱
2977
+ - 'on'
2978
+ - 纬
2979
+ - 巽
2980
+ - 确
2981
+ - 子
2982
+ - 紙
2983
+ - 沭
2984
+ - 戞
2985
+ - 屙
2986
+ - 胭
2987
+ - 劫
2988
+ - 珧
2989
+ - 信
2990
+ - 樵
2991
+ - 讴
2992
+ - 豺
2993
+ - 叽
2994
+ - 钎
2995
+ - 霁
2996
+ - 瀛
2997
+ - 糟
2998
+ - 噌
2999
+ - 豝
3000
+ - 湜
3001
+ - 洎
3002
+ - 菌
3003
+ - 悆
3004
+ - ree
3005
+ - 凯
3006
+ - 徜
3007
+ - 郏
3008
+ - today
3009
+ - 勾
3010
+ - 嬉
3011
+ - 螵
3012
+ - 戕
3013
+ - 璞
3014
+ - 忝
3015
+ - 俞
3016
+ - 言
3017
+ - 庵
3018
+ - 贼
3019
+ - 费
3020
+ - kind
3021
+ - 扁
3022
+ - 骁
3023
+ - 咪
3024
+ - 凿
3025
+ - 讳
3026
+ - 掊
3027
+ - ated
3028
+ - 苄
3029
+ - 鳝
3030
+ - 噍
3031
+ - 茧
3032
+ - govern@@
3033
+ - 筼
3034
+ - 颋
3035
+ - 愛
3036
+ - 渭
3037
+ - 踟
3038
+ - 罪
3039
+ - 汔
3040
+ - 踩
3041
+ - 陽
3042
+ - 疽
3043
+ - 闵
3044
+ - 我
3045
+ - 蒡
3046
+ - 缠
3047
+ - 曺
3048
+ - 婪
3049
+ - 农
3050
+ - 露
3051
+ - 染
3052
+ - sent
3053
+ - 氽
3054
+ - et
3055
+ - 咷
3056
+ - 圧
3057
+ - 咀
3058
+ - site
3059
+ - sti@@
3060
+ - 梗
3061
+ - water
3062
+ - 舔
3063
+ - 嚣
3064
+ - 蜉
3065
+ - 逖
3066
+ - 湄
3067
+ - 栅
3068
+ - 刳
3069
+ - 薢
3070
+ - ally
3071
+ - 诸
3072
+ - 藕
3073
+ - 钔
3074
+ - 伋
3075
+ - 莜
3076
+ - 硬
3077
+ - 窟
3078
+ - sa@@
3079
+ - 愚
3080
+ - 蟪
3081
+ - 秩
3082
+ - 雯
3083
+ - 褚
3084
+ - 鹎
3085
+ - 泃
3086
+ - ner
3087
+ - ast
3088
+ - 菜
3089
+ - 晦
3090
+ - 枨
3091
+ - 偲
3092
+ - 嚩
3093
+ - 遴
3094
+ - su@@
3095
+ - 掸
3096
+ - 千
3097
+ - 馄
3098
+ - 功
3099
+ - 胺
3100
+ - rep@@
3101
+ - 涡
3102
+ - ther
3103
+ - 孩
3104
+ - 液
3105
+ - 狲
3106
+ - 业
3107
+ - 巡
3108
+ - 脍
3109
+ - 甚
3110
+ - 珜
3111
+ - 郜
3112
+ - 蔑
3113
+ - 疔
3114
+ - 庚
3115
+ - 硌
3116
+ - 裉
3117
+ - 骘
3118
+ - sequ@@
3119
+ - 迎
3120
+ - 盖
3121
+ - 噪
3122
+ - 尺
3123
+ - 咒
3124
+ - 蜕
3125
+ - 店
3126
+ - 镐
3127
+ - 蝉
3128
+ - 宝
3129
+ - 卍
3130
+ - 弩
3131
+ - 学
3132
+ - 猁
3133
+ - 犊
3134
+ - 妄
3135
+ - 葭
3136
+ - every@@
3137
+ - 螋
3138
+ - 馃
3139
+ - ating
3140
+ - 壮
3141
+ - 熟
3142
+ - rela@@
3143
+ - 嗬
3144
+ - 约
3145
+ - 锞
3146
+ - 呫
3147
+ - 护
3148
+ - 磒
3149
+ - 疙
3150
+ - 羞
3151
+ - 绦
3152
+ - 铳
3153
+ - 掕
3154
+ - 宗
3155
+ - 荀
3156
+ - 玢
3157
+ - ser@@
3158
+ - 啦
3159
+ - 氪
3160
+ - 盯
3161
+ - 疸
3162
+ - 鬐
3163
+ - 绚
3164
+ - 锡
3165
+ - 鬻
3166
+ - 瓮
3167
+ - 麸
3168
+ - 旱
3169
+ - 娱
3170
+ - 敕
3171
+ - 跄
3172
+ - 烘
3173
+ - 蠕
3174
+ - te
3175
+ - 诽
3176
+ - 重
3177
+ - 翠
3178
+ - 珑
3179
+ - 慰
3180
+ - 鲍
3181
+ - 勣
3182
+ - 袱
3183
+ - 瑙
3184
+ - tly
3185
+ - 庆
3186
+ - government
3187
+ - 荦
3188
+ - 阗
3189
+ - 烫
3190
+ - 倓
3191
+ - 俏
3192
+ - 鸹
3193
+ - 倦
3194
+ - ound
3195
+ - co@@
3196
+ - 竟
3197
+ - 腋
3198
+ - 昙
3199
+ - 濂
3200
+ - 啋
3201
+ - 揶
3202
+ - 泣
3203
+ - 郾
3204
+ - 垍
3205
+ - 轳
3206
+ - 某
3207
+ - 酎
3208
+ - 板
3209
+ - 晤
3210
+ - 廑
3211
+ - 奶
3212
+ - 醴
3213
+ - 镑
3214
+ - 讣
3215
+ - 缤
3216
+ - 龅
3217
+ - 畿
3218
+ - 脁
3219
+ - ma@@
3220
+ - 醢
3221
+ - 嗟
3222
+ - 丗
3223
+ - 殿
3224
+ - 魅
3225
+ - 熨
3226
+ - wr@@
3227
+ - 嚷
3228
+ - 彤
3229
+ - 栎
3230
+ - americ@@
3231
+ - 谡
3232
+ - 泽
3233
+ - 柬
3234
+ - 髎
3235
+ - 盆
3236
+ - 诅
3237
+ - 瘁
3238
+ - 萘
3239
+ - 喁
3240
+ - 媒
3241
+ - 忸
3242
+ - 阍
3243
+ - 曡
3244
+ - 裰
3245
+ - 锦
3246
+ - something
3247
+ - 犋
3248
+ - 爱
3249
+ - 煺
3250
+ - 揉
3251
+ - 苇
3252
+ - 嘈
3253
+ - 胪
3254
+ - 铁
3255
+ - 屁
3256
+ - 颂
3257
+ - 锩
3258
+ - 骅
3259
+ - 渌
3260
+ - 邱
3261
+ - 脬
3262
+ - 滏
3263
+ - 罹
3264
+ - 散
3265
+ - 鼹
3266
+ - 父
3267
+ - 摔
3268
+ - 边
3269
+ - 申
3270
+ - 苛
3271
+ - 敝
3272
+ - 冈
3273
+ - 蕈
3274
+ - 郕
3275
+ - 耨
3276
+ - 闳
3277
+ - 逄
3278
+ - 拔
3279
+ - 将
3280
+ - fe
3281
+ - 鲂
3282
+ - 颙
3283
+ - '0'
3284
+ - room
3285
+ - 胙
3286
+ - 澍
3287
+ - 媚
3288
+ - 廪
3289
+ - 量
3290
+ - 贩
3291
+ - 镕
3292
+ - nine@@
3293
+ - 恚
3294
+ - 鹾
3295
+ - 旃
3296
+ - 铵
3297
+ - 堺
3298
+ - 剑
3299
+ - ket
3300
+ - 支
3301
+ - 墙
3302
+ - 洒
3303
+ - 俳
3304
+ - ors
3305
+ - 诐
3306
+ - 黟
3307
+ - 珩
3308
+ - 跻
3309
+ - 浸
3310
+ - 孟
3311
+ - mp@@
3312
+ - 狷
3313
+ - 踌
3314
+ - 渎
3315
+ - 逝
3316
+ - 颁
3317
+ - 务
3318
+ - 羹
3319
+ - 羖
3320
+ - 阽
3321
+ - 跪
3322
+ - 褒
3323
+ - 乜
3324
+ - 择
3325
+ - 盩
3326
+ - 鸭
3327
+ - 抗
3328
+ - 递
3329
+ - 褪
3330
+ - 怂
3331
+ - cou@@
3332
+ - 蟠
3333
+ - cen@@
3334
+ - 傜
3335
+ - 砍
3336
+ - 鲔
3337
+ - 蹙
3338
+ - restaurant
3339
+ - 杆
3340
+ - 茵
3341
+ - 尊
3342
+ - 耻
3343
+ - 淮
3344
+ - 躜
3345
+ - 蜡
3346
+ - 嘱
3347
+ - 谩
3348
+ - 蝗
3349
+ - 堞
3350
+ - 姨
3351
+ - happ@@
3352
+ - 铿
3353
+ - 楝
3354
+ - park
3355
+ - 力
3356
+ - 殊
3357
+ - 畹
3358
+ - say
3359
+ - 练
3360
+ - 纱
3361
+ - 溪
3362
+ - 虮
3363
+ - 篑
3364
+ - 蜱
3365
+ - 惜
3366
+ - 跌
3367
+ - 啁
3368
+ - 溜
3369
+ - 饼
3370
+ - 裥
3371
+ - 勇
3372
+ - 柱
3373
+ - 惨
3374
+ - 陟
3375
+ - 殪
3376
+ - 安
3377
+ - 徼
3378
+ - 纛
3379
+ - 痍
3380
+ - 谨
3381
+ - 取
3382
+ - 犒
3383
+ - 鄄
3384
+ - 粟
3385
+ - 眨
3386
+ - 坤
3387
+ - 妤
3388
+ - 剟
3389
+ - 雉
3390
+ - 傩
3391
+ - 嫄
3392
+ - 嘧
3393
+ - 咽
3394
+ - 愀
3395
+ - 簸
3396
+ - 赏
3397
+ - 箾
3398
+ - 龈
3399
+ - 放
3400
+ - 菅
3401
+ - 坚
3402
+ - 奠
3403
+ - 黢
3404
+ - 琴
3405
+ - 潞
3406
+ - 朝
3407
+ - tually
3408
+ - 铞
3409
+ - 乇
3410
+ - 醪
3411
+ - 潍
3412
+ - 槊
3413
+ - 纯
3414
+ - 瀹
3415
+ - 诋
3416
+ - 慢
3417
+ - 奸
3418
+ - 嘭
3419
+ - 揠
3420
+ - 昃
3421
+ - 革
3422
+ - 司
3423
+ - ce@@
3424
+ - 趵
3425
+ - 醮
3426
+ - 碘
3427
+ - 器
3428
+ - 澶
3429
+ - 知
3430
+ - '&'
3431
+ - 厢
3432
+ - 啷
3433
+ - 晔
3434
+ - 炜
3435
+ - ook
3436
+ - 斐
3437
+ - 盏
3438
+ - 妻
3439
+ - 娣
3440
+ - 燋
3441
+ - 窈
3442
+ - 法
3443
+ - also
3444
+ - 菸
3445
+ - 炽
3446
+ - 选
3447
+ - 埕
3448
+ - 击
3449
+ - 滤
3450
+ - 铖
3451
+ - 觎
3452
+ - 莩
3453
+ - le@@
3454
+ - 匏
3455
+ - 踅
3456
+ - 酸
3457
+ - 鹑
3458
+ - enjoy
3459
+ - 闰
3460
+ - 毡
3461
+ - 祆
3462
+ - 身
3463
+ - 郊
3464
+ - 笄
3465
+ - 乖
3466
+ - 甩
3467
+ - like
3468
+ - 否
3469
+ - 厖
3470
+ - 爹
3471
+ - 牦
3472
+ - 起
3473
+ - 僔
3474
+ - 钓
3475
+ - 浚
3476
+ - 忙
3477
+ - get
3478
+ - 冯
3479
+ - 樊
3480
+ - 识
3481
+ - 蹉
3482
+ - 鑫
3483
+ - 畚
3484
+ - 滕
3485
+ - 掮
3486
+ - 尾
3487
+ - war@@
3488
+ - 桶
3489
+ - 瓢
3490
+ - 毫
3491
+ - 膊
3492
+ - 髌
3493
+ - 钗
3494
+ - 桼
3495
+ - 碲
3496
+ - 辨
3497
+ - 唉
3498
+ - 竲
3499
+ - 痰
3500
+ - 膻
3501
+ - 锖
3502
+ - 嘡
3503
+ - 雩
3504
+ - 版
3505
+ - 昧
3506
+ - 敬
3507
+ - 蕨
3508
+ - 伴
3509
+ - 徍
3510
+ - 襀
3511
+ - 盘
3512
+ - 憷
3513
+ - 涑
3514
+ - different
3515
+ - after
3516
+ - 虽
3517
+ - 何
3518
+ - 煎
3519
+ - 宽
3520
+ - ori@@
3521
+ - 攀
3522
+ - 冢
3523
+ - 零
3524
+ - 樯
3525
+ - 哌
3526
+ - 瓣
3527
+ - 馍
3528
+ - 唰
3529
+ - 炪
3530
+ - 旰
3531
+ - 厔
3532
+ - 葵
3533
+ - 痞
3534
+ - 己
3535
+ - 靓
3536
+ - 凄
3537
+ - 服
3538
+ - 烤
3539
+ - 仮
3540
+ - 恨
3541
+ - 喳
3542
+ - 贯
3543
+ - 郞
3544
+ - 饪
3545
+ - 铄
3546
+ - 滠
3547
+ - 蠢
3548
+ - 薅
3549
+ - 齑
3550
+ - 褓
3551
+ - 黼
3552
+ - 涿
3553
+ - n't
3554
+ - 磬
3555
+ - 匾
3556
+ - 沂
3557
+ - 镳
3558
+ - nice
3559
+ - 浯
3560
+ - 悝
3561
+ - 淫
3562
+ - 捅
3563
+ - 箨
3564
+ - 瞀
3565
+ - 勠
3566
+ - 屐
3567
+ - 蹁
3568
+ - 蹦
3569
+ - 槿
3570
+ - 类
3571
+ - 栉
3572
+ - 脘
3573
+ - 页
3574
+ - 桕
3575
+ - 脊
3576
+ - 欲
3577
+ - 蝽
3578
+ - 勃
3579
+ - 坷
3580
+ - 酶
3581
+ - 售
3582
+ - 縻
3583
+ - 欺
3584
+ - 膏
3585
+ - 词
3586
+ - 兢
3587
+ - 楸
3588
+ - 娡
3589
+ - 娩
3590
+ - 陡
3591
+ - ple
3592
+ - 尧
3593
+ - 幷
3594
+ - 豉
3595
+ - 桫
3596
+ - 滁
3597
+ - 麋
3598
+ - 罘
3599
+ - 朕
3600
+ - 耗
3601
+ - 汉
3602
+ - 登
3603
+ - 较
3604
+ - 逾
3605
+ - 蔫
3606
+ - 赳
3607
+ - 秭
3608
+ - 咫
3609
+ - 斑
3610
+ - 跚
3611
+ - 舒
3612
+ - 莞
3613
+ - 闾
3614
+ - 氤
3615
+ - 骸
3616
+ - 槩
3617
+ - 瓶
3618
+ - 餐
3619
+ - 瞪
3620
+ - 沉
3621
+ - 朱
3622
+ - had
3623
+ - 鲣
3624
+ - 嵪
3625
+ - nothing
3626
+ - 嫡
3627
+ - 恍
3628
+ - 衢
3629
+ - 轴
3630
+ - 杈
3631
+ - 赂
3632
+ - 津
3633
+ - red
3634
+ - 拤
3635
+ - 狠
3636
+ - 卣
3637
+ - 蚱
3638
+ - 疆
3639
+ - 捞
3640
+ - 婉
3641
+ - 固
3642
+ - 梶
3643
+ - 垸
3644
+ - 逋
3645
+ - 髡
3646
+ - 晓
3647
+ - 骶
3648
+ - 季
3649
+ - 炀
3650
+ - 喷
3651
+ - 垛
3652
+ - 蜂
3653
+ - sts
3654
+ - 阝
3655
+ - 未
3656
+ - 熬
3657
+ - 绲
3658
+ - 坟
3659
+ - 苈
3660
+ - are
3661
+ - 寮
3662
+ - 吧
3663
+ - 皖
3664
+ - 捌
3665
+ - 炤
3666
+ - b
3667
+ - the
3668
+ - 哈
3669
+ - 鞍
3670
+ - ir@@
3671
+ - 掘
3672
+ - tation
3673
+ - 噙
3674
+ - 酊
3675
+ - 忄
3676
+ - 硼
3677
+ - 耕
3678
+ - 偎
3679
+ - 雎
3680
+ - 磴
3681
+ - 锺
3682
+ - over
3683
+ - 侃
3684
+ - 婚
3685
+ - 吗
3686
+ - 竺
3687
+ - man
3688
+ - 也
3689
+ - 苣
3690
+ - 绛
3691
+ - 冤
3692
+ - 呈
3693
+ - 孱
3694
+ - 缭
3695
+ - 埼
3696
+ - 犬
3697
+ - 麦
3698
+ - 蓐
3699
+ - 技
3700
+ - 夜
3701
+ - tri@@
3702
+ - 杭
3703
+ - 佝
3704
+ - 莨
3705
+ - di@@
3706
+ - 毙
3707
+ - 贿
3708
+ - 猎
3709
+ - 桡
3710
+ - so
3711
+ - 氖
3712
+ - 叼
3713
+ - 哚
3714
+ - 濠
3715
+ - 湾
3716
+ - 全
3717
+ - 读
3718
+ - 盐
3719
+ - 钚
3720
+ - 鬘
3721
+ - 万
3722
+ - 鲠
3723
+ - 貂
3724
+ - 鋐
3725
+ - 堼
3726
+ - 茺
3727
+ - 拟
3728
+ - 牡
3729
+ - 蝮
3730
+ - 镢
3731
+ - 嚯
3732
+ - 束
3733
+ - 喱
3734
+ - 彿
3735
+ - col@@
3736
+ - 仃
3737
+ - 涌
3738
+ - 蚯
3739
+ - 妩
3740
+ - 箢
3741
+ - 隹
3742
+ - 亰
3743
+ - 疃
3744
+ - 嬗
3745
+ - 喇
3746
+ - 攒
3747
+ - am
3748
+ - 听
3749
+ - fe@@
3750
+ - zero
3751
+ - 痛
3752
+ - 诗
3753
+ - 干
3754
+ - 疫
3755
+ - 嬴
3756
+ - 降
3757
+ - 签
3758
+ - 丈
3759
+ - sm@@
3760
+ - 髑
3761
+ - 劬
3762
+ - 萏
3763
+ - 诀
3764
+ - 镵
3765
+ - 坭
3766
+ - 咤
3767
+ - 池
3768
+ - 榼
3769
+ - 岕
3770
+ - 崃
3771
+ - ined
3772
+ - chu@@
3773
+ - 糸
3774
+ - 祸
3775
+ - 猜
3776
+ - 婿
3777
+ - 搋
3778
+ - 咛
3779
+ - 箴
3780
+ - 辚
3781
+ - 悄
3782
+ - 荒
3783
+ - 挑
3784
+ - 托
3785
+ - drive
3786
+ - 撇
3787
+ - 莒
3788
+ - 鄜
3789
+ - 冒
3790
+ - 稹
3791
+ - 户
3792
+ - ould
3793
+ - 铤
3794
+ - 翃
3795
+ - try
3796
+ - 圊
3797
+ - 艿
3798
+ - 桐
3799
+ - 兒
3800
+ - 揿
3801
+ - 堋
3802
+ - 档
3803
+ - ink
3804
+ - email
3805
+ - 犍
3806
+ - 铍
3807
+ - 招
3808
+ - 鳇
3809
+ - 敲
3810
+ - 雳
3811
+ - 奌
3812
+ - 裝
3813
+ - 戏
3814
+ - 哗
3815
+ - 栱
3816
+ - 哆
3817
+ - ds
3818
+ - 浙
3819
+ - 岂
3820
+ - 挝
3821
+ - 莲
3822
+ - 腩
3823
+ - 杬
3824
+ - 促
3825
+ - 斥
3826
+ - 蛱
3827
+ - 诓
3828
+ - 炖
3829
+ - 璘
3830
+ - 怵
3831
+ - 礽
3832
+ - 咬
3833
+ - 珐
3834
+ - 韡
3835
+ - 邺
3836
+ - 祀
3837
+ - 皇
3838
+ - 渑
3839
+ - 困
3840
+ - 潜
3841
+ - 添
3842
+ - ter
3843
+ - che@@
3844
+ - 如
3845
+ - 萹
3846
+ - 熙
3847
+ - 扇
3848
+ - 亭
3849
+ - 亍
3850
+ - 瘗
3851
+ - 舍
3852
+ - 皌
3853
+ - 诌
3854
+ - 虢
3855
+ - 欣
3856
+ - 掰
3857
+ - 棘
3858
+ - 岞
3859
+ - 毽
3860
+ - 卵
3861
+ - 罴
3862
+ - 疋
3863
+ - ali@@
3864
+ - 整
3865
+ - i@@
3866
+ - 紫
3867
+ - mu@@
3868
+ - 涘
3869
+ - 携
3870
+ - 奏
3871
+ - cri@@
3872
+ - 馘
3873
+ - 翘
3874
+ - 抚
3875
+ - 筝
3876
+ - 玄
3877
+ - 霎
3878
+ - 铮
3879
+ - 澹
3880
+ - 嫰
3881
+ - 夏
3882
+ - 咿
3883
+ - 围
3884
+ - 従
3885
+ - 猾
3886
+ - pre@@
3887
+ - 逊
3888
+ - 糖
3889
+ - 漫
3890
+ - 聍
3891
+ - 及
3892
+ - 瘵
3893
+ - 绢
3894
+ - 棱
3895
+ - 笈
3896
+ - 铯
3897
+ - 釭
3898
+ - 恼
3899
+ - 癎
3900
+ - 苢
3901
+ - 斁
3902
+ - 醣
3903
+ - 植
3904
+ - 鱼
3905
+ - 涓
3906
+ - z
3907
+ - 目
3908
+ - par@@
3909
+ - 撬
3910
+ - 戎
3911
+ - 偓
3912
+ - 已
3913
+ - 打
3914
+ - busine@@
3915
+ - 桦
3916
+ - 庇
3917
+ - 坪
3918
+ - problem
3919
+ - 舾
3920
+ - centr@@
3921
+ - fifty
3922
+ - 梧
3923
+ - 𫖯
3924
+ - restaurants
3925
+ - beau@@
3926
+ - fac@@
3927
+ - 谈
3928
+ - 腙
3929
+ - 阉
3930
+ - 孛
3931
+ - 秘
3932
+ - 庶
3933
+ - 畴
3934
+ - 例
3935
+ - ang
3936
+ - 幛
3937
+ - 下
3938
+ - 溅
3939
+ - 彗
3940
+ - 魟
3941
+ - 诏
3942
+ - 鸢
3943
+ - 邽
3944
+ - 瘪
3945
+ - ay
3946
+ - 胱
3947
+ - 勒
3948
+ - 槲
3949
+ - 橹
3950
+ - 男
3951
+ - ide@@
3952
+ - 治
3953
+ - 锒
3954
+ - 祯
3955
+ - 慌
3956
+ - 佥
3957
+ - 苔
3958
+ - 暴
3959
+ - 时
3960
+ - 撩
3961
+ - 俶
3962
+ - 屋
3963
+ - 抠
3964
+ - 嫘
3965
+ - 浔
3966
+ - 鲻
3967
+ - 暌
3968
+ - 窿
3969
+ - 炒
3970
+ - 溇
3971
+ - 髯
3972
+ - 簿
3973
+ - 嶖
3974
+ - 峒
3975
+ - si@@
3976
+ - 觥
3977
+ - 午
3978
+ - 联
3979
+ - ty
3980
+ - 猫
3981
+ - 腭
3982
+ - 晻
3983
+ - 袝
3984
+ - 戾
3985
+ - 波
3986
+ - 啐
3987
+ - 戈
3988
+ - 蒎
3989
+ - 麓
3990
+ - 汾
3991
+ - 茉
3992
+ - 埔
3993
+ - 蛳
3994
+ - 徳
3995
+ - 鸶
3996
+ - 艇
3997
+ - 顶
3998
+ - 髻
3999
+ - 徒
4000
+ - 豨
4001
+ - 碳
4002
+ - 欻
4003
+ - 薰
4004
+ - hi
4005
+ - 呲
4006
+ - 舳
4007
+ - 劾
4008
+ - 形
4009
+ - ''''
4010
+ - 渥
4011
+ - 羔
4012
+ - 枇
4013
+ - 模
4014
+ - 弁
4015
+ - 坏
4016
+ - 徊
4017
+ - 馗
4018
+ - 刨
4019
+ - 璀
4020
+ - 锤
4021
+ - 钤
4022
+ - 囔
4023
+ - 拦
4024
+ - 剐
4025
+ - 揸
4026
+ - 滈
4027
+ - 缚
4028
+ - ach@@
4029
+ - 斯
4030
+ - 诒
4031
+ - 寂
4032
+ - 裒
4033
+ - 同
4034
+ - should
4035
+ - 蒴
4036
+ - 窑
4037
+ - 示
4038
+ - 戗
4039
+ - 录
4040
+ - 恶
4041
+ - 培
4042
+ - 迦
4043
+ - 邮
4044
+ - 熜
4045
+ - 泊
4046
+ - 乌
4047
+ - 篌
4048
+ - center
4049
+ - 癸
4050
+ - 昔
4051
+ - 牠
4052
+ - 濛
4053
+ - 噻
4054
+ - 苋
4055
+ - ang@@
4056
+ - give
4057
+ - 姥
4058
+ - 祖
4059
+ - 搬
4060
+ - 悠
4061
+ - 瓒
4062
+ - 嫱
4063
+ - wit@@
4064
+ - 畏
4065
+ - 神
4066
+ - 湟
4067
+ - 扃
4068
+ - 桀
4069
+ - 醭
4070
+ - 谘
4071
+ - 虾
4072
+ - 玳
4073
+ - 斡
4074
+ - 寥
4075
+ - 攻
4076
+ - 忑
4077
+ - man@@
4078
+ - 僻
4079
+ - money
4080
+ - 飊
4081
+ - 国
4082
+ - 吠
4083
+ - 扦
4084
+ - j@@
4085
+ - 幹
4086
+ - 泛
4087
+ - 摈
4088
+ - 匼
4089
+ - 廉
4090
+ - 通
4091
+ - 袍
4092
+ - 楹
4093
+ - 搦
4094
+ - 缮
4095
+ - ft
4096
+ - 岱
4097
+ - scho@@
4098
+ - 丹
4099
+ - 蜗
4100
+ - 蓓
4101
+ - 卟
4102
+ - 倥
4103
+ - 喽
4104
+ - 蛾
4105
+ - 殭
4106
+ - 绣
4107
+ - chan@@
4108
+ - 震
4109
+ - 棍
4110
+ - 潋
4111
+ - 葫
4112
+ - 嚎
4113
+ - ed
4114
+ - 漉
4115
+ - 阻
4116
+ - 俐
4117
+ - 德
4118
+ - 様
4119
+ - 酝
4120
+ - 倒
4121
+ - 橱
4122
+ - send
4123
+ - 谯
4124
+ - 嗐
4125
+ - 署
4126
+ - 贴
4127
+ - 搭
4128
+ - 坦
4129
+ - 蹯
4130
+ - 緛
4131
+ - 队
4132
+ - 死
4133
+ - 閟
4134
+ - 岭
4135
+ - 倪
4136
+ - 诜
4137
+ - 偱
4138
+ - 醐
4139
+ - 痊
4140
+ - 社
4141
+ - 凡
4142
+ - 畯
4143
+ - 摒
4144
+ - 迭
4145
+ - 措
4146
+ - 挌
4147
+ - 媛
4148
+ - same
4149
+ - 蚓
4150
+ - 擤
4151
+ - 澈
4152
+ - 眈
4153
+ - 剪
4154
+ - 嫣
4155
+ - 鹱
4156
+ - 娆
4157
+ - 凸
4158
+ - 厅
4159
+ - 臼
4160
+ - 枭
4161
+ - 炎
4162
+ - 烊
4163
+ - 掀
4164
+ - 洄
4165
+ - 僳
4166
+ - velo@@
4167
+ - 觉
4168
+ - 逼
4169
+ - have
4170
+ - 皎
4171
+ - 酯
4172
+ - 怦
4173
+ - 叶
4174
+ - 统
4175
+ - thir@@
4176
+ - 从
4177
+ - 纡
4178
+ - les
4179
+ - 术
4180
+ - 径
4181
+ - 征
4182
+ - come
4183
+ - 躅
4184
+ - 此
4185
+ - 甜
4186
+ - 践
4187
+ - br@@
4188
+ - 鎸
4189
+ - 讲
4190
+ - 玲
4191
+ - 衣
4192
+ - 麾
4193
+ - 枥
4194
+ - 拈
4195
+ - 腮
4196
+ - reas@@
4197
+ - 芩
4198
+ - 鹖
4199
+ - more
4200
+ - 儆
4201
+ - 愕
4202
+ - 淏
4203
+ - 躄
4204
+ - 玕
4205
+ - 届
4206
+ - 永
4207
+ - 哟
4208
+ - 虓
4209
+ - sit@@
4210
+ - 宴
4211
+ - 夷
4212
+ - 梭
4213
+ - 紧
4214
+ - 瘰
4215
+ - recei@@
4216
+ - 匐
4217
+ - 号
4218
+ - from
4219
+ - 况
4220
+ - 畋
4221
+ - 谜
4222
+ - 莽
4223
+ - 锣
4224
+ - pas@@
4225
+ - 驽
4226
+ - 昱
4227
+ - 喟
4228
+ - v@@
4229
+ - 呀
4230
+ - '''re'
4231
+ - 阒
4232
+ - 踬
4233
+ - 认
4234
+ - 订
4235
+ - 黝
4236
+ - 筻
4237
+ - seven
4238
+ - 们
4239
+ - 舱
4240
+ - 揭
4241
+ - 妾
4242
+ - 礼
4243
+ - 高
4244
+ - 传
4245
+ - 香
4246
+ - 谬
4247
+ - 篆
4248
+ - 逮
4249
+ - 玑
4250
+ - 眄
4251
+ - 驿
4252
+ - all@@
4253
+ - 嗅
4254
+ - 五
4255
+ - 淹
4256
+ - 裨
4257
+ - 咕
4258
+ - 焖
4259
+ - 氚
4260
+ - ari@@
4261
+ - 崤
4262
+ - 接
4263
+ - 沈
4264
+ - 寰
4265
+ - 轻
4266
+ - 旒
4267
+ - 维
4268
+ - test
4269
+ - 麴
4270
+ - 枱
4271
+ - 挚
4272
+ - 句
4273
+ - 驾
4274
+ - 筷
4275
+ - 坂
4276
+ - 须
4277
+ - 鼩
4278
+ - 炳
4279
+ - 推
4280
+ - 姿
4281
+ - 溴
4282
+ - 庠
4283
+ - 箻
4284
+ - 燹
4285
+ - 拂
4286
+ - 呱
4287
+ - 愫
4288
+ - 袤
4289
+ - 睑
4290
+ - 眩
4291
+ - 冷
4292
+ - 葸
4293
+ - but
4294
+ - 睢
4295
+ - 掣
4296
+ - 唠
4297
+ - 陈
4298
+ - 喉
4299
+ - 晬
4300
+ - 溯
4301
+ - 艺
4302
+ - 苦
4303
+ - 腐
4304
+ - 蟹
4305
+ - 燃
4306
+ - 候
4307
+ - 伸
4308
+ - 萝
4309
+ - 汭
4310
+ - 6@@
4311
+ - 僭
4312
+ - 蘖
4313
+ - 瘫
4314
+ - 书
4315
+ - 控
4316
+ - 乪
4317
+ - 溘
4318
+ - 痦
4319
+ - lo@@
4320
+ - 蝣
4321
+ - 啂
4322
+ - 缩
4323
+ - part@@
4324
+ - 只
4325
+ - 施
4326
+ - 鸨
4327
+ - 鎏
4328
+ - 悕
4329
+ - 诵
4330
+ - 孬
4331
+ - 獾
4332
+ - 玩
4333
+ - 汪
4334
+ - ary
4335
+ - 吁
4336
+ - 拄
4337
+ - 诟
4338
+ - 扰
4339
+ - 鼎
4340
+ - 珪
4341
+ - 橇
4342
+ - 隍
4343
+ - close
4344
+ - 姑
4345
+ - ty@@
4346
+ - 迹
4347
+ - 骆
4348
+ - 崐
4349
+ - go@@
4350
+ - 勺
4351
+ - 倜
4352
+ - ble
4353
+ - 盥
4354
+ - 剂
4355
+ - qu@@
4356
+ - 圻
4357
+ - 荧
4358
+ - 荣
4359
+ - 疵
4360
+ - 酪
4361
+ - 稗
4362
+ - 幔
4363
+ - 井
4364
+ - 蛭
4365
+ - 泔
4366
+ - 定
4367
+ - q
4368
+ - 楱
4369
+ - 刈
4370
+ - 使
4371
+ - 潟
4372
+ - 螅
4373
+ - 铒
4374
+ - 巇
4375
+ - 呖
4376
+ - 垂
4377
+ - 啉
4378
+ - 戮
4379
+ - 佉
4380
+ - 寓
4381
+ - 翚
4382
+ - 啪
4383
+ - fa@@
4384
+ - w@@
4385
+ - 绐
4386
+ - 抛
4387
+ - 謷
4388
+ - 忐
4389
+ - 趿
4390
+ - 位
4391
+ - 螨
4392
+ - last
4393
+ - 迫
4394
+ - 爷
4395
+ - 碎
4396
+ - 廊
4397
+ - 啮
4398
+ - 柯
4399
+ - 酰
4400
+ - 烜
4401
+ - 煳
4402
+ - 粲
4403
+ - 求
4404
+ - 楞
4405
+ - 考
4406
+ - 挲
4407
+ - 触
4408
+ - 荽
4409
+ - 荫
4410
+ - 疴
4411
+ - 遨
4412
+ - 仫
4413
+ - 瑭
4414
+ - 扩
4415
+ - 恭
4416
+ - 藦
4417
+ - 羣
4418
+ - 味
4419
+ - 缀
4420
+ - 享
4421
+ - 枣
4422
+ - 宠
4423
+ - 浊
4424
+ - back
4425
+ - 扪
4426
+ - 篥
4427
+ - sou@@
4428
+ - 涉
4429
+ - son
4430
+ - 翔
4431
+ - 讫
4432
+ - 理
4433
+ - 玙
4434
+ - 栩
4435
+ - 闩
4436
+ - 龄
4437
+ - 亢
4438
+ - 桄
4439
+ - sil
4440
+ - 幡
4441
+ - 婀
4442
+ - 脚
4443
+ - 疠
4444
+ - 歔
4445
+ - 兰
4446
+ - 査
4447
+ - 镗
4448
+ - 涎
4449
+ - 霏
4450
+ - 待
4451
+ - 忻
4452
+ - 警
4453
+ - 科
4454
+ - 脐
4455
+ - 琚
4456
+ - 真
4457
+ - own
4458
+ - 醚
4459
+ - 绡
4460
+ - ices
4461
+ - 嶷
4462
+ - 胶
4463
+ - u@@
4464
+ - 峦
4465
+ - 箜
4466
+ - 丰
4467
+ - 痨
4468
+ - 衡
4469
+ - 锋
4470
+ - 宦
4471
+ - 皦
4472
+ - 感
4473
+ - 矮
4474
+ - 爨
4475
+ - 亟
4476
+ - 装
4477
+ - 鹁
4478
+ - 房
4479
+ - 捡
4480
+ - 乐
4481
+ - 胫
4482
+ - 彧
4483
+ - kil@@
4484
+ - 葛
4485
+ - 氏
4486
+ - 捋
4487
+ - 戢
4488
+ - 牢
4489
+ - '5'
4490
+ - dis@@
4491
+ - 园
4492
+ - 孓
4493
+ - 柃
4494
+ - 榄
4495
+ - 喺
4496
+ - 悛
4497
+ - 俢
4498
+ - c
4499
+ - 缢
4500
+ - 富
4501
+ - je@@
4502
+ - 竭
4503
+ - way
4504
+ - 拙
4505
+ - 牧
4506
+ - 阋
4507
+ - 究
4508
+ - 钘
4509
+ - 濮
4510
+ - 皙
4511
+ - 问
4512
+ - 告
4513
+ - 鞅
4514
+ - 燚
4515
+ - 肴
4516
+ - 螭
4517
+ - 篁
4518
+ - 当
4519
+ - 洮
4520
+ - 渠
4521
+ - 码
4522
+ - 辗
4523
+ - 慨
4524
+ - 崇
4525
+ - 诫
4526
+ - 意
4527
+ - 姤
4528
+ - 飓
4529
+ - 噬
4530
+ - 铐
4531
+ - 寡
4532
+ - 咨
4533
+ - 伺
4534
+ - 殓
4535
+ - 容
4536
+ - 蚁
4537
+ - 柏
4538
+ - 枧
4539
+ - 瑗
4540
+ - 挛
4541
+ - 绔
4542
+ - 月
4543
+ - 绾
4544
+ - 隘
4545
+ - 僖
4546
+ - 纇
4547
+ - 握
4548
+ - 耜
4549
+ - 舐
4550
+ - tom@@
4551
+ - 旅
4552
+ - 翮
4553
+ - products
4554
+ - 缑
4555
+ - 肄
4556
+ - 闿
4557
+ - 硫
4558
+ - 砚
4559
+ - 蜚
4560
+ - bu@@
4561
+ - 鍉
4562
+ - 晗
4563
+ - 阃
4564
+ - 衾
4565
+ - 蝴
4566
+ - 丽
4567
+ - 髅
4568
+ - 煜
4569
+ - 习
4570
+ - 窃
4571
+ - 芑
4572
+ - 櫈
4573
+ - ru@@
4574
+ - deta@@
4575
+ - 谌
4576
+ - 俄
4577
+ - 桨
4578
+ - 芦
4579
+ - 泵
4580
+ - 企
4581
+ - 粽
4582
+ - 揣
4583
+ - 领
4584
+ - qui@@
4585
+ - 鄚
4586
+ - 肱
4587
+ - 尼
4588
+ - 滦
4589
+ - 椽
4590
+ - 癜
4591
+ - 甄
4592
+ - local
4593
+ - fol@@
4594
+ - 偿
4595
+ - 丸
4596
+ - 涞
4597
+ - 铜
4598
+ - du@@
4599
+ - 噜
4600
+ - 倬
4601
+ - 珣
4602
+ - 圜
4603
+ - 墅
4604
+ - car@@
4605
+ - 撂
4606
+ - 栀
4607
+ - 评
4608
+ - 螽
4609
+ - 蘑
4610
+ - 扬
4611
+ - 挨
4612
+ - 轵
4613
+ - 殇
4614
+ - 酺
4615
+ - high
4616
+ - ach
4617
+ - 鲛
4618
+ - 啥
4619
+ - think
4620
+ - don't
4621
+ - 表
4622
+ - cho@@
4623
+ - 盈
4624
+ - 啊
4625
+ - 怔
4626
+ - 滉
4627
+ - 艮
4628
+ - 徽
4629
+ - 撸
4630
+ - 淯
4631
+ - 茈
4632
+ - 硚
4633
+ - 桢
4634
+ - 魍
4635
+ - 潸
4636
+ - at@@
4637
+ - 仄
4638
+ - 鹭
4639
+ - 沅
4640
+ - 操
4641
+ - 炭
4642
+ - 砝
4643
+ - 之
4644
+ - 讷
4645
+ - 吔
4646
+ - 疰
4647
+ - 葚
4648
+ - 夭
4649
+ - 跶
4650
+ - 蘼
4651
+ - 鲩
4652
+ - 滴
4653
+ - 菘
4654
+ - 滨
4655
+ - 加
4656
+ - 倾
4657
+ - 体
4658
+ - 茕
4659
+ - 髀
4660
+ - 雅
4661
+ - ile
4662
+ - 欠
4663
+ - 崧
4664
+ - 囤
4665
+ - 僦
4666
+ - 守
4667
+ - 辂
4668
+ - 棂
4669
+ - se@@
4670
+ - 捶
4671
+ - 扛
4672
+ - 铠
4673
+ - 铩
4674
+ - 京
4675
+ - 熘
4676
+ - 洛
4677
+ - 娄
4678
+ - the@@
4679
+ - 痿
4680
+ - 箱
4681
+ - 驮
4682
+ - 礅
4683
+ - 郃
4684
+ - 谣
4685
+ - ack@@
4686
+ - 晴
4687
+ - res
4688
+ - lot
4689
+ - 纲
4690
+ - 诖
4691
+ - ways
4692
+ - 谋
4693
+ - 煌
4694
+ - 绗
4695
+ - 炼
4696
+ - 卤
4697
+ - 屄
4698
+ - 界
4699
+ - 拶
4700
+ - ar
4701
+ - 遠
4702
+ - 周
4703
+ - 驩
4704
+ - 肖
4705
+ - 跖
4706
+ - 莳
4707
+ - 级
4708
+ - 咣
4709
+ - hu@@
4710
+ - 啕
4711
+ - 歀
4712
+ - 忤
4713
+ - 临
4714
+ - many
4715
+ - 募
4716
+ - ned
4717
+ - their
4718
+ - 睿
4719
+ - 冥
4720
+ - 久
4721
+ - 巍
4722
+ - 堇
4723
+ - 洽
4724
+ - 郎
4725
+ - 董
4726
+ - this
4727
+ - 毒
4728
+ - 醉
4729
+ - ton
4730
+ - 诶
4731
+ - 旺
4732
+ - 蛉
4733
+ - 规
4734
+ - 琶
4735
+ - 騑
4736
+ - 捉
4737
+ - imp@@
4738
+ - 尥
4739
+ - 拗
4740
+ - e@@
4741
+ - 歆
4742
+ - 刀
4743
+ - 跆
4744
+ - three
4745
+ - 锢
4746
+ - 侏
4747
+ - 拳
4748
+ - 扤
4749
+ - 饨
4750
+ - 剥
4751
+ - 潡
4752
+ - 俊
4753
+ - 嗤
4754
+ - 穑
4755
+ - 地
4756
+ - 情
4757
+ - 憔
4758
+ - 惹
4759
+ - 奢
4760
+ - inclu@@
4761
+ - mo@@
4762
+ - 铭
4763
+ - 至
4764
+ - 浐
4765
+ - 祎
4766
+ - really
4767
+ - 帆
4768
+ - dri@@
4769
+ - 楮
4770
+ - 邬
4771
+ - 弛
4772
+ - 篮
4773
+ - 兮
4774
+ - up@@
4775
+ - 慧
4776
+ - 腆
4777
+ - 碴
4778
+ - 挂
4779
+ - 计
4780
+ - 豚
4781
+ - 滑
4782
+ - indi@@
4783
+ - into
4784
+ - 褭
4785
+ - 酞
4786
+ - t@@
4787
+ - 符
4788
+ - 彼
4789
+ - 涔
4790
+ - body
4791
+ - ins
4792
+ - 漶
4793
+ - 峪
4794
+ - down
4795
+ - 缓
4796
+ - 剀
4797
+ - 福
4798
+ - 叮
4799
+ - wa@@
4800
+ - 失
4801
+ - 隅
4802
+ - 怄
4803
+ - 扳
4804
+ - great
4805
+ - 泰
4806
+ - 娌
4807
+ - 孙
4808
+ - 彬
4809
+ - 毁
4810
+ - 蛲
4811
+ - 萱
4812
+ - 泻
4813
+ - 舀
4814
+ - dge
4815
+ - 瞅
4816
+ - vo@@
4817
+ - 咆
4818
+ - 祜
4819
+ - 枋
4820
+ - 憩
4821
+ - 文
4822
+ - gro@@
4823
+ - 倮
4824
+ - 鹄
4825
+ - all
4826
+ - 槎
4827
+ - 忆
4828
+ - 絯
4829
+ - 裢
4830
+ - two
4831
+ - 兑
4832
+ - 明
4833
+ - 遥
4834
+ - 窍
4835
+ - 吃
4836
+ - it's
4837
+ - 启
4838
+ - 妽
4839
+ - 郅
4840
+ - ies
4841
+ - centre
4842
+ - 吒
4843
+ - 亿
4844
+ - 雲
4845
+ - ask
4846
+ - 叩
4847
+ - 媜
4848
+ - 蚰
4849
+ - 奄
4850
+ - 垡
4851
+ - 椿
4852
+ - 篡
4853
+ - 聘
4854
+ - 窖
4855
+ - 垩
4856
+ - diffe@@
4857
+ - 购
4858
+ - 褥
4859
+ - 豸
4860
+ - 腠
4861
+ - 咦
4862
+ - 眦
4863
+ - 敏
4864
+ - 鼐
4865
+ - 昉
4866
+ - 顽
4867
+ - 琊
4868
+ - 砌
4869
+ - 僮
4870
+ - 乱
4871
+ - 瞒
4872
+ - 撑
4873
+ - 羲
4874
+ - 纳
4875
+ - 赞
4876
+ - 焐
4877
+ - 橛
4878
+ - 嵩
4879
+ - 陀
4880
+ - 楔
4881
+ - 牛
4882
+ - 鹊
4883
+ - 帽
4884
+ - may
4885
+ - 偬
4886
+ - 丫
4887
+ - 兜
4888
+ - 砰
4889
+ - 濡
4890
+ - 獬
4891
+ - 好
4892
+ - 腿
4893
+ - 靶
4894
+ - 木
4895
+ - 唸
4896
+ - 纹
4897
+ - 裹
4898
+ - cl@@
4899
+ - hund@@
4900
+ - 优
4901
+ - 猲
4902
+ - 焯
4903
+ - 岘
4904
+ - 辱
4905
+ - 丞
4906
+ - 查
4907
+ - 秽
4908
+ - 胀
4909
+ - 鳖
4910
+ - 岈
4911
+ - 喒
4912
+ - 默
4913
+ - 见
4914
+ - forty
4915
+ - 纥
4916
+ - 泚
4917
+ - 驳
4918
+ - 铃
4919
+ - 萋
4920
+ - 筱
4921
+ - 蛏
4922
+ - 琲
4923
+ - 鸵
4924
+ - 这
4925
+ - 链
4926
+ - read@@
4927
+ - 垵
4928
+ - 踦
4929
+ - 奭
4930
+ - 別
4931
+ - 软
4932
+ - 盲
4933
+ - 黛
4934
+ - 纤
4935
+ - chil@@
4936
+ - 扱
4937
+ - 狡
4938
+ - 贽
4939
+ - 贻
4940
+ - 鳏
4941
+ - 篓
4942
+ - der@@
4943
+ - 滢
4944
+ - 嵌
4945
+ - 妺
4946
+ - 臭
4947
+ - 谥
4948
+ - 夯
4949
+ - 韬
4950
+ - 惺
4951
+ - 检
4952
+ - 峨
4953
+ - ms
4954
+ - 胛
4955
+ - 恫
4956
+ - 构
4957
+ - 鹂
4958
+ - 刺
4959
+ - 讦
4960
+ - 唬
4961
+ - 梈
4962
+ - 捯
4963
+ - 由
4964
+ - 志
4965
+ - 达
4966
+ - 梢
4967
+ - 歉
4968
+ - al@@
4969
+ - 淳
4970
+ - 般
4971
+ - 恐
4972
+ - 獗
4973
+ - 央
4974
+ - 喔
4975
+ - 蟀
4976
+ - 伞
4977
+ - sh
4978
+ - '''s'
4979
+ - 姮
4980
+ - 痈
4981
+ - ck
4982
+ - 俾
4983
+ - 髫
4984
+ - 蜒
4985
+ - 愧
4986
+ - 呆
4987
+ - mer
4988
+ - 桤
4989
+ - 鬏
4990
+ - 型
4991
+ - 四
4992
+ - 哖
4993
+ - 龋
4994
+ - 鳔
4995
+ - 骗
4996
+ - 砷
4997
+ - 泷
4998
+ - 猷
4999
+ - 茯
5000
+ - 茁
5001
+ - cha@@
5002
+ - small
5003
+ - 倨
5004
+ - 乎
5005
+ - 奕
5006
+ - 鹅
5007
+ - 痉
5008
+ - 奥
5009
+ - 辙
5010
+ - sting
5011
+ - 冲
5012
+ - 赅
5013
+ - 泅
5014
+ - 羰
5015
+ - 悲
5016
+ - 焘
5017
+ - 瞵
5018
+ - 紊
5019
+ - 卖
5020
+ - take
5021
+ - 鳐
5022
+ - 菊
5023
+ - 姸
5024
+ - 辐
5025
+ - 嘻
5026
+ - fast
5027
+ - 囿
5028
+ - 凫
5029
+ - 纵
5030
+ - 咝
5031
+ - 箧
5032
+ - well
5033
+ - 钬
5034
+ - he@@
5035
+ - 辕
5036
+ - 鹜
5037
+ - unk@@
5038
+ - 诔
5039
+ - 泐
5040
+ - 世
5041
+ - 镖
5042
+ - 骄
5043
+ - ve
5044
+ - 寸
5045
+ - pay
5046
+ - 鴂
5047
+ - 睐
5048
+ - 氲
5049
+ - 牟
5050
+ - 洏
5051
+ - 尔
5052
+ - quo@@
5053
+ - 椭
5054
+ - 芨
5055
+ - 险
5056
+ - 耳
5057
+ - 柁
5058
+ - 牾
5059
+ - 蚂
5060
+ - much
5061
+ - most
5062
+ - now
5063
+ - singapore
5064
+ - 丙
5065
+ - 洋
5066
+ - 燊
5067
+ - 啵
5068
+ - 胬
5069
+ - 媾
5070
+ - 碟
5071
+ - 濆
5072
+ - 陇
5073
+ - 扥
5074
+ - 势
5075
+ - 慷
5076
+ - 笋
5077
+ - 泥
5078
+ - 鄘
5079
+ - hote@@
5080
+ - 罕
5081
+ - 沤
5082
+ - 葡
5083
+ - 蠡
5084
+ - 产
5085
+ - 鲵
5086
+ - 凉
5087
+ - 萆
5088
+ - 籽
5089
+ - 胞
5090
+ - 哦
5091
+ - 侠
5092
+ - 晚
5093
+ - 咵
5094
+ - 杯
5095
+ - 邗
5096
+ - 甑
5097
+ - 胁
5098
+ - 历
5099
+ - 嘏
5100
+ - 喘
5101
+ - is
5102
+ - 霉
5103
+ - 仇
5104
+ - 鳀
5105
+ - 鉴
5106
+ - 猛
5107
+ - 纂
5108
+ - 决
5109
+ - 阏
5110
+ - 饯
5111
+ - 宣
5112
+ - 象
5113
+ - 儿
5114
+ - 猗
5115
+ - 瀑
5116
+ - 荚
5117
+ - 满
5118
+ - 茳
5119
+ - 酷
5120
+ - 鼬
5121
+ - 旁
5122
+ - 屡
5123
+ - 榇
5124
+ - s@@
5125
+ - 呷
5126
+ - 驻
5127
+ - 薮
5128
+ - 鹏
5129
+ - 馋
5130
+ - 鹪
5131
+ - 纠
5132
+ - thank
5133
+ - 轶
5134
+ - 渺
5135
+ - 镁
5136
+ - cost
5137
+ - 汐
5138
+ - 谅
5139
+ - 甫
5140
+ - publi@@
5141
+ - 储
5142
+ - 抹
5143
+ - 杨
5144
+ - 裳
5145
+ - 歙
5146
+ - 鏊
5147
+ - 犼
5148
+ - 蹐
5149
+ - 愦
5150
+ - 断
5151
+ - able
5152
+ - ind
5153
+ - 狂
5154
+ - 雒
5155
+ - 妧
5156
+ - 巴
5157
+ - 嘟
5158
+ - 筵
5159
+ - 喤
5160
+ - 舫
5161
+ - 刃
5162
+ - fi@@
5163
+ - company
5164
+ - 郿
5165
+ - 瞢
5166
+ - 褰
5167
+ - 清
5168
+ - 巿
5169
+ - 苕
5170
+ - 内
5171
+ - 暾
5172
+ - 垠
5173
+ - 戌
5174
+ - 溟
5175
+ - 剋
5176
+ - 葶
5177
+ - 猡
5178
+ - 蔺
5179
+ - 岖
5180
+ - 邕
5181
+ - any
5182
+ - pri@@
5183
+ - 卸
5184
+ - 基
5185
+ - 馒
5186
+ - 出
5187
+ - 柞
5188
+ - 溍
5189
+ - 吨
5190
+ - 蜥
5191
+ - 炟
5192
+ - 徂
5193
+ - inve@@
5194
+ - 桂
5195
+ - frien@@
5196
+ - 铪
5197
+ - 庖
5198
+ - 廋
5199
+ - 誉
5200
+ - 嗡
5201
+ - 忘
5202
+ - i'@@
5203
+ - 螃
5204
+ - 胯
5205
+ - un@@
5206
+ - 铨
5207
+ - 酹
5208
+ - 鷃
5209
+ - wi
5210
+ - 眚
5211
+ - 跤
5212
+ - 汁
5213
+ - 针
5214
+ - 钏
5215
+ - 雀
5216
+ - 限
5217
+ - 面
5218
+ - 蛐
5219
+ - 黃
5220
+ - 脩
5221
+ - 叛
5222
+ - 枷
5223
+ - 故
5224
+ - sk@@
5225
+ - 编
5226
+ - 菥
5227
+ - 勐
5228
+ - 汗
5229
+ - 胃
5230
+ - 洗
5231
+ - 洹
5232
+ - ers
5233
+ - 髦
5234
+ - 宏
5235
+ - 聊
5236
+ - 嵫
5237
+ - 囎
5238
+ - 淠
5239
+ - 垧
5240
+ - 欧
5241
+ - oms
5242
+ - 揵
5243
+ - before
5244
+ - 畈
5245
+ - 饬
5246
+ - 秦
5247
+ - 莓
5248
+ - 努
5249
+ - 炔
5250
+ - 匠
5251
+ - 际
5252
+ - 蕉
5253
+ - 蝇
5254
+ - po@@
5255
+ - 匽
5256
+ - year
5257
+ - 橥
5258
+ - pping
5259
+ - 注
5260
+ - 承
5261
+ - 琨
5262
+ - 又
5263
+ - 玉
5264
+ - 彖
5265
+ - 缸
5266
+ - 怒
5267
+ - 遏
5268
+ - 坍
5269
+ - sta@@
5270
+ - 痹
5271
+ - 埆
5272
+ - 叵
5273
+ - 氟
5274
+ - 脂
5275
+ - 昭
5276
+ - ments
5277
+ - 宕
5278
+ - 盅
5279
+ - 惩
5280
+ - 馁
5281
+ - 绕
5282
+ - 遢
5283
+ - 扫
5284
+ - 蔡
5285
+ - 崾
5286
+ - 阎
5287
+ - 葳
5288
+ - 殂
5289
+ - 潢
5290
+ - 每
5291
+ - ro@@
5292
+ - 靖
5293
+ - 主
5294
+ - tional
5295
+ - 闸
5296
+ - 涖
5297
+ - 第
5298
+ - n
5299
+ - 镅
5300
+ - 蜜
5301
+ - 能
5302
+ - 衄
5303
+ - 猹
5304
+ - 鹰
5305
+ - 俘
5306
+ - 豪
5307
+ - 人
5308
+ - 痱
5309
+ - 蓑
5310
+ - 骒
5311
+ - 所
5312
+ - 绨
5313
+ - 粦
5314
+ - 望
5315
+ - 减
5316
+ - 魔
5317
+ - 释
5318
+ - ars
5319
+ - 逑
5320
+ - clo@@
5321
+ - 帏
5322
+ - 遘
5323
+ - 许
5324
+ - 誓
5325
+ - 牤
5326
+ - 刷
5327
+ - 扒
5328
+ - 峻
5329
+ - 9@@
5330
+ - 昕
5331
+ - 轩
5332
+ - 嬷
5333
+ - them
5334
+ - 窗
5335
+ - 蹄
5336
+ - 骰
5337
+ - 湓
5338
+ - 堨
5339
+ - 巂
5340
+ - 婧
5341
+ - 骖
5342
+ - 螬
5343
+ - 酋
5344
+ - ag@@
5345
+ - 闷
5346
+ - 滞
5347
+ - 郧
5348
+ - 朴
5349
+ - supp@@
5350
+ - 倡
5351
+ - 腴
5352
+ - 褴
5353
+ - 极
5354
+ - 漷
5355
+ - 佾
5356
+ - 煨
5357
+ - 沚
5358
+ - 肓
5359
+ - experi@@
5360
+ - 亮
5361
+ - 堕
5362
+ - 对
5363
+ - 秋
5364
+ - every
5365
+ - 铅
5366
+ - 蛴
5367
+ - 擅
5368
+ - a@@
5369
+ - 鳃
5370
+ - 保
5371
+ - ze
5372
+ - 弓
5373
+ - 趄
5374
+ - 翦
5375
+ - 涛
5376
+ - 盗
5377
+ - 道
5378
+ - 遮
5379
+ - 屿
5380
+ - 绥
5381
+ - cont@@
5382
+ - 部
5383
+ - den
5384
+ - 付
5385
+ - 诮
5386
+ - 粘
5387
+ - 镔
5388
+ - 溏
5389
+ - 啬
5390
+ - 贫
5391
+ - 轼
5392
+ - 猩
5393
+ - 薯
5394
+ - 胳
5395
+ - 抻
5396
+ - than@@
5397
+ - king
5398
+ - 燎
5399
+ - 笫
5400
+ - 鸂
5401
+ - 蓊
5402
+ - 峋
5403
+ - ent
5404
+ - 搡
5405
+ - 磡
5406
+ - 昌
5407
+ - 妈
5408
+ - 玺
5409
+ - 叫
5410
+ - 済
5411
+ - 彩
5412
+ - lim
5413
+ - 孀
5414
+ - 囧
5415
+ - we@@
5416
+ - 绒
5417
+ - 驸
5418
+ - ���
5419
+ - 斛
5420
+ - 资
5421
+ - 碣
5422
+ - 濞
5423
+ - 冿
5424
+ - 吡
5425
+ - 作
5426
+ - because
5427
+ - 晏
5428
+ - 餍
5429
+ - 瞾
5430
+ - 栊
5431
+ - 蹿
5432
+ - 荩
5433
+ - 尖
5434
+ - 依
5435
+ - 氍
5436
+ - 炝
5437
+ - 抡
5438
+ - 中
5439
+ - 潏
5440
+ - 潦
5441
+ - mon@@
5442
+ - 域
5443
+ - 杩
5444
+ - 兼
5445
+ - 捎
5446
+ - 怩
5447
+ - 正
5448
+ - f
5449
+ - near
5450
+ - 刮
5451
+ - 搪
5452
+ - 鸿
5453
+ - 俺
5454
+ - 耪
5455
+ - 牯
5456
+ - 瞎
5457
+ - 鬼
5458
+ - 惠
5459
+ - bro@@
5460
+ - 沛
5461
+ - 浃
5462
+ - pe
5463
+ - 釜
5464
+ - vi@@
5465
+ - jal@@
5466
+ - 拴
5467
+ - 冇
5468
+ - 暎
5469
+ - 魉
5470
+ - 痘
5471
+ - 盔
5472
+ - 枚
5473
+ - 秾
5474
+ - 杲
5475
+ - 郛
5476
+ - 僚
5477
+ - 昞
5478
+ - 足
5479
+ - sen@@
5480
+ - family
5481
+ - 岿
5482
+ - 榖
5483
+ - 蛊
5484
+ - 绯
5485
+ - 村
5486
+ - 鹃
5487
+ - 钼
5488
+ - 拓
5489
+ - dly
5490
+ - 苫
5491
+ - 锄
5492
+ - 跎
5493
+ - 碰
5494
+ - 钝
5495
+ - 淆
5496
+ - 鳟
5497
+ - 浓
5498
+ - 柇
5499
+ - 桷
5500
+ - 愬
5501
+ - 裔
5502
+ - 邃
5503
+ - 恂
5504
+ - 楙
5505
+ - 沨
5506
+ - ban@@
5507
+ - ssi@@
5508
+ - 鳞
5509
+ - 褛
5510
+ - 钌
5511
+ - y
5512
+ - 搀
5513
+ - 骺
5514
+ - 坊
5515
+ - 娘
5516
+ - 鄯
5517
+ - 袈
5518
+ - 匡
5519
+ - 厦
5520
+ - 艘
5521
+ - 障
5522
+ - 舂
5523
+ - 蹼
5524
+ - 材
5525
+ - 胡
5526
+ - 痄
5527
+ - 凖
5528
+ - 憋
5529
+ - ll
5530
+ - 睥
5531
+ - 窦
5532
+ - 砕
5533
+ - 雇
5534
+ - 個
5535
+ - 籀
5536
+ - 饥
5537
+ - 价
5538
+ - 笞
5539
+ - 鞴
5540
+ - 筊
5541
+ - 树
5542
+ - 揖
5543
+ - 派
5544
+ - 垄
5545
+ - 檬
5546
+ - 眠
5547
+ - 偌
5548
+ - 闯
5549
+ - 姘
5550
+ - 少
5551
+ - 破
5552
+ - 怿
5553
+ - 扼
5554
+ - 恽
5555
+ - 岔
5556
+ - 亲
5557
+ - 垕
5558
+ - 踱
5559
+ - 泳
5560
+ - 截
5561
+ - 轫
5562
+ - 烽
5563
+ - 够
5564
+ - 武
5565
+ - 差
5566
+ - 声
5567
+ - 可
5568
+ - 绫
5569
+ - 巅
5570
+ - 邯
5571
+ - 椎
5572
+ - 硭
5573
+ - 畀
5574
+ - 常
5575
+ - 沸
5576
+ - 榧
5577
+ - 忡
5578
+ - 妫
5579
+ - 皮
5580
+ - 讯
5581
+ - 铣
5582
+ - 轾
5583
+ - 衙
5584
+ - 蒙
5585
+ - 蕃
5586
+ - things
5587
+ - 腓
5588
+ - 坐
5589
+ - 鞘
5590
+ - 榻
5591
+ - 霈
5592
+ - 垆
5593
+ - ous
5594
+ - 粳
5595
+ - 枹
5596
+ - 薨
5597
+ - 胆
5598
+ - 龙
5599
+ - 绺
5600
+ - ning
5601
+ - med
5602
+ - 挹
5603
+ - 诨
5604
+ - 译
5605
+ - 但
5606
+ - 半
5607
+ - 辩
5608
+ - 芊
5609
+ - 变
5610
+ - 翻
5611
+ - 尹
5612
+ - 靸
5613
+ - 酬
5614
+ - 咶
5615
+ - 暧
5616
+ - 姝
5617
+ - 貘
5618
+ - 墓
5619
+ - 匙
5620
+ - been
5621
+ - 墀
5622
+ - 芗
5623
+ - sc@@
5624
+ - 妲
5625
+ - 狮
5626
+ - 岫
5627
+ - ants
5628
+ - 谔
5629
+ - 鞭
5630
+ - 婶
5631
+ - one
5632
+ - 踏
5633
+ - 讵
5634
+ - land
5635
+ - 幼
5636
+ - 軎
5637
+ - 晕
5638
+ - wi@@
5639
+ - 瑞
5640
+ - 供
5641
+ - 啯
5642
+ - 朵
5643
+ - 枓
5644
+ - 奘
5645
+ - 咩
5646
+ - 訢
5647
+ - 臆
5648
+ - 硗
5649
+ - 帖
5650
+ - dent
5651
+ - 戽
5652
+ - 瘿
5653
+ - 段
5654
+ - 傅
5655
+ - oun@@
5656
+ - 枞
5657
+ - 属
5658
+ - 野
5659
+ - 芫
5660
+ - 诣
5661
+ - 钐
5662
+ - 堀
5663
+ - uring
5664
+ - 试
5665
+ - 衍
5666
+ - 馏
5667
+ - 龇
5668
+ - 讧
5669
+ - stre@@
5670
+ - 妒
5671
+ - 驴
5672
+ - 著
5673
+ - 槭
5674
+ - 洧
5675
+ - side
5676
+ - 氾
5677
+ - 孵
5678
+ - 狎
5679
+ - 歩
5680
+ - 囯
5681
+ - 愎
5682
+ - 过
5683
+ - pu@@
5684
+ - right
5685
+ - 赋
5686
+ - 阳
5687
+ - mber
5688
+ - 谕
5689
+ - town
5690
+ - 盾
5691
+ - 救
5692
+ - 饱
5693
+ - loc@@
5694
+ - spa
5695
+ - 橡
5696
+ - 剅
5697
+ - 蒲
5698
+ - 姐
5699
+ - 厕
5700
+ - 铚
5701
+ - 套
5702
+ - 弗
5703
+ - 栴
5704
+ - 鹨
5705
+ - 糨
5706
+ - 騕
5707
+ - 雷
5708
+ - 裁
5709
+ - 拌
5710
+ - 鼻
5711
+ - some
5712
+ - 搐
5713
+ - 均
5714
+ - 蓣
5715
+ - ice
5716
+ - 卢
5717
+ - ad@@
5718
+ - 瘌
5719
+ - 湶
5720
+ - 氩
5721
+ - 谰
5722
+ - 缙
5723
+ - ard
5724
+ - 栾
5725
+ - 迨
5726
+ - 浣
5727
+ - 秏
5728
+ - 萨
5729
+ - always
5730
+ - 污
5731
+ - 踔
5732
+ - 杏
5733
+ - ded
5734
+ - 髽
5735
+ - 秀
5736
+ - 湉
5737
+ - 粪
5738
+ - 展
5739
+ - 槻
5740
+ - 垓
5741
+ - 赫
5742
+ - 惮
5743
+ - lar
5744
+ - 薷
5745
+ - 迈
5746
+ - p
5747
+ - 塾
5748
+ - ga@@
5749
+ - ey
5750
+ - ho@@
5751
+ - 恺
5752
+ - 晩
5753
+ - 泸
5754
+ - 茚
5755
+ - 嗰
5756
+ - 绳
5757
+ - lit@@
5758
+ - 渍
5759
+ - 遇
5760
+ - 洑
5761
+ - 晞
5762
+ - 溽
5763
+ - ying
5764
+ - 枸
5765
+ - 无
5766
+ - 逍
5767
+ - 珰
5768
+ - 纣
5769
+ - 罩
5770
+ - ons
5771
+ - 嶃
5772
+ - 瑚
5773
+ - 裙
5774
+ - 搛
5775
+ - '6'
5776
+ - 咾
5777
+ - 唱
5778
+ - 瑠
5779
+ - 睃
5780
+ - 於
5781
+ - din@@
5782
+ - 伟
5783
+ - 骓
5784
+ - 函
5785
+ - 瘤
5786
+ - 僆
5787
+ - 鞣
5788
+ - 兕
5789
+ - 伄
5790
+ - 柚
5791
+ - 席
5792
+ - 峄
5793
+ - 鄱
5794
+ - 抔
5795
+ - an@@
5796
+ - 物
5797
+ - loca@@
5798
+ - 穸
5799
+ - 懊
5800
+ - '2'
5801
+ - amer@@
5802
+ - 稼
5803
+ - 叉
5804
+ - bra@@
5805
+ - 拇
5806
+ - str@@
5807
+ - res@@
5808
+ - 沆
5809
+ - 饰
5810
+ - pen@@
5811
+ - 厘
5812
+ - 傈
5813
+ - ality
5814
+ - 廷
5815
+ - 式
5816
+ - 夔
5817
+ - 督
5818
+ - 雍
5819
+ - 晨
5820
+ - 剿
5821
+ - 赶
5822
+ - 疖
5823
+ - 砜
5824
+ - 归
5825
+ - min@@
5826
+ - 徙
5827
+ - 阚
5828
+ - tions
5829
+ - 女
5830
+ - 营
5831
+ - 邅
5832
+ - 做
5833
+ - 伊
5834
+ - er
5835
+ - 筜
5836
+ - 蛎
5837
+ - business
5838
+ - 顾
5839
+ - 瘸
5840
+ - 洪
5841
+ - 钕
5842
+ - 觯
5843
+ - 政
5844
+ - 劝
5845
+ - 撮
5846
+ - break@@
5847
+ - 氛
5848
+ - 漾
5849
+ - sor@@
5850
+ - 址
5851
+ - 帼
5852
+ - 增
5853
+ - ation
5854
+ - 瞋
5855
+ - 稊
5856
+ - 慊
5857
+ - 肯
5858
+ - 躁
5859
+ - 糗
5860
+ - 美
5861
+ - 豕
5862
+ - us
5863
+ - 炸
5864
+ - 饽
5865
+ - 挎
5866
+ - 挫
5867
+ - 枢
5868
+ - dr@@
5869
+ - 铉
5870
+ - 奖
5871
+ - 槌
5872
+ - 绮
5873
+ - 擂
5874
+ - 虬
5875
+ - 钽
5876
+ - 胍
5877
+ - 凌
5878
+ - 辟
5879
+ - 虹
5880
+ - 铂
5881
+ - 杂
5882
+ - 砗
5883
+ - 赪
5884
+ - 潇
5885
+ - 合
5886
+ - 鰕
5887
+ - 吭
5888
+ - 迷
5889
+ - 滘
5890
+ - 弹
5891
+ - ff
5892
+ - 痤
5893
+ - 蛄
5894
+ - 觱
5895
+ - 杳
5896
+ - 嘬
5897
+ - 偕
5898
+ - 赘
5899
+ - 烩
5900
+ - 孖
5901
+ - 钉
5902
+ - 龉
5903
+ - 钪
5904
+ - 睬
5905
+ - 撵
5906
+ - big
5907
+ - 笠
5908
+ - 俅
5909
+ - 锯
5910
+ - 呛
5911
+ - 欹
5912
+ - cle@@
5913
+ - 珈
5914
+ - 浑
5915
+ - 墕
5916
+ - hel@@
5917
+ - 彪
5918
+ - 姊
5919
+ - 拆
5920
+ - 雄
5921
+ - hi@@
5922
+ - 钴
5923
+ - 壑
5924
+ - 幇
5925
+ - 卧
5926
+ - 痧
5927
+ - 澴
5928
+ - 长
5929
+ - 船
5930
+ - 六
5931
+ - 继
5932
+ - 棷
5933
+ - 尞
5934
+ - 窨
5935
+ - 燥
5936
+ - 膦
5937
+ - 镝
5938
+ - 裸
5939
+ - 办
5940
+ - resta@@
5941
+ - 廆
5942
+ - 宅
5943
+ - 蓉
5944
+ - 娑
5945
+ - 猪
5946
+ - 阁
5947
+ - 蟆
5948
+ - 恢
5949
+ - 讥
5950
+ - 蜾
5951
+ - of@@
5952
+ - 怏
5953
+ - 笕
5954
+ - 瞽
5955
+ - 赤
5956
+ - 岁
5957
+ - 禺
5958
+ - 昀
5959
+ - 她
5960
+ - 钫
5961
+ - 慝
5962
+ - 滩
5963
+ - ack
5964
+ - 跃
5965
+ - 贰
5966
+ - 巳
5967
+ - 寿
5968
+ - 铙
5969
+ - pro@@
5970
+ - 朊
5971
+ - mor@@
5972
+ - 箦
5973
+ - 丧
5974
+ - ready
5975
+ - 止
5976
+ - 跺
5977
+ - 缉
5978
+ - 桅
5979
+ - 论
5980
+ - 摽
5981
+ - 状
5982
+ - 驷
5983
+ - 咂
5984
+ - 铢
5985
+ - 绎
5986
+ - 叨
5987
+ - 遁
5988
+ - 锨
5989
+ - 里
5990
+ - 笊
5991
+ - 缰
5992
+ - 嵊
5993
+ - 膘
5994
+ - 帕
5995
+ - 泱
5996
+ - 鳜
5997
+ - 嫒
5998
+ - 仅
5999
+ - 捕
6000
+ - 徵
6001
+ - each
6002
+ - vil@@
6003
+ - 媪
6004
+ - 袁
6005
+ - 裕
6006
+ - 佻
6007
+ - 赙
6008
+ - 末
6009
+ - 笔
6010
+ - 啲
6011
+ - 轺
6012
+ - 掞
6013
+ - 彭
6014
+ - 氢
6015
+ - got
6016
+ - 缁
6017
+ - 蠊
6018
+ - 攉
6019
+ - 寻
6020
+ - 骋
6021
+ - 噤
6022
+ - ar@@
6023
+ - 棣
6024
+ - 疣
6025
+ - 豳
6026
+ - 祠
6027
+ - 衩
6028
+ - 匀
6029
+ - 王
6030
+ - 觫
6031
+ - 庭
6032
+ - 亶
6033
+ - 篇
6034
+ - 铎
6035
+ - 咖
6036
+ - 禛
6037
+ - 艹
6038
+ - 哐
6039
+ - hope
6040
+ - 系
6041
+ - 娇
6042
+ - 窄
6043
+ - 髓
6044
+ - 阱
6045
+ - 懿
6046
+ - 右
6047
+ - 离
6048
+ - 穴
6049
+ - 渣
6050
+ - 邨
6051
+ - 肸
6052
+ - 杞
6053
+ - 肚
6054
+ - 垗
6055
+ - 幕
6056
+ - ct
6057
+ - 苊
6058
+ - 隼
6059
+ - wh@@
6060
+ - 宋
6061
+ - 煤
6062
+ - 柸
6063
+ - 镋
6064
+ - 耘
6065
+ - kes
6066
+ - 激
6067
+ - 痣
6068
+ - work
6069
+ - 吽
6070
+ - 彟
6071
+ - 株
6072
+ - 筐
6073
+ - 贸
6074
+ - 尕
6075
+ - ere
6076
+ - 潬
6077
+ - 矣
6078
+ - 縢
6079
+ - 瑄
6080
+ - 油
6081
+ - 満
6082
+ - 漆
6083
+ - rooms
6084
+ - 霞
6085
+ - 咏
6086
+ - e
6087
+ - 珮
6088
+ - 仡
6089
+ - 眶
6090
+ - 醛
6091
+ - 票
6092
+ - 鼓
6093
+ - 突
6094
+ - ia
6095
+ - hundred
6096
+ - 瓯
6097
+ - 尬
6098
+ - no@@
6099
+ - 西
6100
+ - 潴
6101
+ - 楪
6102
+ - 傍
6103
+ - 蜘
6104
+ - 'yes'
6105
+ - 蛀
6106
+ - sig@@
6107
+ - gs
6108
+ - 筮
6109
+ - 因
6110
+ - 谳
6111
+ - bur@@
6112
+ - 跹
6113
+ - 鲑
6114
+ - 惑
6115
+ - 肋
6116
+ - dy
6117
+ - 螟
6118
+ - 霓
6119
+ - 眼
6120
+ - 郇
6121
+ - 宙
6122
+ - 畲
6123
+ - 刬
6124
+ - 翟
6125
+ - 诧
6126
+ - 跫
6127
+ - or
6128
+ - 颅
6129
+ - 跷
6130
+ - 淅
6131
+ - 臑
6132
+ - 楦
6133
+ - 屯
6134
+ - 走
6135
+ - 羸
6136
+ - you
6137
+ - 咘
6138
+ - als
6139
+ - 斤
6140
+ - 畔
6141
+ - 晧
6142
+ - 忠
6143
+ - 肥
6144
+ - 实
6145
+ - 凋
6146
+ - 褶
6147
+ - ba@@
6148
+ - 摆
6149
+ - 熊
6150
+ - 篝
6151
+ - 乃
6152
+ - 绑
6153
+ - 沟
6154
+ - 瞿
6155
+ - 哜
6156
+ - 舶
6157
+ - 甘
6158
+ - 事
6159
+ - 瑛
6160
+ - 踧
6161
+ - 黯
6162
+ - 鲞
6163
+ - cal@@
6164
+ - 璩
6165
+ - enty
6166
+ - 剧
6167
+ - 洿
6168
+ - 孳
6169
+ - 祓
6170
+ - 天
6171
+ - 岑
6172
+ - 拾
6173
+ - nineteen
6174
+ - cause
6175
+ - 愇
6176
+ - 翁
6177
+ - 瞟
6178
+ - 昆
6179
+ - 弢
6180
+ - 摛
6181
+ - 义
6182
+ - 咸
6183
+ - 勮
6184
+ - 伪
6185
+ - 瑱
6186
+ - 橄
6187
+ - 丘
6188
+ - 铧
6189
+ - 怖
6190
+ - 终
6191
+ - 膨
6192
+ - 5@@
6193
+ - 扮
6194
+ - to
6195
+ - 猕
6196
+ - 琬
6197
+ - 群
6198
+ - 叁
6199
+ - 狄
6200
+ - 眵
6201
+ - 烹
6202
+ - 蚝
6203
+ - 儒
6204
+ - 援
6205
+ - ber@@
6206
+ - '1'
6207
+ - 掾
6208
+ - 裂
6209
+ - 藓
6210
+ - r@@
6211
+ - squ@@
6212
+ - 鲁
6213
+ - 潺
6214
+ - 晷
6215
+ - 消
6216
+ - 鸸
6217
+ - 觊
6218
+ - 诡
6219
+ - 却
6220
+ - as
6221
+ - 弼
6222
+ - 脰
6223
+ - 铷
6224
+ - 册
6225
+ - 懵
6226
+ - 啜
6227
+ - 涣
6228
+ - 扈
6229
+ - 垚
6230
+ - 森
6231
+ - 赵
6232
+ - 垫
6233
+ - 镪
6234
+ - 怼
6235
+ - 峁
6236
+ - 惚
6237
+ - 缄
6238
+ - ass
6239
+ - 诼
6240
+ - tive
6241
+ - never
6242
+ - 昇
6243
+ - ence
6244
+ - 耍
6245
+ - 异
6246
+ - 朐
6247
+ - 枕
6248
+ - 襻
6249
+ - 契
6250
+ - 祈
6251
+ - 骜
6252
+ - 羯
6253
+ - 豁
6254
+ - 瘕
6255
+ - 贲
6256
+ - 禥
6257
+ - 哔
6258
+ - 祁
6259
+ - 螫
6260
+ - 锆
6261
+ - 孕
6262
+ - st
6263
+ - 忏
6264
+ - 掏
6265
+ - 昵
6266
+ - 哪
6267
+ - 鹞
6268
+ - 疍
6269
+ - 遄
6270
+ - 蠲
6271
+ - 恹
6272
+ - 狩
6273
+ - 憾
6274
+ - 悫
6275
+ - 弦
6276
+ - 脾
6277
+ - soci@@
6278
+ - 爸
6279
+ - home
6280
+ - 奔
6281
+ - 懂
6282
+ - 爿
6283
+ - 帙
6284
+ - 襦
6285
+ - 除
6286
+ - ters
6287
+ - ted
6288
+ - 景
6289
+ - 昚
6290
+ - eas@@
6291
+ - ven@@
6292
+ - 蹩
6293
+ - ac@@
6294
+ - 歇
6295
+ - fas@@
6296
+ - 抄
6297
+ - 牌
6298
+ - 浦
6299
+ - 榭
6300
+ - lan@@
6301
+ - 巺
6302
+ - 刁
6303
+ - secon@@
6304
+ - 顒
6305
+ - 个
6306
+ - 鲒
6307
+ - 嗨
6308
+ - out
6309
+ - 凤
6310
+ - 褫
6311
+ - 瑮
6312
+ - 珏
6313
+ - 惦
6314
+ - 斝
6315
+ - 监
6316
+ - 土
6317
+ - did
6318
+ - date
6319
+ - 陋
6320
+ - 眉
6321
+ - 湴
6322
+ - 谎
6323
+ - 撖
6324
+ - 礞
6325
+ - 抑
6326
+ - 旻
6327
+ - 倩
6328
+ - 蟑
6329
+ - produ@@
6330
+ - 忍
6331
+ - free
6332
+ - 瓜
6333
+ - 康
6334
+ - 晾
6335
+ - 偏
6336
+ - 麇
6337
+ - 缱
6338
+ - 唏
6339
+ - 杪
6340
+ - 戥
6341
+ - 坳
6342
+ - 皲
6343
+ - 拘
6344
+ - 簋
6345
+ - 怆
6346
+ - 负
6347
+ - 陬
6348
+ - 埽
6349
+ - 皞
6350
+ - 素
6351
+ - 锐
6352
+ - 苘
6353
+ - 菀
6354
+ - 嚜
6355
+ - 免
6356
+ - 嫌
6357
+ - 靡
6358
+ - d
6359
+ - 尪
6360
+ - 颧
6361
+ - 苷
6362
+ - de@@
6363
+ - inc@@
6364
+ - 策
6365
+ - 浠
6366
+ - 窾
6367
+ - 么
6368
+ - 壁
6369
+ - pi@@
6370
+ - 荟
6371
+ - 愣
6372
+ - 砫
6373
+ - 巻
6374
+ - ke
6375
+ - 旌
6376
+ - 咉
6377
+ - 矢
6378
+ - 婺
6379
+ - 绝
6380
+ - 线
6381
+ - 奂
6382
+ - 袋
6383
+ - 喻
6384
+ - 贡
6385
+ - 鍒
6386
+ - 逛
6387
+ - days
6388
+ - 疟
6389
+ - 筇
6390
+ - 髃
6391
+ - 锛
6392
+ - 俱
6393
+ - 缅
6394
+ - 锊
6395
+ - 骟
6396
+ - belie@@
6397
+ - 跏
6398
+ - 岜
6399
+ - 睚
6400
+ - 蜊
6401
+ - 铝
6402
+ - 闭
6403
+ - 麈
6404
+ - 趺
6405
+ - 锜
6406
+ - 彻
6407
+ - 缟
6408
+ - 甭
6409
+ - 苞
6410
+ - 钥
6411
+ - ph@@
6412
+ - ef@@
6413
+ - 灼
6414
+ - 銮
6415
+ - 塍
6416
+ - 淙
6417
+ - 鸷
6418
+ - 撼
6419
+ - 浒
6420
+ - though
6421
+ - 或
6422
+ - av@@
6423
+ - 荇
6424
+ - 要
6425
+ - road
6426
+ - wn
6427
+ - 纺
6428
+ - 师
6429
+ - 裇
6430
+ - 颚
6431
+ - end
6432
+ - 汜
6433
+ - 驰
6434
+ - '8'
6435
+ - 椹
6436
+ - 牂
6437
+ - ties
6438
+ - 侪
6439
+ - 樉
6440
+ - 扎
6441
+ - 吞
6442
+ - 蕤
6443
+ - 垦
6444
+ - 茜
6445
+ - 泌
6446
+ - wor@@
6447
+ - 艋
6448
+ - 次
6449
+ - 珙
6450
+ - 建
6451
+ - 切
6452
+ - 盱
6453
+ - 簌
6454
+ - bus
6455
+ - ten@@
6456
+ - check
6457
+ - 硅
6458
+ - 概
6459
+ - 袒
6460
+ - 厚
6461
+ - 馐
6462
+ - 橐
6463
+ - 涵
6464
+ - 抢
6465
+ - 兖
6466
+ - 颠
6467
+ - 扑
6468
+ - 渐
6469
+ - 底
6470
+ - 獒
6471
+ - 瘴
6472
+ - 喝
6473
+ - 期
6474
+ - 踪
6475
+ - 镭
6476
+ - 糕
6477
+ - 翡
6478
+ - 养
6479
+ - 苺
6480
+ - gi@@
6481
+ - 顷
6482
+ - 蚜
6483
+ - 琛
6484
+ - 县
6485
+ - 槽
6486
+ - 滹
6487
+ - 钙
6488
+ - ple@@
6489
+ - 叙
6490
+ - 囵
6491
+ - 煮
6492
+ - 杵
6493
+ - 铛
6494
+ - 丢
6495
+ - 任
6496
+ - 咹
6497
+ - 莎
6498
+ - 请
6499
+ - 喂
6500
+ - 旬
6501
+ - 枫
6502
+ - 颊
6503
+ - 圄
6504
+ - 霍
6505
+ - 耆
6506
+ - 阅
6507
+ - 嵴
6508
+ - 鱿
6509
+ - 倭
6510
+ - me
6511
+ - 咎
6512
+ - sing
6513
+ - 眸
6514
+ - 羽
6515
+ - 二
6516
+ - 橦
6517
+ - 菉
6518
+ - 巩
6519
+ - 柑
6520
+ - 赧
6521
+ - 暮
6522
+ - d@@
6523
+ - 损
6524
+ - world
6525
+ - 隻
6526
+ - 鑹
6527
+ - 捧
6528
+ - 轨
6529
+ - 按
6530
+ - 啄
6531
+ - 聒
6532
+ - 炅
6533
+ - 湣
6534
+ - 詹
6535
+ - 饧
6536
+ - 柒
6537
+ - 恃
6538
+ - 掬
6539
+ - 爽
6540
+ - 料
6541
+ - 窎
6542
+ - 歹
6543
+ - 刿
6544
+ - 完
6545
+ - 餮
6546
+ - 鵀
6547
+ - 是
6548
+ - 榈
6549
+ - 透
6550
+ - 粗
6551
+ - 俛
6552
+ - 音
6553
+ - 份
6554
+ - 置
6555
+ - 砊
6556
+ - 蓬
6557
+ - 蘘
6558
+ - 缛
6559
+ - going
6560
+ - 遯
6561
+ - your
6562
+ - ever@@
6563
+ - 制
6564
+ - 淼
6565
+ - 冏
6566
+ - 妆
6567
+ - 钣
6568
+ - 怡
6569
+ - vern@@
6570
+ - z@@
6571
+ - 弇
6572
+ - 砥
6573
+ - 蜴
6574
+ - 饸
6575
+ - 冮
6576
+ - 衫
6577
+ - 韘
6578
+ - 寖
6579
+ - 虐
6580
+ - 玹
6581
+ - 3@@
6582
+ - tho@@
6583
+ - 闼
6584
+ - 旋
6585
+ - 煿
6586
+ - 嶝
6587
+ - 涟
6588
+ - 龌
6589
+ - ko@@
6590
+ - ge@@
6591
+ - 遛
6592
+ - 郢
6593
+ - 褡
6594
+ - 薪
6595
+ - 邓
6596
+ - 嫁
6597
+ - 叔
6598
+ - 嫤
6599
+ - 漠
6600
+ - gue@@
6601
+ - 藿
6602
+ - 臾
6603
+ - 屣
6604
+ - ily
6605
+ - 早
6606
+ - 痴
6607
+ - 埴
6608
+ - 囊
6609
+ - 俩
6610
+ - ours
6611
+ - 蓦
6612
+ - 渗
6613
+ - 锟
6614
+ - 朦
6615
+ - 附
6616
+ - 赴
6617
+ - make
6618
+ - 灾
6619
+ - 汛
6620
+ - 埸
6621
+ - 吾
6622
+ - 栲
6623
+ - 翰
6624
+ - 磔
6625
+ - 汰
6626
+ - 椋
6627
+ - 锸
6628
+ - 搴
6629
+ - 蒐
6630
+ - 韧
6631
+ - 撒
6632
+ - 纽
6633
+ - 笙
6634
+ - order
6635
+ - 坼
6636
+ - 伷
6637
+ - val@@
6638
+ - 烬
6639
+ - 梡
6640
+ - 瑶
6641
+ - 陷
6642
+ - go
6643
+ - 绤
6644
+ - 琉
6645
+ - 湖
6646
+ - 硷
6647
+ - 熹
6648
+ - 觇
6649
+ - 侥
6650
+ - 往
6651
+ - 牲
6652
+ - 租
6653
+ - 矾
6654
+ - 祉
6655
+ - 跂
6656
+ - age
6657
+ - 刘
6658
+ - 缃
6659
+ - 复
6660
+ - 阂
6661
+ - 刊
6662
+ - am@@
6663
+ - 苻
6664
+ - 步
6665
+ - cess
6666
+ - 蓖
6667
+ - he
6668
+ - 喙
6669
+ - 畜
6670
+ - 鄠
6671
+ - 让
6672
+ - 雱
6673
+ - 噫
6674
+ - sel@@
6675
+ - 钜
6676
+ - 胥
6677
+ - 蹬
6678
+ - help
6679
+ - 捻
6680
+ - 芽
6681
+ - 肷
6682
+ - 掳
6683
+ - 旧
6684
+ - 謦
6685
+ - 甲
6686
+ - ort
6687
+ - 搽
6688
+ - 哧
6689
+ - 骢
6690
+ - 吼
6691
+ - 口
6692
+ - 倚
6693
+ - 肽
6694
+ - 憨
6695
+ - 竦
6696
+ - product
6697
+ - 棚
6698
+ - 黍
6699
+ - 砾
6700
+ - 愈
6701
+ - 昊
6702
+ - 阑
6703
+ - 魂
6704
+ - 持
6705
+ - 献
6706
+ - pa@@
6707
+ - 凳
6708
+ - 厩
6709
+ - 佚
6710
+ - 鲱
6711
+ - 粮
6712
+ - 鹋
6713
+ - 姬
6714
+ - 抉
6715
+ - 籇
6716
+ - part
6717
+ - found
6718
+ - 嗍
6719
+ - 提
6720
+ - 蛇
6721
+ - 籓
6722
+ - 盼
6723
+ - 裱
6724
+ - 暄
6725
+ - 妞
6726
+ - 喑
6727
+ - 惶
6728
+ - wha@@
6729
+ - 窥
6730
+ - ks
6731
+ - 橘
6732
+ - 绞
6733
+ - 菁
6734
+ - 饭
6735
+ - ste@@
6736
+ - 猞
6737
+ - 芘
6738
+ - 搧
6739
+ - tain
6740
+ - street
6741
+ - 呔
6742
+ - 懆
6743
+ - 袼
6744
+ - 肼
6745
+ - on@@
6746
+ - 亨
6747
+ - 谑
6748
+ - 椅
6749
+ - 莹
6750
+ - 校
6751
+ - 躔
6752
+ - 颈
6753
+ - 圬
6754
+ - 匕
6755
+ - mail
6756
+ - 税
6757
+ - 年
6758
+ - 脆
6759
+ - 郦
6760
+ - 拿
6761
+ - fo@@
6762
+ - 鑱
6763
+ - 改
6764
+ - la
6765
+ - 轸
6766
+ - 掩
6767
+ - 芒
6768
+ - can't
6769
+ - 彺
6770
+ - 觑
6771
+ - 邴
6772
+ - 埵
6773
+ - 莴
6774
+ - 伢
6775
+ - 腕
6776
+ - 阴
6777
+ - tre@@
6778
+ - 眇
6779
+ - 责
6780
+ - 青
6781
+ - 钠
6782
+ - point
6783
+ - 僵
6784
+ - 庹
6785
+ - 具
6786
+ - 迠
6787
+ - 穗
6788
+ - 逃
6789
+ - 源
6790
+ - 咻
6791
+ - 今
6792
+ - 绻
6793
+ - 发
6794
+ - 嗝
6795
+ - 逆
6796
+ - 侈
6797
+ - 抓
6798
+ - 羌
6799
+ - 款
6800
+ - 耧
6801
+ - 锰
6802
+ - 罢
6803
+ - 跗
6804
+ - 汞
6805
+ - 赚
6806
+ - 累
6807
+ - 掷
6808
+ - 啫
6809
+ - 膳
6810
+ - 捭
6811
+ - 禀
6812
+ - 崂
6813
+ - 栝
6814
+ - 掴
6815
+ - 讶
6816
+ - y@@
6817
+ - 瑾
6818
+ - 账
6819
+ - 挈
6820
+ - 鹬
6821
+ - 儁
6822
+ - 鳎
6823
+ - 骛
6824
+ - 釉
6825
+ - 矬
6826
+ - 潮
6827
+ - ort@@
6828
+ - 病
6829
+ - 日
6830
+ - o
6831
+ - 憍
6832
+ - 镍
6833
+ - 蜛
6834
+ - 壤
6835
+ - 葑
6836
+ - 聚
6837
+ - 灭
6838
+ - 立
6839
+ - 怙
6840
+ - m@@
6841
+ - 诙
6842
+ - 躲
6843
+ - 泡
6844
+ - would
6845
+ - 缺
6846
+ - 横
6847
+ - 违
6848
+ - 蛛
6849
+ - ls
6850
+ - 鹮
6851
+ - 鲐
6852
+ - 茌
6853
+ - 罚
6854
+ - ques@@
6855
+ - 畦
6856
+ - 厍
6857
+ - 缳
6858
+ - 劭
6859
+ - 拐
6860
+ - 萍
6861
+ - 债
6862
+ - 偈
6863
+ - 镛
6864
+ - 踽
6865
+ - 趋
6866
+ - 扭
6867
+ - 椒
6868
+ - 痔
6869
+ - 史
6870
+ - 称
6871
+ - thing
6872
+ - q@@
6873
+ - fre@@
6874
+ - 剁
6875
+ - beach
6876
+ - 舢
6877
+ - 黠
6878
+ - 执
6879
+ - 饵
6880
+ - 欤
6881
+ - 骥
6882
+ - 蓄
6883
+ - 邈
6884
+ - 疚
6885
+ - '''@@'
6886
+ - 吓
6887
+ - 撄
6888
+ - 苌
6889
+ - 蜢
6890
+ - mar@@
6891
+ - 桓
6892
+ - made
6893
+ - 煦
6894
+ - 襁
6895
+ - 垃
6896
+ - 姓
6897
+ - 送
6898
+ - 柜
6899
+ - 埪
6900
+ - 怠
6901
+ - 蚍
6902
+ - little
6903
+ - 殴
6904
+ - 炕
6905
+ - 蛙
6906
+ - 伱
6907
+ - 禁
6908
+ - 睺
6909
+ - 捍
6910
+ - 颀
6911
+ - 猬
6912
+ - 蟊
6913
+ - 岢
6914
+ - o@@
6915
+ - 纩
6916
+ - 妨
6917
+ - 阡
6918
+ - 率
6919
+ - 蒋
6920
+ - 寐
6921
+ - 孚
6922
+ - 想
6923
+ - 洁
6924
+ - 沮
6925
+ - 铦
6926
+ - 镟
6927
+ - 潲
6928
+ - 杮
6929
+ - tal
6930
+ - 镯
6931
+ - 虞
6932
+ - 鶒
6933
+ - 椐
6934
+ - 簦
6935
+ - 锈
6936
+ - 顗
6937
+ - 仑
6938
+ - 额
6939
+ - 掼
6940
+ - 耿
6941
+ - 荑
6942
+ - 撙
6943
+ - 谍
6944
+ - 沃
6945
+ - 惊
6946
+ - 碉
6947
+ - 皓
6948
+ - 峯
6949
+ - 炮
6950
+ - 厶
6951
+ - 拼
6952
+ - 得
6953
+ - 帅
6954
+ - 蜎
6955
+ - 莠
6956
+ - 近
6957
+ - 诩
6958
+ - 喓
6959
+ - sequence
6960
+ - 愉
6961
+ - ure
6962
+ - 枯
6963
+ - thous@@
6964
+ - 槅
6965
+ - 移
6966
+ - 菡
6967
+ - 菪
6968
+ - ten
6969
+ - 癍
6970
+ - 珀
6971
+ - 湎
6972
+ - 瓿
6973
+ - 名
6974
+ - 妇
6975
+ - 再
6976
+ - 傺
6977
+ - 蚬
6978
+ - 荡
6979
+ - 孽
6980
+ - 匜
6981
+ - 堠
6982
+ - 荜
6983
+ - 绉
6984
+ - 刽
6985
+ - des
6986
+ - 1@@
6987
+ - 留
6988
+ - 裎
6989
+ - 赐
6990
+ - ving
6991
+ - 光
6992
+ - ly
6993
+ - 睟
6994
+ - 遂
6995
+ - 琮
6996
+ - 俟
6997
+ - 岛
6998
+ - 蛹
6999
+ - 蒿
7000
+ - nor@@
7001
+ - 钦
7002
+ - 麻
7003
+ - 纫
7004
+ - coun@@
7005
+ - 杷
7006
+ - 宿
7007
+ - 吣
7008
+ - 蝎
7009
+ - 湃
7010
+ - 惬
7011
+ - enjo@@
7012
+ - 卯
7013
+ - 牸
7014
+ - 诠
7015
+ - 谷
7016
+ - 摞
7017
+ - 螈
7018
+ - 然
7019
+ - 盂
7020
+ - mple
7021
+ - 萁
7022
+ - 灰
7023
+ - 畊
7024
+ - when
7025
+ - 烈
7026
+ - 俸
7027
+ - 衿
7028
+ - 龟
7029
+ - 谭
7030
+ - 唳
7031
+ - 楀
7032
+ - 痪
7033
+ - 曳
7034
+ - 羿
7035
+ - 罂
7036
+ - 脱
7037
+ - 廿
7038
+ - sur@@
7039
+ - 拝
7040
+ - 洵
7041
+ - 湿
7042
+ - 鸽
7043
+ - 冂
7044
+ - 跛
7045
+ - school
7046
+ - 尡
7047
+ - 挡
7048
+ - 疭
7049
+ - 议
7050
+ - self
7051
+ - 拍
7052
+ - 溺
7053
+ - 垅
7054
+ - 瞳
7055
+ - 笑
7056
+ - thousand
7057
+ - 乓
7058
+ - 噼
7059
+ - lie@@
7060
+ - 沿
7061
+ - 俣
7062
+ - 灏
7063
+ - 赈
7064
+ - 砭
7065
+ - 造
7066
+ - 标
7067
+ - loo@@
7068
+ - 罅
7069
+ - 鳣
7070
+ - 翥
7071
+ - 铬
7072
+ - 诞
7073
+ - 酌
7074
+ - 佟
7075
+ - 歘
7076
+ - 瑀
7077
+ - 眬
7078
+ - 璁
7079
+ - 拣
7080
+ - u
7081
+ - 颤
7082
+ - 笏
7083
+ - ur@@
7084
+ - 蝌
7085
+ - 蛟
7086
+ - number
7087
+ - 馕
7088
+ - place
7089
+ - 伐
7090
+ - 热
7091
+ - ver@@
7092
+ - 淜
7093
+ - 嚼
7094
+ - 鼢
7095
+ - 謩
7096
+ - 趟
7097
+ - 恬
7098
+ - 搅
7099
+ - 伫
7100
+ - 杌
7101
+ - 琐
7102
+ - 崽
7103
+ - 苗
7104
+ - 其
7105
+ - 熄
7106
+ - 在
7107
+ - 泾
7108
+ - 毓
7109
+ - very
7110
+ - 琥
7111
+ - 孤
7112
+ - 扞
7113
+ - 恪
7114
+ - t's
7115
+ - 埙
7116
+ - do
7117
+ - 攮
7118
+ - 昴
7119
+ - 靥
7120
+ - feel
7121
+ - 酗
7122
+ - 蕫
7123
+ - der
7124
+ - 焙
7125
+ - gen@@
7126
+ - 辛
7127
+ - 觞
7128
+ - 平
7129
+ - 椤
7130
+ - 耦
7131
+ - 黜
7132
+ - 寇
7133
+ - 醍
7134
+ - 耶
7135
+ - 撰
7136
+ - 蔌
7137
+ - 曜
7138
+ - 谂
7139
+ - 烛
7140
+ - 旦
7141
+ - kno@@
7142
+ - 爪
7143
+ - 絺
7144
+ - 欢
7145
+ - 圈
7146
+ - 臂
7147
+ - ch
7148
+ - 谆
7149
+ - 荏
7150
+ - 巫
7151
+ - 擐
7152
+ - 嵋
7153
+ - 霸
7154
+ - ames
7155
+ - wel@@
7156
+ - 叆
7157
+ - 傧
7158
+ - tra@@
7159
+ - 隳
7160
+ - 唆
7161
+ - 澧
7162
+ - 焦
7163
+ - 窭
7164
+ - 剜
7165
+ - 菇
7166
+ - 锇
7167
+ - 锑
7168
+ - 枳
7169
+ - 娈
7170
+ - 侗
7171
+ - 橙
7172
+ - 愊
7173
+ - 泯
7174
+ - 茼
7175
+ - 荙
7176
+ - 遭
7177
+ - 蟥
7178
+ - 捱
7179
+ - 挤
7180
+ - 蹊
7181
+ - 暹
7182
+ - ity
7183
+ - 珠
7184
+ - 驼
7185
+ - 嗷
7186
+ - 贪
7187
+ - 扔
7188
+ - 硒
7189
+ - 沣
7190
+ - 鸡
7191
+ - 蕖
7192
+ - 仓
7193
+ - looking
7194
+ - 冦
7195
+ - 邳
7196
+ - 赝
7197
+ - 嵛
7198
+ - chi@@
7199
+ - 典
7200
+ - 桧
7201
+ - about
7202
+ - 茏
7203
+ - es@@
7204
+ - 缒
7205
+ - 蕻
7206
+ - 闽
7207
+ - 独
7208
+ - 骨
7209
+ - 尰
7210
+ - 鲼
7211
+ - und@@
7212
+ - 详
7213
+ - 姩
7214
+ - 脉
7215
+ - 腥
7216
+ - 拯
7217
+ - 婕
7218
+ - 杜
7219
+ - 俑
7220
+ - 经
7221
+ - they
7222
+ - 距
7223
+ - 僧
7224
+ - 辅
7225
+ - 骂
7226
+ - 睛
7227
+ - 夤
7228
+ - door
7229
+ - 捊
7230
+ - 靴
7231
+ - 庅
7232
+ - 劓
7233
+ - 舣
7234
+ - 饿
7235
+ - 幻
7236
+ - ry
7237
+ - 悱
7238
+ - 畎
7239
+ - 先
7240
+ - 畠
7241
+ - ye@@
7242
+ - those
7243
+ - 菲
7244
+ - 榔
7245
+ - 邑
7246
+ - city
7247
+ - 泖
7248
+ - 夕
7249
+ - better
7250
+ - 吏
7251
+ - 酡
7252
+ - 蕾
7253
+ - 犯
7254
+ - 磲
7255
+ - 锝
7256
+ - 鹌
7257
+ - 鹫
7258
+ - you@@
7259
+ - 耐
7260
+ - 梯
7261
+ - 鸬
7262
+ - 榛
7263
+ - 笛
7264
+ - 睡
7265
+ - 歪
7266
+ - 遍
7267
+ - 飒
7268
+ - 笃
7269
+ - 蓝
7270
+ - 于
7271
+ - 欸
7272
+ - 为
7273
+ - 琎
7274
+ - 宁
7275
+ - ki@@
7276
+ - tle
7277
+ - 直
7278
+ - 漕
7279
+ - years
7280
+ - 烙
7281
+ - 捏
7282
+ - 馅
7283
+ - re
7284
+ - 诺
7285
+ - tur@@
7286
+ - deci@@
7287
+ - 励
7288
+ - 佘
7289
+ - bl@@
7290
+ - of
7291
+ - 噩
7292
+ - 阪
7293
+ - 梿
7294
+ - 孃
7295
+ - 杻
7296
+ - 覃
7297
+ - 瞆
7298
+ - 瑷
7299
+ - 观
7300
+ - 循
7301
+ - 泪
7302
+ - six@@
7303
+ - 集
7304
+ - cust@@
7305
+ - 瘠
7306
+ - 尽
7307
+ - 鱀
7308
+ - 虎
7309
+ - 来
7310
+ - other
7311
+ - 衮
7312
+ - 芷
7313
+ - 卓
7314
+ - 擒
7315
+ - 锶
7316
+ - 玻
7317
+ - lu@@
7318
+ - 缝
7319
+ - 瀬
7320
+ - 缯
7321
+ - 嫖
7322
+ - 偭
7323
+ - 运
7324
+ - 厣
7325
+ - 顺
7326
+ - 璝
7327
+ - 锬
7328
+ - 悼
7329
+ - 'off'
7330
+ - 苑
7331
+ - 恤
7332
+ - 囡
7333
+ - 锻
7334
+ - 舁
7335
+ - 粼
7336
+ - 丑
7337
+ - 字
7338
+ - 酽
7339
+ - 鲜
7340
+ - 豹
7341
+ - 厝
7342
+ - 琤
7343
+ - 谞
7344
+ - 簖
7345
+ - 癣
7346
+ - 蚌
7347
+ - 退
7348
+ - 戡
7349
+ - 云
7350
+ - 颞
7351
+ - cur@@
7352
+ - 腻
7353
+ - 呗
7354
+ - 沼
7355
+ - 骤
7356
+ - 崭
7357
+ - 扯
7358
+ - 怍
7359
+ - app@@
7360
+ - 存
7361
+ - 害
7362
+ - 色
7363
+ - 踣
7364
+ - 淘
7365
+ - 嗦
7366
+ - 獠
7367
+ - 怗
7368
+ - 砸
7369
+ - 镜
7370
+ - 毹
7371
+ - table
7372
+ - '@'
7373
+ - 鲀
7374
+ - 寤
7375
+ - 桥
7376
+ - 嘞
7377
+ - 髁
7378
+ - 哙
7379
+ - 织
7380
+ - 嗒
7381
+ - 麂
7382
+ - let
7383
+ - 偁
7384
+ - 苎
7385
+ - 燧
7386
+ - rou@@
7387
+ - 哃
7388
+ - 鄂
7389
+ - 翌
7390
+ - 酚
7391
+ - 咄
7392
+ - 嗥
7393
+ - 蒸
7394
+ - 虚
7395
+ - 囗
7396
+ - 条
7397
+ - 鹕
7398
+ - 挖
7399
+ - per@@
7400
+ - 矿
7401
+ - 珦
7402
+ - 囨
7403
+ - 冻
7404
+ - 佰
7405
+ - 洲
7406
+ - 漓
7407
+ - 菹
7408
+ - 镱
7409
+ - 尝
7410
+ - low
7411
+ - 苜
7412
+ - 剞
7413
+ - could
7414
+ - 埒
7415
+ - 铼
7416
+ - 结
7417
+ - 侵
7418
+ - 星
7419
+ - then
7420
+ - 埠
7421
+ - 峤
7422
+ - 晒
7423
+ - 睦
7424
+ - 搓
7425
+ - 時
7426
+ - 铫
7427
+ - 偃
7428
+ - might
7429
+ - 氦
7430
+ - 呻
7431
+ - 淦
7432
+ - ge
7433
+ - 缧
7434
+ - 脑
7435
+ - 膴
7436
+ - 英
7437
+ - pla@@
7438
+ - 案
7439
+ - 生
7440
+ - 顔
7441
+ - 记
7442
+ - 艰
7443
+ - tic@@
7444
+ - 砖
7445
+ - 药
7446
+ - 宪
7447
+ - 涩
7448
+ - 鞠
7449
+ - 潆
7450
+ - 郭
7451
+ - 宵
7452
+ - 砀
7453
+ - 蟛
7454
+ - 岀
7455
+ - 赃
7456
+ - 蛤
7457
+ - 粢
7458
+ - 驶
7459
+ - 膂
7460
+ - 垤
7461
+ - nee@@
7462
+ - 逐
7463
+ - 芳
7464
+ - 螂
7465
+ - 超
7466
+ - change
7467
+ - j
7468
+ - 锔
7469
+ - 箓
7470
+ - 笤
7471
+ - 弱
7472
+ - 畸
7473
+ - 分
7474
+ - 攸
7475
+ - 蛸
7476
+ - 烷
7477
+ - 脒
7478
+ - 昨
7479
+ - 咴
7480
+ - 羚
7481
+ - 芍
7482
+ - 卲
7483
+ - 噔
7484
+ - 飖
7485
+ - 蜍
7486
+ - some@@
7487
+ - 崦
7488
+ - 嬛
7489
+ - 仍
7490
+ - 柳
7491
+ - 鹗
7492
+ - 増
7493
+ - 乙
7494
+ - 嫂
7495
+ - 骚
7496
+ - 巾
7497
+ - 憬
7498
+ - 刭
7499
+ - 顸
7500
+ - 磙
7501
+ - 伃
7502
+ - 孜
7503
+ - 碌
7504
+ - 堐
7505
+ - 祗
7506
+ - 鳉
7507
+ - 汊
7508
+ - ab@@
7509
+ - 袄
7510
+ - 诚
7511
+ - 剡
7512
+ - 锷
7513
+ - 锕
7514
+ - 益
7515
+ - 箕
7516
+ - 瘾
7517
+ - restaur@@
7518
+ - 鹣
7519
+ - 瘩
7520
+ - 矸
7521
+ - his
7522
+ - 灸
7523
+ - 勖
7524
+ - 括
7525
+ - 呢
7526
+ - 漯
7527
+ - 罟
7528
+ - 嚓
7529
+ - 焗
7530
+ - tru@@
7531
+ - 赛
7532
+ - 伶
7533
+ - 垢
7534
+ - 擘
7535
+ - 镠
7536
+ - 惰
7537
+ - 贬
7538
+ - 惙
7539
+ - 捺
7540
+ - sto@@
7541
+ - 犁
7542
+ - were
7543
+ - 艉
7544
+ - 佞
7545
+ - 配
7546
+ - 耙
7547
+ - 猢
7548
+ - 遗
7549
+ - 豊
7550
+ - 急
7551
+ - 蓟
7552
+ - 泓
7553
+ - 屑
7554
+ - 焊
7555
+ - 筲
7556
+ - 缈
7557
+ - 柔
7558
+ - 蜀
7559
+ - 珺
7560
+ - 怕
7561
+ - 淡
7562
+ - .
7563
+ - 靛
7564
+ - 载
7565
+ - 堎
7566
+ - 潥
7567
+ - 懒
7568
+ - 邸
7569
+ - 惇
7570
+ - 粥
7571
+ - 斫
7572
+ - 漼
7573
+ - re's
7574
+ - 簇
7575
+ - 修
7576
+ - 梏
7577
+ - tr@@
7578
+ - 肟
7579
+ - 葙
7580
+ - 鲸
7581
+ - 呐
7582
+ - 游
7583
+ - 廖
7584
+ - 收
7585
+ - 鳅
7586
+ - 覆
7587
+ - 琳
7588
+ - 熵
7589
+ - 翱
7590
+ - 民
7591
+ - 飨
7592
+ - 螳
7593
+ - 媳
7594
+ - 辖
7595
+ - 旯
7596
+ - 榴
7597
+ - 瑰
7598
+ - 嗯
7599
+ - 渤
7600
+ - ic
7601
+ - 熔
7602
+ - 暝
7603
+ - 柘
7604
+ - 鬟
7605
+ - 斋
7606
+ - 夸
7607
+ - 晢
7608
+ - 氰
7609
+ - 炫
7610
+ - dn't
7611
+ - 押
7612
+ - 撺
7613
+ - 烁
7614
+ - 偶
7615
+ - 貅
7616
+ - 冀
7617
+ - 胎
7618
+ - 糊
7619
+ - 润
7620
+ - 咭
7621
+ - 各
7622
+ - 摐
7623
+ - 錞
7624
+ - 垌
7625
+ - 插
7626
+ - 舯
7627
+ - 嶙
7628
+ - 筋
7629
+ - 住
7630
+ - 酆
7631
+ - 镰
7632
+ - 工
7633
+ - 嗲
7634
+ - 铱
7635
+ - 暖
7636
+ - off@@
7637
+ - 茔
7638
+ - 髂
7639
+ - 挺
7640
+ - 瞑
7641
+ - 伤
7642
+ - 忌
7643
+ - 僬
7644
+ - 萜
7645
+ - 普
7646
+ - that@@
7647
+ - 爵
7648
+ - 稍
7649
+ - 瓠
7650
+ - 崛
7651
+ - um
7652
+ - 磐
7653
+ - 投
7654
+ - 畅
7655
+ - 缕
7656
+ - 楯
7657
+ - 悒
7658
+ - 判
7659
+ - 筢
7660
+ - 馇
7661
+ - 芰
7662
+ - 遒
7663
+ - 黩
7664
+ - 迪
7665
+ - 蝾
7666
+ - 腈
7667
+ - 才
7668
+ - 峙
7669
+ - 悟
7670
+ - 禩
7671
+ - 惋
7672
+ - five
7673
+ - 局
7674
+ - 砘
7675
+ - ver
7676
+ - 恋
7677
+ - 斓
7678
+ - 蹀
7679
+ - 犹
7680
+ - 绶
7681
+ - ep
7682
+ - 喛
7683
+ - 亩
7684
+ - 嵘
7685
+ - 汆
7686
+ - 狸
7687
+ - 迸
7688
+ - 盉
7689
+ - line
7690
+ - 妣
7691
+ - 躐
7692
+ - 琢
7693
+ - 赣
7694
+ - le
7695
+ - 疬
7696
+ - 穿
7697
+ - 焓
7698
+ - 跳
7699
+ - 匪
7700
+ - feat@@
7701
+ - 鹦
7702
+ - 璠
7703
+ - 蔸
7704
+ - 百
7705
+ - 愁
7706
+ - 芋
7707
+ - 吙
7708
+ - 谚
7709
+ - 熳
7710
+ - 哩
7711
+ - ad
7712
+ - 轧
7713
+ - 祇
7714
+ - 泬
7715
+ - 瘳
7716
+ - 列
7717
+ - 簃
7718
+ - 谦
7719
+ - lea@@
7720
+ - 垴
7721
+ - 啤
7722
+ - 滇
7723
+ - 饮
7724
+ - 瞰
7725
+ - 獭
7726
+ - 倏
7727
+ - 肿
7728
+ - 宜
7729
+ - 涮
7730
+ - 礓
7731
+ - 数
7732
+ - 屌
7733
+ - 濒
7734
+ - 蟜
7735
+ - 上
7736
+ - 詝
7737
+ - 褐
7738
+ - 眭
7739
+ - 菟
7740
+ - 瘅
7741
+ - 蝙
7742
+ - 眜
7743
+ - 羡
7744
+ - 硖
7745
+ - 背
7746
+ - 芣
7747
+ - 歃
7748
+ - 红
7749
+ - 血
7750
+ - 混
7751
+ - 橞
7752
+ - 樽
7753
+ - 纶
7754
+ - 圭
7755
+ - stay
7756
+ - 冗
7757
+ - 竑
7758
+ - 玥
7759
+ - 它
7760
+ - 怎
7761
+ - 薜
7762
+ - 殆
7763
+ - 看
7764
+ - 剖
7765
+ - 棠
7766
+ - 瘙
7767
+ - be@@
7768
+ - 裤
7769
+ - 篙
7770
+ - 带
7771
+ - 助
7772
+ - 骀
7773
+ - 锍
7774
+ - 廓
7775
+ - 库
7776
+ - 绅
7777
+ - 劂
7778
+ - 蝻
7779
+ - 锘
7780
+ - 濩
7781
+ - 等
7782
+ - 魑
7783
+ - 酿
7784
+ - 阆
7785
+ - 弑
7786
+ - 悖
7787
+ - 姹
7788
+ - 傀
7789
+ - which
7790
+ - 股
7791
+ - 湲
7792
+ - 贝
7793
+ - 相
7794
+ - 茑
7795
+ - 荔
7796
+ - 钲
7797
+ - 致
7798
+ - 沦
7799
+ - 另
7800
+ - 桑
7801
+ - 佳
7802
+ - 班
7803
+ - 昼
7804
+ - 埂
7805
+ - 剕
7806
+ - 箐
7807
+ - 岵
7808
+ - 涨
7809
+ - 柩
7810
+ - 两
7811
+ - 勰
7812
+ - 氮
7813
+ - 稽
7814
+ - 匝
7815
+ - ting
7816
+ - 瘀
7817
+ - 缔
7818
+ - 鹉
7819
+ - 雕
7820
+ - 蛮
7821
+ - 镞
7822
+ - 魈
7823
+ - 謇
7824
+ - me@@
7825
+ - set
7826
+ - 豇
7827
+ - h
7828
+ - 秫
7829
+ - 荬
7830
+ - 赢
7831
+ - 沩
7832
+ - 向
7833
+ - 石
7834
+ - 踖
7835
+ - 迥
7836
+ - 受
7837
+ - 抅
7838
+ - 镘
7839
+ - 嚭
7840
+ - 双
7841
+ - 锚
7842
+ - ex@@
7843
+ - 辉
7844
+ - 谠
7845
+ - 綉
7846
+ - ws
7847
+ - 吟
7848
+ - 湔
7849
+ - ll@@
7850
+ - 市
7851
+ - 娥
7852
+ - 堢
7853
+ - 跽
7854
+ - 处
7855
+ - 厂
7856
+ - 朓
7857
+ - 笸
7858
+ - 悭
7859
+ - 孥
7860
+ - 嘀
7861
+ - 恻
7862
+ - 皱
7863
+ - 塄
7864
+ - who@@
7865
+ - 妙
7866
+ - 栽
7867
+ - 瓷
7868
+ - 稔
7869
+ - 碧
7870
+ - 哽
7871
+ - pol@@
7872
+ - 徨
7873
+ - s
7874
+ - 邋
7875
+ - 息
7876
+ - 樨
7877
+ - 鼾
7878
+ - 拱
7879
+ - 谟
7880
+ - 墡
7881
+ - 匆
7882
+ - speci@@
7883
+ - ha@@
7884
+ - 庐
7885
+ - 鹿
7886
+ - ak@@
7887
+ - 镣
7888
+ - m
7889
+ - 唯
7890
+ - 州
7891
+ - 筒
7892
+ - 性
7893
+ - 髋
7894
+ - 哄
7895
+ - 镡
7896
+ - 贇
7897
+ - and
7898
+ - 菩
7899
+ - 姻
7900
+ - 聪
7901
+ - tion
7902
+ - 催
7903
+ - 醌
7904
+ - 唢
7905
+ - 雾
7906
+ - 堂
7907
+ - 芝
7908
+ - 擢
7909
+ - 匈
7910
+ - 悸
7911
+ - 钢
7912
+ - gy
7913
+ - 徉
7914
+ - 渡
7915
+ - 誊
7916
+ - ti@@
7917
+ - 军
7918
+ - 铸
7919
+ - 和
7920
+ - 沄
7921
+ - 兽
7922
+ - 短
7923
+ - 育
7924
+ - 韪
7925
+ - 邀
7926
+ - 谴
7927
+ - 耋
7928
+ - 浩
7929
+ - public
7930
+ - 胝
7931
+ - 猴
7932
+ - six
7933
+ - 黧
7934
+ - being
7935
+ - 弊
7936
+ - 捂
7937
+ - ical
7938
+ - 癖
7939
+ - 堆
7940
+ - 伧
7941
+ - 割
7942
+ - 引
7943
+ - la@@
7944
+ - 鼙
7945
+ - 逻
7946
+ - 堪
7947
+ - cap@@
7948
+ - 首
7949
+ - 谝
7950
+ - 瘦
7951
+ - 硐
7952
+ - 郑
7953
+ - 凑
7954
+ - fu@@
7955
+ - b@@
7956
+ - 睨
7957
+ - 骠
7958
+ - 佼
7959
+ - 篦
7960
+ - 贵
7961
+ - 铌
7962
+ - act
7963
+ - 呑
7964
+ - 竖
7965
+ - 莅
7966
+ - 陕
7967
+ - 飙
7968
+ - 黏
7969
+ - 镆
7970
+ - 屦
7971
+ - 仨
7972
+ - 敫
7973
+ - 马
7974
+ - 埜
7975
+ - 垇
7976
+ - 阇
7977
+ - 耒
7978
+ - 笩
7979
+ - 蓂
7980
+ - 妃
7981
+ - 讨
7982
+ - see@@
7983
+ - 吊
7984
+ - 踊
7985
+ - 弥
7986
+ - 梅
7987
+ - 坑
7988
+ - 渫
7989
+ - au@@
7990
+ - 赡
7991
+ - 坛
7992
+ - 苹
7993
+ - don@@
7994
+ - 察
7995
+ - 俚
7996
+ - fir@@
7997
+ - 濑
7998
+ - 块
7999
+ - 浏
8000
+ - 唵
8001
+ - 婴
8002
+ - 恙
8003
+ - 隈
8004
+ - 麽
8005
+ - ca@@
8006
+ - 莼
8007
+ - 御
8008
+ - 鞋
8009
+ - 禧
8010
+ - 衰
8011
+ - 潩
8012
+ - 茬
8013
+ - ven
8014
+ - 瞌
8015
+ - 鸥
8016
+ - 凭
8017
+ - 咯
8018
+ - 饺
8019
+ - 耄
8020
+ - uni@@
8021
+ - 瑟
8022
+ - 煟
8023
+ - 舟
8024
+ - 尅
8025
+ - 帚
8026
+ - 鼋
8027
+ - 嫔
8028
+ - 婄
8029
+ - 赟
8030
+ - 棼
8031
+ - 沪
8032
+ - 秃
8033
+ - 粧
8034
+ - roo@@
8035
+ - 蚳
8036
+ - 亏
8037
+ - 备
8038
+ - 压
8039
+ - 悍
8040
+ - 嚅
8041
+ - fin@@
8042
+ - 交
8043
+ - 癔
8044
+ - 跞
8045
+ - 莪
8046
+ - 闻
8047
+ - 罾
8048
+ - 炁
8049
+ - 钻
8050
+ - 鹆
8051
+ - 友
8052
+ - 傣
8053
+ - 糁
8054
+ - service
8055
+ - 邾
8056
+ - 窝
8057
+ - 扉
8058
+ - 鲡
8059
+ - 盛
8060
+ - 玖
8061
+ - 卫
8062
+ - ne@@
8063
+ - 眛
8064
+ - 鸟
8065
+ - 党
8066
+ - 杼
8067
+ - 碓
8068
+ - 篚
8069
+ - 裆
8070
+ - 钟
8071
+ - 大
8072
+ - 介
8073
+ - 揩
8074
+ - 砻
8075
+ - 卅
8076
+ - 弟
8077
+ - 颛
8078
+ - 嫪
8079
+ - 代
8080
+ - 会
8081
+ - 悻
8082
+ - 者
8083
+ - 箍
8084
+ - 番
8085
+ - 疯
8086
+ - sp@@
8087
+ - 聃
8088
+ - 瀚
8089
+ - 挥
8090
+ - 拷
8091
+ - 氡
8092
+ - 璎
8093
+ - 肪
8094
+ - tan
8095
+ - ul@@
8096
+ - 蠃
8097
+ - 龊
8098
+ - 家
8099
+ - 挽
8100
+ - must
8101
+ - 蹭
8102
+ - 樟
8103
+ - 令
8104
+ - 饶
8105
+ - buy
8106
+ - 忖
8107
+ - 娠
8108
+ - 手
8109
+ - house
8110
+ - 贷
8111
+ - 嘚
8112
+ - 莺
8113
+ - 茛
8114
+ - 宥
8115
+ - 刼
8116
+ - 傥
8117
+ - rest
8118
+ - 厄
8119
+ - 洙
8120
+ - 牝
8121
+ - 林
8122
+ - 铆
8123
+ - 觳
8124
+ - 嬢
8125
+ - 芥
8126
+ - 充
8127
+ - 絮
8128
+ - 陲
8129
+ - zer@@
8130
+ - 藤
8131
+ - air@@
8132
+ - 贤
8133
+ - 趾
8134
+ - 孝
8135
+ - 袖
8136
+ - 氇
8137
+ - 章
8138
+ - 柷
8139
+ - 恓
8140
+ - 麹
8141
+ - 胧
8142
+ - came
8143
+ - 休
8144
+ - 舲
8145
+ - 籼
8146
+ - 惕
8147
+ - 泼
8148
+ - 馨
8149
+ - 町
8150
+ - wer
8151
+ - 鹧
8152
+ - 咚
8153
+ - 崔
8154
+ - 嵂
8155
+ - 蝈
8156
+ - ils
8157
+ - 湛
8158
+ - 报
8159
+ - 蜷
8160
+ - 削
8161
+ - 根
8162
+ - 恣
8163
+ - 呙
8164
+ - 郫
8165
+ - 把
8166
+ - 窕
8167
+ - 癌
8168
+ - xt
8169
+ - 榘
8170
+ - 傫
8171
+ - 用
8172
+ - 撕
8173
+ - 蚩
8174
+ - 菰
8175
+ - 崖
8176
+ - 酐
8177
+ - 襄
8178
+ - cu@@
8179
+ - 呤
8180
+ - 帯
8181
+ - 炊
8182
+ - 揲
8183
+ - 啸
8184
+ - 鲶
8185
+ - ve@@
8186
+ - 艟
8187
+ - 嗜
8188
+ - ili@@
8189
+ - 凹
8190
+ - 球
8191
+ - 鬓
8192
+ - 荼
8193
+ - 给
8194
+ - 亘
8195
+ - 醯
8196
+ - 燔
8197
+ - 鳕
8198
+ - 侄
8199
+ - 簪
8200
+ - 洳
8201
+ - 嘛
8202
+ - 稠
8203
+ - '''t'
8204
+ - 氘
8205
+ - 暍
8206
+ - 指
8207
+ - 泆
8208
+ - 总
8209
+ - offer
8210
+ - 糅
8211
+ - 膀
8212
+ - 毋
8213
+ - 蹲
8214
+ - 煅
8215
+ - 桔
8216
+ - 什
8217
+ - 浜
8218
+ - 八
8219
+ - 涧
8220
+ - 跬
8221
+ - 祷
8222
+ - 湫
8223
+ - 脸
8224
+ - 描
8225
+ - pr@@
8226
+ - 狱
8227
+ - 赉
8228
+ - 砼
8229
+ - 袜
8230
+ - 馑
8231
+ - 枪
8232
+ - 碁
8233
+ - 娜
8234
+ - 辇
8235
+ - 颐
8236
+ - 捩
8237
+ - 峥
8238
+ - 聆
8239
+ - 善
8240
+ - 询
8241
+ - 疝
8242
+ - 坜
8243
+ - 碚
8244
+ - 缥
8245
+ - 鼯
8246
+ - 钮
8247
+ - 腘
8248
+ - 溥
8249
+ - 脔
8250
+ - 殁
8251
+ - 肮
8252
+ - 泮
8253
+ - 捐
8254
+ - 槛
8255
+ - 吆
8256
+ - 河
8257
+ - 溆
8258
+ - 度
8259
+ - 殒
8260
+ - 骕
8261
+ - 饹
8262
+ - cour@@
8263
+ - 臜
8264
+ - 空
8265
+ - 2@@
8266
+ - 允
8267
+ - 枉
8268
+ - 蒯
8269
+ - or@@
8270
+ - 趔
8271
+ - 菠
8272
+ - 栌
8273
+ - view
8274
+ - possi@@
8275
+ - 仗
8276
+ - 鳄
8277
+ - 摊
8278
+ - 寝
8279
+ - 躯
8280
+ - 湝
8281
+ - 后
8282
+ - 删
8283
+ - 揪
8284
+ - 徐
8285
+ - 寒
8286
+ - 坨
8287
+ - 挣
8288
+ - 举
8289
+ - 氅
8290
+ - 臻
8291
+ - 饔
8292
+ - 丁
8293
+ - 彦
8294
+ - 泉
8295
+ - 曷
8296
+ - 衅
8297
+ - ei@@
8298
+ - 呸
8299
+ - 狍
8300
+ - 甓
8301
+ - 禽
8302
+ - 薄
8303
+ - shipping
8304
+ - ght
8305
+ - 慵
8306
+ - 幽
8307
+ - 匣
8308
+ - 炬
8309
+ - 访
8310
+ - four
8311
+ - 秒
8312
+ - 樗
8313
+ - 陶
8314
+ - 脓
8315
+ - 枰
8316
+ - 磷
8317
+ - 哕
8318
+ - 君
8319
+ - 脲
8320
+ - 灯
8321
+ - 回
8322
+ - 索
8323
+ - 璺
8324
+ - 邡
8325
+ - 愍
8326
+ - 薏
8327
+ - 辄
8328
+ - 珽
8329
+ - 離
8330
+ - 鬃
8331
+ - 赊
8332
+ - 枲
8333
+ - 邰
8334
+ - 佷
8335
+ - 颏
8336
+ - 寺
8337
+ - 抵
8338
+ - 鲅
8339
+ - 刎
8340
+ - 給
8341
+ - 戴
8342
+ - 溲
8343
+ - 袢
8344
+ - less
8345
+ - 逯
8346
+ - 封
8347
+ - food
8348
+ - 匮
8349
+ - 关
8350
+ - 尘
8351
+ - 皤
8352
+ - 鳍
8353
+ - 搏
8354
+ - 幌
8355
+ - 连
8356
+ - 杠
8357
+ - 蹋
8358
+ - 彷
8359
+ - 虺
8360
+ - 怀
8361
+ - 雏
8362
+ - 钿
8363
+ - 澄
8364
+ - 扶
8365
+ - 错
8366
+ - 樋
8367
+ - 黉
8368
+ - 胄
8369
+ - 薇
8370
+ - 阿
8371
+ - 墁
8372
+ - 觜
8373
+ - 利
8374
+ - 汵
8375
+ - 羟
8376
+ - 杀
8377
+ - 淋
8378
+ - 蓁
8379
+ - 腧
8380
+ - 哞
8381
+ - was
8382
+ - 钊
8383
+ - 胸
8384
+ - 艽
8385
+ - 撞
8386
+ - 虑
8387
+ - 煋
8388
+ - 飗
8389
+ - throu@@
8390
+ - 门
8391
+ - 玦
8392
+ - 琪
8393
+ - 煸
8394
+ - 酵
8395
+ - 婌
8396
+ - serv@@
8397
+ - 硿
8398
+ - 净
8399
+ - 夐
8400
+ - 撅
8401
+ - 頠
8402
+ - want
8403
+ - 犄
8404
+ - 厉
8405
+ - p@@
8406
+ - en
8407
+ - 斗
8408
+ - 层
8409
+ - 玫
8410
+ - life
8411
+ - 潘
8412
+ - 骐
8413
+ - 臃
8414
+ - 谮
8415
+ - 殃
8416
+ - 厌
8417
+ - 摄
8418
+ - 磾
8419
+ - v
8420
+ - dress
8421
+ - 络
8422
+ - 囱
8423
+ - 眯
8424
+ - 忽
8425
+ - 壸
8426
+ - 咐
8427
+ - 搁
8428
+ - 肤
8429
+ - 魇
8430
+ - 芬
8431
+ - 窡
8432
+ - 拉
8433
+ - 纮
8434
+ - 楣
8435
+ - 蔬
8436
+ - 寄
8437
+ - 妯
8438
+ - 教
8439
+ - 俪
8440
+ - 颡
8441
+ - 碛
8442
+ - 互
8443
+ - 奈
8444
+ - 憎
8445
+ - 炉
8446
+ - 蹰
8447
+ - 聂
8448
+ - 员
8449
+ - 呶
8450
+ - 瞬
8451
+ - il@@
8452
+ - 恿
8453
+ - 阙
8454
+ - 卡
8455
+ - mi@@
8456
+ - 禾
8457
+ - 椴
8458
+ - yo@@
8459
+ - 帀
8460
+ - 醵
8461
+ - 帝
8462
+ - 隔
8463
+ - 忒
8464
+ - 哑
8465
+ - 効
8466
+ - 楗
8467
+ - 鼱
8468
+ - 塽
8469
+ - 苴
8470
+ - 蜞
8471
+ - 健
8472
+ - 醅
8473
+ - ju@@
8474
+ - 新
8475
+ - 程
8476
+ - 茗
8477
+ - 琰
8478
+ - 几
8479
+ - 揍
8480
+ - 匍
8481
+ - 砣
8482
+ - 禳
8483
+ - 罗
8484
+ - 勿
8485
+ - 擗
8486
+ - 畛
8487
+ - 框
8488
+ - 泒
8489
+ - 析
8490
+ - 沢
8491
+ - 偷
8492
+ - 繁
8493
+ - 嗣
8494
+ - 呵
8495
+ - 念
8496
+ - so@@
8497
+ - 溷
8498
+ - 曩
8499
+ - spon@@
8500
+ - 狼
8501
+ - 倔
8502
+ - 威
8503
+ - 潭
8504
+ - 踯
8505
+ - 晁
8506
+ - 吩
8507
+ - 袅
8508
+ - 喀
8509
+ - 洌
8510
+ - 炯
8511
+ - 纸
8512
+ - 抽
8513
+ - 簧
8514
+ - c@@
8515
+ - 买
8516
+ - 吖
8517
+ - 俬
8518
+ - 梓
8519
+ - 叡
8520
+ - 祼
8521
+ - 烃
8522
+ - 荃
8523
+ - 眀
8524
+ - <unk>
8525
+ split_with_space: true
8526
+ init: null
8527
+ input_size: null
8528
+ ctc_conf:
8529
+ dropout_rate: 0.0
8530
+ ctc_type: builtin
8531
+ reduce: true
8532
+ ignore_nan_grad: true
8533
+ joint_net_conf: null
8534
+ use_preprocessor: true
8535
+ token_type: char
8536
+ bpemodel: null
8537
+ non_linguistic_symbols: null
8538
+ cleaner: null
8539
+ g2p: null
8540
+ speech_volume_normalize: null
8541
+ rir_scp: null
8542
+ rir_apply_prob: 1.0
8543
+ noise_scp: null
8544
+ noise_apply_prob: 1.0
8545
+ noise_db_range: '13_15'
8546
+ frontend: wav_frontend
8547
+ frontend_conf:
8548
+ fs: 16000
8549
+ window: hamming
8550
+ n_mels: 80
8551
+ frame_length: 25
8552
+ frame_shift: 10
8553
+ lfr_m: 7
8554
+ lfr_n: 6
8555
+ specaug: specaug_lfr
8556
+ specaug_conf:
8557
+ apply_time_warp: false
8558
+ time_warp_window: 5
8559
+ time_warp_mode: bicubic
8560
+ apply_freq_mask: true
8561
+ freq_mask_width_range:
8562
+ - 0
8563
+ - 30
8564
+ lfr_rate: 6
8565
+ num_freq_mask: 1
8566
+ apply_time_mask: true
8567
+ time_mask_width_range:
8568
+ - 0
8569
+ - 12
8570
+ num_time_mask: 1
8571
+ normalize: null
8572
+ normalize_conf: {}
8573
+ model: paraformer
8574
+ model_conf:
8575
+ ctc_weight: 0.0
8576
+ lsm_weight: 0.1
8577
+ length_normalized_loss: true
8578
+ predictor_weight: 1.0
8579
+ predictor_bias: 1
8580
+ sampling_ratio: 0.75
8581
+ preencoder: null
8582
+ preencoder_conf: {}
8583
+ encoder: sanm
8584
+ encoder_conf:
8585
+ output_size: 512
8586
+ attention_heads: 4
8587
+ linear_units: 2048
8588
+ num_blocks: 50
8589
+ dropout_rate: 0.1
8590
+ positional_dropout_rate: 0.1
8591
+ attention_dropout_rate: 0.1
8592
+ input_layer: pe
8593
+ pos_enc_class: SinusoidalPositionEncoder
8594
+ normalize_before: true
8595
+ kernel_size: 11
8596
+ sanm_shfit: 0
8597
+ selfattention_layer_type: sanm
8598
+ postencoder: null
8599
+ postencoder_conf: {}
8600
+ decoder: paraformer_decoder_sanm
8601
+ decoder_conf:
8602
+ attention_heads: 4
8603
+ linear_units: 2048
8604
+ num_blocks: 16
8605
+ dropout_rate: 0.1
8606
+ positional_dropout_rate: 0.1
8607
+ self_attention_dropout_rate: 0.1
8608
+ src_attention_dropout_rate: 0.1
8609
+ att_layer_num: 16
8610
+ kernel_size: 11
8611
+ sanm_shfit: 0
8612
+ predictor: cif_predictor_v2
8613
+ predictor_conf:
8614
+ idim: 512
8615
+ threshold: 1.0
8616
+ l_order: 1
8617
+ r_order: 1
8618
+ tail_threshold: 0.45
8619
+ gpu_id: 1
8620
+ required:
8621
+ - output_dir
8622
+ - token_list
8623
+ distributed: false
8624
+ version: '202211'
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/configuration.json ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "framework": "pytorch",
3
+ "task" : "auto-speech-recognition",
4
+ "model" : {
5
+ "type" : "generic-asr",
6
+ "am_model_name" : "model.pb",
7
+ "model_config" : {
8
+ "type": "pytorch",
9
+ "code_base": "funasr",
10
+ "mode": "paraformer",
11
+ "lang": "zh-cn",
12
+ "batch_size": 1,
13
+ "am_model_config": "config.yaml",
14
+ "lm_model_name" : "lm/lm.pb",
15
+ "lm_model_config": "lm/lm.yaml",
16
+ "asr_model_config": "decoding.yaml",
17
+ "mvn_file": "am.mvn",
18
+ "model": "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
19
+ }
20
+ },
21
+ "pipeline": {
22
+ "type":"asr-inference"
23
+ }
24
+ }
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/decoding.yaml ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ beam_size: 1
2
+ penalty: 0.0
3
+ maxlenratio: 0.0
4
+ minlenratio: 0.0
5
+ ctc_weight: 0.0
6
+ lm_weight: 0.0
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/fig/struct.png ADDED
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/finetune.yaml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # minibatch related
2
+ # # dataset_type: small
3
+ batch_type: length
4
+ batch_bins: 2000
5
+ num_workers: 16
6
+ speech_length_min: 100
7
+ speech_length_max: 15000
8
+ # dataset_type: large
9
+ dataset_conf:
10
+ data_types: sound,text
11
+ filter_conf:
12
+ speech_length_min: 100
13
+ speech_length_max: 15000
14
+ token_length_min: 0
15
+ token_length_max: 200
16
+ shuffle: true
17
+ shuffle_conf:
18
+ shuffle_size: 2048
19
+ sort_size: 500
20
+ batch_conf:
21
+ batch_type: 'token'
22
+ batch_size: 120000
23
+ num_workers: 16
24
+
25
+ # optimization related
26
+ accum_grad: 1
27
+ grad_clip: 5
28
+ max_epoch: 20
29
+ keep_nbest_models: 10
30
+ optim: adam
31
+ optim_conf:
32
+ lr: 0.0005
33
+ scheduler: warmuplr
34
+ scheduler_conf:
35
+ warmup_steps: 30000
36
+
37
+ log_interval: 50
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f3627f8519e24dee8b9ab7d716d1e46f308d3bfe5f655c9ec350cad9bc4e34f2
3
+ size 864924763
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/seg_dict ADDED
The diff for this file is too large to render. See raw diff
 
models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/tokens.txt ADDED
@@ -0,0 +1,8404 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <blank>
2
+ <s>
3
+ </s>
4
+ and@@
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+ price
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ these
41
+
42
+
43
+ do@@
44
+
45
+
46
+
47
+
48
+
49
+
50
+ ps
51
+
52
+
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+ gr@@
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+ ing
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ ness
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ k
111
+
112
+ de
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+ per
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ ore
148
+
149
+
150
+
151
+
152
+
153
+ comp@@
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+ ic@@
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+ to@@
178
+
179
+
180
+
181
+
182
+ n@@
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+ nu@@
193
+
194
+ by
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+ tting
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+ times
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+ tu@@
239
+
240
+
241
+ minu@@
242
+
243
+
244
+
245
+
246
+
247
+
248
+ any@@
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ pp@@
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+ few
285
+
286
+
287
+
288
+ for
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+ with@@
299
+
300
+
301
+
302
+
303
+ id
304
+ aga@@
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+ an
319
+
320
+
321
+
322
+
323
+ ite
324
+
325
+ ele@@
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+ cer@@
352
+ here
353
+
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+ ou@@
364
+
365
+
366
+
367
+
368
+ bre@@
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+ clu@@
379
+
380
+
381
+
382
+
383
+
384
+
385
+ 0@@
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+ ts
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+ 绿
412
+
413
+
414
+ time
415
+
416
+ too
417
+
418
+
419
+
420
+
421
+
422
+
423
+ bi@@
424
+
425
+
426
+ ine
427
+
428
+ old
429
+
430
+
431
+ ling
432
+
433
+
434
+ prob@@
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+ bo@@
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+ ich
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+ da@@
470
+ w
471
+
472
+
473
+
474
+
475
+ while
476
+
477
+
478
+
479
+ ct@@
480
+
481
+
482
+
483
+
484
+ pres@@
485
+
486
+
487
+
488
+ ter@@
489
+
490
+
491
+
492
+
493
+
494
+
495
+ bas@@
496
+
497
+
498
+
499
+
500
+
501
+
502
+ cor@@
503
+
504
+
505
+
506
+
507
+ inn
508
+
509
+
510
+
511
+
512
+
513
+ ged
514
+
515
+ put
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+ mis@@
540
+
541
+
542
+ jo@@
543
+ ke@@
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+ bri@@
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+ lar@@
584
+
585
+
586
+ meeting
587
+ tter
588
+
589
+
590
+
591
+
592
+
593
+ ate
594
+
595
+
596
+ will
597
+ not
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+ iting
612
+
613
+
614
+
615
+
616
+ our
617
+
618
+ venue
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+ said
633
+
634
+ bus@@
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+ hotels
649
+
650
+
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+ er@@
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+ wal@@
670
+
671
+
672
+
673
+
674
+ ction
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+ cre@@
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+ ns
703
+ market
704
+
705
+
706
+
707
+
708
+
709
+ is@@
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+ ol@@
731
+
732
+
733
+
734
+
735
+ el
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+ what
747
+
748
+
749
+
750
+
751
+
752
+ ri@@
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+ ob@@
763
+
764
+
765
+
766
+
767
+
768
+
769
+ inter@@
770
+
771
+
772
+
773
+ if
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+ r
790
+ her
791
+
792
+
793
+
794
+
795
+
796
+
797
+ twenty
798
+ ni@@
799
+
800
+
801
+
802
+
803
+
804
+
805
+ within
806
+
807
+ cted
808
+
809
+
810
+
811
+ inte@@
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+ hard
825
+
826
+
827
+ ved
828
+ oo@@
829
+ used
830
+
831
+
832
+
833
+
834
+
835
+ char@@
836
+ we
837
+
838
+ ss@@
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+ il
848
+
849
+
850
+
851
+ bir@@
852
+ ges
853
+
854
+
855
+
856
+ sal@@
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+ sh@@
866
+ fore
867
+ mat@@
868
+
869
+
870
+
871
+
872
+
873
+ can@@
874
+ eng
875
+ know
876
+
877
+
878
+ tou@@
879
+
880
+
881
+
882
+ sha@@
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+ dre@@
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+ al
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+ 稿
917
+
918
+
919
+
920
+
921
+ chic@@
922
+
923
+
924
+
925
+
926
+
927
+ har@@
928
+
929
+
930
+ i
931
+
932
+
933
+
934
+
935
+ why
936
+ tic
937
+
938
+
939
+
940
+
941
+ x
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+ ance
952
+
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+ gh@@
969
+
970
+
971
+
972
+
973
+ ah
974
+
975
+
976
+
977
+
978
+
979
+
980
+
981
+ who
982
+
983
+
984
+
985
+
986
+
987
+ avenue
988
+
989
+ that's
990
+
991
+
992
+
993
+
994
+ ���
995
+ que@@
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+ ir
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+ eng@@
1028
+
1029
+
1030
+
1031
+
1032
+ 轿
1033
+
1034
+
1035
+ ken
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+ ans@@
1055
+ no
1056
+
1057
+ fic@@
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+
1074
+
1075
+
1076
+
1077
+
1078
+ there
1079
+
1080
+
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+ even
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+ sy@@
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+ only
1107
+ den@@
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+ 便
1118
+
1119
+
1120
+
1121
+ 尿
1122
+ find
1123
+
1124
+
1125
+
1126
+
1127
+ area
1128
+
1129
+
1130
+ af@@
1131
+
1132
+ ger
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+ comm@@
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+ ina
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+ need
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+ ath
1192
+
1193
+
1194
+
1195
+
1196
+ ing@@
1197
+
1198
+
1199
+
1200
+ has
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+ another
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+ ked
1254
+ port
1255
+
1256
+
1257
+ 竿
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+ shi@@
1265
+
1266
+
1267
+
1268
+
1269
+ walk
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+ ations
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+
1292
+ does
1293
+ tes
1294
+
1295
+
1296
+
1297
+ ren@@
1298
+
1299
+ g@@
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+ int
1311
+ use
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+ a
1341
+
1342
+
1343
+
1344
+
1345
+ rec@@
1346
+
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+ how
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+ low@@
1362
+ ak
1363
+
1364
+
1365
+
1366
+ proble@@
1367
+ es
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+ just
1383
+
1384
+
1385
+ pl@@
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+ gra@@
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+ stu@@
1403
+ mee@@
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+ still
1410
+
1411
+ wat@@
1412
+ 4
1413
+
1414
+
1415
+
1416
+ sho@@
1417
+
1418
+
1419
+
1420
+ than
1421
+ good
1422
+ l@@
1423
+
1424
+ 忿
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+ ue
1433
+
1434
+
1435
+
1436
+
1437
+ country
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+ in@@
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+ th
1455
+
1456
+
1457
+ wom@@
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+ thirty
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+ t
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+ por@@
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+ gre@@
1489
+
1490
+
1491
+
1492
+ ding
1493
+
1494
+
1495
+
1496
+ lo
1497
+
1498
+
1499
+
1500
+ lee
1501
+
1502
+ up
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+ ail@@
1516
+
1517
+ om@@
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+ cts
1525
+
1526
+
1527
+
1528
+ best
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+ ear@@
1557
+
1558
+ ship
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+ thanks
1570
+
1571
+
1572
+ contin@@
1573
+
1574
+
1575
+
1576
+
1577
+ ici@@
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+ tw@@
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+ ku@@
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+ day
1621
+
1622
+ away
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+ ces
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+ fri@@
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+ buil@@
1651
+
1652
+
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+ court
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+ gar@@
1697
+ ans
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+ with
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1725
+ gu@@
1726
+
1727
+
1728
+
1729
+ ch@@
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+ el@@
1737
+
1738
+
1739
+
1740
+ ol
1741
+
1742
+
1743
+
1744
+ bal@@
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+ she
1754
+ through
1755
+
1756
+
1757
+
1758
+ se
1759
+
1760
+
1761
+ mes
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+ st@@
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+ lion
1782
+
1783
+
1784
+
1785
+
1786
+ pe@@
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+ nine
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+ my
1809
+
1810
+ ill
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+ soon
1825
+
1826
+
1827
+
1828
+ light
1829
+
1830
+ seven@@
1831
+
1832
+
1833
+ en@@
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+ night
1843
+ hou@@
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+ ses
1850
+
1851
+ both
1852
+
1853
+
1854
+
1855
+ led
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+ f@@
1865
+
1866
+
1867
+ sion
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+
1874
+ thou@@
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+ ine@@
1882
+
1883
+
1884
+ -@@
1885
+
1886
+
1887
+
1888
+ national
1889
+ it@@
1890
+
1891
+ ci@@
1892
+
1893
+ l
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+ ys
1905
+
1906
+
1907
+
1908
+
1909
+ tal@@
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+ new
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+ th@@
1925
+
1926
+ its
1927
+
1928
+ ran@@
1929
+
1930
+ eight
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+ look
1943
+
1944
+
1945
+
1946
+
1947
+
1948
+ op@@
1949
+
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+ ra@@
1963
+
1964
+
1965
+
1966
+
1967
+
1968
+
1969
+
1970
+ wee@@
1971
+
1972
+ cep@@
1973
+ fron@@
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+ re@@
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+ ���
1990
+ 仿
1991
+
1992
+
1993
+
1994
+
1995
+ ase
1996
+ row
1997
+
1998
+ stance
1999
+
2000
+ custom@@
2001
+
2002
+
2003
+
2004
+
2005
+
2006
+
2007
+
2008
+
2009
+
2010
+
2011
+ ss
2012
+
2013
+
2014
+ spe@@
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+ 3
2023
+
2024
+
2025
+ fif@@
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+
2035
+
2036
+ g
2037
+
2038
+
2039
+ ffe@@
2040
+
2041
+
2042
+
2043
+
2044
+ are@@
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+ fr@@
2054
+ ful
2055
+
2056
+
2057
+
2058
+ ility
2059
+
2060
+
2061
+
2062
+
2063
+
2064
+ mer@@
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+ police
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+ ened
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+ ld
2088
+ x@@
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+ peop@@
2099
+
2100
+
2101
+
2102
+
2103
+ fro@@
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+ 娿
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+ i'm
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+ ster@@
2143
+
2144
+
2145
+
2146
+ ves
2147
+ again
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+
2160
+ him
2161
+
2162
+
2163
+ 7
2164
+
2165
+
2166
+
2167
+ ment
2168
+
2169
+
2170
+ show
2171
+
2172
+ out@@
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+ 9
2180
+
2181
+
2182
+
2183
+ ture
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+ pub@@
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+ pool
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+ ap@@
2244
+
2245
+
2246
+
2247
+ peri@@
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+ for@@
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+ at
2273
+
2274
+
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+ fi
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+ 齿
2302
+
2303
+
2304
+
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+ sure
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+ som@@
2324
+
2325
+
2326
+
2327
+
2328
+
2329
+ li@@
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+
2336
+ h@@
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+ people
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
2360
+
2361
+
2362
+ ant
2363
+
2364
+
2365
+
2366
+
2367
+ na@@
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+ 耀
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+ as@@
2391
+
2392
+ our@@
2393
+ that
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+ k@@
2400
+ teen
2401
+
2402
+ pic@@
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+
2417
+ hotel
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+
2426
+
2427
+
2428
+ long
2429
+ 广
2430
+
2431
+
2432
+ ings
2433
+ ood
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+ gh
2449
+
2450
+
2451
+
2452
+
2453
+
2454
+
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+ where
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+ cas@@
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+ in
2481
+
2482
+ fam@@
2483
+
2484
+
2485
+
2486
+ see
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+ around
2493
+
2494
+
2495
+
2496
+
2497
+ provi@@
2498
+
2499
+
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+
2520
+
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+ vie@@
2541
+
2542
+ first
2543
+
2544
+
2545
+
2546
+
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+ sed
2572
+ it
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+ tell
2592
+
2593
+ ace
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+ im@@
2600
+ win@@
2601
+
2602
+
2603
+
2604
+
2605
+
2606
+ next
2607
+ expe@@
2608
+
2609
+
2610
+
2611
+ stru@@
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+ be
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+ com@@
2642
+
2643
+
2644
+ ory
2645
+
2646
+
2647
+
2648
+
2649
+ te@@
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+ con@@
2660
+
2661
+ art
2662
+
2663
+
2664
+
2665
+
2666
+ rence
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+ mil@@
2674
+
2675
+
2676
+
2677
+
2678
+ sing@@
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+ ce
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+ tely
2694
+
2695
+
2696
+
2697
+
2698
+ ong
2699
+
2700
+
2701
+ breakfast
2702
+
2703
+
2704
+
2705
+
2706
+ under@@
2707
+ tion@@
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+
2716
+
2717
+ over@@
2718
+
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+ mb@@
2740
+
2741
+ 檿
2742
+
2743
+
2744
+
2745
+ can
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+ rent
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+ eigh@@
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+ ta@@
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+ birth
2771
+
2772
+ men@@
2773
+
2774
+
2775
+
2776
+ fl@@
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+
2796
+
2797
+
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+ guest
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+ such
2821
+
2822
+
2823
+
2824
+
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+ please
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+
2838
+ 诿
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+
2852
+
2853
+
2854
+
2855
+
2856
+
2857
+ on
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+ ree
2885
+
2886
+
2887
+
2888
+ today
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+ kind
2901
+
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+ ated
2908
+
2909
+
2910
+
2911
+
2912
+ govern@@
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+ sent
2933
+
2934
+ et
2935
+
2936
+
2937
+
2938
+ site
2939
+ sti@@
2940
+
2941
+ water
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+ ally
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+
2957
+
2958
+ sa@@
2959
+
2960
+
2961
+
2962
+
2963
+
2964
+
2965
+
2966
+ ner
2967
+ ast
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+ su@@
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+ rep@@
2981
+
2982
+ ther
2983
+
2984
+ ��
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+
2998
+ sequ@@
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+ every@@
3017
+
3018
+
3019
+ ating
3020
+
3021
+
3022
+ rela@@
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+ ser@@
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+
3054
+ te
3055
+
3056
+
3057
+
3058
+
3059
+
3060
+
3061
+
3062
+
3063
+
3064
+ tly
3065
+
3066
+ government
3067
+
3068
+
3069
+
3070
+
3071
+
3072
+
3073
+
3074
+ ound
3075
+ co@@
3076
+
3077
+
3078
+
3079
+
3080
+
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+
3093
+
3094
+
3095
+
3096
+
3097
+
3098
+
3099
+ ma@@
3100
+
3101
+
3102
+
3103
+ 殿
3104
+
3105
+
3106
+ wr@@
3107
+
3108
+
3109
+
3110
+ americ@@
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+ something
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+ fe
3161
+
3162
+
3163
+ 0
3164
+ room
3165
+
3166
+
3167
+
3168
+
3169
+
3170
+
3171
+
3172
+ nine@@
3173
+
3174
+
3175
+
3176
+
3177
+
3178
+
3179
+ ket
3180
+
3181
+
3182
+
3183
+
3184
+ ors
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+ mp@@
3192
+
3193
+
3194
+
3195
+
3196
+
3197
+
3198
+
3199
+
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+
3208
+
3209
+
3210
+
3211
+ cou@@
3212
+
3213
+ cen@@
3214
+
3215
+
3216
+
3217
+
3218
+ restaurant
3219
+
3220
+
3221
+
3222
+
3223
+
3224
+
3225
+
3226
+
3227
+
3228
+
3229
+
3230
+
3231
+ happ@@
3232
+
3233
+
3234
+ park
3235
+
3236
+
3237
+
3238
+ say
3239
+
3240
+
3241
+
3242
+
3243
+
3244
+
3245
+
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+
3252
+
3253
+
3254
+
3255
+
3256
+
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+
3281
+
3282
+
3283
+
3284
+
3285
+
3286
+
3287
+ tually
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+ ce@@
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
3310
+ &
3311
+
3312
+
3313
+
3314
+
3315
+ ook
3316
+
3317
+
3318
+
3319
+
3320
+
3321
+
3322
+
3323
+ also
3324
+
3325
+
3326
+
3327
+
3328
+
3329
+
3330
+
3331
+
3332
+
3333
+ le@@
3334
+
3335
+
3336
+
3337
+
3338
+ enjoy
3339
+
3340
+
3341
+
3342
+
3343
+
3344
+
3345
+
3346
+
3347
+ like
3348
+
3349
+
3350
+
3351
+
3352
+
3353
+
3354
+
3355
+
3356
+
3357
+ get
3358
+
3359
+
3360
+
3361
+
3362
+
3363
+
3364
+
3365
+
3366
+
3367
+ war@@
3368
+
3369
+
3370
+
3371
+
3372
+
3373
+
3374
+
3375
+
3376
+
3377
+
3378
+
3379
+
3380
+
3381
+
3382
+
3383
+
3384
+
3385
+
3386
+
3387
+
3388
+
3389
+
3390
+
3391
+
3392
+
3393
+
3394
+ different
3395
+ after
3396
+
3397
+
3398
+
3399
+
3400
+ ori@@
3401
+
3402
+
3403
+
3404
+
3405
+
3406
+
3407
+
3408
+
3409
+
3410
+
3411
+
3412
+
3413
+
3414
+
3415
+
3416
+
3417
+
3418
+
3419
+
3420
+
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3427
+
3428
+
3429
+
3430
+
3431
+
3432
+ 涿
3433
+ n't
3434
+
3435
+
3436
+
3437
+
3438
+ nice
3439
+
3440
+
3441
+
3442
+
3443
+
3444
+
3445
+
3446
+
3447
+
3448
+
3449
+ 槿
3450
+
3451
+
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3458
+
3459
+
3460
+
3461
+
3462
+
3463
+
3464
+
3465
+
3466
+
3467
+
3468
+
3469
+
3470
+
3471
+ ple
3472
+
3473
+
3474
+
3475
+
3476
+
3477
+
3478
+
3479
+
3480
+
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3497
+
3498
+
3499
+
3500
+
3501
+
3502
+ had
3503
+
3504
+
3505
+ nothing
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+ red
3514
+
3515
+
3516
+
3517
+
3518
+
3519
+
3520
+
3521
+
3522
+
3523
+
3524
+
3525
+
3526
+
3527
+
3528
+
3529
+
3530
+
3531
+
3532
+
3533
+ sts
3534
+
3535
+
3536
+
3537
+
3538
+
3539
+
3540
+ are
3541
+
3542
+
3543
+
3544
+
3545
+
3546
+ b
3547
+ the
3548
+
3549
+
3550
+ ir@@
3551
+
3552
+ tation
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+
3559
+
3560
+
3561
+
3562
+ over
3563
+
3564
+
3565
+
3566
+
3567
+ man
3568
+
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
3581
+ tri@@
3582
+
3583
+
3584
+
3585
+ di@@
3586
+
3587
+ 贿
3588
+
3589
+
3590
+ so
3591
+
3592
+
3593
+
3594
+
3595
+
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3606
+
3607
+
3608
+
3609
+
3610
+
3611
+
3612
+
3613
+
3614
+ 彿
3615
+ col@@
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+ am
3628
+
3629
+ fe@@
3630
+ zero
3631
+
3632
+
3633
+
3634
+
3635
+
3636
+
3637
+
3638
+
3639
+ sm@@
3640
+
3641
+
3642
+
3643
+
3644
+
3645
+
3646
+
3647
+
3648
+
3649
+
3650
+
3651
+ ined
3652
+ chu@@
3653
+
3654
+
3655
+
3656
+ 婿
3657
+
3658
+
3659
+
3660
+
3661
+
3662
+
3663
+
3664
+
3665
+ drive
3666
+
3667
+
3668
+
3669
+
3670
+
3671
+
3672
+ ould
3673
+
3674
+
3675
+ try
3676
+
3677
+
3678
+
3679
+
3680
+
3681
+
3682
+
3683
+ ink
3684
+ email
3685
+
3686
+
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+ ds
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+
3713
+
3714
+
3715
+
3716
+
3717
+
3718
+
3719
+
3720
+
3721
+
3722
+ ter
3723
+ che@@
3724
+
3725
+
3726
+
3727
+
3728
+
3729
+
3730
+
3731
+
3732
+
3733
+
3734
+
3735
+
3736
+
3737
+
3738
+
3739
+
3740
+
3741
+
3742
+
3743
+ ali@@
3744
+
3745
+ i@@
3746
+
3747
+ mu@@
3748
+
3749
+
3750
+
3751
+ cri@@
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+ pre@@
3767
+
3768
+
3769
+
3770
+
3771
+
3772
+
3773
+
3774
+
3775
+
3776
+
3777
+
3778
+
3779
+
3780
+
3781
+
3782
+
3783
+
3784
+
3785
+
3786
+ z
3787
+
3788
+ par@@
3789
+
3790
+
3791
+
3792
+
3793
+
3794
+ busine@@
3795
+
3796
+
3797
+
3798
+ problem
3799
+
3800
+ centr@@
3801
+ fifty
3802
+
3803
+ 𫖯
3804
+ restaurants
3805
+ beau@@
3806
+ fac@@
3807
+
3808
+
3809
+
3810
+
3811
+
3812
+
3813
+
3814
+
3815
+ ang
3816
+
3817
+
3818
+
3819
+
3820
+
3821
+
3822
+
3823
+
3824
+
3825
+ ay
3826
+
3827
+
3828
+
3829
+
3830
+
3831
+ ide@@
3832
+
3833
+
3834
+
3835
+
3836
+
3837
+
3838
+
3839
+
3840
+
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+
3847
+
3848
+ 窿
3849
+
3850
+
3851
+
3852
+ 簿
3853
+
3854
+
3855
+ si@@
3856
+
3857
+
3858
+
3859
+ ty
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3872
+
3873
+
3874
+
3875
+
3876
+
3877
+
3878
+
3879
+
3880
+
3881
+
3882
+
3883
+
3884
+ hi
3885
+
3886
+
3887
+
3888
+
3889
+ '
3890
+
3891
+
3892
+
3893
+
3894
+
3895
+
3896
+
3897
+
3898
+
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+ ach@@
3909
+
3910
+
3911
+
3912
+
3913
+
3914
+ should
3915
+
3916
+
3917
+
3918
+
3919
+
3920
+
3921
+
3922
+
3923
+
3924
+
3925
+
3926
+
3927
+
3928
+ center
3929
+
3930
+
3931
+
3932
+
3933
+
3934
+
3935
+ ang@@
3936
+ give
3937
+
3938
+
3939
+
3940
+
3941
+
3942
+
3943
+ wit@@
3944
+
3945
+
3946
+
3947
+
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+ man@@
3958
+
3959
+ money
3960
+
3961
+
3962
+
3963
+
3964
+ j@@
3965
+
3966
+
3967
+
3968
+
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+
3975
+ ft
3976
+
3977
+ scho@@
3978
+
3979
+
3980
+
3981
+
3982
+
3983
+
3984
+
3985
+
3986
+
3987
+ chan@@
3988
+
3989
+
3990
+
3991
+
3992
+
3993
+ ed
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+ send
4003
+
4004
+
4005
+
4006
+
4007
+
4008
+
4009
+
4010
+
4011
+
4012
+
4013
+
4014
+
4015
+
4016
+
4017
+
4018
+
4019
+
4020
+
4021
+
4022
+
4023
+
4024
+
4025
+
4026
+
4027
+
4028
+ same
4029
+
4030
+
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
4040
+
4041
+
4042
+
4043
+
4044
+
4045
+
4046
+ velo@@
4047
+
4048
+
4049
+ have
4050
+
4051
+
4052
+
4053
+
4054
+
4055
+ thir@@
4056
+
4057
+
4058
+ les
4059
+
4060
+
4061
+
4062
+ come
4063
+
4064
+
4065
+
4066
+
4067
+ br@@
4068
+
4069
+
4070
+
4071
+
4072
+
4073
+
4074
+
4075
+
4076
+ reas@@
4077
+
4078
+
4079
+ more
4080
+
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+ sit@@
4090
+
4091
+
4092
+
4093
+
4094
+
4095
+ recei@@
4096
+
4097
+
4098
+ from
4099
+
4100
+
4101
+
4102
+
4103
+
4104
+ pas@@
4105
+
4106
+
4107
+
4108
+ v@@
4109
+
4110
+ 're
4111
+
4112
+
4113
+
4114
+
4115
+
4116
+
4117
+ seven
4118
+
4119
+
4120
+
4121
+
4122
+
4123
+
4124
+
4125
+
4126
+
4127
+
4128
+
4129
+
4130
+
4131
+ 驿
4132
+ all@@
4133
+
4134
+
4135
+
4136
+
4137
+
4138
+
4139
+
4140
+ ari@@
4141
+
4142
+
4143
+
4144
+
4145
+
4146
+
4147
+
4148
+ test
4149
+
4150
+
4151
+
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+ 姿
4161
+
4162
+
4163
+
4164
+
4165
+
4166
+
4167
+
4168
+
4169
+
4170
+
4171
+
4172
+
4173
+ but
4174
+
4175
+
4176
+
4177
+
4178
+
4179
+
4180
+
4181
+
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+ 6@@
4191
+
4192
+
4193
+
4194
+
4195
+
4196
+
4197
+
4198
+
4199
+ lo@@
4200
+
4201
+
4202
+
4203
+ part@@
4204
+
4205
+
4206
+
4207
+
4208
+
4209
+
4210
+
4211
+
4212
+
4213
+
4214
+ ary
4215
+
4216
+
4217
+
4218
+
4219
+
4220
+
4221
+
4222
+
4223
+ close
4224
+
4225
+ ty@@
4226
+
4227
+
4228
+
4229
+ go@@
4230
+
4231
+
4232
+ ble
4233
+
4234
+
4235
+ qu@@
4236
+
4237
+
4238
+
4239
+
4240
+
4241
+
4242
+
4243
+
4244
+
4245
+
4246
+
4247
+ q
4248
+
4249
+
4250
+ 使
4251
+
4252
+
4253
+
4254
+
4255
+
4256
+
4257
+
4258
+
4259
+
4260
+
4261
+
4262
+
4263
+ fa@@
4264
+ w@@
4265
+
4266
+
4267
+
4268
+
4269
+ 趿
4270
+
4271
+
4272
+ last
4273
+
4274
+
4275
+
4276
+
4277
+
4278
+
4279
+
4280
+
4281
+
4282
+
4283
+
4284
+
4285
+
4286
+
4287
+
4288
+
4289
+
4290
+
4291
+
4292
+
4293
+
4294
+
4295
+
4296
+
4297
+
4298
+
4299
+
4300
+
4301
+
4302
+
4303
+
4304
+ back
4305
+
4306
+
4307
+ sou@@
4308
+
4309
+ son
4310
+
4311
+
4312
+
4313
+
4314
+
4315
+
4316
+
4317
+
4318
+
4319
+ sil
4320
+
4321
+
4322
+
4323
+
4324
+
4325
+
4326
+
4327
+
4328
+
4329
+
4330
+
4331
+
4332
+
4333
+
4334
+
4335
+
4336
+
4337
+ own
4338
+
4339
+
4340
+ ices
4341
+
4342
+
4343
+ u@@
4344
+
4345
+
4346
+
4347
+
4348
+
4349
+
4350
+
4351
+
4352
+
4353
+
4354
+
4355
+
4356
+
4357
+
4358
+
4359
+
4360
+
4361
+
4362
+
4363
+ kil@@
4364
+
4365
+
4366
+
4367
+
4368
+
4369
+ 5
4370
+ dis@@
4371
+
4372
+
4373
+
4374
+
4375
+
4376
+
4377
+
4378
+ c
4379
+
4380
+
4381
+ je@@
4382
+
4383
+ way
4384
+
4385
+
4386
+
4387
+
4388
+
4389
+
4390
+
4391
+
4392
+
4393
+
4394
+
4395
+
4396
+
4397
+
4398
+
4399
+
4400
+
4401
+
4402
+
4403
+
4404
+
4405
+
4406
+
4407
+
4408
+
4409
+
4410
+
4411
+
4412
+
4413
+
4414
+
4415
+
4416
+
4417
+
4418
+
4419
+
4420
+
4421
+
4422
+
4423
+
4424
+
4425
+
4426
+
4427
+
4428
+
4429
+
4430
+ tom@@
4431
+
4432
+
4433
+ products
4434
+
4435
+
4436
+
4437
+
4438
+
4439
+
4440
+ bu@@
4441
+
4442
+
4443
+
4444
+
4445
+
4446
+
4447
+
4448
+
4449
+
4450
+
4451
+
4452
+
4453
+ ru@@
4454
+ deta@@
4455
+
4456
+
4457
+
4458
+
4459
+
4460
+
4461
+
4462
+
4463
+
4464
+ qui@@
4465
+
4466
+
4467
+
4468
+
4469
+
4470
+
4471
+
4472
+ local
4473
+ fol@@
4474
+
4475
+
4476
+
4477
+
4478
+ du@@
4479
+
4480
+
4481
+
4482
+
4483
+
4484
+ car@@
4485
+
4486
+
4487
+
4488
+
4489
+
4490
+
4491
+
4492
+
4493
+
4494
+
4495
+ high
4496
+ ach
4497
+
4498
+
4499
+ think
4500
+ don't
4501
+
4502
+ cho@@
4503
+
4504
+
4505
+
4506
+
4507
+
4508
+
4509
+
4510
+
4511
+
4512
+
4513
+
4514
+
4515
+
4516
+ at@@
4517
+
4518
+
4519
+
4520
+
4521
+
4522
+
4523
+
4524
+
4525
+
4526
+
4527
+
4528
+
4529
+
4530
+
4531
+
4532
+
4533
+
4534
+
4535
+
4536
+
4537
+
4538
+
4539
+
4540
+
4541
+ ile
4542
+
4543
+
4544
+
4545
+
4546
+
4547
+
4548
+
4549
+ se@@
4550
+
4551
+
4552
+
4553
+
4554
+
4555
+
4556
+
4557
+
4558
+ the@@
4559
+
4560
+
4561
+
4562
+
4563
+
4564
+
4565
+ ack@@
4566
+
4567
+ res
4568
+ lot
4569
+
4570
+
4571
+ ways
4572
+
4573
+
4574
+
4575
+
4576
+
4577
+
4578
+
4579
+
4580
+ ar
4581
+
4582
+
4583
+
4584
+
4585
+
4586
+
4587
+
4588
+
4589
+ hu@@
4590
+
4591
+
4592
+
4593
+
4594
+ many
4595
+
4596
+ ned
4597
+ their
4598
+
4599
+
4600
+
4601
+
4602
+
4603
+
4604
+
4605
+
4606
+ this
4607
+
4608
+
4609
+ ton
4610
+
4611
+
4612
+
4613
+
4614
+
4615
+
4616
+
4617
+ imp@@
4618
+
4619
+
4620
+ e@@
4621
+
4622
+
4623
+
4624
+ three
4625
+
4626
+
4627
+
4628
+
4629
+
4630
+
4631
+
4632
+
4633
+
4634
+
4635
+
4636
+
4637
+
4638
+
4639
+
4640
+ inclu@@
4641
+ mo@@
4642
+
4643
+
4644
+
4645
+
4646
+ really
4647
+
4648
+ dri@@
4649
+
4650
+
4651
+
4652
+
4653
+
4654
+ up@@
4655
+
4656
+
4657
+
4658
+
4659
+
4660
+
4661
+
4662
+ indi@@
4663
+ into
4664
+
4665
+
4666
+ t@@
4667
+
4668
+
4669
+
4670
+ body
4671
+ ins
4672
+
4673
+
4674
+ down
4675
+
4676
+
4677
+
4678
+
4679
+ wa@@
4680
+
4681
+
4682
+
4683
+
4684
+ great
4685
+
4686
+
4687
+
4688
+
4689
+
4690
+
4691
+
4692
+
4693
+
4694
+ dge
4695
+
4696
+ vo@@
4697
+
4698
+
4699
+
4700
+
4701
+
4702
+ gro@@
4703
+
4704
+
4705
+ all
4706
+
4707
+
4708
+
4709
+
4710
+ two
4711
+
4712
+
4713
+
4714
+
4715
+
4716
+ it's
4717
+
4718
+
4719
+
4720
+ ies
4721
+ centre
4722
+
4723
+ 亿
4724
+
4725
+ ask
4726
+
4727
+
4728
+
4729
+
4730
+
4731
+ 椿
4732
+
4733
+
4734
+
4735
+
4736
+ diffe@@
4737
+
4738
+
4739
+
4740
+
4741
+
4742
+
4743
+
4744
+
4745
+
4746
+
4747
+
4748
+
4749
+
4750
+
4751
+
4752
+
4753
+
4754
+
4755
+
4756
+
4757
+
4758
+
4759
+
4760
+
4761
+
4762
+
4763
+
4764
+ may
4765
+
4766
+
4767
+
4768
+
4769
+
4770
+
4771
+
4772
+
4773
+
4774
+
4775
+
4776
+
4777
+
4778
+ cl@@
4779
+ hund@@
4780
+
4781
+
4782
+
4783
+
4784
+
4785
+
4786
+
4787
+
4788
+
4789
+
4790
+
4791
+
4792
+
4793
+
4794
+ forty
4795
+
4796
+
4797
+
4798
+
4799
+
4800
+
4801
+
4802
+
4803
+
4804
+
4805
+
4806
+ read@@
4807
+
4808
+
4809
+
4810
+
4811
+
4812
+
4813
+
4814
+
4815
+ chil@@
4816
+
4817
+
4818
+
4819
+
4820
+
4821
+
4822
+ der@@
4823
+
4824
+
4825
+
4826
+
4827
+
4828
+
4829
+
4830
+
4831
+
4832
+
4833
+ ms
4834
+
4835
+
4836
+
4837
+
4838
+
4839
+
4840
+
4841
+
4842
+
4843
+
4844
+
4845
+
4846
+
4847
+
4848
+ al@@
4849
+
4850
+
4851
+
4852
+
4853
+
4854
+
4855
+
4856
+
4857
+ sh
4858
+ 's
4859
+
4860
+
4861
+ ck
4862
+
4863
+
4864
+
4865
+
4866
+
4867
+ mer
4868
+
4869
+
4870
+
4871
+
4872
+
4873
+
4874
+
4875
+
4876
+
4877
+
4878
+
4879
+
4880
+
4881
+ cha@@
4882
+ small
4883
+
4884
+
4885
+
4886
+
4887
+
4888
+
4889
+
4890
+ sting
4891
+
4892
+
4893
+
4894
+
4895
+
4896
+
4897
+
4898
+
4899
+
4900
+ take
4901
+
4902
+
4903
+
4904
+
4905
+
4906
+ fast
4907
+
4908
+
4909
+
4910
+
4911
+
4912
+ well
4913
+
4914
+ he@@
4915
+
4916
+
4917
+ unk@@
4918
+
4919
+
4920
+
4921
+
4922
+
4923
+ ve
4924
+
4925
+ pay
4926
+
4927
+
4928
+
4929
+
4930
+
4931
+
4932
+ quo@@
4933
+
4934
+
4935
+
4936
+
4937
+
4938
+
4939
+
4940
+ much
4941
+ most
4942
+ now
4943
+ singapore
4944
+
4945
+
4946
+
4947
+
4948
+
4949
+
4950
+
4951
+
4952
+
4953
+
4954
+
4955
+
4956
+
4957
+
4958
+
4959
+ hote@@
4960
+
4961
+
4962
+
4963
+
4964
+
4965
+
4966
+
4967
+
4968
+
4969
+
4970
+
4971
+
4972
+
4973
+
4974
+
4975
+
4976
+
4977
+
4978
+
4979
+
4980
+
4981
+ is
4982
+
4983
+
4984
+
4985
+
4986
+
4987
+
4988
+
4989
+
4990
+
4991
+
4992
+
4993
+
4994
+
4995
+
4996
+
4997
+
4998
+
4999
+
5000
+
5001
+
5002
+
5003
+
5004
+ s@@
5005
+
5006
+
5007
+
5008
+
5009
+
5010
+
5011
+
5012
+ thank
5013
+
5014
+
5015
+
5016
+ cost
5017
+
5018
+
5019
+
5020
+ publi@@
5021
+
5022
+
5023
+
5024
+
5025
+
5026
+
5027
+
5028
+
5029
+
5030
+
5031
+ able
5032
+ ind
5033
+
5034
+
5035
+
5036
+
5037
+
5038
+
5039
+
5040
+
5041
+
5042
+ fi@@
5043
+ company
5044
+
5045
+
5046
+
5047
+
5048
+ 巿
5049
+
5050
+
5051
+
5052
+
5053
+
5054
+
5055
+
5056
+
5057
+
5058
+
5059
+
5060
+
5061
+ any
5062
+ pri@@
5063
+
5064
+
5065
+
5066
+
5067
+
5068
+
5069
+
5070
+
5071
+
5072
+
5073
+ inve@@
5074
+
5075
+ frien@@
5076
+
5077
+
5078
+
5079
+
5080
+
5081
+
5082
+ i'@@
5083
+
5084
+
5085
+ un@@
5086
+
5087
+
5088
+
5089
+ wi
5090
+
5091
+
5092
+
5093
+
5094
+
5095
+
5096
+
5097
+
5098
+
5099
+
5100
+
5101
+
5102
+
5103
+
5104
+ sk@@
5105
+
5106
+
5107
+
5108
+
5109
+
5110
+
5111
+
5112
+ ers
5113
+
5114
+
5115
+
5116
+
5117
+
5118
+
5119
+
5120
+
5121
+ oms
5122
+
5123
+ before
5124
+
5125
+
5126
+
5127
+
5128
+
5129
+
5130
+
5131
+
5132
+
5133
+
5134
+ po@@
5135
+
5136
+ year
5137
+
5138
+ pping
5139
+
5140
+
5141
+
5142
+
5143
+
5144
+
5145
+
5146
+
5147
+
5148
+
5149
+ sta@@
5150
+
5151
+
5152
+
5153
+
5154
+
5155
+
5156
+ ments
5157
+
5158
+
5159
+
5160
+
5161
+
5162
+
5163
+
5164
+
5165
+
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+ ro@@
5172
+
5173
+
5174
+ tional
5175
+
5176
+
5177
+
5178
+ n
5179
+
5180
+
5181
+
5182
+
5183
+
5184
+
5185
+
5186
+
5187
+
5188
+
5189
+
5190
+
5191
+
5192
+
5193
+
5194
+
5195
+
5196
+
5197
+
5198
+ ars
5199
+
5200
+ clo@@
5201
+
5202
+
5203
+
5204
+
5205
+
5206
+
5207
+
5208
+
5209
+ 9@@
5210
+
5211
+
5212
+
5213
+ them
5214
+
5215
+
5216
+
5217
+
5218
+
5219
+
5220
+
5221
+
5222
+
5223
+
5224
+ ag@@
5225
+
5226
+
5227
+
5228
+
5229
+ supp@@
5230
+
5231
+
5232
+
5233
+
5234
+
5235
+
5236
+
5237
+
5238
+
5239
+ experi@@
5240
+
5241
+
5242
+
5243
+
5244
+ every
5245
+
5246
+
5247
+
5248
+ a@@
5249
+
5250
+
5251
+ ze
5252
+
5253
+
5254
+
5255
+
5256
+
5257
+
5258
+
5259
+ 屿
5260
+
5261
+ cont@@
5262
+
5263
+ den
5264
+
5265
+
5266
+
5267
+
5268
+
5269
+
5270
+
5271
+
5272
+
5273
+
5274
+
5275
+
5276
+ than@@
5277
+ king
5278
+
5279
+
5280
+
5281
+
5282
+
5283
+ ent
5284
+
5285
+
5286
+
5287
+
5288
+
5289
+
5290
+
5291
+
5292
+ lim
5293
+
5294
+
5295
+ we@@
5296
+
5297
+
5298
+
5299
+
5300
+
5301
+
5302
+
5303
+
5304
+
5305
+
5306
+ because
5307
+
5308
+
5309
+
5310
+
5311
+ 蹿
5312
+
5313
+
5314
+
5315
+
5316
+
5317
+
5318
+
5319
+
5320
+
5321
+ mon@@
5322
+
5323
+
5324
+
5325
+
5326
+
5327
+
5328
+ f
5329
+ near
5330
+
5331
+
5332
+ 鸿
5333
+
5334
+
5335
+
5336
+
5337
+
5338
+
5339
+ bro@@
5340
+
5341
+
5342
+ pe
5343
+
5344
+ vi@@
5345
+ jal@@
5346
+
5347
+
5348
+
5349
+
5350
+
5351
+
5352
+
5353
+
5354
+
5355
+
5356
+
5357
+
5358
+
5359
+ sen@@
5360
+ family
5361
+ 岿
5362
+
5363
+
5364
+
5365
+
5366
+
5367
+
5368
+
5369
+ dly
5370
+
5371
+
5372
+
5373
+
5374
+
5375
+
5376
+
5377
+
5378
+
5379
+
5380
+
5381
+
5382
+
5383
+
5384
+
5385
+
5386
+ ban@@
5387
+ ssi@@
5388
+
5389
+
5390
+
5391
+ y
5392
+
5393
+
5394
+
5395
+
5396
+
5397
+
5398
+
5399
+
5400
+
5401
+
5402
+
5403
+
5404
+
5405
+
5406
+
5407
+
5408
+
5409
+ ll
5410
+
5411
+
5412
+
5413
+
5414
+
5415
+
5416
+
5417
+
5418
+
5419
+
5420
+
5421
+
5422
+
5423
+
5424
+
5425
+
5426
+
5427
+
5428
+
5429
+
5430
+
5431
+
5432
+
5433
+
5434
+
5435
+
5436
+
5437
+
5438
+
5439
+
5440
+
5441
+
5442
+
5443
+
5444
+
5445
+
5446
+
5447
+
5448
+
5449
+
5450
+
5451
+
5452
+
5453
+
5454
+
5455
+
5456
+
5457
+
5458
+
5459
+
5460
+
5461
+
5462
+
5463
+
5464
+
5465
+
5466
+ things
5467
+
5468
+
5469
+
5470
+
5471
+
5472
+
5473
+ ous
5474
+
5475
+
5476
+
5477
+
5478
+
5479
+
5480
+ ning
5481
+ med
5482
+
5483
+
5484
+
5485
+
5486
+
5487
+
5488
+
5489
+
5490
+
5491
+
5492
+
5493
+
5494
+
5495
+
5496
+
5497
+
5498
+
5499
+
5500
+ been
5501
+
5502
+
5503
+ sc@@
5504
+
5505
+
5506
+
5507
+ ants
5508
+
5509
+
5510
+
5511
+ one
5512
+
5513
+
5514
+ land
5515
+
5516
+
5517
+
5518
+ wi@@
5519
+
5520
+
5521
+
5522
+
5523
+
5524
+
5525
+
5526
+
5527
+
5528
+
5529
+
5530
+ dent
5531
+
5532
+
5533
+
5534
+
5535
+ oun@@
5536
+
5537
+
5538
+
5539
+
5540
+
5541
+
5542
+
5543
+ uring
5544
+
5545
+
5546
+
5547
+
5548
+
5549
+ stre@@
5550
+
5551
+
5552
+
5553
+
5554
+
5555
+ side
5556
+
5557
+
5558
+
5559
+
5560
+
5561
+
5562
+
5563
+ pu@@
5564
+ right
5565
+
5566
+
5567
+ mber
5568
+
5569
+ town
5570
+
5571
+
5572
+
5573
+ loc@@
5574
+ spa
5575
+
5576
+
5577
+
5578
+
5579
+
5580
+
5581
+
5582
+
5583
+
5584
+
5585
+
5586
+
5587
+
5588
+
5589
+
5590
+
5591
+ some
5592
+
5593
+
5594
+
5595
+ ice
5596
+
5597
+ ad@@
5598
+
5599
+
5600
+
5601
+
5602
+
5603
+ ard
5604
+
5605
+
5606
+
5607
+
5608
+
5609
+ always
5610
+
5611
+
5612
+
5613
+ ded
5614
+
5615
+
5616
+
5617
+
5618
+
5619
+
5620
+
5621
+
5622
+
5623
+ lar
5624
+
5625
+
5626
+ p
5627
+
5628
+ ga@@
5629
+ ey
5630
+ ho@@
5631
+
5632
+
5633
+
5634
+
5635
+
5636
+
5637
+ lit@@
5638
+
5639
+
5640
+
5641
+
5642
+
5643
+ ying
5644
+
5645
+
5646
+
5647
+
5648
+
5649
+
5650
+ ons
5651
+
5652
+
5653
+
5654
+
5655
+ 6
5656
+
5657
+
5658
+
5659
+
5660
+
5661
+ din@@
5662
+
5663
+
5664
+
5665
+
5666
+
5667
+
5668
+
5669
+
5670
+
5671
+
5672
+
5673
+
5674
+
5675
+ an@@
5676
+
5677
+ loca@@
5678
+
5679
+
5680
+ 2
5681
+ amer@@
5682
+
5683
+
5684
+ bra@@
5685
+
5686
+ str@@
5687
+ res@@
5688
+
5689
+
5690
+ pen@@
5691
+
5692
+
5693
+ ality
5694
+
5695
+
5696
+
5697
+
5698
+
5699
+
5700
+
5701
+
5702
+
5703
+
5704
+
5705
+ min@@
5706
+
5707
+
5708
+ tions
5709
+
5710
+
5711
+
5712
+
5713
+
5714
+ er
5715
+
5716
+
5717
+ business
5718
+
5719
+
5720
+
5721
+
5722
+
5723
+
5724
+
5725
+
5726
+ break@@
5727
+
5728
+
5729
+ sor@@
5730
+
5731
+
5732
+
5733
+ ation
5734
+
5735
+
5736
+
5737
+
5738
+
5739
+
5740
+
5741
+
5742
+ us
5743
+
5744
+
5745
+
5746
+
5747
+
5748
+ dr@@
5749
+
5750
+
5751
+
5752
+
5753
+
5754
+
5755
+
5756
+
5757
+
5758
+
5759
+
5760
+
5761
+
5762
+
5763
+
5764
+
5765
+
5766
+
5767
+
5768
+
5769
+
5770
+
5771
+ ff
5772
+
5773
+
5774
+
5775
+
5776
+
5777
+
5778
+
5779
+
5780
+
5781
+
5782
+
5783
+
5784
+
5785
+
5786
+ big
5787
+
5788
+
5789
+
5790
+
5791
+
5792
+ cle@@
5793
+
5794
+
5795
+
5796
+ hel@@
5797
+
5798
+
5799
+
5800
+
5801
+ hi@@
5802
+
5803
+
5804
+
5805
+
5806
+
5807
+
5808
+
5809
+
5810
+
5811
+
5812
+
5813
+
5814
+
5815
+
5816
+
5817
+
5818
+
5819
+
5820
+ resta@@
5821
+
5822
+
5823
+
5824
+
5825
+
5826
+
5827
+
5828
+
5829
+
5830
+
5831
+ of@@
5832
+
5833
+
5834
+
5835
+
5836
+
5837
+
5838
+
5839
+
5840
+
5841
+
5842
+
5843
+ ack
5844
+
5845
+
5846
+
5847
+ 寿
5848
+
5849
+ pro@@
5850
+
5851
+ mor@@
5852
+
5853
+
5854
+ ready
5855
+
5856
+
5857
+
5858
+
5859
+
5860
+
5861
+
5862
+
5863
+
5864
+
5865
+
5866
+
5867
+
5868
+
5869
+
5870
+
5871
+
5872
+
5873
+
5874
+
5875
+
5876
+
5877
+
5878
+
5879
+
5880
+
5881
+ each
5882
+ vil@@
5883
+
5884
+
5885
+
5886
+
5887
+
5888
+
5889
+
5890
+
5891
+
5892
+
5893
+
5894
+
5895
+ got
5896
+
5897
+
5898
+
5899
+
5900
+
5901
+
5902
+ ar@@
5903
+
5904
+
5905
+
5906
+
5907
+
5908
+
5909
+
5910
+
5911
+
5912
+
5913
+
5914
+
5915
+
5916
+
5917
+
5918
+
5919
+ hope
5920
+
5921
+
5922
+
5923
+
5924
+
5925
+
5926
+
5927
+
5928
+
5929
+
5930
+
5931
+
5932
+
5933
+
5934
+
5935
+
5936
+ ct
5937
+
5938
+
5939
+ wh@@
5940
+
5941
+
5942
+
5943
+
5944
+
5945
+ kes
5946
+
5947
+
5948
+ work
5949
+
5950
+
5951
+
5952
+
5953
+
5954
+
5955
+ ere
5956
+
5957
+
5958
+
5959
+
5960
+
5961
+
5962
+
5963
+ rooms
5964
+ ���
5965
+
5966
+ e
5967
+
5968
+
5969
+
5970
+
5971
+
5972
+
5973
+
5974
+ ia
5975
+ hundred
5976
+
5977
+
5978
+ no@@
5979
+ 西
5980
+
5981
+
5982
+
5983
+
5984
+ yes
5985
+
5986
+ sig@@
5987
+ gs
5988
+
5989
+
5990
+
5991
+ bur@@
5992
+
5993
+
5994
+
5995
+
5996
+ dy
5997
+
5998
+
5999
+
6000
+
6001
+
6002
+
6003
+
6004
+
6005
+
6006
+
6007
+ or
6008
+
6009
+
6010
+
6011
+
6012
+
6013
+
6014
+
6015
+
6016
+ you
6017
+
6018
+ als
6019
+
6020
+
6021
+
6022
+
6023
+
6024
+
6025
+
6026
+
6027
+ ba@@
6028
+
6029
+
6030
+
6031
+
6032
+
6033
+
6034
+
6035
+
6036
+
6037
+
6038
+
6039
+
6040
+
6041
+
6042
+
6043
+ cal@@
6044
+
6045
+ enty
6046
+
6047
+ 洿
6048
+
6049
+
6050
+
6051
+
6052
+
6053
+ nineteen
6054
+ cause
6055
+
6056
+
6057
+
6058
+
6059
+
6060
+
6061
+
6062
+
6063
+
6064
+
6065
+
6066
+
6067
+
6068
+
6069
+
6070
+
6071
+
6072
+ 5@@
6073
+
6074
+ to
6075
+
6076
+
6077
+
6078
+
6079
+
6080
+
6081
+
6082
+
6083
+
6084
+
6085
+ ber@@
6086
+ 1
6087
+
6088
+
6089
+
6090
+ r@@
6091
+ squ@@
6092
+
6093
+
6094
+
6095
+
6096
+
6097
+
6098
+
6099
+
6100
+ as
6101
+
6102
+
6103
+
6104
+
6105
+
6106
+
6107
+
6108
+
6109
+
6110
+
6111
+
6112
+
6113
+
6114
+
6115
+
6116
+
6117
+
6118
+ ass
6119
+
6120
+ tive
6121
+ never
6122
+
6123
+ ence
6124
+
6125
+
6126
+
6127
+
6128
+
6129
+
6130
+
6131
+
6132
+
6133
+
6134
+
6135
+
6136
+
6137
+
6138
+
6139
+
6140
+
6141
+
6142
+ st
6143
+
6144
+
6145
+
6146
+
6147
+
6148
+
6149
+
6150
+
6151
+
6152
+
6153
+
6154
+
6155
+
6156
+
6157
+ soci@@
6158
+
6159
+ home
6160
+
6161
+
6162
+
6163
+
6164
+
6165
+
6166
+ ters
6167
+ ted
6168
+
6169
+
6170
+ eas@@
6171
+ ven@@
6172
+
6173
+ ac@@
6174
+
6175
+ fas@@
6176
+
6177
+
6178
+
6179
+
6180
+ lan@@
6181
+
6182
+
6183
+ secon@@
6184
+
6185
+
6186
+
6187
+
6188
+ out
6189
+
6190
+
6191
+
6192
+
6193
+
6194
+
6195
+
6196
+
6197
+ did
6198
+ date
6199
+
6200
+
6201
+
6202
+
6203
+
6204
+
6205
+
6206
+
6207
+
6208
+
6209
+ produ@@
6210
+
6211
+ free
6212
+
6213
+
6214
+
6215
+
6216
+
6217
+
6218
+
6219
+
6220
+
6221
+
6222
+
6223
+
6224
+
6225
+
6226
+
6227
+
6228
+
6229
+
6230
+
6231
+
6232
+
6233
+
6234
+
6235
+
6236
+
6237
+
6238
+ d
6239
+
6240
+
6241
+
6242
+ de@@
6243
+ inc@@
6244
+
6245
+
6246
+
6247
+
6248
+
6249
+ pi@@
6250
+
6251
+
6252
+
6253
+
6254
+ ke
6255
+
6256
+
6257
+
6258
+
6259
+
6260
+ 线
6261
+
6262
+
6263
+
6264
+
6265
+
6266
+
6267
+ days
6268
+
6269
+
6270
+
6271
+
6272
+
6273
+
6274
+
6275
+
6276
+ belie@@
6277
+
6278
+
6279
+
6280
+
6281
+
6282
+
6283
+
6284
+
6285
+
6286
+
6287
+
6288
+
6289
+
6290
+
6291
+ ph@@
6292
+ ef@@
6293
+
6294
+
6295
+
6296
+
6297
+
6298
+
6299
+
6300
+ though
6301
+
6302
+ av@@
6303
+
6304
+
6305
+ road
6306
+ wn
6307
+
6308
+
6309
+
6310
+
6311
+ end
6312
+
6313
+
6314
+ 8
6315
+
6316
+
6317
+ ties
6318
+
6319
+
6320
+
6321
+
6322
+
6323
+
6324
+
6325
+
6326
+ wor@@
6327
+
6328
+
6329
+
6330
+
6331
+
6332
+
6333
+
6334
+ bus
6335
+ ten@@
6336
+ check
6337
+
6338
+
6339
+
6340
+
6341
+
6342
+
6343
+
6344
+
6345
+
6346
+
6347
+
6348
+
6349
+
6350
+
6351
+
6352
+
6353
+
6354
+
6355
+
6356
+
6357
+
6358
+
6359
+
6360
+ gi@@
6361
+
6362
+
6363
+
6364
+
6365
+
6366
+
6367
+
6368
+ ple@@
6369
+
6370
+
6371
+
6372
+
6373
+
6374
+
6375
+
6376
+
6377
+
6378
+
6379
+
6380
+
6381
+
6382
+
6383
+
6384
+
6385
+
6386
+
6387
+
6388
+ 鱿
6389
+
6390
+ me
6391
+
6392
+ sing
6393
+
6394
+
6395
+
6396
+
6397
+
6398
+
6399
+
6400
+
6401
+
6402
+ d@@
6403
+
6404
+ world
6405
+
6406
+
6407
+
6408
+
6409
+
6410
+
6411
+
6412
+
6413
+
6414
+
6415
+
6416
+
6417
+
6418
+
6419
+
6420
+
6421
+
6422
+
6423
+
6424
+
6425
+
6426
+
6427
+
6428
+
6429
+
6430
+
6431
+
6432
+
6433
+
6434
+
6435
+
6436
+
6437
+
6438
+
6439
+ going
6440
+
6441
+ your
6442
+ ever@@
6443
+
6444
+
6445
+
6446
+
6447
+
6448
+
6449
+ vern@@
6450
+ z@@
6451
+
6452
+
6453
+
6454
+
6455
+
6456
+
6457
+
6458
+
6459
+
6460
+
6461
+ 3@@
6462
+ tho@@
6463
+
6464
+
6465
+
6466
+
6467
+
6468
+
6469
+ ko@@
6470
+ ge@@
6471
+
6472
+
6473
+
6474
+
6475
+
6476
+
6477
+
6478
+
6479
+
6480
+ gue@@
6481
+
6482
+
6483
+
6484
+ ily
6485
+
6486
+
6487
+
6488
+
6489
+
6490
+ ours
6491
+
6492
+
6493
+
6494
+
6495
+
6496
+
6497
+ make
6498
+
6499
+
6500
+
6501
+
6502
+
6503
+
6504
+
6505
+
6506
+
6507
+
6508
+
6509
+
6510
+
6511
+
6512
+
6513
+
6514
+ order
6515
+
6516
+
6517
+ val@@
6518
+
6519
+
6520
+
6521
+
6522
+ go
6523
+
6524
+
6525
+
6526
+
6527
+
6528
+
6529
+
6530
+
6531
+
6532
+
6533
+
6534
+
6535
+
6536
+ age
6537
+
6538
+
6539
+
6540
+
6541
+
6542
+ am@@
6543
+
6544
+
6545
+ cess
6546
+
6547
+ he
6548
+
6549
+
6550
+
6551
+
6552
+
6553
+
6554
+ sel@@
6555
+
6556
+
6557
+
6558
+ help
6559
+
6560
+
6561
+
6562
+
6563
+
6564
+
6565
+
6566
+ ort
6567
+
6568
+
6569
+
6570
+
6571
+
6572
+
6573
+
6574
+
6575
+
6576
+ product
6577
+
6578
+
6579
+
6580
+
6581
+
6582
+
6583
+
6584
+
6585
+
6586
+ pa@@
6587
+
6588
+
6589
+
6590
+
6591
+
6592
+
6593
+
6594
+
6595
+
6596
+ part
6597
+ found
6598
+
6599
+
6600
+
6601
+
6602
+
6603
+
6604
+
6605
+
6606
+
6607
+
6608
+ wha@@
6609
+
6610
+ ks
6611
+
6612
+
6613
+
6614
+
6615
+ ste@@
6616
+
6617
+
6618
+
6619
+ tain
6620
+ street
6621
+
6622
+
6623
+
6624
+
6625
+ on@@
6626
+
6627
+
6628
+
6629
+
6630
+
6631
+
6632
+
6633
+
6634
+
6635
+ mail
6636
+
6637
+
6638
+
6639
+
6640
+
6641
+ fo@@
6642
+
6643
+
6644
+ la
6645
+
6646
+
6647
+
6648
+ can't
6649
+
6650
+
6651
+
6652
+
6653
+
6654
+
6655
+
6656
+
6657
+ tre@@
6658
+
6659
+
6660
+
6661
+
6662
+ point
6663
+
6664
+
6665
+
6666
+
6667
+
6668
+
6669
+
6670
+
6671
+
6672
+
6673
+
6674
+
6675
+
6676
+
6677
+
6678
+
6679
+
6680
+
6681
+
6682
+
6683
+
6684
+
6685
+
6686
+
6687
+
6688
+
6689
+
6690
+
6691
+
6692
+
6693
+
6694
+
6695
+
6696
+ y@@
6697
+
6698
+
6699
+
6700
+
6701
+
6702
+
6703
+
6704
+
6705
+
6706
+
6707
+ ort@@
6708
+
6709
+
6710
+ o
6711
+
6712
+
6713
+
6714
+
6715
+
6716
+
6717
+
6718
+
6719
+
6720
+ m@@
6721
+
6722
+
6723
+
6724
+ would
6725
+
6726
+
6727
+
6728
+
6729
+ ls
6730
+
6731
+
6732
+
6733
+
6734
+ ques@@
6735
+
6736
+
6737
+
6738
+
6739
+
6740
+
6741
+
6742
+
6743
+
6744
+
6745
+
6746
+
6747
+
6748
+
6749
+
6750
+
6751
+ thing
6752
+ q@@
6753
+ fre@@
6754
+
6755
+ beach
6756
+
6757
+
6758
+
6759
+
6760
+
6761
+
6762
+
6763
+
6764
+
6765
+ '@@
6766
+
6767
+
6768
+
6769
+
6770
+ mar@@
6771
+
6772
+ made
6773
+
6774
+
6775
+
6776
+
6777
+
6778
+
6779
+
6780
+
6781
+
6782
+ little
6783
+
6784
+
6785
+
6786
+
6787
+
6788
+
6789
+
6790
+
6791
+
6792
+
6793
+
6794
+ o@@
6795
+
6796
+
6797
+
6798
+
6799
+
6800
+
6801
+
6802
+
6803
+
6804
+
6805
+
6806
+
6807
+
6808
+
6809
+ tal
6810
+
6811
+
6812
+
6813
+
6814
+
6815
+
6816
+
6817
+
6818
+
6819
+
6820
+
6821
+
6822
+
6823
+
6824
+
6825
+
6826
+
6827
+
6828
+
6829
+
6830
+
6831
+
6832
+
6833
+
6834
+
6835
+
6836
+
6837
+
6838
+
6839
+ sequence
6840
+
6841
+ ure
6842
+
6843
+ thous@@
6844
+
6845
+
6846
+
6847
+
6848
+ ten
6849
+
6850
+
6851
+
6852
+
6853
+
6854
+
6855
+
6856
+
6857
+
6858
+
6859
+
6860
+
6861
+
6862
+
6863
+
6864
+
6865
+ des
6866
+ 1@@
6867
+
6868
+
6869
+
6870
+ ving
6871
+
6872
+ ly
6873
+
6874
+
6875
+
6876
+
6877
+
6878
+
6879
+
6880
+ nor@@
6881
+
6882
+
6883
+
6884
+ coun@@
6885
+
6886
+ 宿
6887
+
6888
+
6889
+
6890
+
6891
+ enjo@@
6892
+
6893
+
6894
+
6895
+
6896
+
6897
+
6898
+
6899
+
6900
+ mple
6901
+
6902
+
6903
+
6904
+ when
6905
+
6906
+
6907
+
6908
+
6909
+
6910
+
6911
+
6912
+
6913
+
6914
+ 羿
6915
+
6916
+
6917
+ 廿
6918
+ sur@@
6919
+
6920
+
6921
+ 湿
6922
+
6923
+
6924
+
6925
+ school
6926
+
6927
+
6928
+
6929
+
6930
+ self
6931
+
6932
+
6933
+
6934
+
6935
+
6936
+ thousand
6937
+
6938
+
6939
+ lie@@
6940
+ 沿
6941
+
6942
+
6943
+
6944
+
6945
+
6946
+
6947
+ loo@@
6948
+
6949
+
6950
+
6951
+
6952
+
6953
+
6954
+
6955
+
6956
+ ���
6957
+
6958
+
6959
+
6960
+ u
6961
+
6962
+
6963
+ ur@@
6964
+
6965
+
6966
+ number
6967
+
6968
+ place
6969
+
6970
+
6971
+ ver@@
6972
+
6973
+
6974
+
6975
+
6976
+
6977
+
6978
+
6979
+
6980
+
6981
+
6982
+
6983
+
6984
+
6985
+
6986
+
6987
+
6988
+
6989
+ very
6990
+
6991
+
6992
+
6993
+
6994
+ t's
6995
+
6996
+ do
6997
+
6998
+
6999
+
7000
+ feel
7001
+
7002
+
7003
+ der
7004
+
7005
+ gen@@
7006
+
7007
+
7008
+
7009
+
7010
+
7011
+
7012
+
7013
+
7014
+
7015
+
7016
+
7017
+
7018
+
7019
+
7020
+
7021
+ kno@@
7022
+
7023
+
7024
+
7025
+
7026
+
7027
+ ch
7028
+
7029
+
7030
+
7031
+
7032
+
7033
+
7034
+ ames
7035
+ wel@@
7036
+
7037
+
7038
+ tra@@
7039
+
7040
+
7041
+
7042
+
7043
+
7044
+
7045
+
7046
+
7047
+
7048
+
7049
+
7050
+
7051
+
7052
+
7053
+
7054
+
7055
+
7056
+
7057
+
7058
+
7059
+
7060
+
7061
+
7062
+ ity
7063
+
7064
+
7065
+
7066
+
7067
+
7068
+
7069
+
7070
+
7071
+
7072
+
7073
+ looking
7074
+
7075
+
7076
+
7077
+
7078
+ chi@@
7079
+
7080
+
7081
+ about
7082
+
7083
+ es@@
7084
+
7085
+
7086
+
7087
+
7088
+
7089
+
7090
+
7091
+ und@@
7092
+
7093
+
7094
+
7095
+
7096
+
7097
+
7098
+
7099
+
7100
+
7101
+ they
7102
+
7103
+
7104
+
7105
+
7106
+
7107
+
7108
+ door
7109
+
7110
+
7111
+
7112
+
7113
+
7114
+ 饿
7115
+
7116
+ ry
7117
+
7118
+
7119
+
7120
+
7121
+ ye@@
7122
+ those
7123
+
7124
+
7125
+
7126
+ city
7127
+
7128
+
7129
+ better
7130
+
7131
+
7132
+
7133
+
7134
+
7135
+
7136
+
7137
+
7138
+ you@@
7139
+
7140
+
7141
+
7142
+
7143
+
7144
+
7145
+
7146
+
7147
+
7148
+
7149
+
7150
+
7151
+
7152
+
7153
+
7154
+
7155
+ ki@@
7156
+ tle
7157
+
7158
+
7159
+ years
7160
+
7161
+
7162
+
7163
+ re
7164
+
7165
+ tur@@
7166
+ deci@@
7167
+
7168
+
7169
+ bl@@
7170
+ of
7171
+
7172
+
7173
+
7174
+
7175
+
7176
+
7177
+
7178
+
7179
+
7180
+
7181
+
7182
+ six@@
7183
+
7184
+ cust@@
7185
+
7186
+
7187
+
7188
+
7189
+
7190
+ other
7191
+
7192
+
7193
+
7194
+
7195
+
7196
+
7197
+ lu@@
7198
+
7199
+
7200
+
7201
+
7202
+
7203
+
7204
+
7205
+
7206
+
7207
+
7208
+
7209
+ off
7210
+
7211
+
7212
+
7213
+
7214
+
7215
+
7216
+
7217
+
7218
+
7219
+
7220
+
7221
+
7222
+
7223
+
7224
+
7225
+
7226
+
7227
+ 退
7228
+
7229
+
7230
+
7231
+ cur@@
7232
+
7233
+
7234
+
7235
+
7236
+
7237
+
7238
+
7239
+ app@@
7240
+
7241
+
7242
+
7243
+
7244
+
7245
+
7246
+
7247
+
7248
+
7249
+
7250
+
7251
+ table
7252
+ @
7253
+
7254
+
7255
+
7256
+
7257
+
7258
+
7259
+
7260
+
7261
+
7262
+ let
7263
+
7264
+
7265
+
7266
+ rou@@
7267
+
7268
+
7269
+
7270
+
7271
+
7272
+
7273
+
7274
+
7275
+
7276
+
7277
+
7278
+
7279
+ per@@
7280
+
7281
+
7282
+
7283
+
7284
+
7285
+
7286
+
7287
+
7288
+
7289
+
7290
+ low
7291
+
7292
+
7293
+ could
7294
+
7295
+
7296
+
7297
+
7298
+
7299
+ then
7300
+
7301
+
7302
+
7303
+
7304
+
7305
+
7306
+
7307
+
7308
+ might
7309
+
7310
+
7311
+
7312
+ ge
7313
+
7314
+
7315
+
7316
+
7317
+ pla@@
7318
+
7319
+
7320
+
7321
+
7322
+
7323
+ tic@@
7324
+
7325
+
7326
+
7327
+
7328
+
7329
+
7330
+
7331
+
7332
+
7333
+
7334
+
7335
+
7336
+
7337
+
7338
+
7339
+
7340
+
7341
+ nee@@
7342
+
7343
+
7344
+
7345
+
7346
+ change
7347
+ j
7348
+
7349
+
7350
+
7351
+
7352
+
7353
+
7354
+
7355
+
7356
+
7357
+
7358
+
7359
+
7360
+
7361
+
7362
+
7363
+
7364
+
7365
+
7366
+ some@@
7367
+
7368
+
7369
+
7370
+
7371
+
7372
+
7373
+
7374
+
7375
+
7376
+
7377
+
7378
+
7379
+
7380
+
7381
+
7382
+
7383
+
7384
+
7385
+
7386
+
7387
+
7388
+ ab@@
7389
+
7390
+
7391
+
7392
+
7393
+
7394
+
7395
+
7396
+
7397
+ restaur@@
7398
+
7399
+
7400
+
7401
+ his
7402
+
7403
+
7404
+
7405
+
7406
+
7407
+
7408
+
7409
+
7410
+ tru@@
7411
+
7412
+
7413
+
7414
+
7415
+
7416
+
7417
+
7418
+
7419
+
7420
+ sto@@
7421
+
7422
+ were
7423
+
7424
+
7425
+
7426
+
7427
+
7428
+
7429
+
7430
+
7431
+
7432
+
7433
+
7434
+
7435
+
7436
+
7437
+
7438
+
7439
+
7440
+
7441
+
7442
+ .
7443
+
7444
+
7445
+
7446
+
7447
+
7448
+
7449
+
7450
+
7451
+
7452
+
7453
+ re's
7454
+
7455
+
7456
+
7457
+ tr@@
7458
+
7459
+
7460
+
7461
+
7462
+
7463
+
7464
+
7465
+
7466
+
7467
+
7468
+
7469
+
7470
+
7471
+
7472
+
7473
+
7474
+
7475
+
7476
+
7477
+
7478
+
7479
+
7480
+ ic
7481
+
7482
+
7483
+
7484
+
7485
+
7486
+
7487
+
7488
+
7489
+
7490
+ dn't
7491
+
7492
+
7493
+
7494
+
7495
+
7496
+
7497
+
7498
+
7499
+
7500
+
7501
+
7502
+
7503
+
7504
+
7505
+
7506
+
7507
+
7508
+
7509
+
7510
+
7511
+
7512
+
7513
+
7514
+
7515
+
7516
+ off@@
7517
+
7518
+
7519
+
7520
+
7521
+
7522
+
7523
+
7524
+
7525
+
7526
+ that@@
7527
+
7528
+
7529
+
7530
+
7531
+ um
7532
+
7533
+
7534
+
7535
+
7536
+
7537
+
7538
+
7539
+
7540
+
7541
+
7542
+
7543
+
7544
+
7545
+
7546
+
7547
+
7548
+
7549
+
7550
+
7551
+
7552
+ five
7553
+
7554
+
7555
+ ver
7556
+
7557
+
7558
+
7559
+
7560
+
7561
+ ep
7562
+
7563
+
7564
+
7565
+
7566
+
7567
+
7568
+
7569
+ line
7570
+
7571
+
7572
+
7573
+
7574
+ le
7575
+
7576
+ 穿
7577
+
7578
+
7579
+
7580
+ feat@@
7581
+
7582
+
7583
+
7584
+
7585
+
7586
+
7587
+
7588
+
7589
+
7590
+
7591
+ ad
7592
+
7593
+
7594
+
7595
+
7596
+
7597
+
7598
+
7599
+ lea@@
7600
+
7601
+
7602
+
7603
+
7604
+
7605
+
7606
+
7607
+
7608
+
7609
+
7610
+
7611
+
7612
+
7613
+
7614
+
7615
+
7616
+
7617
+
7618
+
7619
+
7620
+
7621
+
7622
+
7623
+
7624
+
7625
+
7626
+
7627
+
7628
+
7629
+
7630
+
7631
+
7632
+
7633
+
7634
+
7635
+ stay
7636
+
7637
+
7638
+
7639
+
7640
+
7641
+
7642
+
7643
+
7644
+
7645
+
7646
+
7647
+ be@@
7648
+
7649
+
7650
+
7651
+
7652
+
7653
+
7654
+
7655
+
7656
+
7657
+
7658
+
7659
+
7660
+
7661
+
7662
+
7663
+
7664
+
7665
+
7666
+
7667
+
7668
+
7669
+ which
7670
+
7671
+
7672
+
7673
+
7674
+
7675
+
7676
+
7677
+
7678
+
7679
+
7680
+
7681
+
7682
+
7683
+
7684
+
7685
+
7686
+
7687
+
7688
+
7689
+
7690
+
7691
+
7692
+
7693
+
7694
+
7695
+ ting
7696
+
7697
+
7698
+
7699
+
7700
+
7701
+
7702
+
7703
+
7704
+ me@@
7705
+ set
7706
+
7707
+ h
7708
+
7709
+
7710
+
7711
+
7712
+
7713
+
7714
+
7715
+
7716
+
7717
+
7718
+
7719
+
7720
+
7721
+
7722
+ ex@@
7723
+
7724
+
7725
+
7726
+ ws
7727
+
7728
+
7729
+ ll@@
7730
+
7731
+
7732
+
7733
+
7734
+
7735
+
7736
+
7737
+
7738
+
7739
+
7740
+
7741
+
7742
+
7743
+
7744
+ who@@
7745
+
7746
+
7747
+
7748
+
7749
+
7750
+
7751
+ pol@@
7752
+
7753
+ s
7754
+
7755
+
7756
+
7757
+
7758
+
7759
+
7760
+
7761
+
7762
+ speci@@
7763
+ ha@@
7764
+
7765
+ 鹿
7766
+ ak@@
7767
+
7768
+ m
7769
+
7770
+
7771
+
7772
+
7773
+
7774
+
7775
+
7776
+
7777
+ and
7778
+
7779
+
7780
+
7781
+ tion
7782
+
7783
+
7784
+
7785
+
7786
+
7787
+
7788
+
7789
+
7790
+
7791
+
7792
+ gy
7793
+
7794
+
7795
+
7796
+ ti@@
7797
+
7798
+
7799
+
7800
+
7801
+
7802
+
7803
+
7804
+
7805
+
7806
+
7807
+
7808
+
7809
+ public
7810
+
7811
+
7812
+ six
7813
+
7814
+ being
7815
+
7816
+
7817
+ ical
7818
+
7819
+
7820
+
7821
+
7822
+
7823
+ la@@
7824
+
7825
+
7826
+
7827
+ cap@@
7828
+
7829
+
7830
+
7831
+
7832
+
7833
+
7834
+ fu@@
7835
+ b@@
7836
+
7837
+
7838
+
7839
+
7840
+
7841
+
7842
+ act
7843
+
7844
+
7845
+
7846
+
7847
+
7848
+
7849
+
7850
+
7851
+
7852
+
7853
+
7854
+
7855
+
7856
+
7857
+
7858
+
7859
+
7860
+
7861
+
7862
+ see@@
7863
+
7864
+
7865
+
7866
+
7867
+
7868
+
7869
+ au@@
7870
+
7871
+
7872
+
7873
+ don@@
7874
+
7875
+
7876
+ fir@@
7877
+
7878
+
7879
+
7880
+
7881
+
7882
+
7883
+
7884
+
7885
+ ca@@
7886
+
7887
+
7888
+
7889
+
7890
+
7891
+
7892
+
7893
+ ven
7894
+
7895
+
7896
+
7897
+
7898
+
7899
+
7900
+ uni@@
7901
+
7902
+
7903
+
7904
+
7905
+
7906
+
7907
+
7908
+
7909
+
7910
+
7911
+
7912
+
7913
+
7914
+ roo@@
7915
+
7916
+
7917
+
7918
+
7919
+
7920
+
7921
+ fin@@
7922
+
7923
+
7924
+
7925
+
7926
+
7927
+
7928
+
7929
+
7930
+
7931
+
7932
+
7933
+
7934
+ service
7935
+
7936
+
7937
+
7938
+
7939
+
7940
+
7941
+
7942
+ ne@@
7943
+
7944
+
7945
+
7946
+
7947
+
7948
+
7949
+
7950
+
7951
+
7952
+
7953
+ ��
7954
+
7955
+
7956
+
7957
+
7958
+
7959
+
7960
+
7961
+
7962
+
7963
+
7964
+
7965
+
7966
+ sp@@
7967
+
7968
+
7969
+
7970
+
7971
+
7972
+
7973
+
7974
+ tan
7975
+ ul@@
7976
+
7977
+
7978
+
7979
+
7980
+ must
7981
+
7982
+
7983
+
7984
+
7985
+ buy
7986
+
7987
+
7988
+
7989
+ house
7990
+
7991
+
7992
+
7993
+
7994
+
7995
+
7996
+
7997
+ rest
7998
+
7999
+
8000
+
8001
+
8002
+
8003
+
8004
+
8005
+
8006
+
8007
+
8008
+
8009
+ zer@@
8010
+
8011
+ air@@
8012
+
8013
+
8014
+
8015
+
8016
+
8017
+
8018
+
8019
+
8020
+
8021
+
8022
+ came
8023
+
8024
+
8025
+
8026
+
8027
+
8028
+
8029
+
8030
+ wer
8031
+
8032
+
8033
+
8034
+
8035
+
8036
+ ils
8037
+
8038
+
8039
+
8040
+
8041
+
8042
+
8043
+
8044
+
8045
+
8046
+
8047
+
8048
+ xt
8049
+
8050
+
8051
+
8052
+
8053
+
8054
+
8055
+
8056
+
8057
+
8058
+ cu@@
8059
+
8060
+
8061
+
8062
+
8063
+
8064
+
8065
+ ve@@
8066
+
8067
+
8068
+ ili@@
8069
+
8070
+
8071
+
8072
+
8073
+
8074
+
8075
+
8076
+
8077
+
8078
+
8079
+
8080
+
8081
+
8082
+
8083
+ 't
8084
+
8085
+
8086
+
8087
+
8088
+
8089
+ offer
8090
+
8091
+
8092
+
8093
+
8094
+
8095
+
8096
+
8097
+
8098
+
8099
+
8100
+
8101
+
8102
+
8103
+
8104
+
8105
+ pr@@
8106
+
8107
+
8108
+
8109
+
8110
+
8111
+
8112
+
8113
+
8114
+
8115
+
8116
+
8117
+
8118
+
8119
+
8120
+
8121
+
8122
+
8123
+
8124
+
8125
+
8126
+
8127
+
8128
+
8129
+
8130
+
8131
+
8132
+
8133
+
8134
+
8135
+
8136
+
8137
+
8138
+
8139
+
8140
+
8141
+
8142
+ cour@@
8143
+
8144
+
8145
+ 2@@
8146
+
8147
+
8148
+
8149
+ or@@
8150
+
8151
+
8152
+
8153
+ view
8154
+ possi@@
8155
+
8156
+
8157
+
8158
+
8159
+
8160
+
8161
+
8162
+
8163
+
8164
+
8165
+
8166
+
8167
+
8168
+
8169
+
8170
+
8171
+
8172
+
8173
+
8174
+
8175
+
8176
+
8177
+ ei@@
8178
+
8179
+
8180
+
8181
+
8182
+
8183
+ shipping
8184
+ ght
8185
+
8186
+
8187
+
8188
+
8189
+ 访
8190
+ four
8191
+
8192
+
8193
+
8194
+
8195
+
8196
+
8197
+
8198
+
8199
+
8200
+
8201
+
8202
+
8203
+
8204
+
8205
+
8206
+
8207
+
8208
+
8209
+
8210
+
8211
+
8212
+
8213
+
8214
+
8215
+
8216
+
8217
+
8218
+
8219
+
8220
+
8221
+
8222
+
8223
+
8224
+ less
8225
+
8226
+
8227
+ food
8228
+
8229
+
8230
+
8231
+
8232
+
8233
+
8234
+
8235
+
8236
+
8237
+
8238
+
8239
+
8240
+ 怀
8241
+
8242
+
8243
+
8244
+
8245
+
8246
+
8247
+
8248
+
8249
+
8250
+
8251
+
8252
+
8253
+
8254
+
8255
+
8256
+
8257
+
8258
+
8259
+
8260
+
8261
+ was
8262
+
8263
+
8264
+
8265
+
8266
+
8267
+
8268
+
8269
+ throu@@
8270
+
8271
+
8272
+
8273
+
8274
+
8275
+
8276
+ serv@@
8277
+
8278
+
8279
+
8280
+
8281
+
8282
+ want
8283
+
8284
+
8285
+ p@@
8286
+ en
8287
+
8288
+
8289
+
8290
+ life
8291
+
8292
+
8293
+
8294
+
8295
+
8296
+
8297
+
8298
+
8299
+ v
8300
+ dress
8301
+
8302
+
8303
+
8304
+
8305
+
8306
+
8307
+
8308
+
8309
+
8310
+
8311
+
8312
+
8313
+
8314
+
8315
+
8316
+
8317
+
8318
+
8319
+
8320
+
8321
+
8322
+
8323
+
8324
+
8325
+
8326
+
8327
+
8328
+
8329
+
8330
+
8331
+ il@@
8332
+
8333
+
8334
+
8335
+ mi@@
8336
+
8337
+
8338
+ yo@@
8339
+
8340
+
8341
+
8342
+
8343
+
8344
+
8345
+
8346
+
8347
+
8348
+
8349
+
8350
+
8351
+
8352
+
8353
+ ju@@
8354
+
8355
+
8356
+
8357
+
8358
+
8359
+
8360
+
8361
+
8362
+
8363
+
8364
+
8365
+
8366
+
8367
+
8368
+
8369
+
8370
+
8371
+
8372
+
8373
+
8374
+
8375
+
8376
+ so@@
8377
+
8378
+
8379
+ spon@@
8380
+
8381
+
8382
+
8383
+
8384
+
8385
+
8386
+
8387
+
8388
+
8389
+
8390
+
8391
+
8392
+
8393
+
8394
+ c@@
8395
+
8396
+
8397
+
8398
+
8399
+
8400
+
8401
+
8402
+
8403
+
8404
+ <unk>
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ WeTextProcessing
2
+ onnxruntime
3
+ soundfile
4
+ librosa
5
+ scipy
6
+ numpy
7
+ typeguard==2.13.3
8
+ kaldi-native-fbank
9
+ PyYAML>=5.1.2
test_wavs/vad_example.wav ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a7431f0169ef76ef630c945a1d2c3675d8c8c2df2ae4a6b16f8a88ba1bccfbbb
3
+ size 2261722
transcribe.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import soundfile
2
+ from funasr_onnx import Fsmn_vad, Paraformer, CT_Transformer
3
+ import datetime
4
+ from itn.chinese.inverse_normalizer import InverseNormalizer
5
+ import argparse
6
+
7
+ def get_args():
8
+ parser = argparse.ArgumentParser(
9
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter
10
+ )
11
+
12
+ parser.add_argument(
13
+ "--model-dir",
14
+ type=str,
15
+ default="./models",
16
+ help="onnx export model directory",
17
+ )
18
+
19
+ parser.add_argument(
20
+ "--wav-path",
21
+ type=str,
22
+ default="./test_wavs/vad_example.wav",
23
+ help="audio file path in .wav format",
24
+ )
25
+
26
+ return parser.parse_args()
27
+
28
+ def process_time(milliseconds):
29
+ delta = datetime.timedelta(milliseconds=milliseconds)
30
+ time_str = str(delta)
31
+ time_parts = time_str.split(".")[0].split(":")
32
+ time_hms = "{:02d}:{:02d}:{:02d}".format(int(time_parts[0]), int(time_parts[1]), int(time_parts[2]))
33
+ return time_hms
34
+
35
+ def get_models(model_dir):
36
+ vad_model_dir = model_dir + "/speech_fsmn_vad_zh-cn-16k-common-pytorch"
37
+ asr_model_dir = model_dir + "/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch"
38
+ punc_model_dir = model_dir + "/punc_ct-transformer_zh-cn-common-vocab272727-pytorch"
39
+ asr_model = Paraformer(asr_model_dir, batch_size=1, plot_timestamp_to="./", pred_bias=0) # cpu
40
+ punc_model= CT_Transformer(punc_model_dir)
41
+ vad_model = Fsmn_vad(vad_model_dir)
42
+ return asr_model, vad_model, punc_model
43
+
44
+ def load_audio(wav_path):
45
+ speech, sample_rate = soundfile.read(wav_path)
46
+ return speech, sample_rate
47
+
48
+ def transcribe(speech, asr_model, vad_model=None, punc_model=None, invnormalizer=None):
49
+ if vad_model:
50
+ segments_info = vad_model(audio_in=speech)
51
+ assert len(segments_info) == 1, "only support batch_size 1"
52
+ for seg in segments_info[0]:
53
+ if seg[1] == -1: # end of speech
54
+ seg[1] = len(speech) // 16
55
+ seg_speech = speech[seg[0]*16:seg[1]*16]
56
+
57
+ result = asr_model(seg_speech)
58
+ result = result[0]['preds'][0]
59
+ if invnormalizer:
60
+ result = invnormalizer.normalize(result)
61
+ if punc_model:
62
+ result = punc_model(result)
63
+ result = result[0]
64
+ item = f"{process_time(seg[0])}-->{process_time(seg[1])} {result}"
65
+ yield item
66
+
67
+ if __name__ == "__main__":
68
+ args = get_args()
69
+ asr_model, vad_model, punc_model = get_models(args.model_dir)
70
+ invnormalizer = InverseNormalizer()
71
+ speech, _ = load_audio(args.wav_path)
72
+ for item in transcribe(speech, asr_model, vad_model, punc_model, invnormalizer):
73
+ print(item)