日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)

發(fā)布時間:2024/7/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 作業(yè)1:機器翻譯
    • 1. 日期轉換
      • 1.1 數據集
    • 2. 用注意力模型進行機器翻譯
      • 2.1 注意力機制
    • 3. 可視化注意力
  • 作業(yè)2:觸發(fā)詞檢測
    • 1. 數據合成:創(chuàng)建語音數據集
      • 1.1 聽一下數據
      • 1.2 音頻轉頻譜
      • 1.3 生成一個訓練樣本
      • 1.4 全部訓練集
      • 1.5 開發(fā)集
    • 2. 模型
      • 2.1 建模
      • 2.2 訓練
      • 2.3 測試模型
    • 3. 預測
      • 3.3 在開發(fā)集上測試
    • 4. 用自己的樣本測試

測試題:參考博文

筆記:W3.序列模型和注意力機制

作業(yè)1:機器翻譯

建立一個神經元機器翻譯(NMT)模型來將人類可讀日期(25th of June, 2009)翻譯成機器可讀日期(“2009—06—25”)

將使用注意力模型來實現這一點,這是最復雜的 序列到序列 模型之一

注意安裝包

pip install Faker==2.0.0 pip install babel
  • 導入包
from keras.layers import Bidirectional, Concatenate, Permute, Dot, Input, LSTM, Multiply from keras.layers import RepeatVector, Dense, Activation, Lambda from keras.optimizers import Adam from keras.utils import to_categorical from keras.models import load_model, Model import keras.backend as K import numpy as npfrom faker import Faker import random from tqdm import tqdm from babel.dates import format_date from nmt_utils import * import matplotlib.pyplot as plt %matplotlib inline

1. 日期轉換

模型將輸入以各種可能格式書寫的日期(例如"the 29th of August 1958", "03/30/1968", "24 JUNE 1987"),并將其轉換為標準化、機器可讀的日期(如 "1958-08-29", "1968-03-30", "1987-06-24")。我們將讓模型學習以通用機器可讀格式YYYY-MM-DD輸出日期

1.1 數據集

  • 1萬條數據
m = 10000 dataset, human_vocab, machine_vocab, inv_machine_vocab = load_dataset(m)
  • 打印看看
dataset[:10]

輸出:

[('9 may 1998', '1998-05-09'),('10.11.19', '2019-11-10'),('9/10/70', '1970-09-10'),('saturday april 28 1990', '1990-04-28'),('thursday january 26 1995', '1995-01-26'),('monday march 7 1983', '1983-03-07'),('sunday may 22 1988', '1988-05-22'),('08 jul 2008', '2008-07-08'),('8 sep 1999', '1999-09-08'),('thursday january 1 1981', '1981-01-01')]

上面加載了:

  • dataset
  • human_vocab: 字典, human readable dates : an integer-valued index
  • machine_vocab: 字典, machine readable dates : an integer-valued index
  • inv_machine_vocab: 字典,machine_vocab的反向映射,indices : characters
Tx = 30 # 最大輸入長度,如果大了,就截斷 Ty = 10 # 輸出日期長度 YYYY-MM-DD X, Y, Xoh, Yoh = preprocess_data(dataset, human_vocab, machine_vocab, Tx, Ty)print("X.shape:", X.shape) print("Y.shape:", Y.shape) print("Xoh.shape:", Xoh.shape) print("Yoh.shape:", Yoh.shape)

輸出:

X.shape: (10000, 30) Y.shape: (10000, 10) Xoh.shape: (10000, 30, 37) # 37 是 len(human_vocab) Yoh.shape: (10000, 10, 11) # 11 是 日期中的字符種類 0-9 和 ‘-’
  • 看看數據(數據不夠長度的,會補充 pad,所有 x 都是 30 長度)
index = 52 print("Source date:", dataset[index][0]) print("Target date:", dataset[index][1]) print() print("Source after preprocessing (indices):", X[index]) print("Target after preprocessing (indices):", Y[index]) print() print("Source after preprocessing (one-hot):", Xoh[index]) print("Target after preprocessing (one-hot):", Yoh[index])

輸出:

Source date: saturday october 9 1976 Target date: 1976-10-09Source after preprocessing (indices): [29 13 30 31 28 16 13 34 0 26 15 30 26 14 17 28 0 12 0 4 12 10 9 3636 36 36 36 36 36] Target after preprocessing (indices): [ 2 10 8 7 0 2 1 0 1 10]Source after preprocessing (one-hot): [[0. 0. 0. ... 0. 0. 0.][0. 0. 0. ... 0. 0. 0.][0. 0. 0. ... 0. 0. 0.]...[0. 0. 0. ... 0. 0. 1.][0. 0. 0. ... 0. 0. 1.][0. 0. 0. ... 0. 0. 1.]] Target after preprocessing (one-hot): [[0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.][0. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0.][0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 0.][1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.][0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.][1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.][0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]]

2. 用注意力模型進行機器翻譯

2.1 注意力機制


