硬核實戰 | Cortex-M85平臺Speex回聲消除與降噪算法移植指南

本文分享基于Titan Mini Board移植speex音頻處理前端算法。實現AEC回聲消除功能測試,分享應用Demo。

目錄


實現shell和文件傳輸


移植speex,實現降噪和回聲消除測試應用


測試


總結


獲取同款硬件

1 實現shell和文件傳輸


  • 基于FIFO的串口驅動,移植xprintf進行標準輸入輸出處理,移植shell,移植xmodem實現文件傳輸,相關文件如下, 移植參考公眾號文章和源碼,這里不再贅述

2 移植speex,實現降噪和回聲消除測試應用


  • 參考公眾號系列文章

基于speex的音頻處理系列之一-speex在pc上的移植與回聲消除測試

基于speex的音頻處理系列之二-降噪效果測試

基于speex的音頻處理系列之三-在嵌入式平臺的移植

基于speex的音頻處理系列之四:VAD功能

基于speex的音頻處理系列之五:AGC功能

參考https://github.com/Guineverqiu/speex_test.git

  • 準備代碼

git clone https://github.com/Guineverqiu/speex_test.git

  • 添加以下文件

  • 項目屬性中設置頭文件包含路徑

  • 添加宏

  • 設置優化-O3

    -fsingle-precision-constant

  • 其中

  • os_support_custom.h

  • speexecho.c需要適配

  • os_support_custom.h如下



#ifndef OS_SUPPORT_CUSTOM_H#define OS_SUPPORT_CUSTOM_H#include <rtthread.h>#include "xprintf.h"#define OVERRIDE_SPEEX_ALLOC#define OVERRIDE_SPEEX_ALLOC_SCRATCH#define OVERRIDE_SPEEX_REALLOC#define OVERRIDE_SPEEX_FREE#define OVERRIDE_SPEEX_FREE_SCRATCHstatic size_t s_max_used = 0;static size_t s_cur_used = 0;static inline void *speex_alloc(int size){    void* p = rt_malloc(size+4);    memset(p,0,size);    *(uint32_t*)p = size;  /* 記錄分配的大小 用于調試使用*/    s_cur_used += size;    if(s_max_used < s_cur_used){        s_max_used = s_cur_used;    }    //xprintf("malloc:max:%u,cur:%u\r\n",s_max_used,s_cur_used);    return (uint8_t*)p+4;}static inline void *speex_alloc_scratch(int size){   /* Scratch space doesn't need to be cleared */    void* p = rt_malloc(size+4);  /* freertos malloc默認配置是8字節對齊,所以預留的4字節強制類型轉換不會有對齊問題 */    *(uint32_t*)p = size;  /* 記錄分配的大小 用于調試使用*/    s_cur_used += size;    if(s_max_used < s_cur_used){        s_max_used = s_cur_used;    }    //xprintf("malloc:max:%u,cur:%u\r\n",s_max_used,s_cur_used);    return (uint8_t*)p+4;}static inline void speex_free(void *ptr){    rt_free((uint8_t*)ptr-4);    s_cur_used -= *(uint32_t*)((uint8_t*)ptr-4);    //xprintf("free:max:%u,cur:%u\r\n",s_max_used,s_cur_used);}static inline void *speex_realloc(void *ptr, int size){    uint32_t len;    /* 原來為空直接申請 */    if(ptr == (void*)0){        return speex_alloc(size);    }    /* size為0則直接釋放 */    if(size == 0){        speex_free(ptr);        return (void*)0;    }    /* 申請新的大小 */    void* p = rt_malloc(size+4);    *(uint32_t*)p = size;  /* 記錄分配的大小 */    s_cur_used += size;    if(s_max_used < s_cur_used){        s_max_used = s_cur_used;    }    len = *(uint32_t*)((uint8_t*)ptr-4);    if(len > (uint32_t)size){        len = (uint32_t)size;  /* 注意可能放大也可能縮小 */    }    /* 復制的數據 */    memcpy((uint8_t*)p+4,ptr,len);    /* 釋放原來的 */    rt_free((uint8_t*)ptr-4);    s_cur_used -= len;    //xprintf("realloc:max:%u,cur:%u\r\n",s_max_used,s_cur_used);    return (uint8_t*)p+4;}static inline void speex_free_scratch(void *ptr){    rt_free((uint8_t*)ptr-4);    s_cur_used -= *(uint32_t*)((uint8_t*)ptr-4);    //xprintf("free:max:%u,cur:%u\r\n",s_max_used,s_cur_used);}#define OVERRIDE_SPEEX_COPY#define OVERRIDE_SPEEX_MOVE#define OVERRIDE_SPEEX_MEMSET#define SPEEX_COPY(dst, src, n) (memcpy((dst), (src), (n)*sizeof(*(dst)) + 0*((dst)-(src)) ))#define SPEEX_MOVE(dst, src, n) (memmove((dst), (src), (n)*sizeof(*(dst)) + 0*((dst)-(src)) ))#define SPEEX_MEMSET(dst, c, n) (memset((dst), (c), (n)*sizeof(*(dst))))#define OVERRIDE_SPEEX_FATALstatic inline void _speex_fatal(constchar *str, constchar *file, int line){   xprintf("Fatal (internal) error in %s, line %d: %s\n", file, line, str);   while(1);}#define OVERRIDE_SPEEX_WARNINGstatic inline void speex_warning(constchar *str){#ifndef DISABLE_WARNINGS   xprintf ("warning: %s\n", str);#endif}#define OVERRIDE_SPEEX_WARNING_INTstatic inline void speex_warning_int(constchar *str, int val){#ifndef DISABLE_WARNINGS   xprintf ("warning: %s %d\n", str, val);#endif}#define OVERRIDE_SPEEX_NOTIFYstatic inline void speex_notify(constchar *str){#ifndef DISABLE_NOTIFICATIONS   xprintf ("notification: %s\n", str);#endif}#define OVERRIDE_SPEEX_PUTCstatic inline void _speex_putc(int ch, void *file){   (void)file;   xprintf("%c", ch);}#define speex_fatal(str) _speex_fatal(str, __FILE__, __LINE__);#define speex_assert(cond) {if (!(cond)) {speex_fatal("assertion failed: " #cond);}}#ifndef RELEASEstatic inline void print_vec(float *vec, int len, char *name){   int i;   xprintf ("%s ", name);   for (i=0;i<len;i++)      xprintf (" %f", vec[i]);   xprintf ("\n");}#endif#endif

  • speexecho.c如下

