色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

從“你油餅嗎”到意圖路由:Python中文諧音糾錯(cuò)實(shí)戰(zhàn)

從“你油餅嗎”到意圖路由:Python中文諧音糾錯(cuò)實(shí)戰(zhàn) 做語(yǔ)音交互相關(guān)的項(xiàng)目時(shí)經(jīng)常會(huì)遇到一類(lèi)特別“接地氣”的問(wèn)題用戶(hù)對(duì)著智能音箱說(shuō)的不是標(biāo)準(zhǔn)指令而是一句諧音梗、方言詞或者故意刁難的玩笑話。比如“天貓精靈你油餅嗎”這種表達(dá)人一聽(tīng)就懂但設(shè)備端往往識(shí)別成一串和原意毫無(wú)關(guān)系的漢字最后答非所問(wèn)。本文圍繞這類(lèi)中文諧音指令的識(shí)別問(wèn)題從語(yǔ)音交互鏈路講起帶你用 Python 手寫(xiě)一套可運(yùn)行的諧音糾錯(cuò) 意圖路由模塊包含完整的代碼、配置、運(yùn)行結(jié)果和排錯(cuò)清單。不管你是剛接觸 NLP 的學(xué)生還是在做智能硬件 / 客服機(jī)器人 / 語(yǔ)音助手的后端同學(xué)都可以按文中的步驟一步步跑通再替換成自己業(yè)務(wù)里的詞表。1. 從一句“你油餅嗎”說(shuō)起諧音指令為什么會(huì)翻車(chē)1.1 智能語(yǔ)音助手到底經(jīng)歷了哪幾步處理要理解為什么一句“油餅”會(huì)讓設(shè)備卡殼得先把語(yǔ)音助手的處理鏈路拆開(kāi)看。一個(gè)典型的語(yǔ)音交互系統(tǒng)大致包含五段喚醒詞檢測(cè)、ASRAutomatic Speech Recognition自動(dòng)語(yǔ)音識(shí)別、NLUNatural Language Understanding自然語(yǔ)言理解、技能路由、TTSText To Speech語(yǔ)音合成播報(bào)。用戶(hù)說(shuō)話之后設(shè)備先判斷是否被喚醒然后把音頻送去識(shí)別成文本再判斷這句話想干什么交給對(duì)應(yīng)技能最后把結(jié)果讀出來(lái)。問(wèn)題往往出在中間兩段。ASR 的目標(biāo)是“把聲音還原成最可能的文字”它并不知道你其實(shí)想說(shuō)的是“你有病嗎”。當(dāng)用戶(hù)帶著玩笑語(yǔ)氣、語(yǔ)速偏快、環(huán)境有底噪時(shí)聲學(xué)模型給出“油餅”這種讀音完全一致的候選是很正常的。等到 NLU 階段拿到的就是“你油餅嗎”這串字面文本而詞表里根本沒(méi)有這個(gè)說(shuō)法于是匹配失敗設(shè)備要么沉默要么答一句“我沒(méi)聽(tīng)明白”。所以這一整條鏈路里ASR 是對(duì)的NLU 是錯(cuò)的。ASR 完成了它的本職工作——還原發(fā)音NLU 需要額外承擔(dān)一層“把發(fā)音相近的口語(yǔ)表達(dá)映射回標(biāo)準(zhǔn)意圖”的責(zé)任。這也是本文要解決的核心問(wèn)題。1.2 諧音、近音、錯(cuò)別字本質(zhì)是同一類(lèi)問(wèn)題在工程上我們通常把這類(lèi)輸入分成三種情況處理思路有細(xì)微差別類(lèi)型舉例特征處理重點(diǎn)同音替換油餅 / 有病、醬紫 / 這樣子拼音完全一致僅漢字不同拼音層面比對(duì)近音替換你咋 / 你怎么、灰機(jī) / 飛機(jī)聲母或韻母相近拼音不完全一致拼音相似度 容錯(cuò)錯(cuò)別字 / 口誤在干嘛 / 再干嘛文本不同但拼音一致或接近歸一化 模糊匹配這三類(lèi)其實(shí)可以統(tǒng)一處理先把文本轉(zhuǎn)成拼音序列再用模糊匹配算相似度。只要拼音層面足夠接近就認(rèn)為用戶(hù)想表達(dá)的是同一個(gè)意思。這個(gè)思路的好處是不依賴(lài)大規(guī)模訓(xùn)練數(shù)據(jù)一個(gè) JSON 詞表就能跑起來(lái)特別適合中小型項(xiàng)目、離線場(chǎng)景和快速驗(yàn)證。1.3 本文的目標(biāo)讀者和可交付成果本文面向三類(lèi)讀者一是做智能硬件、車(chē)載語(yǔ)音、客服機(jī)器人的后端開(kāi)發(fā)者需要在意圖識(shí)別前加一層容錯(cuò)二是做 NLP 入門(mén)的同學(xué)想找一個(gè)能完整跑通的小項(xiàng)目練手三是產(chǎn)品側(cè)的技術(shù)同學(xué)想搞清楚“為什么我的語(yǔ)音功能對(duì)口語(yǔ)不友好”。讀完本文你能拿到的東西很具體一套文本歸一化工具函數(shù)、一套基于拼音和編輯距離的相似度打分器、一個(gè)由 JSON 配置驅(qū)動(dòng)的意圖路由器、一份可以直接運(yùn)行的測(cè)試用例以及一份覆蓋多音字、閾值調(diào)優(yōu)、惡搞指令過(guò)濾的排錯(cuò)清單。整套代碼不依賴(lài)任何云服務(wù)純本地運(yùn)行。2. 環(huán)境準(zhǔn)備與工程結(jié)構(gòu)2.1 運(yùn)行環(huán)境與依賴(lài)說(shuō)明本文示例使用 Python 3.9 及以上版本只依賴(lài)一個(gè)第三方庫(kù)pypinyin其余全部使用標(biāo)準(zhǔn)庫(kù)包括re、json、unicodedata、difflib。這樣設(shè)計(jì)是為了讓代碼在離線環(huán)境和內(nèi)網(wǎng)服務(wù)器上也能順利跑起來(lái)不需要聯(lián)網(wǎng)下載模型。版本方面需要注意pypinyin的 API 在大版本之間保持得比較穩(wěn)定lazy_pinyin和Style枚舉都是長(zhǎng)期存在的接口。如果你使用的是很早的版本Style.FIRST_LETTER這類(lèi)枚舉可能缺失建議先執(zhí)行pip show pypinyin看一眼版本再?zèng)Q定是否升級(jí)。由于各個(gè)項(xiàng)目的 Python 環(huán)境和依賴(lài)鎖定策略差別很大本文不寫(xiě)死具體版本號(hào)你只需要確認(rèn)pypinyin能正常import即可重點(diǎn)在于配置思路和代碼結(jié)構(gòu)。如果你所在的項(xiàng)目不允許引入第三方庫(kù)也可以自己維護(hù)一張漢字到拼音的映射表但那樣需要處理多音字工作量會(huì)明顯變大。工程上更推薦先用pypinyin快速驗(yàn)證效果等確認(rèn)方案有效再考慮自建映射。2.2 依賴(lài)安裝與虛擬環(huán)境建議每個(gè)練手項(xiàng)目都單獨(dú)建一個(gè)虛擬環(huán)境避免依賴(lài)污染全局 Python。下面這套命令在 Windows 和 macOS / Linux 上都通用。# 創(chuàng)建虛擬環(huán)境 python -m venv venv # Windows 激活 venv\Scripts\activate # macOS / Linux 激活 source venv/bin/activate # 安裝依賴(lài) pip install pypinyin # 驗(yàn)證安裝 python -c import pypinyin; print(pypinyin.__version__)最后一條命令會(huì)打印出當(dāng)前安裝的pypinyin版本號(hào)能正常輸出版本就說(shuō)明環(huán)境可用。如果提示ModuleNotFoundError檢查一下虛擬環(huán)境是否激活成功很多時(shí)候是終端里顯示的(venv)前綴沒(méi)出現(xiàn)。2.3 項(xiàng)目目錄結(jié)構(gòu)為了讓后面的代碼有明確的歸屬先約定好目錄結(jié)構(gòu)。所有文件路徑在后續(xù)代碼塊里都會(huì)標(biāo)注出來(lái)你可以照著建。voice-intent-demo/ ├── config/ │ └── intents.json # 意圖詞表與閾值配置 ├── utils/ │ ├── __init__.py │ └── normalize.py # 文本歸一化與拼音工具 ├── core/ │ ├── __init__.py │ ├── matcher.py # 相似度打分 │ └── router.py # 意圖路由 ├── main.py # 入口與測(cè)試用例 └── requirements.txtrequirements.txt里只寫(xiě)一行即可pypinyin不建議在這里寫(xiě)死精確版本號(hào)除非你的項(xiàng)目有明確的依賴(lài)鎖定要求。生產(chǎn)環(huán)境通常由pip freeze或私有源統(tǒng)一管理練習(xí)項(xiàng)目保持寬松即可。3. 核心技術(shù)拆解中文諧音糾錯(cuò)的四層思路3.1 第一層文本歸一化先把臟數(shù)據(jù)洗干凈從 ASR 出來(lái)的文本往往帶著各種噪聲全角標(biāo)點(diǎn)、空格、語(yǔ)氣詞、大小寫(xiě)混雜。如果不先清洗后面的相似度計(jì)算會(huì)嚴(yán)重失真。舉個(gè)直觀的例子你有病嗎和你有病嗎在字面上差了三個(gè)字符問(wèn)號(hào)、可能還有空格如果不做歸一化SequenceMatcher算出來(lái)的相似度會(huì)從 1.0 掉到 0.6 左右直接導(dǎo)致誤判。歸一化要做的事情有四件全角轉(zhuǎn)半角、統(tǒng)一小寫(xiě)、去除非中文非字母數(shù)字字符、去掉首尾空白。其中全角轉(zhuǎn)半角用unicodedata.normalize(NFKC, text)一行就能搞定這是 Python 標(biāo)準(zhǔn)庫(kù)提供的能力比手寫(xiě)映射表可靠得多。# 文件路徑utils/normalize.py import re import unicodedata def normalize_text(text: str) - str: 把 ASR 輸出清洗成可比較的規(guī)范文本。 處理順序很重要先做 Unicode 規(guī)范化再統(tǒng)一小寫(xiě) 最后才去掉標(biāo)點(diǎn)否則全角問(wèn)號(hào)可能殘留。 if not text: return # NFKC 會(huì)把全角字符、兼容字符統(tǒng)一成標(biāo)準(zhǔn)形式 text unicodedata.normalize(NFKC, text) text text.lower() # 只保留中文、英文字母、數(shù)字 text re.sub(r[^\u4e00-\u9fa5a-zA-Z0-9], , text) return text這里有個(gè)容易被忽略的細(xì)節(jié)正則里用a-zA-Z而不是a-z是因?yàn)榇笮?xiě)轉(zhuǎn)換放在正則之前理論上不會(huì)有殘留大寫(xiě)但保留A-Z更保險(xiǎn)避免你后續(xù)調(diào)整處理順序時(shí)踩坑。另外中文字符范圍\u4e00-\u9fa5覆蓋的是常用漢字區(qū)間生僻字可能落在區(qū)間外如果有特殊業(yè)務(wù)需求可以把區(qū)間擴(kuò)大到\u4e00-\u9fff。3.2 第二層拼音轉(zhuǎn)換把漢字比對(duì)降維成字母比對(duì)為什么一定要轉(zhuǎn)拼音因?yàn)闈h字之間的“形”差異太大而“音”才是我們要比較的維度。油和有在字形上毫無(wú)關(guān)系但you和you完全一致。經(jīng)過(guò)拼音轉(zhuǎn)換問(wèn)題就從“漢字序列匹配”變成了“字符串匹配”可以直接復(fù)用成熟的編輯距離算法。pypinyin提供兩種常用風(fēng)格Style.NORMAL輸出無(wú)聲調(diào)拼音ni you bing maStyle.TONE3輸出帶數(shù)字聲調(diào)的拼音ni3 you3 bing3 ma5。做諧音匹配時(shí)通常用Style.NORMAL就夠了因?yàn)槲覀冴P(guān)心的是聲母韻母是否一致而不是聲調(diào)。但如果你做的是方言適配或者需要區(qū)分“媽”和“罵”那就要用Style.TONE3。# 文件路徑utils/normalize.py續(xù)追加到同一文件末尾 from pypinyin import lazy_pinyin, Style def to_pinyin(text: str, with_tone: bool False) - list: 把文本轉(zhuǎn)成拼音列表每個(gè)漢字對(duì)應(yīng)一個(gè)拼音。 errorsignore 會(huì)讓非漢字字符直接被跳過(guò) 適合已經(jīng)做過(guò)歸一化的文本。 if not text: return [] style Style.TONE3 if with_tone else Style.NORMAL return lazy_pinyin(text, stylestyle, errorsignore) def to_initials(text: str) - list: 取每個(gè)漢字的聲母首字母用于粗篩。 if not text: return [] return lazy_pinyin(text, styleStyle.FIRST_LETTER, errorsignore)為什么要額外做一套首字母因?yàn)槭鬃帜副葘?duì)速度極快、魯棒性強(qiáng)可以作為第一道“粗篩”。比如天貓精靈的首字母是tmjl如果用戶(hù)說(shuō)的是完全無(wú)關(guān)的話首字母序列的相似度通常很低可以快速排除。在實(shí)際工程中如果詞表規(guī)模上千條先用首字母做一次預(yù)篩選能明顯減少后續(xù)精確計(jì)算的開(kāi)銷(xiāo)。3.3 第三層相似度打分把多個(gè)維度加權(quán)成一個(gè)分?jǐn)?shù)單靠一種相似度很容易翻車(chē)。純文本相似度對(duì)同音字毫無(wú)辦法純拼音相似度又容易把完全不同的短句誤判成相似。所以工程上一般采用加權(quán)融合拼音相似度占主要權(quán)重文本相似度作輔助首字母相似度用來(lái)做微調(diào)。權(quán)重怎么定這是經(jīng)驗(yàn)值不是硬性標(biāo)準(zhǔn)。本文給出的0.5 : 0.3 : 0.2是一個(gè)在中文短指令場(chǎng)景下比較穩(wěn)的起點(diǎn)你可以根據(jù)自己的詞表做調(diào)整。核心原則是拼音權(quán)重必須最高因?yàn)橹C音問(wèn)題本質(zhì)就在發(fā)音層面文本權(quán)重不能為零否則兩個(gè)不同的短句只要拼音接近就會(huì)被誤判首字母權(quán)重最低只做錦上添花。# 文件路徑core/matcher.py from difflib import SequenceMatcher from utils.normalize import normalize_text, to_pinyin, to_initials def _ratio(a: str, b: str) - float: 計(jì)算兩個(gè)字符串的相似度返回 0.0 ~ 1.0。 if not a or not b: return 0.0 if a b: return 1.0 return SequenceMatcher(None, a, b).ratio() def score_pair(query: str, trigger: str) - float: 對(duì)一句輸入和一個(gè)觸發(fā)短語(yǔ)打分。 融合三個(gè)維度 - 拼音相似度 weight0.5 - 文本相似度 weight0.3 - 首字母相似度 weight0.2 q_text normalize_text(query) t_text normalize_text(trigger) if not q_text or not t_text: return 0.0 text_score _ratio(q_text, t_text) pinyin_score _ratio(.join(to_pinyin(q_text)), .join(to_pinyin(t_text))) initial_score _ratio(.join(to_initials(q_text)), .join(to_initials(t_text))) return round(0.5 * pinyin_score 0.3 * text_score 0.2 * initial_score, 4)這里用SequenceMatcher而不是嚴(yán)格意義上的編輯距離Levenshtein原因是SequenceMatcher是標(biāo)準(zhǔn)庫(kù)自帶不需要額外裝python-Levenshtein而且在短文本上效果足夠。它的ratio()返回的是2 * M / T其中 M 是匹配字符數(shù)T 是兩個(gè)序列總長(zhǎng)度取值范圍天然落在 0 到 1 之間正好可以直接當(dāng)相似度用。需要注意的是SequenceMatcher對(duì)字符順序敏感你有病嗎和嗎病有你會(huì)被判定為低相似度這其實(shí)是符合預(yù)期的——語(yǔ)序錯(cuò)了通常意味著語(yǔ)義也變了。但如果你面對(duì)的是口語(yǔ)倒裝嚴(yán)重的場(chǎng)景可能就需要引入jieba分詞后再比對(duì)詞集合那是更重的方案本文不展開(kāi)。3.4 第四層意圖映射與閾值決策有了分?jǐn)?shù)還需要一個(gè)判定規(guī)則。最直接的做法是設(shè)一個(gè)閾值超過(guò)就認(rèn)為是命中低于就走兜底。閾值定多少合適這取決于你的業(yè)務(wù)對(duì)“誤命中”和“漏識(shí)別”的容忍度。語(yǔ)音助手場(chǎng)景通常更怕誤命中因?yàn)殄e(cuò)誤執(zhí)行一個(gè)指令比如誤播放音樂(lè)、誤下單比讓用戶(hù)重說(shuō)一遍代價(jià)大得多。所以閾值一般設(shè)得偏高一些。本文示例用0.62作為默認(rèn)值這個(gè)數(shù)值是通過(guò)對(duì)一批常見(jiàn)諧音樣本測(cè)試后取的折中點(diǎn)。除了閾值還有一個(gè)重要設(shè)計(jì)是“最佳匹配優(yōu)先”不是第一個(gè)超過(guò)閾值的就返回而是遍歷所有候選取分?jǐn)?shù)最高的那個(gè)。這樣在多意圖競(jìng)爭(zhēng)時(shí)能選到最貼近的。實(shí)現(xiàn)上就是一個(gè)簡(jiǎn)單的max循環(huán)但要記得同時(shí)記錄命中的是哪個(gè)觸發(fā)短語(yǔ)方便后續(xù)排查和日志分析。閾值本身應(yīng)該放在配置里而不是寫(xiě)死在代碼里這樣調(diào)整時(shí)不用改代碼、不用重新發(fā)版。這也是下一節(jié)配置文件設(shè)計(jì)的原因。4. 完整實(shí)戰(zhàn)一個(gè)可運(yùn)行的諧音意圖識(shí)別器4.1 設(shè)計(jì)意圖配置把詞表和響應(yīng)都交給 JSON把意圖、觸發(fā)短語(yǔ)、響應(yīng)話術(shù)、閾值全部放進(jìn) JSON好處是產(chǎn)品和運(yùn)營(yíng)同學(xué)也能直接改開(kāi)發(fā)只需要保證解析邏輯穩(wěn)定。配置里每條意圖包含四個(gè)字段name是意圖標(biāo)識(shí)description是給人看的說(shuō)明triggers是觸發(fā)短語(yǔ)列表responses是候選回復(fù)列表。{ version: 1.0, threshold: 0.62, fallback: { name: fallback, reply: 抱歉我沒(méi)聽(tīng)明白你可以換個(gè)說(shuō)法再試一次。 }, intents: [ { name: tease, description: 用戶(hù)用諧音或玩笑方式調(diào)侃設(shè)備, triggers: [你有病嗎, 你是不是有病, 你是不是傻, 你腦子有問(wèn)題嗎], responses: [ 我沒(méi)有生病我是你的語(yǔ)音助手有什么可以幫你, 一切正常隨時(shí)待命。你想聽(tīng)點(diǎn)什么 ] }, { name: status, description: 詢(xún)問(wèn)助手當(dāng)前在做什么, triggers: [你在干什么, 你在做什么, 你現(xiàn)在忙嗎], responses: [我在待命等你的下一句指令。] }, { name: weather, description: 天氣查詢(xún), triggers: [今天天氣怎么樣, 明天會(huì)下雨嗎, 查一下天氣], responses: [天氣服務(wù)還沒(méi)接入請(qǐng)先配置數(shù)據(jù)源。] }, { name: music, description: 音樂(lè)播放, triggers: [放首歌, 我想聽(tīng)音樂(lè), 來(lái)點(diǎn)音樂(lè)], responses: [音樂(lè)服務(wù)還沒(méi)接入請(qǐng)先配置曲庫(kù)。] }, { name: time, description: 時(shí)間查詢(xún), triggers: [現(xiàn)在幾點(diǎn)了, 幾點(diǎn)了, 報(bào)一下時(shí)間], responses: [時(shí)間服務(wù)還沒(méi)接入請(qǐng)先對(duì)接系統(tǒng)時(shí)間。] } ] }幾個(gè)設(shè)計(jì)細(xì)節(jié)值得說(shuō)明。第一tease這條意圖的響應(yīng)刻意做成了化解式的而不是硬懟回去這是產(chǎn)品層面的考慮——用戶(hù)調(diào)侃設(shè)備本質(zhì)上是在測(cè)試邊界助手保持禮貌但明確表達(dá)“我沒(méi)事”體驗(yàn)會(huì)更好。第二天氣、音樂(lè)、時(shí)間三條意圖的響應(yīng)目前只是占位寫(xiě)的是“還沒(méi)接入”這是刻意的避免代碼看起來(lái)能查天氣但實(shí)際查不到誤導(dǎo)讀者。第三triggers里我放了多個(gè)近似說(shuō)法這是提升召回率最廉價(jià)的手段比調(diào)算法有效得多。4.2 編寫(xiě)意圖路由器路由器負(fù)責(zé)三件事加載配置、遍歷打分、給出結(jié)果。返回結(jié)構(gòu)用字典而不是元組是為了后續(xù)接入日志和接口時(shí)擴(kuò)展方便。# 文件路徑core/router.py import json import random from dataclasses import dataclass from core.matcher import score_pair dataclass class MatchResult: intent: str trigger: str score: float class IntentRouter: def __init__(self, config_path: str): with open(config_path, r, encodingutf-8) as f: config json.load(f) self.threshold float(config.get(threshold, 0.62)) self.intents config.get(intents, []) self.fallback config.get( fallback, {name: fallback, reply: 抱歉我沒(méi)聽(tīng)明白。}, ) def best_match(self, query: str) - MatchResult: 遍歷所有意圖的所有觸發(fā)短語(yǔ)取分?jǐn)?shù)最高的一條。 best MatchResult(intent, trigger, score0.0) for intent in self.intents: for trigger in intent.get(triggers, []): s score_pair(query, trigger) if s best.score: best MatchResult( intentintent.get(name, ), triggertrigger, scores, ) return best def route(self, query: str) - dict: best self.best_match(query) if best.score self.threshold: return { query: query, hit: False, intent: self.fallback.get(name, fallback), matched_trigger: None, score: best.score, reply: self.fallback.get(reply, 抱歉我沒(méi)聽(tīng)明白。), } intent_conf next( (i for i in self.intents if i.get(name) best.intent), None, ) responses intent_conf.get(responses, [好的。]) if intent_conf else [好的。] return { query: query, hit: True, intent: best.intent, matched_trigger: best.trigger, score: best.score, reply: random.choice(responses), }route()的返回里保留了score和matched_trigger這兩個(gè)字段在調(diào)試時(shí)特別有用。當(dāng)你發(fā)現(xiàn)某句話被錯(cuò)誤路由時(shí)打印出來(lái)就能立刻知道它匹配到了哪條短語(yǔ)、分?jǐn)?shù)是多少、離閾值差多少比只返回一個(gè)intent名字高效得多。生產(chǎn)環(huán)境里這兩個(gè)字段也應(yīng)該進(jìn)日志方便后續(xù)做 badcase 分析。4.3 主程序與測(cè)試用例主程序里準(zhǔn)備了一組測(cè)試句子覆蓋標(biāo)準(zhǔn)表達(dá)、諧音表達(dá)、完全無(wú)關(guān)表達(dá)三種情況用來(lái)驗(yàn)證整套邏輯。# 文件路徑main.py import json import os from core.router import IntentRouter def main(): config_path os.path.join(os.path.dirname(__file__), config, intents.json) router IntentRouter(config_path) test_cases [ # 標(biāo)準(zhǔn)表達(dá) 今天天氣怎么樣, 放首歌吧, 現(xiàn)在幾點(diǎn)了, # 諧音 / 近音表達(dá) 你油餅嗎, 你似不似有病, 你仔干什么, 機(jī)點(diǎn)了, # 完全無(wú)關(guān) 幫我訂一張去杭州的火車(chē)票, 把客廳的燈調(diào)暗一點(diǎn), ] for text in test_cases: result router.route(text) print(json.dumps(result, ensure_asciiFalse)) if __name__ __main__: main()4.4 運(yùn)行與驗(yàn)證在項(xiàng)目根目錄執(zhí)行python main.py預(yù)期輸出類(lèi)似下面這樣reply字段因?yàn)橛须S機(jī)選擇每次可能不同{query: 今天天氣怎么樣, hit: true, intent: weather, matched_trigger: 今天天氣怎么樣, score: 1.0, reply: 天氣服務(wù)還沒(méi)接入請(qǐng)先配置數(shù)據(jù)源。} {query: 放首歌吧, hit: true, intent: music, matched_trigger: 放首歌, score: 0.8714, reply: 音樂(lè)服務(wù)還沒(méi)接入請(qǐng)先配置曲庫(kù)。} {query: 現(xiàn)在幾點(diǎn)了, hit: true, intent: time, matched_trigger: 現(xiàn)在幾點(diǎn)了, score: 1.0, reply: 時(shí)間服務(wù)還沒(méi)接入請(qǐng)先對(duì)接系統(tǒng)時(shí)間。} {query: 你油餅嗎, hit: true, intent: tease, matched_trigger: 你有病嗎, score: 0.85, reply: 我沒(méi)有生病我是你的語(yǔ)音助手有什么可以幫你} {query: 你似不似有病, hit: true, intent: tease, matched_trigger: 你是不是有病, score: 0.9321, reply: 一切正常隨時(shí)待命。你想聽(tīng)點(diǎn)什么} {query: 你仔干什么, hit: true, intent: status, matched_trigger: 你在干什么, score: 0.9137, reply: 我在待命等你的下一句指令。} {query: 機(jī)點(diǎn)了, hit: true, intent: time, matched_trigger: 幾點(diǎn)了, score: 0.8583, reply: 時(shí)間服務(wù)還沒(méi)接入請(qǐng)先對(duì)接系統(tǒng)時(shí)間。} {query: 幫我訂一張去杭州的火車(chē)票, hit: false, intent: fallback, matched_trigger: null, score: 0.3741, reply: 抱歉我沒(méi)聽(tīng)明白你可以換個(gè)說(shuō)法再試一次。} {query: 把客廳的燈調(diào)暗一點(diǎn), hit: false, intent: fallback, matched_trigger: null, score: 0.3625, reply: 抱歉我沒(méi)聽(tīng)明白你可以換個(gè)說(shuō)法再試一次。}4.5 結(jié)果說(shuō)明哪些地方符合預(yù)期哪些值得警惕從輸出可以看到諧音樣本基本都被正確糾正了。你油餅嗎因?yàn)槠匆敉耆恢碌梅?0.85你似不似有病雖然多了個(gè)字但拼音鏈條高度重合得分超過(guò) 0.9機(jī)點(diǎn)了是典型的 ASR 漏字仍然被拉回到幾點(diǎn)了。三條無(wú)關(guān)表達(dá)都落到了兜底分?jǐn)?shù)在 0.35 到 0.38 之間距離 0.62 的閾值有明顯余量說(shuō)明閾值定得偏保守但安全。值得注意的是放首歌吧連標(biāo)準(zhǔn)表達(dá)都沒(méi)拿到 1.0 分原因是觸發(fā)短語(yǔ)是放首歌輸入多了個(gè)“吧”字。這是很典型的情況用戶(hù)口語(yǔ)里帶語(yǔ)氣詞幾乎是必然的。解決方式有兩條路一是在配置里補(bǔ)上帶語(yǔ)氣詞的變體二是在歸一化階段把常見(jiàn)語(yǔ)氣詞吧、呢、啊、呀、哦當(dāng)成可選的尾綴剝掉。前者簡(jiǎn)單直觀后者更通用但需要小心別把有意義的字剝掉比如“啊”在某些場(chǎng)景下是感嘆詞剝掉會(huì)影響語(yǔ)義。工程上我一般優(yōu)先選前者因?yàn)榭山忉屝詮?qiáng)、出問(wèn)題好定位。5. 進(jìn)階貼近真實(shí)語(yǔ)音鏈路的三個(gè)優(yōu)化5.1 處理 ASR 的 N-best 候選列表真實(shí) ASR 一般不是只返回一個(gè)結(jié)果而是返回一個(gè) N-best 列表按置信度從高到低排列。比如“你油餅嗎”這句話ASR 可能同時(shí)給出[你油餅嗎, 你有病嗎, 你郵餅嗎]其中正確的那條排第二。如果只取第一條就會(huì)白白丟掉正確答案。改造思路很簡(jiǎn)單讓打分函數(shù)接受一個(gè)候選列表對(duì)每個(gè)候選都走一遍意圖匹配最終選“ASR 置信度 × 意圖匹配分?jǐn)?shù)”最高的組合。這樣即使 ASR 首選項(xiàng)是錯(cuò)的只要次選項(xiàng)音對(duì)得上整體仍然能救回來(lái)。# 文件路徑core/router.py追加方法 def route_nbest(self, candidates: list) - dict: candidates 形如 [(你油餅嗎, 0.92), (你有病嗎, 0.85)] best None for text, asr_conf in candidates: result self.route(text) combined result[score] * asr_conf if best is None or combined best[combined]: best dict(result) best[asr_confidence] asr_conf best[combined] round(combined, 4) return best or {}這段代碼的關(guān)鍵在于combined這個(gè)融合分。單獨(dú)看 ASR 置信度你油餅嗎是 0.92看起來(lái)更可信但乘上意圖匹配分之后你有病嗎因?yàn)楦~表完全一致意圖分是 1.0最終 0.85 × 1.0 0.85反而超過(guò)了 0.92 × 0.85 0.782。這就是融合的價(jià)值——兩個(gè)模型互相糾偏。5.2 多音字帶來(lái)的誤判與規(guī)避多音字是拼音方案的天然弱點(diǎn)。重有zhong4和chong2兩個(gè)讀音行有xing2和hang2。pypinyin默認(rèn)會(huì)結(jié)合上下文給出最可能的讀音但在短文本、無(wú)上下文的情況下它也可能選錯(cuò)。規(guī)避手段有兩個(gè)層面。第一層是配置層面對(duì)包含多音字的觸發(fā)短語(yǔ)額外補(bǔ)充它的另一種讀音寫(xiě)法讓匹配有更多機(jī)會(huì)命中。第二層是代碼層面在score_pair里對(duì)每個(gè)觸發(fā)短語(yǔ)計(jì)算多個(gè)讀音變體的最高分。實(shí)現(xiàn)上可以維護(hù)一個(gè)小的多音字覆蓋表在調(diào)用lazy_pinyin時(shí)通過(guò)heteronymTrue拿到所有可能讀音再對(duì)組合取最大值。# 文件路徑utils/normalize.py追加 from itertools import product def to_pinyin_variants(text: str, max_variants: int 8) - list: 返回最多 max_variants 種拼音寫(xiě)法用于多音字兜底。 if not text: return [] candidates lazy_pinyin(text, styleStyle.NORMAL, heteronymTrue, errorsignore) # 先用首選項(xiàng)拼一次保證有一個(gè)穩(wěn)定結(jié)果 results [.join(item[0] if item else for item in candidates)] # 再生成笛卡爾積變體限制數(shù)量避免爆炸 for combo in product(*[item[:2] for item in candidates]): joined .join(combo) if joined not in results: results.append(joined) if len(results) max_variants: break return results這里必須強(qiáng)調(diào)max_variants這個(gè)上限。如果一句話有 10 個(gè)多音字每個(gè)兩種讀音理論上有 1024 種組合直接算會(huì)拖慢響應(yīng)。限制成 8 個(gè)變體是工程折中既能覆蓋絕大多數(shù)實(shí)際情況一句話里真正歧義的字通常不超過(guò) 3 個(gè)又不會(huì)讓單次匹配耗時(shí)失控。如果你確實(shí)需要更高精度應(yīng)該改用帶詞性標(biāo)注的分詞方案而不是在這里堆變體。5.3 與真實(shí)語(yǔ)音設(shè)備的對(duì)接思路本文的代碼只處理文本不處理音頻。要在真實(shí)設(shè)備上跑通還需要在前面加一個(gè) ASR 環(huán)節(jié)。常見(jiàn)做法有兩種一種是設(shè)備端自己完成 ASR把識(shí)別文本和置信度傳給服務(wù)端另一種是把音頻上傳到服務(wù)端的流式 ASR 接口拿到結(jié)果后再走本文的意圖路由。無(wú)論哪種方式本文的模塊都能作為 ASR 之后的獨(dú)立一層插進(jìn)去輸入是文本或 N-best 列表輸出是意圖和回復(fù)。這種分層設(shè)計(jì)的好處是解耦A(yù)SR 換供應(yīng)商不影響意圖識(shí)別詞表更新也不需要?jiǎng)右纛l鏈路。實(shí)際部署時(shí)建議把intents.json放到配置中心或者掛載成外部文件這樣改詞表可以做到熱更新不用重新打包發(fā)布。6. 常見(jiàn)問(wèn)題與排查清單6.1 典型問(wèn)題對(duì)照表問(wèn)題現(xiàn)象常見(jiàn)原因排查思路解決方式ModuleNotFoundError: No module named pypinyin虛擬環(huán)境沒(méi)激活或裝到了全局環(huán)境執(zhí)行pip show pypinyin看路徑是否在 venv 下激活虛擬環(huán)境后重新安裝所有輸入都命中兜底閾值設(shè)得過(guò)高或詞表為空打印best_match的 score 看分布調(diào)低閾值到 0.55 附近再觀察所有輸入都命中第一條意圖詞表只有一條或best_match循環(huán)寫(xiě)錯(cuò)檢查if s best.score是否在正確層級(jí)確保兩層 for 循環(huán)都沒(méi)寫(xiě)反標(biāo)準(zhǔn)說(shuō)法反而得分很低歸一化把有用字符刪掉了打印normalize_text的返回調(diào)整正則白名單保留需要的字符拼音全一樣但沒(méi)命中觸發(fā)短語(yǔ)根本沒(méi)寫(xiě)進(jìn)配置打印matched_trigger補(bǔ)全triggers列表中文亂碼或報(bào)編碼錯(cuò)誤讀寫(xiě)文件時(shí)沒(méi)指定encoding檢查open()是否帶encodingutf-8統(tǒng)一加上encodingutf-8短句互相誤判兩三個(gè)字的短句本來(lái)就難區(qū)分看具體matched_trigger短句單獨(dú)走精確匹配不走模糊6.2 閾值到底怎么調(diào)閾值不是一個(gè)能拍腦袋決定的數(shù)字需要基于數(shù)據(jù)調(diào)。推薦的做法是準(zhǔn)備一批標(biāo)注好的測(cè)試樣本分別屬于“應(yīng)該命中”和“不應(yīng)該命中”兩類(lèi)然后遍歷不同閾值統(tǒng)計(jì)準(zhǔn)確率和召回率找平衡點(diǎn)。實(shí)操上可以先粗后細(xì)先按 0.5、0.6、0.7、0.8 四個(gè)點(diǎn)跑一遍看哪一段變化最劇烈再在那一段里以 0.02 為步長(zhǎng)細(xì)調(diào)。如果發(fā)現(xiàn)無(wú)論如何調(diào)都有大量誤判那說(shuō)明問(wèn)題不在閾值而在詞表或打分權(quán)重需要回去補(bǔ)觸發(fā)短語(yǔ)或者調(diào)整融合比例。還有一個(gè)經(jīng)驗(yàn)不同意圖可以使用不同閾值。比如“下單”“支付”這類(lèi)高風(fēng)險(xiǎn)意圖閾值應(yīng)該設(shè)到 0.85 以上而“放首歌”“查天氣”這類(lèi)低風(fēng)險(xiǎn)意圖0.6 就夠用。本文為了簡(jiǎn)化全局只用一個(gè)閾值實(shí)際項(xiàng)目里建議改成按意圖配置配置結(jié)構(gòu)上加一個(gè)可選字段即可邏輯上做一次覆蓋判斷。6.3 輸入特別短的時(shí)候怎么辦“幾點(diǎn)了”“干嘛呢”這種三四個(gè)字的輸入是所有模糊匹配方案的老大難。字?jǐn)?shù)少意味著信息量少任何一個(gè)字的偏差都會(huì)導(dǎo)致相似度劇烈波動(dòng)。用模糊匹配去處理短句幾乎必然產(chǎn)生誤判。更穩(wěn)妥的策略是分級(jí)處理長(zhǎng)度小于等于 4 的輸入先走精確匹配或前綴匹配匹配不上再走模糊匹配但把閾值提高到 0.9 以上。這樣既保證了短句的正常召回又能把誤判擋在門(mén)外。實(shí)現(xiàn)上在score_pair外面包一層長(zhǎng)度判斷就夠了不需要改核心打分邏輯。7. 最佳實(shí)踐與工程建議7.1 詞表和配置的維護(hù)方式詞表是這個(gè)方案的核心資產(chǎn)它的質(zhì)量直接決定效果上限重要性遠(yuǎn)超算法本身。建議從一開(kāi)始就把它當(dāng)成正式配置來(lái)管理用 Git 追蹤變更、每次修改寫(xiě)清楚原因、上線前走一遍回歸測(cè)試。觸發(fā)短語(yǔ)的補(bǔ)充應(yīng)該形成閉環(huán)——線上收集到?jīng)]識(shí)別對(duì)的 badcase人工確認(rèn)應(yīng)該歸到哪個(gè)意圖再補(bǔ)進(jìn)詞表下一版驗(yàn)證。配置的字段設(shè)計(jì)也要留出擴(kuò)展空間。version字段現(xiàn)在看著沒(méi)用但當(dāng)你有一天需要做 A/B 測(cè)試或者灰度時(shí)它就是最省事的區(qū)分依據(jù)。description字段同理它是給后來(lái)接手的人看的別嫌麻煩省略掉半年后你自己也會(huì)感謝當(dāng)時(shí)寫(xiě)清楚了。7.2 日志與可觀測(cè)性意圖識(shí)別這類(lèi)模塊出問(wèn)題是必然的關(guān)鍵是出問(wèn)題后能不能快速定位。建議至少記錄四類(lèi)信息原始輸入、歸一化后的文本、最佳匹配的觸發(fā)短語(yǔ)和分?jǐn)?shù)、最終判定的意圖。有了這四樣任何一個(gè)錯(cuò)誤路由都能在幾秒內(nèi)復(fù)現(xiàn)和歸因。日志量大的時(shí)候要注意脫敏。語(yǔ)音輸入里可能包含用戶(hù)的地址、姓名、電話號(hào)碼這些不應(yīng)該原樣落盤(pán)。可以在寫(xiě)日志前做一次敏感信息過(guò)濾或者只保留歸一化后的文本把原始文本放到單獨(dú)的加密存儲(chǔ)里并設(shè)置較短的保留周期。7.3 安全邊界惡搞指令必須做兜底智能語(yǔ)音設(shè)備長(zhǎng)期放在家庭環(huán)境里一定會(huì)遇到用戶(hù)的各種測(cè)試和調(diào)侃包括諧音罵人、誘導(dǎo)設(shè)備說(shuō)不恰當(dāng)?shù)脑?、反?fù)觸發(fā)同一指令。這類(lèi)輸入的處理必須有明確邊界。第一回復(fù)話術(shù)必須預(yù)設(shè)好且經(jīng)過(guò)審核不能把用戶(hù)的原始輸入直接拼進(jìn)回復(fù)里否則很容易被誘導(dǎo)出問(wèn)題內(nèi)容。第二對(duì)高頻重復(fù)觸發(fā)要做限流避免設(shè)備被刷到卡死。第三涉及支付、下單、門(mén)鎖、攝像頭這類(lèi)敏感操作絕對(duì)不能只靠模糊匹配決定必須走二次確認(rèn)并且明確告知用戶(hù)當(dāng)前要執(zhí)行的操作內(nèi)容。第四如果設(shè)備面向兒童回復(fù)內(nèi)容要額外過(guò)一層內(nèi)容安全過(guò)濾。7.4 性能優(yōu)化詞表變大之后怎么辦本文的詞表只有五條意圖、十幾條短語(yǔ)遍歷一遍毫無(wú)壓力。但如果你的業(yè)務(wù)有上千條觸發(fā)短語(yǔ)每次請(qǐng)求都全量遍歷就會(huì)明顯變慢因?yàn)槊織l都要做三次字符串相似度計(jì)算。優(yōu)化的第一步是加緩存同樣的輸入文本匹配結(jié)果是可以緩存的用一個(gè)帶過(guò)期時(shí)間的字典就能擋住大量重復(fù)請(qǐng)求。第二步是預(yù)計(jì)算把所有觸發(fā)短語(yǔ)的拼音串、首字母串在啟動(dòng)時(shí)算好存起來(lái)避免每次請(qǐng)求重復(fù)做拼音轉(zhuǎn)換。這一步收益很大因?yàn)槠匆艮D(zhuǎn)換是相對(duì)耗時(shí)的操作。第三步是分層篩選先用首字母做一次快速過(guò)濾只對(duì)首字母相似度超過(guò) 0.5 的候選做完整打分能砍掉大部分無(wú)效計(jì)算。# 文件路徑core/matcher.py追加預(yù)計(jì)算示例 class TriggerIndex: 啟動(dòng)時(shí)預(yù)計(jì)算觸發(fā)短語(yǔ)的拼音和首字母避免重復(fù)轉(zhuǎn)換。 def __init__(self, triggers: list): self.items [] for trigger in triggers: norm normalize_text(trigger) self.items.append({ raw: trigger, text: norm, pinyin: .join(to_pinyin(norm)), initials: .join(to_initials(norm)), })這個(gè)索引類(lèi)可以在IntentRouter.__init__里構(gòu)建一次后續(xù)best_match直接復(fù)用。注意這里存的是“攤平后的拼音字符串”和“首字母字符串”而不是列表因?yàn)镾equenceMatcher接受字符串省掉一次.join()的轉(zhuǎn)換。8. 小結(jié)與延伸方向回到最開(kāi)始那句“你油餅嗎”。這個(gè)例子的價(jià)值不在于它是個(gè)段子而在于它把語(yǔ)音交互里一個(gè)很真實(shí)的問(wèn)題暴露得很清楚ASR 還原的是發(fā)音不是語(yǔ)義而用戶(hù)的口語(yǔ)表達(dá)天然充滿(mǎn)諧音、近音、錯(cuò)字、語(yǔ)氣詞。如果意圖識(shí)別層只做字面匹配就必然在這類(lèi)輸入上翻車(chē)。本文給的方案不復(fù)雜核心就四步歸一化把臟數(shù)據(jù)洗干凈轉(zhuǎn)拼音把漢字比對(duì)降維成字母比對(duì)加權(quán)打分把多個(gè)維度的信息融合起來(lái)閾值決策把不確定的輸入擋在門(mén)外。代碼加起來(lái)不到兩百行但已經(jīng)能覆蓋相當(dāng)一部分真實(shí)場(chǎng)景。你可以直接把config/intents.json換成自己業(yè)務(wù)的詞表把main.py里的測(cè)試用例換成線上收集的真實(shí) badcase跑一遍就能看到效果。如果繼續(xù)往下做有幾個(gè)方向值得投入。一是引入分詞把“字序列匹配”升級(jí)成“詞序列匹配”對(duì)長(zhǎng)句的魯棒性會(huì)明顯提升二是接入輕量的文本向量模型用語(yǔ)義相似度補(bǔ)充發(fā)音相似度兩者結(jié)合能處理“意思一樣但說(shuō)法完全不同”的情況三是把這層能力做成獨(dú)立的 HTTP 服務(wù)前面接 ASR、后面接業(yè)務(wù)技能形成清晰的分層架構(gòu)。最后提醒一句工程上的事這套方案的所有閾值、權(quán)重、詞表都是可調(diào)的沒(méi)有一個(gè)放之四海皆準(zhǔn)的配置。上線前務(wù)必用真實(shí)數(shù)據(jù)跑回歸上線后務(wù)必留好日志和開(kāi)關(guān)。語(yǔ)音交互的體驗(yàn)差距往往就藏在這些看起來(lái)不起眼的參數(shù)和詞表里。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91影视亚洲| 乱论91| 四虎影视在线| 久久111| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 九月丁香综合网| 日韩性爱电影一区| 免費人妻夜夜爽天天爽爽一区| 91 亚洲情侣偷拍 久久| se..亚洲欧美| 黄色AAAAA欧美| 超碰av人人人| 日韩中文9| 精品国产三级av韩国在线| 国产精品视频播放| 抽插亚洲无码| 五月天玖玖资源站| 69丨亚洲丨精品丨入口免费播放| 亚洲欧美综合区自拍另类| 国产一区麻豆免费观看| 中文字幕一区二区三区人妻不卡 | 日比av无码| 免费久久精品麻豆一区二区av| 男人下部插入女人下部 | 亚洲91av| 久久αⅴ| 婷婷丁香五月天亚洲天堂网| 久久久久深夜无码| 久操不卡视频| 97国产伦理| 欧美不卡在线一区二区| 四月丁香婷婷| 艹少妇网站| 91蜜臀熟女| 日本顶级天天操狠狠操夜夜操中文字幕| 欧美日韩*字幕一区| 亚洲免费97免费| 琪琪精品免费一区二区三区 | 无码在线亚洲| 91欧美综合| 啊a一区在线| 超碰精品国产无码| 女人妻一区| 国产精品操| 97人人干人人操| 亚洲图片欧美另类综合免费视频大大香| 精品人妻一区二区三区四区石在线| 欧亚日韩三区| 亚洲成人免费中文字幕| 91色欧美| 欧美日韩国产中文超碰| 十八禁成人网站在线观看| 97视频在线免费| 婷婷久久综合| 超碰97精品| 中文字幕在线观看丝袜| 性爱网站一区二区| 33044男人的天堂深夜备| 欧日a| 91色色网站| 欧美在线伊人色| 在线综合色| 男人天堂网站| www.高清无码诱惑一区.com| 成人在线日韩| 国产呦精品系列在线观看| 蜜臀久久99精品久久综合| 人人操我人人干| 久久综合久色欧美综合狠狠| 五月婷婷六月丁香| 欧美日韩性爱精品| 精品欧美А∨无码黑人大荫蒂| 日韩中文字幕2020| 爱做久久久久久| 日韩三A大片在线观看| 欧美精品双插| 美女超碰978| 人人摸人人摸人人干| 色婷网| 激情一区二区| 日韩亚洲欧美中文字幕| 蜜桃精品一区二区三区久在线| 热久久这里只有精品| 亚欧无码在线| 2017人人操,人人摸| 极品丝袜无码| 国产精品九九九| 99亚洲精品| 人人天天干干| 漂亮人妻被强中文字幕hd| 色性综合| 青青操综合网| 98久久超碰| 日本性一区| 麻豆蜜桃视频在线观看| 色五月综合| 国模私拍一区二区三区神乳| 97视频在线免费观看| 精品视频久久| 国内一级精品| 东京热毛片177b2viP| 偷拍超碰| 色五月第四色| 久久9999 | 中文字幕在线免费观看 | 国产高清免费不卡av| 久热在线精品免费观看| 亚洲伊人久久综合97| 91狠狠综合| 国产AV中文| 懂色AV中文| 欧美激情视频一区二区三区不卡| 免费农村成人少妇人妻Aa一区二区视频| 婷婷色导航| 亚洲AV无码AV吞精久久久久| 秋霞影音一区二区三区| 欧美极度丰满熟妇hd| 狠狠操狠狠操操| 美女诱惑一区| av爱爱爱| 欧美久热| 蜜屁Av| 人妻少妇久久久| 欧美 亚洲 综合 制服| 狠狠 91| 中文字幕88av在线| 91美女视频直播| 极品AV网站在线观看| 67194无码不卡| 久草色悠悠在线视频| 欧美日韩国产电影| 蜜桃香蕉久草精品在线| 国产精品毛片| 欧美天天射| 狠狠91| 日韩欧无码一区二区三区免费不卡 | 久久国产三区| 久久久久久中文版| 夜夜躁狠狠躁日日躁av| 亚洲精品三区在线观看| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 美国aaaaa一级黄片| 干婷婷综合网| 亚洲欧洲美腿丝袜| 91激情国产| 久草资源在线| 3d成人精品一区二区| 色婷亚洲五月在线观看| 精品国产网站| 精品乱码在线观看| 91香蕉国产尤物视频| 搡老女人老妇女AAA一VU麻豆| 国产成人精品日本视频| 69综合网| 偷拍色图| 综合97| 国产黄片在线免费观看| 国产日韩精品一区二区三区| 欧美少妇高潮视频| 久久久久久人妻一区精品色欧美| 狠狠久久亚洲欧美专区| 风骚少妇视频中文字幕| 日韩操p| 26uuu性物| 婷婷导航| 精品无码产区一区二| 午夜舔阴达高潮视频免费看| 亚洲成人一区二区精品| 超碰地址97| 99re免费| 九月丁香| 欧美黑人日韩少妇色情| 蜜乳AV一区| 久久男人网| 四虎免费在线观看| 丁香六月婷婷综合| 91美女視頻| 1769一区| 九九色影院| 国产25页| 日韩美女操b| 午夜欧美J进J出白浆流出久久久| 中文 人妻 制服| 国产亲戚伦亲在线| 美女干逼2| 91精品国产91久久福利| 五月天伊人| 美女黄站| 亚洲精品男人的天堂| 日韩无码服务区| 黄色操人| 夜夜福利| 性色av蜜臀av色欲aV| 中文字幕一区二区无码成人| 蜜臀久久99精品久久久电影| 91亚洲欧美| 91麻豆va国产精品| 九九九九九九九九九九九蜜桃| 久久精品国产亚洲5555| 中文字幕在线24| 国产强上视频在线观看| 极品内射| 97超碰影音| 秋霞蝌科网日本一区| 是还免费视频1727我| 夜夜操青青草| 激情五月天校园春色网| 天天躁日日躁XXXXYY| 校园春色家庭伦理欧美激情| 日韩中文字幕在线视频观看| 国产怡红院在线| 中文字幕一区日韩精| 青青草在线视频播放器| 性色一线| www.99色| 2020中文字幕在线| 99视频只有精品| av操操不卡| 欧美另类丝袜熟女| 国产怡红院| 看免费一级在线播放毛片| 日日夜夜噜| 亚洲古典另类欧美在线| 国产精品熟妇一区二区三| 天天做日日做| 影视综合无码少妇| 北条麻妃99精品青青久久| 欧美精品激情| 成人福利视频网| 久久久久久人| 日韩美脚一区二区网站| 一区二区视频在线播放| 91日产桃蜜| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 久久XX| 69久久| 久久久99久9| 黄色AAAAAAAAAAA大片| 国产精品乱码久久久、久久| 九九毛片这里只有精品| 欧美系列在线一区二区| 色综91| 亚洲美女色图| 尻女朋友一夜| 久久欧美性爱视频| 亚洲精品自拍| 成人资源中文字幕在线观看| 欧亚久久偷拍视频| 欧美性爱五月天| 欧美成人免费在线观看| JuliaAnn丝袜熟女系列| 亚洲 综合 第一页| 96AV久久久| 日韩成人大片在线观看| 精品美女久久久久| 精品国产99999| 新视频sss国产| 四虎影库国产精品免费| 亚洲中文字幕av| 国产精品4p在线观看| 一区二区视频在看| 色色青青久久| 麻豆性爱视频在线播放| 五月综合视频| 久久9视频| 美国人人操人人操| 亚洲无码精品AV久久久| 国产97亚洲| 在线 欧美 亚洲| 久久偷拍人| 久久亚洲不卡| 99精品热| 亚洲午夜av| 色色福利| 日韩性爱免费视频在线网站| 一区二区三区黄片免费观看| AA特级绝黄| 亚洲无无码αⅴ每日更新| 男人的天堂va| 国产婷婷综合在线观看| 国内一区二区免费| A 天堂| 激情一区二区| 久久人| 婷婷丁香人妻| 国产精品对白自产拍| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 天天日夜干| 蜜臀99久久精品久久久久久| 夜夜精品视频| 香蕉99秘 一区精品蜜桃臀| 涩亚洲欧洲| 97精品97久久| 欧美同性恋 的搜索结果 - 91n| 激情四射五月天| 无码人妻精品一区二区三区九九 | 精品无码久久久| 五月婷婷激情网| 涩五月婷婷| 色婷婷久久| 性爱综合网| 99操碰| 精品国产乱码久久久久久影片| 五月婷婷久久综合| www.超碰| 欧州激情视频在线一区二区| 天美传媒在线一区| 亚洲天堂一二| 人人妻人人爱人人玩| …亚洲黄色厕厕女女在线播…| 久热热| 欧美夜夜| 一本久道在线综合视频| 日韩激情中文字幕有码| 天天插天天干| 中 文字幕一区二区三四 五 区日 日 骚| 亚州色图狠狠干| 熟妇高潮精品一区二区三区下载| 天天综合网亚洲综合网| 国产精品操| 国产极品精品美女视频| 日本一本道A级黄色毛片试看60分钟| 丰满人妻av一区二区三区| 伊人久久婷婷| 中文字幕艹艹| 4虎在线视频| 午夜啊啊| 日韩性爱视频在线免费观看| 天天操天天舔| 久久久久久久久久久久久9999| 330Dv国产女人终合视频极品人与兽| 97欧美色资源| 极品色综合| 97人人夜夜精品视频| 牛黄色久午久| 国产精品 午夜福利| 啊啊啊啊好大好硬啊啊啊啊啊 | 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 日韩素人无码一区二区三区三州| 久久人妻少妇| 成人一二| 婷婷六月色| 四虎免费看黄| 中文字幕三四五区| 亚洲 日韩 丝袜 熟女 变态| 啊啊啊啊视频免费| 日韩欧美女求操每天更新| 欧美成人国产精品| 国内伊人久久久久久网站视频| a天堂视频| 国产精品乱码久久久| 丝袜 中出 制服 人妻 美腿 中文字幕| 亚洲无码成人精品| 天天操人人操骚逼网站| 黄色不卡视频| 天啪| 97摸视频| 亚洲综合校园春色| 男人天堂网址| 婷婷久久综合| 99999精品成人| 欧美中日韩XXXX| 国产又猛又粗又爽又黄| 91久久久久免| 久久熟女精品不卡一区| 天天操人人操狠狠插| 久久精品一区二区三区不卡| 超碰色大香蕉| 天美麻花大全视频| 日本黄页视频在线观看| 97人人夜夜精品视频| 日本三级久| 亚洲激情久久久伊人综合| 欧美经典一区二区三区| 秋霞一区二区三区四区五区六区七区| 久久免费少妇| 少妇无码太爽| 欧差乱伦二三| 亚洲狼狼干综合1| 91丨人妻丨国产丨丝袜| 五月婷在线| www.人人摸在线视频| 中文字幕aⅴ在线视频| 久久中出在线| 国产精品呦一区二区三区| 亚洲永久AV无码精品秋霞| 国产品精品自在在线午夜免费| 国产少妇肉丝在线观看| 91日韩国产欧美亚洲另类精盘州至城都 | 亚洲少妇喷视频看| 伊人91| 亚洲老熟妇xxx| 精品国产乱码久久久久久久久1| 欧美 日韩第一性色| 日本道久久综合色色| 美国三级日本三级久久99| 韩国三级理论在线| 女人香蕉久久毛毛片精品| 人人考人人摸人人干| 欧美97se| 亚洲影视综合网| 黄色大片视频在线免费看| http://qxhbdz.com| 亚洲欧美综合| 91视频成人福利网站在线一区 | 91精品婷婷国产综合久久| 久久久精品视频免费观看| 麻豆a'v电影| 日韩国产中文字幕| 一级性爱视频免费在线| 男人的亚洲天堂| www.国产高潮精品| 99热在线观看| 中文一区在线日| 色婷亚洲五月在线观看| 精品久| 日韩精品第3页| 欧美黑人精品一区二区| 91观看 国产白丝| 亚洲图片欧美日韩| 亚洲色图尤物视频 | 青娱乐 成人娱乐在线| 人人操人人摸avav| 日韩本不卡视频在线观看 | 破苞ⅩXXX性无码动漫无码| 欧美成人精品欧美一级乱黄一区二…| 国产一级久久久| 国产 热久久久久国产精品| 日本男人天堂| 夜夜爽爽夜夜精品视频| av九九| 成人无遮挡毛片免费看| 久99在线免费观看视频| 99xav| 久色网| 涩综合导航| 情色大香蕉| 另类av天堂| 九九RE视频在线精品| 一级乱伦网站| 欧美图片色五月天| 美女主播色欲91抠b在线播放| 欧美啪啪女女| 色欲av一区二区三区蜜芽| 国产人妻久久精品一区二区三区| 亚洲棕合电彰| 色av中文字| 久久久久亚洲| 超碰欧美COM| 久久久久亚洲精品| 亚洲男人的天堂一区二区| 超碰人人超在线观看| 男人女人18禁片免费看网站| 四虎影视精品| 97精品一区二区视频在线观看| 色诱avtt| 青青草在线成人视频| 欧美性爱在线无码| 国产av又色又爽又黄| 九九九九热| 午夜九九九九九九| 91亚洲丝袜熟女| 精品美女少妇一区二区三区| 男人下部插入女人下部| 九月婷婷| 欧美日综合| 3P乱轮视频| 人人妻人人爽 97人人看碰人免费公开视频| 国产97视频| 蜜臀久久99精品久久久久电影| 中出后入| 欧美传媒一区| 国产精品在线网站| 蜜屁Av| 情色五月天久久久| 国产AV天美| 大香蕉 222| 99久久这里只有精品| 久久麻豆一区二区| 天天爽爽爽爽| 99中出在线| 欧美综合97www| 婷婷久草一区二区三区| 亚洲日韩av一区二区三区百合| 国产999精品久久久久久| 色综合九九| 九九热AV| 青青草九九九九九| 国产av青草| 嗯嗯,啊啊,国产精品| Av色五月| 国产亚洲色婷婷99精品91| 97免费视频网| 91综合国产精品| 啊啊啊啊好疼视频| com 首页 18岁 禁区 女优 免费 精选 同城 | 日日操丁香五月天| 日本性爱网址| 亚洲日本韩国在线| 亚洲 图片 综合91| 欧美亚洲影视| 久久视频,这里只有精品 | 精品无码一区二区人妻久久蜜桃| 久欲AV| 高颜值美女口爆高潮浪叫| 野狼福利社区| 精品久久无码午夜福利| 亚洲欧洲精品视频发布| 91操人视频| 中文字暮97| 欧美一二三区四五区| 91精品婷婷国产综合久久竹菊| 中文一区在线日| 91无码人妻精品一区二区三区蜜桃 | 精品v1区| 亚欧美综合| 加勒比海色香蕉婷婷| 极品欧美一区二区三区| 91成人久久 | 99久久久er直播网址| 超碰人妻在线| 亚洲丝袜B诱惑| 欧美一区二区三区成人性生活| 欧美亚洲系列| 国产精品ⅴ无码大片在线看.| 国产亚洲精品美女久久久m| 色播五月丁香| 91天射| 色欧美亚洲| 艹精品| 男人的天堂2019AV| julia中文字幕在线观看| 欧美天天综合网版| 亚洲制服欧美另类内射| 欧美亚洲国产自久久| 久久久久久久久国产| 免费操逼91| 亚洲最大网站av| 日本青青草在线| 99热线麻豆| 久久精品国产亚洲妲己影视| 狠狠色丁香| 欧美情色贴图| 色激情综合网站| 久久人人看| 日本超碰色精品| 国产精品视频内谢女人| 激情综合色| 日产123区精品免费观看| 99热| 九九色色| 欧美日韩制服| 欧美黄片视频在线观看免费 | 国产在线76页| 欧美黑人与女人91| 久久精品店| 97精品久久久久久久| 欧美色性情| 久操精品网| 4虎在线视频| 成在线人在线观看视频| 精品久久久久9999| 欧美亚洲中文| 精品少妇后入一区二区三区四区人妻巨乳| 超碰色美女| 成年人一级黄色毛片大全在线观看| 国产人伦精品一区二区三区 | 伊人91| 99色婷婷| 天天亚洲| 五月婷婷六月天| 91丝袜人妻| 秋霞一级视频在线观看免费| 九九亚洲色在线观看| 波多野结衣一级视频| 超碰97在线 欧美 国产| 欧美不卡五十路| 精品人妻二区三区| 久久精品一区二区一8| 亚洲骚女一区二区三区| 国产老太乱伦一区| 欧美色图天堂网m| 丁香五六月啪啪| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 18禁在线视频| 秋霞一区二区三区四区五区六区七区| 国产亚洲精品久久久久小| 中文字幕78| 凹凸视频在线观看伊人| 一本色道久久综合狠狠操| 不卡啪啪视频| 97日韩超碰超碰中文字幕| 男人天堂2019亚洲| 国产1024在线播放| 久久精9| 亚洲一卡2卡3卡4卡乱码网站| 亚州图片第一页| 色婷婷香蕉| 少妇久久久久久久久| 日本不卡高清免v欧美日韩在线观看| 欧美一区二区男人天堂| 9久久美女首页| 人人摸人人摸人人干| 97在线免费公开视频| 国产欧美日韩在线观看麻豆传媒公司| 国产无码精品成人| 学生妹天天看| 淫妻综合网| 亚洲天堂在线怕怕视频 | 九一屌逼| 男女激情黄色网址| 俞拍久久国应视频| 日韩中文字幕av在线播放| 极品尤物女神在线观看| 农村妇女精品一二区| 麻豆九九九| 亚洲操逼视频网站| 日韩性爱小视频| 亚洲人码13| 麻豆天美国美国产| a v网站在线播放| 蜜臀99久久精品久久久久| 国产精品视频播放| 能看的AV| 日韩无码黄色片| 999久久久国产精品| 欧美成人综合| 久久黄色网址| 女人被添高潮免费视频| 国产精品视频91久久| 色九色久| 久久亚洲熟妇在线视频| www.狠狠| 成人性爱全视频观看| 亚洲国产美女久久久久 | 91久久伊人婷婷青青草| 色情综合网| jizzjizz欧美| 黄片免费视频2019| 日韩射精| 91美女视频直播| 超碰这里只有精品| 国内精品不卡无毒99999| 国产精品午夜高潮呻吟久久av| 老熟女乱伦一区| 天天伊人| 人妻熟女一区二区三区视频| 亚洲色图伊人网| 91色黑人少妇| 欧美大码在线视频| 丁香五月天啪啪| 久久久久久久国产a∨| 黄色香蕉视频网站一区| 蜜臀久久99精品久久久久久-DVD| 97操综合| 欧美高潮| 日产123区精品免费观看| 久久视网78| 蜜臀在线免费观看在线免费观看| 好吊妞转入那个网| 丁香婷婷久久| 久久99精品视频| 日韩性爱电影一区| 永久免费发布性爱网| 国产精品永久免费10000| 我要去看2个日本美女.com曹逼 | 青青伊人加勒比海| 日韩电影天堂视频二区三区| 欧美 传媒 麻豆 日韩 偷拍| 四虎AV无码| 丁香五月天婷婷姐| 神马视频久久久久久| 日本在线不卡123| av天堂影视中文在字幕在线中文 | 色色99| 成人婷婷丁香| 夜夜爽33333| 人妻啊啊人妻啊啊| 你操综合| 中文字幕少妇色 | 伊人国产视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 第45页一区二区| 黄色十八禁网站| 美女毛片999| 国产精品久久久九九九| 亚洲图片 激情小说| 夜夜免费视频| 婷婷人妻激情| 大香蕉99999| 亚洲色图一区二区三区| 国产精品不卡高清在线观看| 香蕉国产精品麻豆亚洲欧美日韩| 亚欧免费观看视频| 俄罗斯一区二区视频在线观看 | 屁股久久久久久久| 久久久久久99AV无码免费网站| 欧美一区二区一级岛国大片| 人人 操人人 操人人| 一区二区三区免费岛国片| 日本123区操B视频| 大香蕉在线视频15| av一区二区三区四区五区久草臀| 日产成人久久| 97天天| 天堂69亚洲精品中文字| 亚洲啪啪视频一区二区| 99久久99九九99九九九| 奸色色 男人天堂 天天射| 日韩传媒在线| 蜜桃AV天堂| 99色网| 顶级丝袜熟女一区二区三区 | 三级特黄60分钟播放| 黄片直播三级黄片两女一男| 天天综合色电影| 国产美女激情| 久久久青青草| 国产日韩区| 五月丁香| 欧美久久久| 亚洲色人阁| 亚洲国产精品9999在线观看| 超碰在线91| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产精品久久久三级无码| 欧美美女自慰一区二区三区| 99精品高潮| 亚洲欧美天堂| 亚洲精品乱码久久久久久蜜桃麻豆 | 福利操逼| 天天操女人| 福利天天都操| 亚瑟国产精品久久无码| 久久综合五月天| 亚洲涩涩| 国产操逼网站亚洲一级黄色| 偷窥自拍A片| 亚洲AV高潮| 91天堂| 在线可观看的黄色网址| 91人妻视频| 天天肏天天干| 啊啊啊啊好疼视频| 丁香五月天啪啪| 久久久久久一日韩字幕无码| 狠狠色噜噜狠狠狠狠2018| 激情久久久| 久久色一区二区| 国内外内射高清视频| 国产小视频91| 日日夜夜模| 人人做,人人操,人人摸| 91蜜臀熟女| 清纯唯美综合亚洲| 91社操逼| 欧美国产有色电影| av网站国产主播在线| 久久免费精彩视频| 天天天做天天天爱天天天爽| 亚洲乱伦图片视频| 青青草伊人久久| 久久久久久久强迫| 麻豆60秒| 天天日天天干少妇日| 免费一级视频特黄色大片| 无码九九| 多乙久久久久久| 亭亭在线资源| 3d成人精品一区二区| 欧美性爱一区二区三区四区| 欧美日韩国产一区二区小黄片大全| 天天色综合图片| sewuyueav| 成人看片网站| 快灬快灬 一下爽蜜桃在线观看| 中文久久爆乳| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 极品极品色影院| 久草成人影片| 综合久久中文字幕综合日韩精品| 亚洲天堂久| 国产女人成人精品视频| 大香蕉一人| 五月丁香影院| 夜夜精品视频| 超碰激情808| 国产Av超碰| 九九热精彩视频| 日韩欧美俄罗斯A片| 精品制服美女中文一区二区三区| 尤物一级在线免费观看| 2020天天色综合| 久久综合五月天| 欧美色999| 800zy一区二区| 欧美的性爱网站免费| 神马久久69| 精品国产久热在线观看| 春色91| 久久国色天香香蕉| 91丨豆花丨熟女| 亚洲色棕合| 久久人妻精品| 亚洲 小说 欧美 激情 另类| 91爱看| 91精品黄在线观看| 国产精品日日摸夜夜添骚逼| 躁躁日曰躁2020| 在线人人人人人人精品超| 久久香蕉国产线看观看亚洲女人| 97超碰国产精品| 欧亚性爱在线视频| 校园春色美腿丝袜| 熟妇人妻一区二区三区| 蜜桃视频成a人v在线| 97在线免费公开视频| 一区二区久久天天干狠狠| 丰满人妻一区二区三区四区| 超碰97人人乐| 97二区四区| 亚洲超碰AV| 久操视频在线观看| 少妇人妻激情四射| 欧美日韩m| 国产精品麻豆视频网站| 男同专区一区二区三区在线| 综合网亚| 久久久中文| 国产性爱在线视频一区二区| 夜夜嗨一区| 久久綜合很很很| 99热国产| 日韩欧美aⅴ综合网站发布| 日韩欧视频| 中文字幕精品久久久久人妻红杏ⅰ| 激情五月天丁香| 亚洲精品国产熟女| 精品一区二区三区麻豆| 亚洲在钱| 熟妇精品juliaannAV| 激情婷婷丁香| 国产强上视频在线观看| 日本精品一级二级三级| K8久久久久| 久久99草| 日日干日日操五月天伦理视频| 亚洲国产欧美中文永久| av网站在线观看了| 亚洲国产精品久久AV| 中文字幕欧洲有码| 老女人老91妇女老热女| 天美国产精品| 亚洲天堂热| 91小视频| 狼狼色丁香久久婷婷综合五月 | 国产深喉| 97在线资源| 欧洲一区二区三区免费| 啊啊啊啊啊在线观看网址| 九九色热| 午夜黄色免费在线观看| 超碰人妻天天干| 黄片qw| 亚洲 欧美 日韩 国产一区二区 | 欧美日韩另类激情图片| 老鸭窝在线视频播放| 亚洲的天堂网| 亚洲AV不卡在线观看尤物| 不卡人妻少妇精品毛片一区23区视频| 你懂得91| 国产日韩欧美三级片| 国产精品久久久久久片| 在线欧美69V免费观看视频| 国产一区二区免费福利片| 男女无套 免费网站| 亚洲色图欧美| 亚洲精品97| 天天躁日日躁狠狠躁| 久久精品久久久久久久| 鸥美中出| 1240青青草一区二区三区视频天爱| 中文字幕黄色一起草| 狠久久| 啊啊啊好大好深| 亚洲欧美骚| 色妺妺AⅤ| 三久久久四久久久久| 国产99999| 中文字幕欧美丝袜07资源| 中文字幕欧美丝袜07资源| 91内射| 国产成人亚洲精品无码最新在线| 亚洲成人精品在线一区| 婷婷在线视频在线观看| 国产对白刺激视频| 无码av永久免费专区网站| 无码av永久免费专区网站| 亚洲二区精品在线观看| 去干网最新版| 久久天堂婷婷网| 强奸少妇AV导航网| 操b网站亚洲无码| 国产久久男人天堂| 少妇高潮九九九九九九九| 色爱亚洲| 无码久久亚洲高清,| 波多野42部无码喷潮在线观看| 国产操偷| 五月色综合| 麻豆AV一区二区| 中文字幕AV片| 99热精品在线观看| 国产捆绑一区| 国产传媒操逼视频| 99性视频| 国产97亚洲| 超碰在线人妻不卡| 嗯嗯嗯嗯啊啊啊好紧好大| 麻豆婷婷成人一二三| 国产亚洲日本| 人妻久久| 国产精品盗摄 偷窥盗摄| 午夜精品五区| 91 亚洲 欧洲| 怡红院成人av| 亚洲资源一区| 最新av网站在线观看| 91精品伊人久久久大香线蕉91| 久久小视频| 超碰这里只有精品| 青青草原伊人网| 大香蕉乱级| 日韩性爱视频免费在线| 久久精品免费| 国产精品久久久久久9999| 亚洲熟女人妻中文字幕一区二区 | 久久大香蕉97| 国产亚洲欧美每日在线| 国产又色又爽又舒服的三级视频| 91美女在线精品视频| 亚洲少妇激情一区二区三区| 黄骗免费网站| 艳美熟妇先锋一二三区| 啊啊啊啊嗯嗯嗯用力好爽| 国产精品久久久久久高清无码免费看| baisiav| 男生女生啊啊啊啊| 91久久精品美女高潮喷水| 日韩少妇无码| 免费精品中文字幕| 99久久婷婷| 国产天美传媒精品| 探花视频免费观看国产专区| 国产又粗又长又爽又色| 久久欧洲| 亚洲欧美不卡线| 干婷婷综合网| 91久久堂| 美国日韩黄片| 长长久久曰曰夜夜成人网| 色97综合中文字幕| 成人无码在线超碰网| 日韩三级久久久| 91日韩网站| 色成人Www精品永久观看| 欧美性战999| 94色色电影网| 欧美很很操视频| 物业黑人 AV一区| 久久精品 六十路 熟女 欧美| 婷婷综合视频| 91精品国| 国产a级午夜毛片| 久久久国产精品亚洲精品| 性饥渴少妇av无码毛片| 天美国产三级传媒| 久久内射| 丁香五月av| 精品国产99999| 再深点灬舒服灬太大了好硬好爽| 激情文学 亚洲图片| 日韩精品国产一区二区| 91网亚洲| 人人操人人插 - 百度 - 百度| 激情四射婷婷四五月天| 日韩在线电影| 99色色网| 78操B| 丝袜 亚洲 偷拍| 大香蕉草草| 色99在线| 精品人妻一区二区三区鲁大师| 在线播放成人网站| 0755午夜福利视频| 亚洲激情在线| 97超碰超| 熟女日韩| 99婷婷一区二区| 99re69综合| 95自拍视频在线观看| 97超碰亚洲| 日韩欧美中文日韩欧美色| 1024午夜激情男人的天堂| 男女激情黄色网址| 综合网亚洲1| www超碰| 久久久久久久97| 性色avv| 韩国手机不卡无码三级视频| 麻豆一区二区三区精品| 夜夜影视四色| 一二三区视频在线观看| 嗯啊不要在线| 看免费一级在线播放毛片| 亚洲情色图片区| 欧美视频一区二区在线| 一卡二卡在线播放| 大香蕉碰碰| 涩综合导航| 久久人妻无码毛片A片麻豆| 国产在线视视频有精品| 欧美97在线欧| 国产精品网站www| 操逼视频亚洲| 91第一页| 求求你操操我| 国产精品免费视频人成| 九九亚洲| 亚洲大胆人体av| 欧美国产日韩高清在线| 三上悠亚在线毛片91| 国产精品欧美激在线| 亚洲黄网在哪免费看| 我要色综合网| 国产乱码精品久久久久久| 欧亚免费视频| 亚洲日韩人妻中文字幕一区| 加勒比伊人综合| 日日夜夜干| 成人乱人伦一区二区| 国产又粗又长的视频| 日本一区二区三区精品| 久久av成人无码免费| 美女久久久久久久久久久| 国产肏屁眼视频| 久久五月视频| 国产日韩欧美操逼视频| 大香蕉草草| 欧美韩国你懂得在线| 五月激情天| 黄色在线网站| 欧美色偷偷| 国产av色网| 2025亚洲男人天堂| 国产97色在线| se01国产在线视频| 欧美在线天堂| 国产欧美后入| 色婷婷在线视频精品导航| 中文字幕亚洲在线一区| 欧美日韩黄片精品在线| 九月丁香婷婷| 中文字幕人乱码中文字的预防方法 | 久久蜜桃一区二区| 日韩国产十八禁| 精品久久視頻在线| 日本性爱不卡视频| 丁香婷婷五月| 午夜传煤十二区精品| 中文字幕第23区| 亚州色站 日韩电影| 婷婷五月天激情小说| 一级特级aaaa毛片免费观看| 欧美18老人禁| 中文乱码字幕观看视频| 精久久久| 亚洲国内精品成人不卡| 日本三级小说中文字幕| 久久怡红院| 3p国产欧美99热| 日韩免费在线视频观看| 久久久久亚洲熟妇熟女| 日韩啪啪视频| 日韩精品亚洲一二三| 激情文学小说一区二区| 91高跟美女在线播放| 国产精品熟女AV中文字幕在线播放| 五月婷婷色| 欧美国产日韩高清在线| 亚洲无码AV九九九| 熟女五十路一区二区三| 牛牛操视频逼| 不卡中文字幕aⅴ在线| 国产视频人人网| 亚洲激情视频| 国产精品视频在线观看| 欧美在线电影| 精品国产乱码久久久久久久| 9九九国产| 天堂av最新电影网| 欧美性Fer办公室秘书| 日日碰视频网| 99久在线精品99re8热视频在线| 级品肉射| 亚欧美综合网。| 亚洲欧美精品久| 99国产精品久久久在线播放| 天堂在线一区二区| 久久国产精品熟女人妻| 九九九九九用不成了| 亚码人妻| 国产一区二区精品在线视频| 日本超碰色精品| 精品久久艹| 婷婷探花久久精品一区| 超碰吊日色| 色九久| 精品免费视频国产一区| 中国操逼无码| 91人妻最真实刺激绿帽| 岛国视频一二三区| 操我无码| 精品久久99| 97午夜剧场日韩| 国产精品美女久久久久久网站| 偷拍色图| 精品少妇一区二区三区| AV天堂因数| 久久大黄片| 久久中文字幕一区不卡| 国产亚洲日韩在线三区黑人| 精品一二三区久久AAA片| 狠狠操狠狠爱| 欧美日韩国第一区| 一直超碰| 美女十八禁| 日韩视频中文字幕| 日韩黄片视频试看| 久久性爱大全| 久久精品一区二区三区不卡| 欧美色66| 国产日韩中文字幕欧美| 超碰在线一区二区三区| 日本人妻中文字幕 | 国产一区二区二区按摩精品啪视频| 欧洲在线性爱视频| 午夜福利精品| 天堂岛av| 97一区二区三区视频| 欧美色老汉| 欧美高清18A片| 久久精品国产亚洲AV无码电影| 五月丁香啪| 97超碰免费人人性爱| 91天美免费| 韩国手机不卡无码三级视频| 国内毛片无码一级毛片| 欧美久久毛片基地| 国产三级中文字幕粉嫩|