亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pattern.cc

?? ears-0.32, linux下有用的語音信號處理工具包
?? CC
字號:
/*    This file is part of the 'ears' package.    Copyright (C) 1994,1995,1996  Ralf Stephan <ralf@ark.franken.de>    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/// Thanks to Michael Beck for his vplay code and Hannu Savolainen for// his great driver and programming documentation.#pragma implementation #include <stdlib.h>#include <values.h>#include <fstream.h>#include "pattern.h"#include "recognizer.h"#include "ears/fmat.h"#include "ears/exception.h"//--------------------------WORD_PATTERN-------------------------------pattern::pattern (const feature& f, const string& r) :                   F_trace(20), B_quanta(6){   recognizer rec(r,0);    if (rec.pat_type()=="V")    p = new var_pattern (f);  else   if (rec.pat_type()=="F")    p = new fixed_pattern (f,F_trace);  else   {     string t = "Pattern.h: Unknown pat_type: ";    t += rec.pat_type();    throw(fatal_exception(t));  }}// For every kind of pattern, we have two constructors --- creating a// pattern from a feature, or from a file.//----------------------------VAR_PATTERN---------------------------------var_pattern::var_pattern (const feature &f){  length = f.length();  coeff = f.coeff();  buf = new float* [length];  for (int k=0; k<length; k++)   {    buf[k] = new float [coeff];    memcpy(buf[k],f.buffer()[k],sizeof(float)*coeff);  }}var_pattern::var_pattern (const string& fn) {  ifstream i(fn.c_str());  i >> length >> coeff;  buf = new float* [length];  for (int k=0; k<length; k++)   {    buf[k] = new float [coeff];    for (int l=0; l<coeff; l++)      i >> buf[k][l];  }}PatternImplementation* var_pattern::copy() const{  var_pattern* p = new var_pattern;  p->length = length;  p->coeff = coeff;  p->buf = new float* [length];  for (int k=0; k<length; k++)   {    p->buf[k] = new float [coeff];    memcpy(p->buf[k],buf[k],sizeof(float)*coeff);  }  return p;}void var_pattern::write (ostream& o){  o << length << " " << coeff << " ";  for (int k=0; k<length; k++)    for (int l=0; l<coeff; l++)      o << buf[k][l] << " ";}void var_pattern::read (istream& i){  bool ok = i >> length >> coeff;  if (!ok || length<10 || coeff!=8) { err=true; return; }    if (!buf)  {    buf = new float* [length];    for (int k=0; k<length; k++)     {      buf[k] = new float [coeff];    }    if (!i) { err=true; return; }  }  for (int k=0; k<length; k++)    for (int l=0; l<coeff; l++)      i >> buf[k][l];        if (!i) err=true;}//----------------------------FIXED_PATTERN-------------------------------fixed_pattern::fixed_pattern (const feature &f, int t) {  bits=0;  buf = new float* [trace=t];  for (int k=0; k<trace; k++)    buf[k] = new float [coeff=f.coeff()];  if (f.length() < trace)      err=true;  else      trace_segmentation (f.buffer().buf(), f.length()-1);  // Normalizing is not necessary.}fixed_pattern::fixed_pattern (const string& fn) {  bits=0;  ifstream i(fn.c_str());  i >> trace >> coeff;    buf = new float* [trace];  for (int k=0; k<trace; k++)    buf[k] = new float [coeff];    for (int k=0; k<trace; k++)    for (int l=0; l<coeff; l++)      i >> buf[k][l];}PatternImplementation* fixed_pattern::copy() const{  fixed_pattern* p = new fixed_pattern;  p->trace = trace;  p->coeff = coeff;  p->buf = new float* [trace];  for (int k=0; k<trace; k++)   {    p->buf[k] = new float [coeff];    memcpy(p->buf[k],buf[k],sizeof(float)*coeff);  }  return p;}// Stolen from librecog.  Thanks to Tilo Schuerervoid fixed_pattern::trace_segmentation (float **fbuf, int diffsize){  float dist = 0.0;  float diff [diffsize];  for (int i=0; i < diffsize; i++)    diff[i] = 0.0;                   // initialize all distances to zero   for (int i=0; i < diffsize; i++)  {    for (int j=0; j < coeff; j++)    {      float abs_dist = fbuf[i+1][j] - fbuf[i][j];      diff[i] += (abs_dist > 0) ? abs_dist : -abs_dist;    }    dist += diff[i];  }	  float average_dist = dist/trace;     // average distance   int k=0;  dist = 0.0;  for (int i=0; i < trace; i++)  {    while((dist < average_dist)&&(k<diffsize))      dist += diff[k++];		    for(int j=0; j < coeff; j++)      buf[i][j] = fbuf[k-1][j];	    dist -= average_dist;         // rest remaining for next loop   }}void fixed_pattern::write (ostream& o){  o << trace << " " << coeff << " ";  for (int k=0; k<trace; k++)    for (int l=0; l<coeff; l++)      o << buf[k][l] << " ";}void fixed_pattern::read (istream& i){  i >> trace >> coeff;  for (int k=0; k<trace; k++)    for (int l=0; l<coeff; l++)      i >> buf[k][l];}char* fixed_pattern::quantize (int q){  // Note: This is local quantization, maybe we should compute  // min,max of all patterns?  // We determine min and max for each coeff over all frames and  // divide the interval evenly in QUANTA sub-intervals.  Then  // we set the pat array according to which sub-interval the  // value falls in.  Then we fill the c array.  Big question:  // What order do we use --- time-conserving or frame-conserving?  bits = new char[trace*coeff*(q-1)+1];  int k,l,m;  float min[coeff],max[coeff];  for (k=0; k<coeff; k++)  {    min[k]=MAXFLOAT;    max[k]=-MAXFLOAT;  }                               // a faster way to do this?    for (k=0; k<trace; k++)    for (l=0; l<trace; l++)    {      if (buf[k][l] < min[l])  min[l]=buf[k][l];      if (buf[k][l] > max[l])  max[l]=buf[k][l];    }    char pat[trace][coeff];  for (k=0; k<coeff; k++)  {    float size=(max[k]-min[k])/float(q);if (size==0.0) { cerr<<"Warning: size=0\n"; size=1; }    size *= 1.0001;    for (l=0; l<trace; l++)       pat[l][k] = int(((buf[l][k]-min[k])/size));     // yields 0,...,Q-1  }  int count=0;    for (k=0; k<trace; k++)    for (l=0; l<coeff; l++,count+=q-1)      for (m=0; m<q-1; m++)        bits[count+m] = (pat[k][l]>m)? 1:0;                // thermometer          bits[trace*coeff*(q-1)]=0;  return bits;}//----------------------------BIT_PATTERN---------------------------------// For now, we compute the actual bit pattern when reading the fixed_pattern// file, but this is only for being able to easily calibrate the // quantization parameters during testing!bit_pattern::bit_pattern (const feature &f, int, int trace) :     fixed_pattern (f, trace){}void write (ostream&){} void read  (istream&){}PatternImplementation::~PatternImplementation() {}   // necessary

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www一区二区| 亚洲精品国久久99热| 日韩福利电影在线| 欧美性xxxxx极品少妇| 中文字幕人成不卡一区| 国产福利一区二区| 精品剧情在线观看| 九九久久精品视频| 日韩你懂的电影在线观看| 日韩av电影一区| 91精品国产日韩91久久久久久| 亚洲第一二三四区| 欧美系列在线观看| 亚洲成人精品一区二区| 欧美自拍偷拍午夜视频| 亚洲一级不卡视频| 欧美剧在线免费观看网站| 亚洲电影你懂得| 91麻豆精品国产| 日韩高清在线电影| 精品国产sm最大网站免费看| 久久99精品久久久久久久久久久久| 欧美不卡一区二区三区四区| 久久成人麻豆午夜电影| 久久久久综合网| 成人va在线观看| 一区二区三区在线视频免费| 欧美午夜片在线看| 男人操女人的视频在线观看欧美| 日韩精品中文字幕在线一区| 国产一区福利在线| 国产精品视频一区二区三区不卡| 成人午夜在线视频| 亚洲美女精品一区| 欧美日韩高清一区二区不卡| 免费欧美在线视频| 欧美激情综合五月色丁香| 成人av资源站| 亚洲一二三区不卡| 日韩美女一区二区三区| 国产99久久久国产精品免费看| 亚洲婷婷在线视频| 欧美人与禽zozo性伦| 国内精品视频一区二区三区八戒| 国产精品乱码一区二区三区软件 | 日本特黄久久久高潮| 精品乱码亚洲一区二区不卡| 成人三级在线视频| 亚洲一区二区三区四区在线 | 综合久久综合久久| 欧美日韩一区二区三区不卡| 玖玖九九国产精品| 亚洲欧美中日韩| 777奇米四色成人影色区| 国产精品18久久久久久久网站| 亚洲图片欧美色图| 亚洲精品日韩一| 国产欧美一区二区三区网站| 成人午夜看片网址| 亚洲一区免费视频| 欧美精品一区二区三| av不卡免费电影| 免播放器亚洲一区| 国产真实乱对白精彩久久| 欧美精品一级二级三级| 国产在线国偷精品免费看| 日韩国产欧美在线播放| 国产精品女人毛片| 欧美一区午夜精品| 93久久精品日日躁夜夜躁欧美| 日日摸夜夜添夜夜添亚洲女人| 久久久久久电影| 欧美日韩视频不卡| 粉嫩在线一区二区三区视频| 视频一区欧美日韩| 国产精品素人一区二区| 欧美一卡二卡三卡| 91香蕉视频mp4| 精品一区二区三区免费视频| 一级中文字幕一区二区| 久久久久久久综合色一本| 欧美日韩在线三级| 大白屁股一区二区视频| 日本成人在线不卡视频| 亚洲欧美色综合| 久久久久国产免费免费| 欧美放荡的少妇| 91麻豆swag| 国产传媒欧美日韩成人| 蜜臀久久久99精品久久久久久| 一卡二卡三卡日韩欧美| 国产精品区一区二区三区| 精品蜜桃在线看| 欧美午夜精品一区| 99久久综合精品| 韩国欧美国产一区| 日韩电影在线看| 一区二区三区在线观看动漫| 国产精品三级av| 精品国产自在久精品国产| 欧美狂野另类xxxxoooo| 日本电影欧美片| 成年人网站91| 国产福利电影一区二区三区| 久久成人免费网| 三级久久三级久久| 一区二区三区 在线观看视频| 欧美国产精品一区二区三区| 2021中文字幕一区亚洲| 3d动漫精品啪啪1区2区免费| 欧洲精品视频在线观看| 99精品桃花视频在线观看| 国产成人综合在线播放| 经典三级在线一区| 美女国产一区二区三区| 日韩精品成人一区二区三区| 一区二区三区欧美在线观看| 亚洲少妇中出一区| 亚洲欧美一区二区视频| 国产精品乱码一区二三区小蝌蚪| 国产亚洲欧美日韩俺去了| 精品国产欧美一区二区| 日韩精品一区在线| 欧美一区二区视频在线观看2022 | 美女在线观看视频一区二区| 视频在线在亚洲| 视频一区欧美精品| 午夜精品福利一区二区三区蜜桃| 亚洲亚洲人成综合网络| 亚洲一区在线观看网站| 一区二区三区日韩精品视频| 夜夜嗨av一区二区三区网页| 亚洲精品国产第一综合99久久 | 国产精品色婷婷久久58| 欧美国产丝袜视频| 日本一区二区成人| 国产精品高清亚洲| 亚洲色图制服丝袜| 亚洲免费av高清| 亚洲一区影音先锋| 丝袜美腿一区二区三区| 日韩国产欧美三级| 久久精品理论片| 国产精品自拍av| caoporn国产一区二区| 99精品视频在线免费观看| 色视频一区二区| 欧美无砖砖区免费| 欧美丰满一区二区免费视频| 日韩欧美www| 国产亚洲欧美一级| 亚洲人成影院在线观看| 亚洲综合色网站| 日本不卡视频在线观看| 国产一区二区久久| 高清成人免费视频| 色偷偷久久一区二区三区| 欧美日韩视频专区在线播放| 欧美一区二区三区思思人| 欧美精品一区二区三区高清aⅴ| 国产欧美va欧美不卡在线| 亚洲欧美日韩在线| 午夜婷婷国产麻豆精品| 麻豆精品一区二区av白丝在线| 国产黄色91视频| 色狠狠一区二区三区香蕉| 欧美妇女性影城| 欧美精品一区二区三区四区| 中文字幕一区三区| 无码av免费一区二区三区试看| 捆绑调教美女网站视频一区| 成人高清免费观看| 欧美日韩精品欧美日韩精品一综合| 日韩精品一区二区三区中文不卡| 中文字幕精品一区二区三区精品| 亚洲精品视频在线观看免费 | 亚洲国产精品麻豆| 精品一区二区三区香蕉蜜桃| 99久久99久久精品免费观看 | 91精品国产综合久久久久久漫画 | 亚洲最大成人综合| 免费看日韩a级影片| 成人看片黄a免费看在线| 欧美亚洲国产怡红院影院| 欧美videos大乳护士334| 国产精品短视频| 日韩电影在线一区| 成人国产电影网| 欧美一级二级三级乱码| 国产欧美精品一区二区色综合| 亚洲超碰精品一区二区| 国产一区免费电影| 欧美天堂亚洲电影院在线播放| 精品欧美乱码久久久久久| 亚洲免费观看高清在线观看| 久久精品国产第一区二区三区| 色综合久久六月婷婷中文字幕| 欧美大片免费久久精品三p| 亚洲图片欧美激情| 国产一区在线观看视频|