context<t>=∑t′=0Txα<t,t′>a<t′>context^{<t>} = \sum_{t' = 0}^{T_x} \alpha^{<t,t'>}a^{<t'>}context<t>=t=0Tx??α<t,t>a<t>

將輸入重復幾次:https://keras.io/zh/layers/core/#repeatvector
輸入張量通過 axis 軸串聯起來 https://keras.io/zh/layers/merge/#concatenate_1
https://keras.io/zh/layers/wrappers/#bidirectional

# Defined shared layers as global variables repeator = RepeatVector(Tx) concatenator = Concatenate(axis=-1) densor1 = Dense(10, activation = "tanh") densor2 = Dense(1, activation = "relu") activator = Activation(softmax, name='attention_weights') # We are using a custom softmax(axis = 1) loaded in this notebookdotor = Dot(axes = 1)
  • 注意力計算
# GRADED FUNCTION: one_step_attentiondef one_step_attention(a, s_prev):"""Performs one step of attention: Outputs a context vector computed as a dot product of the attention weights"alphas" and the hidden states "a" of the Bi-LSTM.Arguments:a -- hidden state output of the Bi-LSTM, numpy-array of shape (m, Tx, 2*n_a)s_prev -- previous hidden state of the (post-attention) LSTM, numpy-array of shape (m, n_s)Returns:context -- context vector, input of the next (post-attetion) LSTM cell"""### START CODE HERE #### Use repeator to repeat s_prev to be of shape (m, Tx, n_s) so that you can concatenate it with all hidden states "a" (≈ 1 line)s_prev = repeator(s_prev)# Use concatenator to concatenate a and s_prev on the last axis (≈ 1 line)concat = concatenator(inputs=[a, s_prev])# Use densor1 to propagate concat through a small fully-connected neural network to compute the "intermediate energies" variable e. (≈1 lines)e = densor1(concat)# Use densor2 to propagate e through a small fully-connected neural network to compute the "energies" variable energies. (≈1 lines)energies = densor2(e)# Use "activator" on "energies" to compute the attention weights "alphas" (≈ 1 line)alphas = activator(energies)# Use dotor together with "alphas" and "a" to compute the context vector to be given to the next (post-attention) LSTM-cell (≈ 1 line)context = dotor([alphas, a])### END CODE HERE ###return context n_a = 32 n_s = 64 post_activation_LSTM_cell = LSTM(n_s, return_state = True) output_layer = Dense(len(machine_vocab), activation=softmax) # GRADED FUNCTION: modeldef model(Tx, Ty, n_a, n_s, human_vocab_size, machine_vocab_size):"""Arguments:Tx -- length of the input sequenceTy -- length of the output sequencen_a -- hidden state size of the Bi-LSTMn_s -- hidden state size of the post-attention LSTMhuman_vocab_size -- size of the python dictionary "human_vocab"machine_vocab_size -- size of the python dictionary "machine_vocab"Returns:model -- Keras model instance"""# Define the inputs of your model with a shape (Tx,)# Define s0 and c0, initial hidden state for the decoder LSTM of shape (n_s,)X = Input(shape=(Tx, human_vocab_size))s0 = Input(shape=(n_s,), name='s0')c0 = Input(shape=(n_s,), name='c0')s = s0c = c0# Initialize empty list of outputsoutputs = []### START CODE HERE #### Step 1: Define your pre-attention Bi-LSTM. Remember to use return_sequences=True. (≈ 1 line)a = Bidirectional(LSTM(n_a, return_sequences=True))(X)# Step 2: Iterate for Ty stepsfor t in range(Ty):# Step 2.A: Perform one step of the attention mechanism to get back the context vector at step t (≈ 1 line)context = one_step_attention(a, s)# Step 2.B: Apply the post-attention LSTM cell to the "context" vector.# Don't forget to pass: initial_state = [hidden state, cell state] (≈ 1 line)s, _, c = post_activation_LSTM_cell(context, initial_state=[s, c])# Step 2.C: Apply Dense layer to the hidden state output of the post-attention LSTM (≈ 1 line)out = output_layer(s)# Step 2.D: Append "out" to the "outputs" list (≈ 1 line)outputs.append(out)# Step 3: Create model instance taking three inputs and returning the list of outputs. (≈ 1 line)model = Model(inputs=[X, s0, c0], outputs=outputs)### END CODE HERE ###return model
  • 定義模型
model = model(Tx, Ty, n_a, n_s, len(human_vocab), len(machine_vocab))
  • 定義優(yōu)化器、配置模型
### START CODE HERE ### (≈2 lines) opt = Adam(learning_rate=0.005, beta_1=0.9, beta_2=0.999,decay=0.01) model.compile(loss='categorical_crossentropy',optimizer=opt, metrics=['accuracy']) ### END CODE HERE ###
  • 訓練
s0 = np.zeros((m, n_s)) c0 = np.zeros((m, n_s)) outputs = list(Yoh.swapaxes(0,1)) model.fit([Xoh, s0, c0], outputs, epochs=1, batch_size=100)
  • 為了節(jié)省時間,老師準備好了訓練好的權值
model.load_weights('models/model.h5') EXAMPLES = ['5th Otc 2019', '5 April 09', '21th of August 2016', 'Tue 10 Jul 2007', 'Saturday May 9 2018', 'March 3 2001', 'March 3rd 2001', '1 March 2001'] for example in EXAMPLES:source = string_to_int(example, Tx, human_vocab)source = np.array(list(map(lambda x: to_categorical(x, num_classes=len(human_vocab)), source))).swapaxes(0,1)source = source.transpose() #交換兩個軸source = np.expand_dims(source, axis=0) #增加一維軸prediction = model.predict([source, s0, c0])prediction = np.argmax(prediction, axis = -1)output = [inv_machine_vocab[int(i)] for i in prediction]print("source:", example)print("output:", ''.join(output))

輸出:

source: 5th Otc 2019 output: 2019-10-05 source: 5 April 09 output: 2009-04-05 source: 21th of August 2016 output: 2016-08-20 source: Tue 10 Jul 2007 output: 2007-07-10 source: Saturday May 9 2018 output: 2018-05-09 source: March 3 2001 output: 2001-03-03 source: March 3rd 2001 output: 2001-03-03 source: 1 March 2001 output: 2001-03-01

3. 可視化注意力

attention_map = plot_attention_map(model, human_vocab, inv_machine_vocab, "Tuesday 09 Oct 1993", num = 7, n_s = 64)


可以看出大部分的注意力用來預測年份

作業(yè)2:觸發(fā)詞檢測

  • 導入包
import numpy as np from pydub import AudioSegment import random import sys import io import os import glob import IPython from td_utils import * %matplotlib inline

1. 數據合成:創(chuàng)建語音數據集

1.1 聽一下數據

有正向音頻 activates(觸發(fā)詞)、負向音頻(非觸發(fā)詞)、背景噪聲

IPython.display.Audio("./raw_data/backgrounds/1.wav")

1.2 音頻轉頻譜

音頻為 44100 Hz 的,時長 10秒

x = graph_spectrogram("audio_examples/example_train.wav")



本作業(yè)訓練樣本時長 10 秒,頻譜時間步為 5511,所以 Tx=5511T_x = 5511Tx?=5511

_, data = wavfile.read("audio_examples/example_train.wav") print("Time steps in audio recording before spectrogram", data[:,0].shape) print("Time steps in input after spectrogram", x.shape)

輸出:

Time steps in audio recording before spectrogram (441000,) Time steps in input after spectrogram (101, 5511)
  • 定義參數
Tx = 5511 # The number of time steps input to the model from the spectrogram n_freq = 101 # Number of frequencies input to the model at each time step of the spectrogram Ty = 1375 # The number of time steps in the output of our model

1.3 生成一個訓練樣本

  • 隨機選擇10s 背景噪聲
  • 隨機插入 0-4 段 觸發(fā)詞音頻
  • 隨機插入 0-2 段 非觸發(fā)詞音頻
# Load audio segments using pydub activates, negatives, backgrounds = load_raw_audio()print("background len: " + str(len(backgrounds[0]))) # Should be 10,000, since it is a 10 sec clip print("activate[0] len: " + str(len(activates[0]))) # Maybe around 1000, since an "activate" audio clip is usually around 1 sec (but varies a lot) print("activate[1] len: " + str(len(activates[1]))) # Different "activate" clips can have different lengths

輸出:

background len: 10000 activate[0] len: 721 activate[1] len: 731
  • 獲取背景音頻中的隨機時間段
def get_random_time_segment(segment_ms):"""Gets a random time segment of duration segment_ms in a 10,000 ms audio clip.Arguments:segment_ms -- the duration of the audio clip in ms ("ms" stands for "milliseconds")Returns:segment_time -- a tuple of (segment_start, segment_end) in ms"""segment_start = np.random.randint(low=0, high=10000-segment_ms) # Make sure segment doesn't run past the 10sec background segment_end = segment_start + segment_ms - 1return (segment_start, segment_end)
  • 檢測插入的音頻是否重疊
# GRADED FUNCTION: is_overlappingdef is_overlapping(segment_time, previous_segments):"""Checks if the time of a segment overlaps with the times of existing segments.Arguments:segment_time -- a tuple of (segment_start, segment_end) for the new segmentprevious_segments -- a list of tuples of (segment_start, segment_end) for the existing segmentsReturns:True if the time segment overlaps with any of the existing segments, False otherwise"""segment_start, segment_end = segment_time### START CODE HERE ### (≈ 4 line)# Step 1: Initialize overlap as a "False" flag. (≈ 1 line)overlap = False# Step 2: loop over the previous_segments start and end times.# Compare start/end times and set the flag to True if there is an overlap (≈ 3 lines)for previous_start, previous_end in previous_segments:if previous_end >= segment_start and previous_start <= segment_end:overlap = True### END CODE HERE ###return overlap
  • 插入音頻
# GRADED FUNCTION: insert_audio_clipdef insert_audio_clip(background, audio_clip, previous_segments):"""Insert a new audio segment over the background noise at a random time step, ensuring that the audio segment does not overlap with existing segments.Arguments:background -- a 10 second background audio recording. audio_clip -- the audio clip to be inserted/overlaid. previous_segments -- times where audio segments have already been placedReturns:new_background -- the updated background audio"""# Get the duration of the audio clip in mssegment_ms = len(audio_clip)### START CODE HERE ### # Step 1: Use one of the helper functions to pick a random time segment onto which to insert # the new audio clip. (≈ 1 line)segment_time = get_random_time_segment(segment_ms)# Step 2: Check if the new segment_time overlaps with one of the previous_segments. If so, keep # picking new segment_time at random until it doesn't overlap. (≈ 2 lines)while is_overlapping(segment_time, previous_segments):segment_time = get_random_time_segment(segment_ms)# Step 3: Add the new segment_time to the list of previous_segments (≈ 1 line)previous_segments.append(segment_time)### END CODE HERE #### Step 4: Superpose audio segment and backgroundnew_background = background.overlay(audio_clip, position = segment_time[0])return new_background, segment_time
  • 插入標簽 1
# GRADED FUNCTION: insert_onesdef insert_ones(y, segment_end_ms):"""Update the label vector y. The labels of the 50 output steps strictly after the end of the segment should be set to 1. By strictly we mean that the label of segment_end_y should be 0 while, the50 followinf labels should be ones.Arguments:y -- numpy array of shape (1, Ty), the labels of the training examplesegment_end_ms -- the end time of the segment in msReturns:y -- updated labels"""# duration of the background (in terms of spectrogram time-steps)segment_end_y = int(segment_end_ms * Ty / 10000.0)# Add 1 to the correct index in the background label (y)### START CODE HERE ### (≈ 3 lines)for i in range(segment_end_y+1, segment_end_y+51):if i < Ty:y[0, i] = 1### END CODE HERE ###return y
  • 合成訓練數據
# GRADED FUNCTION: create_training_exampledef create_training_example(background, activates, negatives):"""Creates a training example with a given background, activates, and negatives.Arguments:background -- a 10 second background audio recordingactivates -- a list of audio segments of the word "activate"negatives -- a list of audio segments of random words that are not "activate"Returns:x -- the spectrogram of the training exampley -- the label at each time step of the spectrogram"""# Set the random seednp.random.seed(18)# Make background quieterbackground = background - 20### START CODE HERE #### Step 1: Initialize y (label vector) of zeros (≈ 1 line)y = np.zeros((1, Ty))# Step 2: Initialize segment times as empty list (≈ 1 line)previous_segments = []### END CODE HERE #### Select 0-4 random "activate" audio clips from the entire list of "activates" recordingsnumber_of_activates = np.random.randint(0, 5)random_indices = np.random.randint(len(activates), size=number_of_activates)random_activates = [activates[i] for i in random_indices]### START CODE HERE ### (≈ 3 lines)# Step 3: Loop over randomly selected "activate" clips and insert in backgroundfor random_activate in random_activates:# Insert the audio clip on the backgroundbackground, segment_time = insert_audio_clip(background, random_activate, previous_segments)# Retrieve segment_start and segment_end from segment_timesegment_start, segment_end = segment_time# Insert labels in "y"y = insert_ones(y, segment_end)### END CODE HERE #### Select 0-2 random negatives audio recordings from the entire list of "negatives" recordingsnumber_of_negatives = np.random.randint(0, 3)random_indices = np.random.randint(len(negatives), size=number_of_negatives)random_negatives = [negatives[i] for i in random_indices]### START CODE HERE ### (≈ 2 lines)# Step 4: Loop over randomly selected negative clips and insert in backgroundfor random_negative in random_negatives:# Insert the audio clip on the background background, _ = insert_audio_clip(background, random_negative, previous_segments)### END CODE HERE #### Standardize the volume of the audio clip background = match_target_amplitude(background, -20.0)# Export new training example file_handle = background.export("train" + ".wav", format="wav")print("File (train.wav) was saved in your directory.")# Get and plot spectrogram of the new recording (background with superposition of positive and negatives)x = graph_spectrogram("train.wav")return x, y x, y = create_training_example(backgrounds[0], activates, negatives)

plt.plot(y[0])

1.4 全部訓練集

老師已經處理完了所有數據

# Load preprocessed training examples X = np.load("./XY_train/X.npy") Y = np.load("./XY_train/Y.npy")

1.5 開發(fā)集

使用真人錄制的音頻

# Load preprocessed dev set examples X_dev = np.load("./XY_dev/X_dev.npy") Y_dev = np.load("./XY_dev/Y_dev.npy")

2. 模型

  • 導入包
from keras.callbacks import ModelCheckpoint from keras.models import Model, load_model, Sequential from keras.layers import Dense, Activation, Dropout, Input, Masking, TimeDistributed, LSTM, Conv1D from keras.layers import GRU, Bidirectional, BatchNormalization, Reshape from keras.optimizers import Adam

2.1 建模


模型先由一個 1維的卷積 來抽取一些特征,還可以加速GRU計算只需要處理 1375 個時間步,而不是5511個

注意:不要使用雙向RNN,我們需要檢測到觸發(fā)詞后馬上輸出動作,如果使用雙向RNN,我們需要等待 10s 音頻被記錄下來,再判斷

  • 一些 Keras 參考

conv1d https://keras.io/zh/layers/convolutional/#conv1d

BN https://keras.io/zh/layers/normalization/#batchnormalization

GRU https://keras.io/zh/layers/recurrent/#gru

timedistributed https://keras.io/zh/layers/wrappers/#timedistributed

# GRADED FUNCTION: modeldef model(input_shape):"""Function creating the model's graph in Keras.Argument:input_shape -- shape of the model's input data (using Keras conventions)Returns:model -- Keras model instance"""X_input = Input(shape = input_shape)### START CODE HERE #### Step 1: CONV layer (≈4 lines)X = Conv1D(filters=196,kernel_size=15,strides=4)(X_input) # CONV1DX = BatchNormalization()(X) # Batch normalizationX = Activation('relu')(X) # ReLu activationX = Dropout(rate=0.8)(X) # dropout (use 0.8)# Step 2: First GRU Layer (≈4 lines)X = GRU(128, return_sequences=True)(X) # GRU (use 128 units and return the sequences)X = Dropout(rate=0.8)(X) # dropout (use 0.8)X = BatchNormalization()(X) # Batch normalization# Step 3: Second GRU Layer (≈4 lines)X = GRU(128, return_sequences=True)(X) # GRU (use 128 units and return the sequences)X = Dropout(rate=0.8)(X) # dropout (use 0.8)X = BatchNormalization()(X) # Batch normalizationX = Dropout(rate=0.8)(X) # dropout (use 0.8)# Step 4: Time-distributed dense layer (≈1 line)X = TimeDistributed(Dense(1, activation = "sigmoid"))(X) # time distributed (sigmoid)### END CODE HERE ###model = Model(inputs = X_input, outputs = X)return model model = model(input_shape = (Tx, n_freq)) model.summary()

輸出:

Model: "model_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_2 (InputLayer) (None, 5511, 101) 0 _________________________________________________________________ conv1d_2 (Conv1D) (None, 1375, 196) 297136 _________________________________________________________________ batch_normalization_2 (Batch (None, 1375, 196) 784 _________________________________________________________________ activation_2 (Activation) (None, 1375, 196) 0 _________________________________________________________________ dropout_2 (Dropout) (None, 1375, 196) 0 _________________________________________________________________ gru_2 (GRU) (None, 1375, 128) 124800 _________________________________________________________________ dropout_3 (Dropout) (None, 1375, 128) 0 _________________________________________________________________ batch_normalization_3 (Batch (None, 1375, 128) 512 _________________________________________________________________ gru_3 (GRU) (None, 1375, 128) 98688 _________________________________________________________________ dropout_4 (Dropout) (None, 1375, 128) 0 _________________________________________________________________ batch_normalization_4 (Batch (None, 1375, 128) 512 _________________________________________________________________ dropout_5 (Dropout) (None, 1375, 128) 0 _________________________________________________________________ time_distributed_1 (TimeDist (None, 1375, 1) 129 ================================================================= Total params: 522,561 Trainable params: 521,657 Non-trainable params: 904

2.2 訓練

訓練很費時,在4000個樣本上,老師已經訓練好了該模型

model = load_model('./models/tr_model.h5')

再用我們的數據集,訓練1代

opt = Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, decay=0.01) model.compile(loss='binary_crossentropy', optimizer=opt, metrics=["accuracy"]) model.fit(X, Y, batch_size = 5, epochs=1)