#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <rtthread.h>#include "speex/speex_echo.h"#include "speex/speex_preprocess.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include "xprintf.h"static uint32_tget_tm_ms(void){    return rt_tick_get()*1000/RT_TICK_PER_SECOND;}/* WAV解析 */#define CHUNK_RIFF "RIFF"#define CHUNK_WAVE "WAVE"#define CHUNK_FMT "fmt "#define CHUNK_DATA "data"typedef struct{    uint32_t off;    uint32_t chunksize;    uint16_t audioformat;    uint16_t numchannels;    uint32_t samplerate;    uint32_t byterate;    uint16_t blockalign;    uint16_t bitspersample;    uint32_t datasize;}wav_t;static int wav_decode_head(uint8_t* buffer, wav_t* wav){    uint8_t* p = buffer;    uint32_t chunksize;    uint32_t subchunksize;    if(0 != memcmp(p,CHUNK_RIFF,4))    {        return -1;;    }    p += 4;    chunksize = (uint32_t)p[0] | ((uint32_t)p[1]<<8) | ((uint32_t)p[2]<<16) | ((uint32_t)p[3]<<24);    wav->chunksize = chunksize;    p += 4;    if(0 != memcmp(p,CHUNK_WAVE,4))    {        return -2;    }    p += 4;    do    {        if(0 == memcmp(p,CHUNK_FMT,4))        {            p += 4;            subchunksize = (uint32_t)p[0] | ((uint32_t)p[1]<<8) | ((uint32_t)p[2]<<16) | ((uint32_t)p[3]<<24);            p += 4;            /* 解析參數 */            wav->audioformat = (uint16_t)p[0] | ((uint16_t)p[1]<<8);            if((wav->audioformat == 0x0001) || (wav->audioformat == 0xFFFE))            {                p += 2;                wav->numchannels = (uint16_t)p[0] | ((uint16_t)p[1]<<8);                p += 2;                wav->samplerate = (uint32_t)p[0] | ((uint32_t)p[1]<<8) | ((uint32_t)p[2]<<16) | ((uint32_t)p[3]<<24);                p += 4;                wav->byterate = (uint32_t)p[0] | ((uint32_t)p[1]<<8) | ((uint32_t)p[2]<<16) | ((uint32_t)p[3]<<24);                p += 4;                wav->blockalign = (uint16_t)p[0] | ((uint16_t)p[1]<<8);                p += 2;                wav ->bitspersample = (uint16_t)p[0] | ((uint16_t)p[1]<<8);                p += 2;                if(subchunksize >16)                {                    /* 有ext區域 */                    uint16_t cbsize = (uint16_t)p[0] | ((uint16_t)p[1]<<8);                    p += 2;                    if(cbsize > 0)                    {                        /* ext數據 2字節有效bits wValidBitsPerSample ,4字節dwChannelMask 16字節SubFormat */                        p += 2;                        p += 4;                        /* 比對subformat */                        p += 16;                           }                }            }            else            {                p += subchunksize;            }        }        else if(0 == memcmp(p,CHUNK_DATA,4))        {            p += 4;            subchunksize = (uint32_t)p[0] | ((uint32_t)p[1]<<8) | ((uint32_t)p[2]<<16) | ((uint32_t)p[3]<<24);            wav->datasize = subchunksize;            p += 4;            wav->off = (uint32_t)(p- buffer);            return 0;        }        else        {            p += 4;            subchunksize = (uint32_t)p[0] | ((uint32_t)p[1]<<8) | ((uint32_t)p[2]<<16) | ((uint32_t)p[3]<<24);            p += 4;            p += subchunksize;        }    }while((uint32_t)(p - buffer) < (chunksize + 8));    return -3;}/* 填充44字節的wav頭 */static void wav_fill_head(uint8_t* buffer, int samples, int chnum, int freq){    /*     * 添加wav頭信息     */    uint32_t chunksize = 44-8+samples*chnum*16/8;    uint8_t* p = (uint8_t*)buffer;    uint32_t bps = freq*chnum*16/8;    uint32_t datalen = samples*chnum*16/8;    p[0] = 'R';    p[1] = 'I';    p[2] = 'F';    p[3] = 'F';    p[4] = chunksize & 0xFF;    p[5] = (chunksize>>8) & 0xFF;    p[6] = (chunksize>>16) & 0xFF;    p[7] = (chunksize>>24) & 0xFF;    p[8] = 'W';    p[9] = 'A';    p[10] = 'V';    p[11] = 'E';    p[12] = 'f';    p[13] = 'm';    p[14] = 't';    p[15] = ' ';    p[16] = 16;  /* Subchunk1Size */    p[17] = 0;    p[18] = 0;    p[19] = 0;    p[20] = 1;  /* PCM */    p[21] = 0;    p[22] = chnum; /* 通道數 */    p[23] = 0;    p[24] = freq & 0xFF;    p[25] = (freq>>8) & 0xFF;    p[26] = (freq>>16) & 0xFF;    p[27] = (freq>>24) & 0xFF    p[28] = bps & 0xFF;      /* ByteRate */    p[29] = (bps>>8) & 0xFF;    p[30] = (bps>>16) & 0xFF;    p[31] = (bps>>24) & 0xFF    p[32] = chnum*16/8/* BlockAlign */    p[33] = 0;    p[34] = 16;  /* BitsPerSample */    p[35] = 0;    p[36] = 'd';    p[37] = 'a';    p[38] = 't';    p[39] = 'a';    p[40] = datalen & 0xFF;    p[41] = (datalen>>8) & 0xFF;    p[42] = (datalen>>16) & 0xFF;    p[43] = (datalen>>24) & 0xFF}void wav_print(wav_t* wav){   xprintf("off:%d\r\n",wav->off);   xprintf("chunksize:%d\r\n",wav->chunksize);   xprintf("audioformat:%d\r\n",wav->audioformat);   xprintf("numchannels:%d\r\n",wav->numchannels);   xprintf("samplerate:%d\r\n",wav->samplerate);   xprintf("byterate:%d\r\n",wav->byterate);   xprintf("blockalign:%d\r\n",wav->blockalign);   xprintf("bitspersample:%d\r\n",wav->bitspersample);   xprintf("datasize:%d\r\n",wav->datasize);}#define NN 128#define TAIL 1024int speexecho(int argc, char **argv){   FILE *spk_fd, *mic_fd, *out_fd;      short spk_buf[NN], mic_buf[NN], out_buf[NN];   uint8_t spk_wav_buf[44]; /* 輸入spk wav文件頭緩存 */   uint8_t mic_wav_buf[44]; /* 輸入mic wav文件頭緩存 */   uint8_t out_wav_buf[44]; /* 輸出文件wav頭緩存 */   wav_t spk_wav;   wav_t mic_wav;   int samps;  /* 采樣點數 */   int times;    /* 讀取次數 */   SpeexEchoState *st;   SpeexPreprocessState *den;   int sampleRate;   char* mic_fname = argv[1];   char* spk_fname = argv[2];   char* out_fname = argv[3];   int ctl_i;   float ctl_f;   if (argc != 4)   {      xprintf("testecho mic.wav spk.wav out.wav\n");      return -1;   }   spk_fd = fopen(spk_fname, "rb");   if(spk_fd == NULL){      xprintf("open file %s err\n",spk_fname);      return -1;   }else{      xprintf("open file %s ok\n",spk_fname);   }   mic_fd  = fopen(mic_fname,  "rb");   if(mic_fd == NULL){      xprintf("open file %s err\n",mic_fname);      fclose(spk_fd);      return -1;   }else{      xprintf("open file %s ok\n",mic_fname);   }   out_fd    = fopen(out_fname, "wb");   if(out_fd == NULL){      xprintf("open file %s err\n",out_fname);      fclose(spk_fd);      fclose(mic_fd);      return-1;   }else{      xprintf("open file %s ok\n",out_fname);   }   if(44 != fread(mic_wav_buf, 144, mic_fd)){      xprintf("read file %s err\n",mic_fname);      fclose(spk_fd);      fclose(mic_fd);      fclose(out_fd);      return-1;   }else{      xprintf("read file %s ok\n",mic_fname);   }   if(44 != fread(spk_wav_buf, 144, spk_fd)){      xprintf("read file %s err\n",spk_fname);      fclose(spk_fd);      fclose(mic_fd);      fclose(out_fd);      return-1;   }else{      xprintf("read file %s ok\n",spk_fname);   }   if(0 != wav_decode_head(spk_wav_buf, &spk_wav)){      xprintf("decode file %s err\n",spk_fname);      fclose(spk_fd);      fclose(mic_fd);      fclose(out_fd);      return -1;   }else{      xprintf("decode file %s ok\n",spk_fname);   }   xprintf("[spk_wav]\r\n");   wav_print(&spk_wav);   if(0 != wav_decode_head(mic_wav_buf, &mic_wav)){      xprintf("decode file %s err\n",mic_fname);      fclose(spk_fd);      fclose(mic_fd);      fclose(out_fd);      return -1;   }else{      xprintf("decode file %s ok\n",mic_fname);   }   xprintf("[mic_wav]\r\n");   wav_print(&mic_wav);
   samps = spk_wav.datasize > mic_wav.datasize ? mic_wav.datasize : spk_wav.datasize; /* 獲取較小的數據大小 */   samps /= spk_wav.blockalign;  /* 采樣點數 =  數據大小 除以 blockalign */   xprintf("\r\nsamps:%d\r\n",samps);
   sampleRate = spk_wav.samplerate;
   wav_fill_head(out_wav_buf, samps, 1, sampleRate);  /* 輸出文件頭 */   if(44 != fwrite(out_wav_buf, 144, out_fd)){      xprintf("write file %s err\n",out_fname);      fclose(spk_fd);      fclose(mic_fd);      fclose(out_fd);      return -1;   }
   st = speex_echo_state_init(NN, TAIL);   den = speex_preprocess_state_init(NN, sampleRate);   speex_echo_ctl(st, SPEEX_ECHO_SET_SAMPLING_RATE, &sampleRate);   ctl_i=1;   speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_DENOISE, &ctl_i); /* 打開降噪 ctl_i=1打開 0關閉*/   ctl_i=80;   speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &ctl_i);    ctl_i=80;   speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_ECHO_SUPPRESS, &ctl_i);   times = samps / NN;   /* 一次讀取NN個點,讀取times次 */   for(int i=0; i<times; i++)   {      if(NN != fread(mic_buf, sizeof(short), NN, mic_fd)){        xprintf("read file %s err\n",mic_fname);        fclose(spk_fd);        fclose(mic_fd);        fclose(out_fd);        return -1;      }      if(NN != fread(spk_buf, sizeof(short), NN, spk_fd)){        xprintf("read file %s err\n",spk_fname);        fclose(spk_fd);        fclose(mic_fd);        fclose(out_fd);        return -1;      }      uint32_t t0;      uint32_t t1;    t0 = get_tm_ms();      speex_echo_cancellation(st, mic_buf, spk_buf, out_buf);      speex_preprocess_run(den, out_buf);      t1 = get_tm_ms();      xprintf("used:%dmS\r\n",(t1-t0));      if(NN != fwrite(out_buf, sizeof(short), NN, out_fd)){        xprintf("write file %s err\n",out_fname);        fclose(spk_fd);        fclose(mic_fd);        fclose(out_fd);        return -1;      }   }   speex_echo_state_destroy(st);   speex_preprocess_state_destroy(den);   fclose(out_fd);   fclose(spk_fd);   fclose(mic_fd);   return0;}

  • 編譯錯誤 error: 'M_PI' undeclared (first use in this function)

  • src\speex_test\libspeexdsp\math_approx.h下添加