2.3 測試模型

loss, acc = model.evaluate(X_dev, Y_dev) print("Dev set accuracy = ", acc)

輸出:

25/25 [==============================] - 1s 46ms/step Dev set accuracy = 0.9427199959754944

但是 準確率 在這里不是一個好的衡量標準,因為大部分標簽都是0,都預測為0,準確率也會很高,應該用 F1值等

3. 預測

def detect_triggerword(filename):plt.subplot(2, 1, 1)x = graph_spectrogram(filename)# the spectogram outputs (freqs, Tx) and we want (Tx, freqs) to input into the modelx = x.swapaxes(0,1)x = np.expand_dims(x, axis=0)predictions = model.predict(x)plt.subplot(2, 1, 2)plt.plot(predictions[0,:,0])plt.ylabel('probability')plt.show()return predictions

一旦估計了在每個輸出步驟檢測到單詞“activate”的概率,當概率高于某個閾值時,您可以觸發(fā)“chiming”聲音播放。此外,在說“activate”之后,有很多個 y 值可能接近1,但我們只想發(fā)出一次蜂鳴音。所以最多每75個輸出步驟插入一個蜂鳴音。這將有助于防止我們?yōu)椤癮ctivate”的單個實例插入兩個蜂鳴音。(這與計算機視覺的非最大值抑制類似)

chime_file = "audio_examples/chime.wav" def chime_on_activate(filename, predictions, threshold):audio_clip = AudioSegment.from_wav(filename)chime = AudioSegment.from_wav(chime_file)Ty = predictions.shape[1]# Step 1: Initialize the number of consecutive output steps to 0consecutive_timesteps = 0# Step 2: Loop over the output steps in the yfor i in range(Ty):# Step 3: Increment consecutive output stepsconsecutive_timesteps += 1# Step 4: If prediction is higher than the threshold and more than 75 consecutive output steps have passedif predictions[0,i,0] > threshold and consecutive_timesteps > 75:# Step 5: Superpose audio and background using pydubaudio_clip = audio_clip.overlay(chime, position = ((i / Ty) * audio_clip.duration_seconds)*1000)# Step 6: Reset consecutive output steps to 0consecutive_timesteps = 0audio_clip.export("chime_output.wav", format='wav')

3.3 在開發(fā)集上測試

  • 第一段語音,有1個觸發(fā)
filename = "./raw_data/dev/1.wav" prediction = detect_triggerword(filename) chime_on_activate(filename, prediction, 0.5) IPython.display.Audio("./chime_output.wav")

  • 第二段語音,有2個觸發(fā)

4. 用自己的樣本測試

# Preprocess the audio to the correct format def preprocess_audio(filename):# Trim or pad audio segment to 10000mspadding = AudioSegment.silent(duration=10000)segment = AudioSegment.from_wav(filename)[:10000]segment = padding.overlay(segment)# Set frame rate to 44100segment = segment.set_frame_rate(44100)# Export as wavsegment.export(filename, format='wav') your_filename = "audio_examples/my_audio.wav" preprocess_audio(your_filename) IPython.display.Audio(your_filename) # listen to the audio you uploaded chime_threshold = 0.5 prediction = detect_triggerword(your_filename) chime_on_activate(your_filename, prediction, chime_threshold) IPython.display.Audio("./chime_output.wav")


本文地址:https://michael.blog.csdn.net/article/details/108933798

我的CSDN博客地址 https://michael.blog.csdn.net/

長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!

總結