#ifndef M_PI#define M_PI 3.14159265358979323846#endif#define spx_cos_norm(x) (spx_cos((.5f*M_PI)*(x)))
  • shell_func.c中添加命令行

static void speexechofunc(uint8_t* param);{ (uint8_t*)"speexecho", speexechofunc, (uint8_t*)"speexecho mic spk out"},extern int speexecho(int argc, char **argv);static void speexechofunc(uint8_t * cmdbuf){int len;char mic[32];char spk[32];char out[32];char *argv[4];argv[0]="speexecho";argv[1]=mic;argv[2]=spk;argv[3]=out;memset((void *)mic, 0sizeof(mic));memset((void *)spk, 0sizeof(spk));memset((void *)out0sizeof(out));len = sscanf((charconst *)cmdbuf, "%*s %31s %31s %31s", mic,spk,out);if (len == 3){speexecho(4, argv);}else{}}

3 測試


  • 將mic3.wav spk3.wav通過我們的shell,xmodem傳輸到開發板

  • 核心代碼如下

初始化配置,降噪,回聲消除st = speex_echo_state_init(NN, TAIL);den = speex_preprocess_state_init(NN, sampleRate);speex_echo_ctl(st, SPEEX_ECHO_SET_SAMPLING_RATE, &sampleRate);ctl_i=1;speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_DENOISE, &ctl_i); /* 打開降噪 ctl_i=1打開 0關閉*/ctl_i=80;speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &ctl_i);ctl_i=80;speex_preprocess_ctl(den, SPEEX_PREPROCESS_SET_ECHO_SUPPRESS, &ctl_i);處理speex_echo_cancellation(st, mic_buf, spk_buf, out_buf);speex_preprocess_run(den, out_buf);
  • 執行異常,設置棧大一點

  • rtconfig.h中#define RT_MAIN_THREAD_STACK_SIZE 4096

  • 測試speexecho /sdcard/mic3.wav /sdcard/spk3.wav /sdcard/out3.wav

  • 打印信息和執行時間如下

  • 查看生成的文件out3.wav

  • 導出out3.wav

  • 使用Audacity,查看波形,查看回聲消除和降噪效果

4 總結


  • 以上基于TitanMiniBoard移植speex音頻處理前端算法。實現AEC回聲消除功能測試,分享應用Demo。以上測試是從文件獲取mic和spk回采數據,實踐中可以實時獲取對應的音頻采集數據進行實時處理。

5 獲取同款硬件


淘寶直達鏈接:https://e.tb.cn/h.RsOop0Vjm3x60cM?tk=pfECgiGVlXx

添加小師弟微信↓,拉你進RT-Thread技術交流群,找到組織!

圖片
圖片
圖片

想要在RT-Thread平臺或社區投放內容?

或想參與相關直播活動及賽事?

RT-Thread已開放對接窗口,

請通過郵件與我們取得聯系,期待合作!

合作郵箱: tongfangyi@rt-thread.com 

點擊“閱讀原文”查看論壇原文

RTThread物聯網操作系統 幫助您了解RT-Thread相關的資訊.
評論
  •         很多人拆解醫療設備時,只會關注傳感器、主控芯片這類核心部件,卻忽略了電路板上不起眼的晶振。作為整個醫療系統的時間基準,晶振的精度、穩定性直接決定了測量數據的準確性、設備的運行安全性——比如監護儀的采樣頻率偏了1ppm,血氧、心率的讀數就會出現系統性偏差;膠囊內窺鏡的時鐘漂移超標,圖像傳輸就會出現丟包、花屏。不同醫療場景對晶振的要求天差地別,沒有一款晶振能通吃所有設備,每一類醫療設備背后,都有一套針對性的晶振選型邏輯。1. 家用便攜監測設備:
    TKD泰晶科技 2026-07-31 08:24 478瀏覽
  • 行業痛點凸顯,飛凌嵌入式FET3572-C重磅登場工業4.0與AIoT發展下,嵌入式核心板作為設備“工業大腦”,面臨性能與功耗的雙重考驗——既要支撐復雜算法和多路數據處理,又要兼顧便攜設備、工業終端的低功耗需求,傳統核心板“高性能必高功耗”的困境制約設備升級。為此,飛凌嵌入式推出基于RK3572處理器的FET3572-C核心板,以2×Cortex-A73+6×Cortex-A53八核架構為核心,實現“性能翻倍、功耗減半”的突破,為中高端嵌入式場景提供優質算力底座。八核異構架構,解鎖性能功耗最優解
    飛凌嵌入式 2026-07-31 09:47 176瀏覽
  • 摘要在防爆電氣設計中,只參照芯數選型而忽略額定載流量,長期滿負荷運行會出現插頭發熱、接觸面氧化、IP67 密封受熱老化等問題。結合常用 3 針 3 孔、4 芯、5PIN、8PIN 圓形防爆連接器,制作分級電流參數對照表,區分冷壓免焊接、焊接兩種接線結構的安全載流數值,設置合理電流冗余系數,搭配使用環境修正參數,規范防爆接近開關連接器、防爆法蘭插座的選型計算方式。關鍵詞圓形防爆連接器,載流參數表,防爆法蘭插座,防爆端子接頭,IP67 防爆防水接插件1 產品概述圓形防爆連接器觸點載流能力由插針直徑、
    用戶1783664076620 2026-08-03 09:18 81133瀏覽
  • 摘要防爆自控系統同時布設本安信號、工業總線、動力供電三類線路,僅依靠標識標牌管控插接極易出現人為錯插問題,高壓動力回路竄入本安弱電回路會突破安全柵限能標準,產生點火風險。依托 A、D、K 標準化機械防呆編碼體系,搭配護套顏色區分管理,適配 3 針 3 孔免焊接冷壓增安型防爆航插、5PIN 總線防爆航空插頭、8 芯焊接防爆法蘭插座的選型使用,從物理結構層面杜絕防爆接近開關連接器、防爆傳感器航插接頭混用插接問題,補齊防爆系統被動安全防護體系。關鍵詞圓形防爆連接器,防呆編碼防爆航插,防爆航空插頭,防爆
    用戶1783664076620 2026-07-31 18:29 268瀏覽
  •     長期專注WiFi領域,也算是行業老兵了!同行閑聊中,時不時能提起我和我們!從疫情起,國產替代風生水起,起起落落,大浪淘沙,生存下來的都是強者!    WiFi模塊應用廣泛,對于高端市場和特定市場,要求WIFI模塊需要過CE/FCC之類的認證,也就是說沒有認證的模塊,不具備導入產品設計.接下來就和大家聊聊認證模塊選型參考!    WIFi模塊硬件方面主要考慮以下九點特性:    1
    納拓科技 2026-07-31 17:56 134瀏覽
  • Synopsys 這次沒有再給行業看一條只能站在展臺邊圍觀的 demo。7 月 27 日,Synopsys 在 DAC 2026 期間公布兩條 autonomous EDA workflow:一條處理 debug closure,另一條處理 implementation and closure。客戶可以通過 Synopsys 申請在 Microsoft Discovery 上評估,AMD 正在評估這些工作流能否用于下一代產品開發。公告里最扎眼的是 25%–40%。Synopsys 稱
    麒芯說AI 2026-07-31 14:21 164瀏覽
  • 01 量子光電實驗對高性能信號源的需求在量子光學實驗中,任意波形發生器(AWG)是連接數字控制與物理光場的重要信號平臺。無論是 AOD 驅動、聲光調制、光鑷陣列生成,還是原子搬運與動態重排,背后都離不開高精度、可編排、可同步的射頻信號輸出。相比傳統固定頻率源,AWG 的優勢在于其更高的靈活性:不僅能夠生成復雜波形,還能夠配合實驗時序實現多通道同步輸出、波形序列切換和動態過程控制,因此已成為量子實驗控制系統中的核心設備之一。但在面向 AOD 多束激光控制時,傳統 AWG 的使用方式也面臨
    虹科網絡基礎設施 2026-07-30 17:09 177瀏覽
  • 智能寵物用品這幾年快速普及,自動清理幾乎成了智能貓砂盆的標配。貓咪用完離場,設備自動翻轉清理,養寵家庭省去了每天彎腰清理的麻煩。但自動清理的第一步,是先準確判斷貓到底在不在盆里。這個看似簡單的問題,在小空間里并不容易做好。近場檢測的痛點:距離太遠反而誤事貓砂盆內部空間有限。如果傳感器的檢測距離設得偏大,盆外路過的貓、人甚至物品都會被誤判為貓在盆內,結果該清理時不清理、不該清理時亂清理,體驗直接崩壞。這類產品的核心訴求其實就一句話:近距離、小范圍、精準識別,不能有半點誤判。常規感應方案常因檢測距離
    唯創知音語音芯片 2026-07-31 16:51 222瀏覽
  • 光芯片,正在從光模塊的“配角”逆襲為AI產業鏈的“命門”2026年3月,英偉達一紙公告震動整個光通信行業——分別向Lumentum和Coherent各投資20億美元,合計40億美元。這哪是什么財務投資,這是一次對AI基礎設施關鍵環節的“掐尖式”卡位。光芯片,這個曾經被市場當作光模塊BOM表里一個標準配套元器件的東西,正在成為AI產業鏈上“卡位”最強、話語權最硬的環節。一、為什么是光芯片?老黃早就把話挑明了英偉達CEO黃仁勛的原話是:數據傳輸速度已成為人工智能發展的新瓶頸。AI集群從萬卡級往十萬卡
    用戶1774416745629 2026-07-31 11:22 278瀏覽
  • 今年好幾個客戶都問過我同一件事。藍牙音頻產品到底用 WT2605 這種單芯片,還是老老實實 MCU 外掛藍牙模組。兩種方案我都落地過,說點實在的,WT2605 剛出來那陣我也犯嘀咕,怕是營銷噱頭,真拿來做完一版樣機才服氣。一、選型先看三個維度外圍數量。這是最直觀的。傳統做法是 MCU 加藍牙模組,再加音頻編解碼、功放、晶振和一堆阻容,板子上密密麻麻十幾二十顆料。WT2605 把藍牙、解碼、功放全收進一顆,外圍就剩少量被動件。開發周期。傳統方案得自己接藍牙協議棧,配網、A2DP 解碼、音頻通路一一
    唯創知音語音芯片 2026-07-31 16:35 315瀏覽
  • 在芯片總成本中占比不到 1%,卻可能因一處品質偏差導致整片晶圓報廢——半導體切割/研磨膠帶,正隨著先進封裝的爆發,成為封測產線選型中最謹慎對待的耗材之一。但鮮有人注意到,決定這層膠帶性能上限的,是上游一層更薄的基膜。這個長期由日本企業主導的隱形環節,正在出現國產突圍的信號。一、需求之變:先進封裝與“韜定律”重塑膠帶市場AI 算力芯片、HBM 高帶寬存儲、Chiplet 芯粒等先進封裝產品持續放量,國內封測產線擴產節奏不減。作為晶圓減薄與切割工序的必需耗材,晶圓膠帶的需求同步擴容。據 QYRese
    芯膜前沿 2026-07-31 16:35 270瀏覽
  • 在EMC測試過程中,傳導發射(Conducted Emission,CE)超標是工程師最常遇到的問題之一。更令人頭疼的是,同樣的超標曲線背后,可能對應著完全不同的干擾機理:有的是差模噪聲沿電源回路傳播,有的是共模電流通過寄生路徑耦合,還有些問題甚至并非來自電源本身,而是負載、電纜布局或接地結構引起的連鎖反應。 · 150kHz~1MHz 超標:多為差模噪聲為主,干擾沿火線-零線回路傳輸。 · 1MHz~30MHz 超標:通常共模噪聲占主導,干擾通過火線/零線對地回路傳播。 如果條件允許,用電流探
    譽磁電磁兼容EMC 2026-07-31 18:45 289瀏覽
  • ?摘要:低價大流量卡正全面退市,政策收緊已成定局。面對傳統號卡的不確定性,隨身WiFi憑借穩定連接、多設備共享、獨立設備和靈活套餐等優勢,成為務實可靠的備選方案。1、流量卡黃金時代要結束了通信行業正迎來一場前所未有的“地震式”調整——曾讓無數用戶追捧的低價大流量卡,正在全速退出各大平臺。這早已不是一次普通的競合,而是一場趨勢性的行業洗牌。回望過去,19元200G的神卡,那時真是“睡著都能笑醒”,便宜到不敢相信,爽到忍不住炫耀。那些日子,好像隨便刷、隨便看,流量自由觸手可及。可如今,回頭再看,那種
    愛上電路設計 2026-08-03 10:21 81377瀏覽