以上是生活随笔為你收集整理的05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品美女免费视频 | 亚洲欧美视频在线 | 亚洲a在线观看 | 久久99久久99精品中文字幕 | avove黑丝 | 精品在线观看视频 | 中文字幕免费观看视频 | 免费在线观看黄 | 少妇啪啪av入口 | 精品亚洲午夜久久久久91 | 亚洲欧美成人在线 | 中国黄色一级大片 | 五月婷婷综合在线观看 | 伊人视频| 免费成人在线视频网站 | 99久久精品免费看 | 91夫妻自拍| 日韩在线免费观看视频 | 成人在线播放网站 | 国产永久免费高清在线观看视频 | 很黄很污的视频网站 | 亚州av网站 | 99精品国产一区二区三区不卡 | 免费看的黄色片 | 在线观看黄色的网站 | 制服丝袜在线 | 丁香六月久久综合狠狠色 | 国产精品久久久久婷婷二区次 | 国产精品日韩在线播放 | 91精品国产99久久久久久红楼 | 欧美精品一区二区三区一线天视频 | 在线免费观看黄色小说 | 亚洲精品视频二区 | 91欧美精品 | 国产精品福利久久久 | 又黄又爽又色无遮挡免费 | 国产精品日韩在线 | 人人狠狠综合久久亚洲婷 | 亚洲精品456在线播放 | 欧美久久久久久久久久 | 在线电影91 | 最近日韩中文字幕中文 | 久久精品欧美一区二区三区麻豆 | 久久久久国产成人精品亚洲午夜 | 国产精品99久久久久的智能播放 | 91麻豆精品国产自产 | 色综合亚洲精品激情狠狠 | 亚洲精品免费在线 | 国产精品免费视频久久久 | 91丨九色丨国产女 | 天堂在线视频免费观看 | 亚洲3级 | av大片免费看 | 黄av在线 | 69国产精品成人在线播放 | 在线亚洲欧美视频 | 国产美女精品视频 | 日韩精品观看 | 婷婷丁香久久五月婷婷 | 亚洲最大av| www.国产在线观看 | 久久不射电影网 | 亚洲国产午夜精品 | 国外成人在线视频网站 | 999久久久免费精品国产 | 婷婷综合久久 | 久久久午夜剧场 | 国产高清在线看 | 欧美日韩一级视频 | 麻豆国产精品永久免费视频 | 狠狠地日 | 国产成人精品一区二三区 | 高清色免费 | 91视频久久久久久 | 69中文字幕 | 人人插人人做 | 免费中文字幕视频 | 亚洲一区免费在线 | 在线视频 91| 国产成人91| 国产精品免费在线播放 | 视频在线99re | www免费视频com━ | 一区二区三区日韩在线观看 | 久久久久久久免费观看 | 精品日韩中文字幕 | 欧美成人黄色片 | 国产69精品久久app免费版 | 久久国产高清 | 精品播放 | 丁香六月伊人 | 免费日韩 精品中文字幕视频在线 | 国产五月天婷婷 | 午夜av日韩| 亚洲视频2 | 中文字幕在线观看一区 | 福利二区视频 | 激情欧美一区二区免费视频 | 亚洲狠狠操 | 色综合五月天 | 欧美日韩国产一区二区在线观看 | 亚洲va天堂va欧美ⅴa在线 | 午夜丰满寂寞少妇精品 | 亚洲视频 中文字幕 | 狠狠操欧美 | 日韩欧美在线国产 | 亚洲黄色小说网址 | 亚洲精品1234区 | 能在线观看的日韩av | 国产999免费视频 | 亚洲成人av在线 | av网站在线观看免费 | 亚州精品一二三区 | 国产亚洲精品xxoo | 久久久精品免费观看 | 日韩av播放在线 | 黄色av电影网 | 亚洲人天堂 | 在线免费观看欧美日韩 | 日韩和的一区二在线 | 日韩精品视频网站 | 91九色最新 | 国产免费久久av | 成人一级影视 | 四虎国产视频 | 国产精品高清在线观看 | 日韩在线视 | 天天操偷偷干 | 奇米影视777影音先锋 | 91在线成人| 色偷偷88欧美精品久久久 | 可以免费观看的av片 | 久久伊人综合 | 精品国产电影一区 | 国产精品免费久久久久久 | 九九视频精品在线 | 午夜精品视频福利 | 免费成人在线观看 | 国产成人久久久久 | 亚洲在线精品 | freejavvideo日本免费 | 亚洲精品88欧美一区二区 | 日本乱视频 | 精品久久久久久综合日本 | av电影中文字幕在线观看 | 操操操av| 五月天天在线 | 国产精品久久久久影院日本 | 亚洲欧洲国产日韩精品 | 欧日韩在线视频 | 久久久国产一区二区三区 | 在线成人短视频 | 日韩亚洲国产精品 | 亚洲成人黄色在线观看 | 国产精品久久久久久高潮 | 一区二区精品久久 | 国产亚洲视频在线 | 精品一区二区三区久久 | 91中文字幕 | 四虎www. | 国产精品专区一 | 在线观看一区视频 | 日韩av高潮 | 国产成人黄色 | 精品99免费视频 | 国产丝袜美腿在线 | 国产伦理久久精品久久久久_ | 成 人 黄 色 片 在线播放 | 色在线视频网 | 日韩精品一区二区三区丰满 | 五月婷婷操 | 日韩激情片在线观看 | 中文在线www| 亚洲黄网站 | 亚洲免费a | 免费在线看v | 日韩免费电影 | 国产成人资源 | 久香蕉| 黄视频色网站 | 日韩毛片在线播放 | 成人午夜电影免费在线观看 | 日韩欧美91| 韩国一区二区三区视频 | 国产精品成人久久久久 | 国产精品久久久久影院 | 麻豆视频大全 | 日韩中文字幕免费电影 | 黄色三级免费看 | 五月天六月色 | 亚洲二区精品 | 亚洲人成影院在线 | 久久精品日本啪啪涩涩 | av 一区二区三区四区 | 九九热免费在线观看 | 成人动漫精品一区二区 | 中文字幕超清在线免费 | 黄色小说免费观看 | 探花视频在线观看免费 | 色网站在线 | 国产成人精品免费在线观看 | 国内久久看 | 五月婷婷激情综合网 | 久久热首页 | 久久久毛片| aaaaaa毛片| 亚洲免费在线观看视频 | 色婷av| 99久久久国产免费 | 在线视频精品播放 | www.久久久.com | 伊人狠狠色丁香婷婷综合 | 免费黄色在线播放 | 玖操 | 婷婷精品在线视频 | 日本一区二区三区视频在线播放 | 国产最新在线观看 | 麻豆91精品 | 在线电影 你懂得 | 毛片视频网址 | 亚洲国产精品va在线看黑人 | 久久免费精品 | 日本久久电影网 | 亚洲精品视频网站在线观看 | 日韩在线观看av | 在线观看日韩中文字幕 | 久久永久视频 | 97精品国自产拍在线观看 | 青草视频在线 | 日批在线看 | 91精品在线免费视频 | 精品女同一区二区三区在线观看 | 国产一区免费在线观看 | 在线观看色网 | 精品一区精品二区高清 | 中文字幕视频免费观看 | 日韩欧美一区二区三区在线观看 | av在线不卡观看 | 天天操天天添 | 欧美日韩国产高清视频 | 69久久夜色精品国产69 | 国产视频一区在线播放 | 中文字幕首页 | www.啪啪.com| 在线观看 亚洲 | 久草在线视频免赞 | 成人性生交大片免费观看网站 | 97在线影视 | 国产精品美女久久久久久2018 | 欧美成人中文字幕 | 久久久精品国产免费观看一区二区 | 毛片精品免费在线观看 | 中文字幕一区二 | 久久视频精品在线 | 黄色大片中国 | 婷婷成人综合 | 99热国产在线中文 | 久久精品一区二区三区视频 | 四虎国产| 丁香五婷 | 丰满少妇在线 | 成人黄色小视频 | 国产一区欧美在线 | 99视频久久| 久久免费视频7 | 永久黄网站色视频免费观看w | 中文一二区 | 国产精品电影一区 | 免费日韩精品 | 国产一级黄 | 精品主播网红福利资源观看 | 91麻豆精品国产自产 | 特级毛片爽www免费版 | 看片黄网站 | 韩日电影在线 | 福利视频入口 | 黄色视屏在线免费观看 | 69久久久| 国产精品国产三级国产aⅴ9色 | 国产 一区二区三区 在线 | 精品国产伦一区二区三区观看方式 | 天天天色 | 亚洲一级久久 | 不卡的av在线播放 | 国产麻豆视频在线观看 | 最近中文字幕免费视频 | 国产中文字幕在线视频 | 久久草在线视频国产 | 四虎在线免费观看 | 国产成人久 | 婷婷六月综合网 | 日韩欧美黄色网址 | 五月婷婷色播 | 免费a v网站| 免费av小说 | 亚洲九九精品 | 久久综合九色综合97婷婷女人 | 手机看片1042| 天天操欧美 | 黄色成人av网址 | 婷婷综合 | 韩国av不卡 | 日韩精品一区二区三区高清免费 | 久久爱资源网 | 欧美日韩中文字幕视频 | 国产精品欧美久久久久久 | 久久99精品久久久久久清纯直播 | 91成人精品国产刺激国语对白 | 免费午夜网站 | 特黄色大片 | 玖玖精品在线 | 免费看高清毛片 | 永久免费的av电影 | 欧美日韩在线第一页 | 国产高清视频 | 菠萝菠萝蜜在线播放 | 91九色精品女同系列 | 久久99国产精品视频 | 久久九九国产精品 | 久久成人视屏 | 一区二区三区日韩在线 | 国产.精品.日韩.另类.中文.在线.播放 | 国产xxxxx在线观看 | 日韩欧美黄色网址 | 欧美a在线看 | 91在线视频导航 | 精品一区av | 国产亚洲在线视频 | 欧美日本啪啪无遮挡网站 | 久久人人97超碰国产公开结果 | 久久99精品热在线观看 | 成人在线小视频 | 色视频在线看 | 天天操 夜夜操 | 日韩videos高潮hd | 亚洲高清网站 | 一二三精品视频 | 丝袜+亚洲+另类+欧美+变态 | 黄色片网站大全 | 成人黄色大片在线观看 | 中文字幕a∨在线乱码免费看 | 99在线热播精品免费99热 | 国产黄色免费在线观看 | 亚洲电影院| av丝袜在线 | 日韩精品亚洲专区在线观看 | 福利视频在线看 | 日韩久久久久久久久 | 六月丁香激情综合色啪小说 | 久久人人爽人人人人片 | 亚洲一区在线看 | 午夜av网站 | 日韩欧美精品在线观看视频 | 亚洲国产精品电影在线观看 | 99精品欧美一区二区三区 | 精品国产成人在线影院 | 中文字幕av最新 | 麻豆传媒视频在线免费观看 | 国产综合香蕉五月婷在线 | 在线导航福利 | 久久久国产精品麻豆 | 久草在线久草在线2 | 中文在线www | 在线视频麻豆 | av中文字幕网 | www178ccom视频在线 | 久久69精品| 久久www免费人成看片高清 | 久久久精品高清 | 欧美激情综合五月 | 日韩a在线| 激情婷婷六月 | 欧美日韩一区二区三区不卡 | 91免费视频网站在线观看 | 五月开心婷婷网 | 日韩a级黄色| 午夜在线免费观看视频 | 国内精品小视频 | 午夜视频在线观看一区二区三区 | 国产美女免费观看 | 色综合天天天天做夜夜夜夜做 | 久久久久亚洲精品成人网小说 | 亚洲免费在线 | 国产精品美女久久久久久久 | 久久国产麻豆 | 亚洲精品视频观看 | 伊人久久精品久久亚洲一区 | 五月天激情婷婷 | 国产成人精品国内自产拍免费看 | 婷婷爱五月天 | 久久精久久精 | 狠狠的干 | 精品久久网站 | 日韩精品中文字幕在线观看 | 国产精品成人一区二区三区吃奶 | 日韩免费看的电影 | 日韩视频www | 久久综合五月天婷婷伊人 | 一区二区视频在线观看免费 | 国产福利小视频在线 | 亚洲免费精品一区二区 | 亚洲高清久久久 | 亚洲涩涩网 | 亚洲免费成人av电影 | 三级视频日韩 | 国产人成一区二区三区影院 | 黄色a在线观看 | 91视频在线免费看 | 91色在线观看视频 | 黄色片毛片 | 亚洲一级二级三级 | 免费日韩视 | 久久久久免费电影 | 精品久久久久久综合 | 久久视影 | 麻豆一区二区 | 国产精品欧美一区二区三区不卡 | 国产蜜臀av | 久久久久久美女 | 在线成人短视频 | 婷婷五综合 | 极品嫩模被强到高潮呻吟91 | 在线观看午夜av | 久操久| 日日操狠狠干 | 在线视频一二三 | 超碰夜夜| 国产资源| 黄网在线免费观看 | 久久电影日韩 | 五月香视频在线观看 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 精品久久久网 | 欧美日韩视频一区二区三区 | 欧美日韩中文国产一区发布 | 99久久精品免费看国产 | 伊人色综合久久天天 | 日韩一级片网址 | 久草手机视频 | 96在线 | 女人18片毛片90分钟 | 99久精品 | 久久理论电影网 | 亚州日韩中文字幕 | 8x8x在线观看视频 | 黄色三级免费 | 久久久久久欧美二区电影网 | 美女免费电影 | 免费福利在线视频 | 九九免费在线观看视频 | 日韩综合视频在线观看 | 久久免费视频在线观看6 | 亚洲免费公开视频 | 久久亚洲欧美日韩精品专区 | 天天操夜夜拍 | 97精品国产97久久久久久粉红 | 三级在线播放视频 | 久久99九九99精品 | 国产精品69av | 国产成人精品一区二区在线观看 | 久久久久国产精品一区二区 | 成人国产精品久久久久久亚洲 | 99热国产在线中文 | 五月天综合激情 | 国产精成人品免费观看 | 欧美有色 | 欧美日韩免费观看一区二区三区 | 日韩一区二区三区免费电影 | 久一网站| 欧美片网站yy | 久久污视频 | 一区二区三区视频网站 | av在线小说 | av高清一区二区三区 | 免费的黄色av | 亚洲精品456在线播放乱码 | 黄色网址在线播放 | 91在线最新 | 久久艹综合 | 五月婷婷在线观看 | 91精品秘密在线观看 | 国产精品黄色 | 天天综合色天天综合 | 日韩经典一区二区三区 | 在线观看香蕉视频 | 在线观看网站你懂的 | 日日夜夜精品视频 | 欧美一级日韩三级 | 欧美精品午夜 | 国内精品视频在线播放 | 欧美a级片网站 | 久久免费视频在线观看6 | 国产免费一区二区三区最新6 | 久久免费视频在线观看30 | 亚洲一区二区精品在线 | 网址你懂的在线观看 | 狠狠狠色丁香综合久久天下网 | 日本三级全黄少妇三2023 | 女女av在线 | 久久日韩精品 | 久久av免费观看 | 69人人 | 国产在线观看av | 免费99精品国产自在在线 | 精品亚洲成人 | 日韩av在线一区二区 | av一级在线 | 久久少妇免费视频 | 色综合天天 | 国产免费叼嘿网站免费 | 国产在线a | 亚洲国产三级在线 | 97色婷婷成人综合在线观看 | 丝袜足交在线 | 69中文字幕 | 美女视频国产 | 五月天视频网站 | www.久热| 国产午夜精品在线 | 中文字幕在线观看视频一区 | 96久久| 成人h在线 | 青青河边草免费直播 | 国产剧情一区二区在线观看 | 丝袜少妇在线 | 亚洲成年人在线播放 | 正在播放国产精品 | 天天碰天天操视频 | 青青草国产精品 | 麻豆小视频在线观看 | 亚洲成年人免费网站 | 国产伦精品一区二区三区四区视频 | 日本激情视频中文字幕 | 在线观看免费 | 精品一区91 | 免费在线观看国产精品 | 高清中文字幕av | 99免费在线播放99久久免费 | 久久视频免费观看 | 在线观看日本韩国电影 | 国外调教视频网站 | 免费毛片一区二区三区久久久 | 人人操日日干 | 四虎成人精品 | 久久午夜网 | av官网| 久久免费资源 | 我要色综合天天 | 成人小视频在线免费观看 | 九九九在线观看 | 一级黄色免费网站 | 91亚洲国产| 久久精品国产v日韩v亚洲 | 日日干美女 | 97av色| 黄色免费网站大全 | 草久在线视频 | 美女久久久久久久久久久 | 日本激情视频中文字幕 | 欧美人zozo| 成人在线视频论坛 | 免费色婷婷 | av电影av在线| 在线观看精品视频 | 午夜国产在线 | 91丨九色丨蝌蚪丨老版 | 亚洲欧美在线综合 | 在线免费视频 你懂得 | 精品一区二三区 | 日日夜夜中文字幕 | 久久99在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 国产成人1区 | 丁香在线观看完整电影视频 | 日韩在线一二三区 | 国产人成一区二区三区影院 | 日本3级在线观看 | 亚洲天天摸日日摸天天欢 | 久草在线免费电影 | 视频一区在线免费观看 | 人人爽人人爽人人片av免 | 粉嫩aⅴ一区二区三区 | 天天爱综合| 欧美日韩中文国产 | 91成人免费看| 中文字幕在线看 | 国产精品久久久久久久免费观看 | 久久成人免费 | 久草免费在线视频观看 | 激情 一区二区 | 97香蕉久久国产在线观看 | 97精品国自产拍在线观看 | 日日躁你夜夜躁你av蜜 | 日韩在线电影观看 | 欧美 日韩 国产 成人 在线 | 中文字幕在线看视频 | 天堂va在线高清一区 | 中文字幕资源网 | 亚洲综合射 | 天天插天天狠 | 国产精品热| 福利视频一二区 | 最近日韩中文字幕中文 | 午夜精品一区二区三区视频免费看 | 欧美a级片免费看 | 亚洲国产成人高清精品 | 男女激情麻豆 | 在线国产中文字幕 | 天天操天天干天天操天天干 | 亚洲最新毛片 | 99免费在线视频 | 久久国产精品视频 | 亚洲最新av在线网址 | 911香蕉 | 99久久久国产精品 | 精品国产一区二区三区日日嗨 | 96久久欧美麻豆网站 | 久久精品一区二区国产 | www.777奇米 | bbbbb女女女女女bbbbb国产 | 欧美精品久久久久久久久久丰满 | 国产视频2区| 国产精品嫩草69影院 | 99视频在线精品免费观看2 | 成年人精品| 色999在线| 天天操天天干天天插 | 91精品国自产拍天天拍 | 精品久久久久久久久久久院品网 | 少妇bbb好爽| 97色婷婷| 色吊丝在线永久观看最新版本 | 国产精品久久久久久吹潮天美传媒 | 中文字幕精品www乱入免费视频 | 91丨九色丨蝌蚪丨对白 | 色婷婷av一区二 | 97精品国产97久久久久久免费 | 成人黄色在线观看视频 | 久草免费在线观看 | 欧美色综合久久 | 五月天婷亚洲天综合网精品偷 | 91成人精品视频 | aaa毛片视频 | 欧洲精品久久久久毛片完整版 | 日韩免费一区二区 | 精品久久久久久久久亚洲 | 久草在线看片 | 亚a在线 | 久久久综合精品 | 成人久久精品视频 | 99r在线播放 | 伊人天天操 | 狠狠干 狠狠操 | 国产亚洲日本 | 精品电影一区二区 | 日韩在线观看一区二区 | 色多多视频在线 | 黄色免费高清视频 | 亚洲综合在线视频 | 天天做天天爱天天爽综合网 | 在线日韩 | 99精品国产成人一区二区 | 91丝袜美腿 | 不卡av在线播放 | 91色吧| 亚洲精品久久久蜜臀下载官网 | 久草免费看 | 国产在线视频不卡 | 久久精品一区二区国产 | 日韩com| 在线观看av黄色 | 亚洲国产视频直播 | 国产生活一级片 | 97在线精品 | 国产一二三四在线观看视频 | 黄色亚洲| 久久久午夜电影 | 射射射综合网 | 日韩欧美电影网 | 夜夜爱av | 一本色道久久综合亚洲二区三区 | 久久精品毛片基地 | 99精品国产一区二区三区麻豆 | 九九热视频在线免费观看 | 91在线视频网址 | 最近中文字幕大全中文字幕免费 | 久久久久久美女 | 日韩av一区二区在线播放 | www久草| 亚洲成人中文在线 | 久久久久亚洲精品国产 | 国产九九精品视频 | 毛片基地黄久久久久久天堂 | 视频国产在线 | 成年人在线视频观看 | 成x99人av在线www | 丁香激情五月婷婷 | 国产精品一区二区无线 | 色橹橹欧美在线观看视频高清 | 欧美日韩二三区 | 精品毛片一区二区免费看 | 亚洲精品在线观看不卡 | 玖草影院 | 久久99久久99精品中文字幕 | 黄av资源 | 91成人短视频在线观看 | av电影在线不卡 | 97在线影视 | a黄色片| 丁香五月亚洲综合在线 | 三上悠亚一区二区在线观看 | 国产精品久久久久影视 | 国产不卡视频在线 | 欧美不卡视频在线 | 国产四虎影院 | 在线91视频 | 最新国产在线视频 | 亚洲精品在线免费播放 | 国产精品18毛片一区二区 | 精品久久久久亚洲 | 成人全视频免费观看在线看 | 午夜视频播放 | 黄污视频网站大全 | 国产香蕉97碰碰久久人人 | 91精品欧美一区二区三区 | 91av视频在线免费观看 | 久草影视在线 | 97超碰在线资源 | 草久久久久久 | 久久综合婷婷国产二区高清 | 亚洲精品国精品久久99热 | 99热9 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 色在线国产 | 国产97色 | 亚洲成人一区 | 欧美日韩视频观看 | 国产日产高清dvd碟片 | 国产免费又黄又爽 | 成人免费亚洲 | 97超视频在线观看 | 亚洲成aⅴ人片久久青草影院 | 久草99 | 国产午夜精品免费一区二区三区视频 | 天天玩天天干天天操 | 成人app在线免费观看 | 91最新视频在线观看 | 少妇精品久久久一区二区免费 | 久久久噜噜噜久久久 | 欧美老女人xx | 亚洲国产精品激情在线观看 | 日日夜夜天天综合 | 天天爱天天舔 | 国产精品九九九九九九 | 国产一线二线三线在线观看 | 五月婷婷开心中文字幕 | 久久久久久国产精品久久 | 操操操操网 | 日韩乱码在线 | 91粉色视频| 欧美福利网站 | 粉嫩av一区二区三区四区在线观看 | 国产一区二区三区 在线 | av中文在线观看 | 国产精品成人久久久久久久 | 探花视频在线观看免费 | 最近免费中文视频 | 一区 在线 影院 | 日韩欧美一区二区三区在线观看 | h视频在线看 | 国产黄免费看 | 国内外激情视频 | 亚洲欧美精品在线 | 人人爱人人射 | 亚洲精品理论片 | 欧美日韩高清在线观看 | av爱干| 亚洲成人精品影院 | 中国一级片免费看 | 国产精品久久中文字幕 | 久久久久免费精品视频 | 成人精品一区二区三区中文字幕 | 欧美国产精品久久久久久免费 | 日本激情视频中文字幕 | 日韩免费在线网站 | 日本最大色倩网站www | 亚洲理论电影网 | 亚洲毛片一区二区三区 | 中文字幕在线免费观看视频 | 在线观看国产高清视频 | 国产高清第一页 | 9999精品视频 | 久久久久久国产精品久久 | 激情久久五月天 | 天天玩天天干天天操 | 久久成年人视频 | 一区二区三区高清在线观看 | 中文字幕在线资源 | 日韩在线短视频 | 亚洲成aⅴ人片久久青草影院 | 狠狠色噜噜狠狠狠狠 | 最新高清无码专区 | 成人av影院在线观看 | 精品国产三级 | 欧美日韩视频在线观看一区二区 | 亚洲五月综合 | 在线观看一级 | 久久99久久99免费视频 | 日日夜夜精品视频天天综合网 | 91av视频免费在线观看 | 天天射网站| 色视频在线免费观看 | 精品主播网红福利资源观看 | 欧美一级免费黄色片 | 中文字幕av电影下载 | 日本高清dvd | 国产高清成人av | 成年人免费观看国产 | 麻豆视频免费观看 | 久久久久久激情 | 久久优 | 免费 在线 中文 日本 | 国产亚洲婷婷免费 | 国内久久久久久 | 久久国产精品免费一区 | 成人动漫一区二区 | 丁香六月五月婷婷 | 黄色www免费| 国产精品精品久久久久久 | 成人久久久久久久久久 | 久久久天堂 | 免费观看久久 | 亚洲我射av | 国产成人精品一区二区三区网站观看 | 亚洲日本一区二区在线 | 亚洲精品美女在线观看 | 97成人超碰 | 天天av天天 | 在线免费高清一区二区三区 | 黄色在线观看免费 | 国产精品永久免费在线 | 亚洲精品视频在线观看视频 | 激情久久网 | 日日日日干 | 亚洲精品在线播放视频 | 高清av网站| 91大片网站 | 免费一级日韩欧美性大片 | 日韩视频在线一区 | 九色91福利 | 久久8| 免费看片亚洲 | 激情综合网天天干 | 亚洲精品视频在线观看免费 | 久久午夜电影院 | 欧美色888 | 手机在线欧美 | 精品影院 | 天天干天天干天天干 | 国内丰满少妇猛烈精品播 | 日韩av中文字幕在线免费观看 | 99免费观看视频 | 免费视频色 | 成人小视频在线 | 国产又粗又硬又长又爽的视频 | 丁香六月五月婷婷 | 91漂亮少妇露脸在线播放 | 国产精品永久在线 | 国产免码va在线观看免费 | 亚洲国产美女精品久久久久∴ | 69av视频在线 | 91麻豆精品国产91久久久久久 | 久久国色夜色精品国产 | 国产999精品| 九九爱免费视频在线观看 | 五月天综合激情 | a久久久久久 | 国产精品久久久久久久久久 | 激情欧美一区二区免费视频 | 亚洲综合激情 | 免费看黄视频 | 综合激情av | 国内视频一区二区 | 免费a v在线 | 美女黄频 | 国产成人高清av | 黄色国产在线观看 | 欧美成人xxxxxxxx | 九九免费精品视频 | 丁香视频在线观看 | av一区二区在线观看中文字幕 | 99在线免费视频 | 91爱爱中文字幕 | 亚洲无吗av | 99re久久资源最新地址 | 日韩欧美一区二区在线播放 | 国产亚洲视频中文字幕视频 | 久草国产精品 | av在线播放网址 | 精品视频www | 国产丝袜制服在线 | 午夜精品久久久久久久久久久久久久 | 国产天天爽 | 国产一区成人在线 | 精品国产精品久久 | 少妇自拍av| 色婷婷国产 | 丁香影院在线 | 99久久久久| 国产视频精品网 | 黄色三级网站 | 九九综合九九综合 | 亚洲精品黄 | 一区二区三区在线免费观看 | 久久电影色 | 久久狠狠婷婷 | 黄色www在线观看 | 国产99在线| 四虎最新入口 | 五月婷婷综 | 日韩成人精品一区二区 | 亚洲美女免费精品视频在线观看 | 91亚色免费视频 | 尤物97国产精品久久精品国产 | 免费在线视频一区二区 | 久久精品www人人爽人人 | 国产在线精 | 国产色综合天天综合网 | 欧美精品在线观看免费 | 久久国产精品99久久人人澡 | 久久夜色精品国产欧美乱 | 久久激情小说 | 久久新 | 国产中文视 | 日本久久久久久久久久久 | 国产精品久久久久久久久久妇女 | 欧美伦理电影一区二区 | 成年人看片 | 国产资源站 | 操久 | av成人免费在线 | 免费视频一区 | 日韩中文字幕在线不卡 | 激情在线网| 欧美一区日韩精品 | 免费黄在线观看 | 亚洲成人影音 | 日韩精品91偷拍在线观看 | 免费看污黄网站 | 中文字幕无吗 | 久久伦理视频 | 99久在线精品99re8热视频 | 国产成人免费精品 | 国产日韩欧美在线看 | 综合久久精品 | 成年人在线免费视频观看 | 菠萝菠萝在线精品视频 | 去看片 | 中国一级特黄毛片大片久久 | 操操操综合 | 国产成人精品一区二区三区免费 | 久久国产精品久久w女人spa | 亚洲va欧美va国产va黑人 | 中国美女一级看片 | av在线电影免费观看 | 天天干天天色2020 | 网站免费黄色 | 日日综合网 | 91精品国产九九九久久久亚洲 | 国产一区在线免费 | 国产亚洲精品久久久久久移动网络 | 久久五月天综合 | 91在线免费视频观看 | 国产精品自在线拍国产 | 亚洲综合色丁香婷婷六月图片 | 久久久久久久久久久高潮一区二区 | 911精品视频 | 手机av片 | 最新中文字幕在线资源 | 日韩黄色一级电影 | av短片在线 | 中文字幕第一页在线视频 | 国产精品99久久久久久武松影视 | 国产a免费| 在线涩涩| 久久久福利影院 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 五月天亚洲综合 | 精品免费久久久久久 | 色香com. | 五月天丁香综合 | 一区二区伦理电影 | 国产一区在线视频播放 | 欧美精品中文 | 日韩精品在线播放 | 深夜免费小视频 | 99久久超碰中文字幕伊人 | 在线观看黄污 |