我要評論
0
點擊右上角,分享到朋友圈 我知道啦
請使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 堕落新娘| 梨泰院踩踏事故亲历者发声| 战狼6欧式少女全部人物| 不可思议的晴朗24集免费观看| 法国色情巜情欲含苞待放| 麦乐迪马斯克女超人满天星电影| 人口普查2021公布结果| 网球王子128| 电影《青楼李师师》免费观看| 太空部队第二季| 战狼6免费观看完整版高清在线播放| 叶问前传| 韩国《女员工的滋味》在线观看 | 哈尔的移动城堡免费完整版| 人民警察电视剧| 缘之空全集免费观看完整版| 霜花店免费观看完整版视频| 电视剧玫瑰花开| 年代秀20130315| 刘纪鹏:股市破3000点是爆发| 法版高压监狱2小时45分| 独闯龙潭百度影音| 狼毒人电视剧全集在线观看免费高清| 须要爸爸播种| 电影狼狈| 归路电视剧在线观看全集| 需要爸爸的种子美国电影播放器电影| 爵迹3风津道| 困惑的浪漫在线观看| 金银梅2008版电影尼姑| 自制ipad| 卜案下载| 牙医姐妹电影免费版在线看| 关中往事| 《妈妈的外遇》电影| 安姨满天星版全集免费播放| 名侦探柯南16 第11个前锋| 执行秘书电影在线观看| 收割伊丽莎白| 世界大力士争霸赛| 你是我的氧气| 再见孙悟空| 兵临城下美版电影| 凯·帕克的私人水疗| 丁度巴拉斯 欲望疯狂| 开心鬼撞鬼迅雷下载| 黑白配4黑白配在线观看免费高清| 千钧一发百度影音| 非常90后下载| 《美容院特殊待遇》| 韩国电影姐姐的朋友1在线观看中文| 婚后的诱惑| 特殊的游泳池在线观看| 河北三佳购物频道| 玉浦团电影| 妈妈的职业5高清完整版| 电影法国空姐1| 水浒传全集高清| 捆绑凌虐BD中文字幕| 小周后电影免费播放在线观看| 怒海红尘| 李思思离职央视后迎来综艺首秀| 销售的秘密2在线观看免费版电视剧 | 修理工的艳遇HD电影在线观看| 蔷薇风暴1-40集免费看| 一步小心爱上你| 韩国《维修工的艳遇》| 金蝉脱壳电影| 江城子欧阳炯| 日本战狼10电影免费播放国语| 胡玫电影版《红楼梦》在线观看| 请鬼在线观看免费高清完整版| 售楼小姐的销售秘密在线观看| 超级奶爸:带娃赚钱两不误全集免费| 大唐女将樊梨花吻戏| 维修师傅艳遇理论电影| 沙漠女王1983意大利| 了不起的盖茨比 快播| 《美容院的特殊待遇》所有演员是谁| 杀破狼贪狼免费观看| 《南京照相馆》完整版在线观看| 布兰迪《军事不当行为2》在线观看完 | 天蝎座之夜3完整版免费版| 西虹市首富演员表大全| 凯旋在子夜电影完整版在线观看| 非诚勿扰百度影音| 《堕落的女律师》HD中字 | 长河落日在线电视剧免费观看| 《控制美女老板的遥控器》演员表 | 高清《快车手》未删减版在线观看| 坎贝奇三部品味人生在线观| 黎明前的暗战在线观看| 哪吒2魔童闹海在线播放高清| 魔镜号中文字幕| 天空之城国语版高清| 离婚前规则31集| 30分钟插曲视频大全免费播放国语| 皇后的品格免费观看完整版 | 高清《法利赛人》在线观看播放| 郑州换纱窗| 玄女心经2在线观看免费| 葫芦丝名曲月光下的凤尾竹| 芒果香谢军| 《美姐妹很努力》赤板栗子| 少女免费高清在线观看| 《华胥引》| 女超人麦迪娜1080p满天星版| 伦韩国理论片在线观看| 龚《新金梅》| 酒店1-60集全免费观看| 电影隔壁的女孩| 《奔跑吧兄弟》第四季| 我的游泳女教练| 电影《废都》国语免费播放| 铁马少年国语版| 《法国空乘2018法版》| 电视剧狂飙全集在线观看| 萨拉热窝事件| 火凤凰33集| 伊波拉病毒2:伊波拉大逃亡| 嫩草香味| 地铁跑酷bug| 美版HD古墓丽影山寨版满天星| 带球跑宝:虐渣超神全集免费| 黎明之前电视剧在线观看免费全集| 朝国伦理影片需要父亲的种子| 秦王李世民传奇全集免费观看| 流浪的青春| 八戒八戒影视在线观看大全| 新金瓶梅电视剧一到五集| 广场舞西海情歌| 斯巴达HR版| 重庆谍战在线观看| 《搜索》| 魔镜号| 新逃学威龙| 小土豆歌曲完整版| 酒店1-90集免费观看高清| 娘家故事第二部全集| 下一个奇迹百度影音| 《麦乐迪和父亲》完整版百度云| 动漫《毛利兰的小玩具》在线观看| 乱马国语| 西门庆和潘金莲电影| 无尽的尽头电视剧分集剧情| 美国《仰泳》电影| 还珠格格第3部全集| overflower免费观看无删减版无码观看 | 浪漫黛比| 电视剧新结婚时代| 神兽金刚全集| 地爆天星意大利完整版| 不信天上掉馅饼| 女技师电影| 广西一保安砍死2名业主| 高清《秘密教学》无删减在线看| 恋爱的正确标记法| 王爷追妻忙:王妃要和离短剧全集| 《最高の爱人| 无尽的尽头电视剧免费看的| 花子vs倔强驱魔师动漫在线观看全集| 校长称邯郸男孩的死亡是个意外| 成都警方通报天府二街伤害案 | 《维修工》李丹妮| 神奇女侠在线观看| 世界末日是哪一天| 操小姨子网| 万古尊上短剧免费观看| 完美音调| 唐人街探案 3在线观看| 一起愁愁免费高清在线| 《年轻女教师2》电影| 花琉璃电视剧免费观看完整版高清| XL司令第一季免费全集在线观看| 小皮匠登基| 生化危机3 灭绝| 美国式保罗2越演越烈| 李胜基演过的电影| 小魔头暴露啦| free第二季在线观看完整版| 使徒行者3在线看免费| 白峰电影84集免费播放| 悲伤比更悲伤的故事| 幸福约定电视剧免费全集在线观看 | 《私人航空》法国在线播放| 江河水电视剧剧情介绍| 赤裸特工| 巨大女英雄在线看完整版| 2012法国《荣誉守则》在线观看| 胖东来卫生巾区域人满为患| 蒹葭苍苍短剧| 爸爸来播种完整版| 高清《蝙蝠》电影完整版| 强殖装甲动画| 黑白配4黑白配在线观看免费高清| 尤雅歌曲| 白夜追凶 下载| 带我离开歌词| 爱情公寓3第16集| 迷人的岳母在线| 情深深雨蒙蒙全集| 如懿传全集免费完整版在线观看| abo成结动画模拟观看| 长乐曲1-40集免费观看| 南京!南京!免费| 731部队女子配狗的电影有哪些| 青春之歌在线观看| 盟约电影免费完整版在线观看| 看电影电视剧好网站最新电影电视剧| 渔夫荒野史1987完整| 特战荣耀免费观看完整版在线高清| 隋唐英雄117| 女邻居竟是绝色护士| 男生女生向前冲2024| 《鬼吹灯》免费观看| 做aj电视剧免费大全| 美发屋特别待遇2| 你不懂电视剧网| 《激战丛林》完整版免费| 识骨寻踪第五季| 暴劫倾情下载| 古惑仔之猛龙过江| 强奸轮奸影片免费播放| 二婶电视剧全集| 女王之刃哪集最h| 儿子爱上日本妈妈叫什么电影| 胜者为王粤语| 痴人之爱电影在线观看| 缘之空在线看完整| 请好好疼爱第8集免费播放| 天堂有难| 暗潮汹涌之惊魂12小时免费观看| 瓜达卢佩玫瑰无删减下载| 猎金·游戏电影| 爱子情深全集| 3v1三人一次性体检| 你微笑时很美电视剧全集免费观看| 黑帮大佬和365日| 卷土重来电影| 酒店实生3满天星法版免费观看 | 北大女生包里最全聊天记录| 库车县| 魔女2:另一个她在线观看| 视频在线观看免费高清| 恋恋不忘全集在线观看| 女律师的坠落在线观看免费版电视剧| 咱们结婚吧mp4下载| 容嬷嬷的小黑屋| 《公的浮之手中字| 《小兵张嘎》| 情深深雨濛濛| 与龙共舞电影| 妈妈的职业5在线观看免费完整版电视剧全集高清 | 战地黄花电视剧| 《夏娃之春》在线观看| 女职员的特殊待遇电影| 淑女飘飘拳免费观看| 客从何处来 易中天| 坎贝奇无憾在线免费观看| 韩剧亲爱的X| 情不自禁高清完整版| 外国孩子中国爸| 乡村爱情小夜曲| 台湾版黛比浪漫家教电影| 长空雄鹰| 护宝风云电视剧全集在线观看免费| 最强反套路系统动漫第二季| 私人家教 在线| 致命弯道3在线观看| 直到你降临短剧免费观看| 美容室特殊待遇 | 韩剧办公室蓝色隐身帽子女主叫什么| 大乐透24142期开奖结果| 杨馥宇变形计| 村里的姑娘国语高清在线观看| 《欧式少女》16集全完整在线观看| 水嫩多汁的蜜桃H| 天宇一号| 和讨厌的部长一起去出差旅的电影叫什么 | XL司令第一季真人版| 极乱家族| 无颜之月完整版| 顶楼韩剧| 水手服饲养1| 黑帮生意| 火云传奇| 双女任务在线| 父子全集| 龙之心2| 《莫妮卡《爱我几何》》高清再线播放| 神探阿蒙第一季| 驯服小胰子2| 菜鸟总动员| 千鹤道长出山免费观看| 庆城县| 维修工的艳遇电影完整版在线观看| 康定情歌dj| 恰同学少年23集免费观看| eeuSS| 地球脉动第一季免费观看| 假面骑士零诺斯| 天龙特攻队 字幕| 贝克汉姆任意球集锦| 潮与虎动漫| 电影《香醇的绣感》完整版在线观看 | 落魄贵族琉璃川动漫全集免费观看| 吉祥三宝舞蹈| 纪连海 灌篮高手| 《私人航空2》在线看| 漂亮的小蜜桃5| 我的老板娘3韩国| 电视剧摆渡人免费观看| 我女友的妈妈双字ID免费韩剧| 寄生兽韩国| 年轻的母亲如如| 狂野时代电影| 《军事不当行为》法国版完整版| 大地中文在线观看免费高清电视剧| 黑执事豪华客船篇百度云| 荒野渔夫高清免费观看| 暮光之城2迅雷下载| 喜爱夜蒲2 完整版| 守护甜心第三季| 日剧《卖房子的女人》| 魔鬼天使 杨思敏| 韩国n房| bigtitsvideos| 爱你几何免费完整版| 古灵精探第一部粤语| 底线 电视剧| 同学的母亲中字id英文| 武藤绫香番号| 妈咪直播打扑克| 龙岭迷窟在线| 意大利人猿泰山1995时长1小时34分版本对比 | 魔道祖师免费动漫| 圣斗士传说| 壮志凌云女版满天星法版高清| 男子胁迫前女友跳海殉情| 铁马战车粤语| 高清《老师好》全集免费观看| 高清《纵情欲海》1无删减 | 无尽的无尽全集在线观看免费高清| over fly第一季在线观看| 韩国阅兵式高清完整版| 日本边添边摸边做边爱的网站| 插曲的痛90全集免费观看高清版| 惊蛰电视剧| 和讨厌的部长去出差旅| 在线观看365第二部| 怪医文三块高清全集| 女超人麦乐迪星辰影院| 天海翼在线观看视频| 宫斗逆袭:从宫女到皇后短剧全集| 女婿有劲枪枪到底岳峰扮演者| 意大利《激战丛林》电影免费观看| 世界之战| 电视剧50玫瑰| 终极三国2017| g点在线观看| 一家子插我B啊| 八百彪兵奔北坡| 从你的指尖传出的热情| 三级《出差被同房》| ed2k 步兵| 致命弯道5 电影| 不被爱也没关系全集观看 | 谢娜康辉| 游泳馆的工作2| 善良的女秘书免费| 男女一起愁愁愁免费全集| 天衣无缝的她 电影| 生活有点甜 电视剧| 圣特罗佩斯的姑娘们| 意大利空乘4美版免费观看| 君心藏不住电视剧| 一步小心爱上你| 杰西简和凯登克劳斯最经典的十句话| 且试天下电视剧完整版| 《幸福一家人》电视剧| 三少爷的剑百度云资源| 刚结婚陪部长出差的日子在线观看 | 操俄罗斯美女| 韩剧《鬼宫》全集免费观看| 善良的妻子4| 迟来的愤怒| 美丽小蜜蜂4美国版| 葬送的芙莉莲动漫免费观看| 玫瑰的故事更新时间 | 《渔夫的老婆》| 女秘书的目的在线观看| 女子在足浴店被技师弄晕| 近距离爱上你电视剧全集在线观看 | 冰雪之名电视剧免费观看| 哭泣的牛| 雪莉露h| 水电工外遇电影| 半吨先生| 贺军翔主演电视剧| 永年县| 三位大学位按摩记角色更新时间| 斗破苍穹电视剧在线观看| 风起的日子笑看落花| 酒店激战第1-5集李丽珍| xl司令动漫第一季全集在线观看免费 | 扫黑风暴免费高清全集| 柔铺团之极宝乐鉴宝鉴电影在| 唱片销量排行榜| 星克莱尔迷宫在线播放| 全红婵今日10米决赛直播| 女邻居请邻居修灯泡修灯是什么电影 | 《妻子6》在线观看免费版电视剧 坎贝尔《人生无憾》在线播放 | 电视剧长相思第二部| 酒店1-100集全集免费观看高清| 《曼哈顿金牌经纪 第二季》未删减| 恐怖游轮高清| 俘虏之锁在线观看完整版| 我是特种兵2片尾曲叫什么| 遍地狼烟电影下载| 纪光莉替夫还债的电影免费观看| 大锅饭养懒汉| 解读西游记| 岁月风云之雄霸天下| 熟睡中被义子侵犯中字| 性的暴行2小时16分| 极恶老大第二季全集在线观看| 爱情公寓3下载mp4| 白峰电影免费版高清在线播放| 黄色仓库媒体传媒| 超危保镖电影完整版免费| 欢乐喜剧人 第三季| 《西服女律师替丈夫还钱》| 部长来家做客中文字幕在线观看| 小飞箭来咯红包是真的吗| 末路电视剧| 养鬼吃人10| 四位按摩电影免费观看| 生而为狗| 爱情大片免费观看全集| 跑男第十二季免费播放 | 最新一期奇葩说| 妖精视频在线免费观看| 情色姐妹| 性婬女兵俱乐部| 凤隐天下电视剧全集| 韩剧《老板的贴身秘书》免费观看| 九歌电影高清版在线观看| 亲戚交换乱小说txt| 女销售的销售秘密2| 《妻子去加班的夜》中文翻译| 姑娘9荷尔蒙美国版| 江苏体育台| 爱情的牙齿在线观看| 安平县| 浩哥闹县衙| 黑暗荣耀电视剧| 金瓶梅在线观看免费完整视频国语| 颐和园纪录片| 战狼6双人版高清免费观看| 跳水男孩| 波多野结衣教师系列精品| 都市猎人| 激战丛林hd版意大利| 蜜桃成熟时3d| gar280| 美容院的待遇服务免费| 爱的妇产科电视剧全集| 地瓜妹妹| 麦乐迪满天星免费观看完整版| 芈月传在线免费观看| 大宋少年志1免费观看| 极品教师第二季免费观看完整版| 斗破苍穹107集免费观看| 灌篮高手2023年电影版在线看| 赤子板《姐妹牙医》百度| 薛平贵与王宝钏电视剧下载| 《大胸女友》免费观看| 莫妮爱我几何免费高清电影无删减| 面具安七炫| 妖精的尾巴63| 掌中之物西班牙完整版 | 秘密花园在线观看全集免费| 日本电影妈妈爱上儿子的同学免费观看| WRITE AS 黄瓜| 法国《遗产》罗丽星克莱尔| 变形金刚2国语版在线观看| 8号当铺电视剧免费观看| 杨思敏版1~5集全集电视剧| 咱们结婚了吧| 谢娜唱哭了| 黑白配 国语 免费观看| 天津市一栋大厦发生火情| 咱们结婚吧全集免费观看| 如果明天的路你不知该往哪走| 战狼6在线观看高清版免费完整版| 丝袜腿交| 新金品梅2013电影| 《婚礼的前一天》| 西安都市快报直播| 电影《封神2》高清版| 安姨《房屋售楼员》在线观看| 星落凝成糖免费完整版| 印度人看中国高铁| 极限挑战第十季免费观看完整版| 落魄的贵族琉璃川观看| 追在线观看| 保卫黄河歌谱| 坎贝奇无憾完整版| 一夜情电影| 少女免费观看完整电视电影 | 南斯拉夫电影瓦尔特保卫萨拉热窝| 战狼999加特林| 娘亲舅大电视剧| 冲出亚马逊高清电影| 娃娃脸在线观看完整免费高清原声满天星剧 | 五十度灰在线播放标清| 电影逃离德黑兰| 男按摩师做乳房按摩伦理片在线播放 | 五妹影视剧大全免费观看黑暗荣耀| 新醉打金枝优酷| 聊斋三 电视剧| 日本空姐2019 | 羁绊5.7| 剑在弦上| 岳理厨房伦片在线播放| 日剧轮到你了 免费观看| 禁忌II| 报告老板之豪言壮旅6| 明星换脸王鸥的电影免费观看| 理发店里的特殊待遇在线观看| 东北奇缘在线观看完整版| 歌唱二小放牛郎电影| 哈哈哈哈哈第5季免费| 麻花传奇天美mv免费观看| 春闺梦里人在线观看完整版| 阿里拳王| 光剑变装二维码| 美国爸爸要播放的电影| 蓝色帽子隐形的韩国电影在线观看| 丘比特的日记| 江湖儿女免费| 《人在囧途》| 女超人麦乐迪无删减版在线| V酒店电影| 张靓颖 奥普拉| 日本语徐娘半老电影有哪些| 后天美女 电视剧| jojo黄金之风在线看完整版免费| 301勇士| 在线播放JUFD-621偷窥湿按摩-巨大的乳房导师在失禁和羞耻中扭动-RikoMizusawa | 微笑妈妈电视剧免费完整版| 第二陷阱| 牙医姐妹高清完整版在线观看| 昆明长丰中学| 西出玉门几点更新| 孤舟电视剧40集免费观看| 黑白配免费播放高清完整版| 韩国特殊游泳课。| 无删减《苹果》| 让子弹飞起来| 豫剧程英救孤| 美国式家庭的忌讳| 坎贝奇品味人生观看| 名侦探柯南 动漫| 玛丽娜 阿布拉莫维奇| 电视直播频道| 蓝色隐形帽子电影免费| 五亿探长雷洛传电影| 顺娘全集| adn-018| 韩国电影情事完整版免费原声| 农场主的三个女儿| 楚留香传奇郑少秋版79版国语全集| 黑洞频率| 我以后帮你扣哦| 爸爸的种子高清免费版电视剧需要爸| 《新婚的滋味》HD| 李世民传奇| 妖狐传说| 木下檀檩子伦理电影| 《重启之蛇骨佛蜕》| 悠长假期日剧| 义姐是不是良| 终极强奸之兽性诱惑| 胭脂第45集电视剧在线观看| 托尼贾2024最新电影| 电影《美容院的特殊待遇》| 男女愁愁免费剧| 星汉灿烂电视剧全部剧集| 我们都是好朋友电视剧| 中华小厨神| 伦理《法国空乘11观看| 高压监狱在线观看完整免费高清原声满天星2019法国 | 人民公社大食堂| 人间世第七集| 漠河县| 麻生香织《黑色皮肤上的眼泪》在线观看| 今生有你电视剧在线观看| 魔王学院的不适合者动漫免费观看| 意志的胜利| 电影特邀外卖员在线观看国语| 林志炫翻唱| 鬼吹灯之怒睛湘西| 邻居少妇太爽了A片无码小说| 麦乐迪女超人HD版在线观看 | 首尔之春历史真实事件| 幸得相遇离婚时免费播放| 劳拉的痴迷1996电影免费播放| 邬君梅 枕边禁书| 张大仙全球首吐| 高清暗恋者的救赎未删减| 上位110分钟完整版| 莫莉特别酒店| 泰剧血脉| 隔壁的邻居很美味免费观看 | 女战狼10普通话版免费观看| 太阳的新娘| 色戒电影完整版观看免费高清| 苍兰诀在线观看| 《法国空乘10》完整| 德川幕府罚史三部曲之水月篇| 晚娘罪色| 龙月泰剧1集免费观看| 悠长假期日剧| 吴健版《农民伯伯2》播放常青 | 《我的游泳教练》免费观看下拉式| 斗破苍穹169| 农心杯最新消息2024| 凉宫春日2009| 高清如果能成为恋人| 漂亮的妈妈中字开头5个字| 偷窥无罪吴彦祖| 聊斋画皮免费观看完整版| 职员到老板:打工人全集免费| 玩命快递1免费观看高清| 韩国三级维修工的艳遇| 在线播放需要爸爸播种子| 惊天铁案在线观看| 落花时节又逢君电视剧刘学义| 足球少女| 八仙饭店埃博拉病毒电影| 电影《美味快递员2》免费完整版| 一步之遥字幕下载| 甜蜜惩罚免费在线观看| 突击手蜜獾解说| 龙虎山张天师电影免费观看 | 暮光之城:破晓| 聊斋:兰若寺全集观看| 越南丰满BBWBBW| 布莱泽奥特曼在线观看| 歼灭天际线1~80集| 高压监狱播放地址| 超感迷宫 电视剧免费观看| 且试天下40集完整版免费| 落跑甜心全集电视剧大结局| 82板杨敏思版本1-5电视剧在线观看 | 爱我几何无删减在线免费观看 | 《家属》1~6集全集在线观看| 《驯服小峓子2》| 白峰在线免费观看| 大胸特殊按摩电影| 济宁二手车市场| 斩神之凡尘神域| 玉面桃花总相逢免费观看| 《蓝帽子》朴亚珍| 朴雅珍演过的蓝色帽子| 九品芝麻官免费| 电视剧折腰免费看| 咱们结婚吧1—6| 班戈县| 牝教师4在线观看视频| 张颂文车内被扔东西| 甄嬛传63集剧情| 课中坏事 韩国| 我家那小子2026| 最高的爱人诏| 私人航空法国成人电影| 两个妈妈吗| 女教师波多野结衣在线播放| 你的婚礼免费看| 黛博拉满天星三部曲| 理发馆| 迪加奥特曼国语版全集爱奇艺| 林志炫翻唱席琳迪翁| 我在情人截取了一段小视频| 哈利波特电影免费观看完整版| 《理发:特殊待遇》哪里可以看 | 坎贝奇《无憾》完整| 一二三电影| 净最新影片在线看| 有求必应在线观看| 《情欲办公室》未删减版在线观看| 需要爸爸播种子在线观看,正在播放《需要爸爸播种子》在线观看HD中字_无极影视 | 东成西就2011国语高清| 李小环与苗翠花| 死亡同学会| 《爱人》韩国在线观看| 法国护士长伦理片在线观看| 《贝拉》电影在线观看完整| 覆雨翻云粤语全集| 外太空杀人小丑| 唐朝禁宫秘史在线观看| 新济公活佛全集| 游泳馆特殊待遇| 保卫我们的土地免费| 裙子下面是野兽动漫| 蜗牛电影在线观看免费| 幸福密码电视剧免费观看完整版| 《炸天小姐》电影免费| 三只狐仙大战五通魔电影| 哈利波特与混血王子在线观看 | 时宴郑书意电视剧免费观看| 最近妹妹有点怪真人电影观看人数 | 跳水世锦赛女子十米台决赛直播 | 隔壁邻居电影| rosimm| 韩剧树大根深| 天道电视剧36集完整版| 动感之星妖精179集免费观看| 日剧《按摩男》免费观看| 恶搞之家拍脏片八季是哪一集| 智者无敌白鸽| 唐朝诡事录电视剧免费观看完整版| 漫步云端 电影| 公公之浮之手中字| 渔夫荒淫史免费观看| 星际宝贝在线观看| 韩国电视剧拜托小姐| 鸭王 团购| 韩剧童颜美女| 牛鞭擦进女人下身在线| 朴槿惠被曝身体出现异常| 借种韩国电影| 教官的小妖精又凶又残电视剧| 哈利波特1—8部免费观看| 酒店1-75集全集免费播放| 好玩的还是瘦子韩剧| 神印王座在线观看免费| 丈夫的陷阱| 蜡笔小新2010剧场版| 海豹看看动画片在线观看| 爱我几何在线观看完整版免费高清| 潘金莲1-5| 潜望镜1979| 美国电影免费看| 快乐方程式动漫| 庆余年1-46集免费观看| 《悲惨遭遇》1980年法国| 站着再来一次第30集精彩片段回顾 | 锡剧珍珠塔全集| 火域凤凰| 聊斋艳谭免费观看| omoflow第一集真人版| 正在播放:【传媒】MDSR0006-2 《小凤新婚》下集-高冷新妻性奴 | 隐形帽子在线观看| 影子爱人百度影音| 《海绵宝宝:深海大冒险》| 傻猫大战三小强| 你比星光美丽第一集| 流金岁月在线观看| 美丽水蜜蜂第一季免费观看| 《法国空乘4》在线观看外国色情电影| 敌营十八年插曲| 海边的女人下载| 五福临门电视剧全集在线观看| 不要忘记我| 黑白配国语在线播放免费观看 | WWW.637.色情网| 黑丝在线观看| 岳飞传刘兰芳| 芬兰空姐4| 《总统夫人》星克莱尔全电影| 弓在线观看| 黑龙江网络电视台| 宫锁沉香 电影| 漂亮的保姆完整在线播放| 邹平县| 日剧修理工的艳遇| 青云志2第二部免费播放 | 军事不当行为啄木鸟法版| 我的姐姐免费观看完整版电视剧| 天舞纪电视剧免费观看| 忘年恋电影| 海市蜃楼的形成| 暴风眼 电视剧| 美艳的房东太与阿宾91| 千灭天际线| 电影匹夫| 《特战荣耀2》免费看| 名侦探柯南全集目录| 海角7号| 《朴亚珍蓝色隐身帽子》| 和部长一起去出差旅未删减版| 熊出没之环球大冒险| 黑白潜行免费观看高清| 电视剧迷雾重重| 白百何益达广告完整版| 亚当电影在线观看免费完整版| 欧美白雪公主h级成人版| 男生女生一起愁愁愁愁愁电视剧免费观看视频 | 无限资源日本动漫版在线| 加勒比女海盗9美版免费| 高清《她唇之下》电影| 朋友的闺蜜ID中字| 上门推销避孕套当场试货电影| 王者清风片尾曲| 一年一度喜剧大赛| 霍比特人主题曲| 四位大学位按摩记电子版pdf百度网盘 | 《执行秘书》2009| 用身体换猪肉吃的农村题材电影| 法医秦明张若昀全集免费| 薛平贵与王宝钏47| 电视剧折腰免费看| 李阳疯狂英语全集| 兄妹在客厅当父母2上映时间| 我的xl司令在线观看免费高清全集| 控制美女老板的遥控器| 花少丝路季| 飞天小女警z中文版全集| 纯真时代| 飞翔吧 战机少女| 《妻子6》在线观看| 俄罗斯美女| 麦子交换1普通话版| 沙漠求生电影免费观看| 囧的呼唤| 电影灯草和尚高清免费普通话版| 满江红在线观看免费高清完整版| 《四个混血大学生》2完整版| 电影《私人航空》法国电影在线播放| 刘三姐全集观看| 一夜情电影| 苍蝇之母| 最新凤凰军事观察室| 新水浒传第26集| 美乃雀| 韩剧《激战三姊妹》在线观看| 家有九凤电视剧全集完整版免费| 绝色神偷蜘蛛被欺负完整版| 星星的密室张艺兴| 假面骑士decade主题曲| 手机在线观看高清完整版电影| 《陆判换心》徐锦江在线观看| 屠宰场呕吐娃娃电影在线观看免费 | 我的大胸妽妽中文字幕| 王李丹妮《情欲教室》| 叶子楣电影| 三日情劫:不嫁已婚总裁| 快乐星球第5部| 冕宁火腿|