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

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

?? makeprotohmmset.prl

?? HTK應用程序
?? PRL
字號:
#!/usr/local/bin/perl

#
# This script can be used to produce prototype HMMSets for
# PLAINHS, TIEDHS and DISCRETEHS systems
#

# Global Variables
$nStates=0;                         # Number of active HMM states
$nStreams=0;                        # Number of streams
$vecSize=0;                         # Size of feature vector
$pKind="";                          # Parameter kind
$cKind="";                          # Covariance kind
$hsKind="";                         # System kind
$outDir="";                         # Output HMMSet directory
$configParams;                      # Global store of config parameters


#***************************** START MAIN ***********************************
$|=1; #Force buffer flush on STDOUT

if ($ARGV[0]){
    &ReadPCF();
    &SetVars();
    &TestDirEmpty();
    &WriteHSet();
}else{
    print "USAGE: MakeProtoHMMSet ConfigFile\n";
}

#******************************* END MAIN *********************************

#************************ Util Functions **********************************

#-------------------------------------
# ReadPCF: Reads the Proto Config File 
#-------------------------------------
sub ReadPCF {

local($validData,$param,$val)=0;

while(<>){
    if(/\<ENDsys_setup\>/){
	$validData=0;
    }
    if($validData){
	($param,$val)=split(/ *: */, $_);
	if (($param =~ /hmmList/)||($param =~ /outDir/)||($param =~ /parmKind/)) {
	}elsif ($param =~ /mixes/){
	    @mixes=split(/ +/, $_);
	}elsif ($param =~ /sWidths/){
	    @sWidths=split(/ +/, $_);
	}else{
	    $val =~ tr/A-Z/a-z/;
	}
        chop($val);
        $configParams{$param}=$val;
        write;
    }
    if(/\<BEGINsys_setup\>/ || /\<BEGINtool_steps\>/){
	$validData=1;
    }
}
format STDOUT_TOP =
 Proto Config File Read
 ======================
Parameter         Value
-----------------------
.
format STDOUT=
@<<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$param,$val
.
}

#-----------------------------------------
# SetVars: Set variable from config params
#-----------------------------------------
sub SetVars {

$nStates = $configParams{"nStates"};
($nStates >= 1) || die "nStates must be >= 1";
$nStreams = $configParams{"nStreams"};
($nStreams =~ /^[1234]/) || die "nStreams must be 1,2,3 or 4";
$vecSize = $configParams{"vecSize"};
($vecSize >= 1) || die "vecSize must be >= 1";
$hsKind = $configParams{"hsKind"};
($hsKind =~ /^[pPtTdD]/) || die "hsKind must be P, T or D";
$cKind = $configParams{"covKind"};
($cKind =~ /^[dDfF]/) || die "covKind must be F or D";
$pKind = $configParams{"parmKind"};
if ($hsKind=~/^[dD]/){
 ($pKind=~/[vV]$/) || die "If hsKind is D then parmKind must have _V appended";
}
if ($hsKind=~/^[pPtT]/){
    if($pKind=~/[vV]$/){
	die "If hsKind is not D then parmKind must not have _V appended";
    }
}
$outDir = $configParams{"outDir"};
opendir(OUTDIR,$outDir) || die "Can't open $outDir";
$hmmList = $configParams{"hmmList"};
(-f $hmmList) || die "Cannot find HMM list file $hmmList";
}

#-----------------------------------------------------------------
# TestDirEmpty: Test if outDir is empty and prompt for clearing it
#-----------------------------------------------------------------
sub TestDirEmpty {
    @nFiles = grep(!/^\./, readdir(OUTDIR)); #Forget about . files
    if($nFiles[0]){
	print "\n$outDir not empty clear it Y/N?:";
	chop($ans = <STDIN>);
	if ($ans =~ /^[yY]/){
	    print "\nRemoving files from $outDir\n";
	    $nFiles[0] = unlink(<$outDir/*>);
	    print "Removed $nFiles[0] files\n";
	}else{
	    print "\nDirectory $outDir unaltered\n";
	}
    }
}

#************************ HMM Functions **********************************

#------------------------------------
# WriteGlobOpts: Write global options
#------------------------------------
sub WriteGlobOpts {
    local($fleHandle,$hmmName)=@_;

    printf($fleHandle "  ~o <VecSize> %d <$pKind> <StreamInfo> %d ",$vecSize,$nStreams);
    for ($i=1; $i<=$nStreams; $i++) {
	printf($fleHandle "%d ",$sWidths[$i]);
    }
    printf($fleHandle "\n");
    (($hsKind=~/^[tT]/)&&($fleHandle=~/MACRO/)) || printf($fleHandle "  ~h \"$hmmName\"\n");
}

#-------------------------------------------------------
# WriteDiagCMixtures: write a diagonal covariance mixture
#-------------------------------------------------------
sub WriteDiagCMixtures {
    local($streamNum)=@_;
    local($i,$j,$k,$mixWght)=0;

    $mixWght=1/$mixes[$streamNum];

    for ($i=1; $i<=$mixes[$streamNum]; $i++){
	printf(PROTO "  <Mixture> %d %1.4f\n",$i,$mixWght);
	printf(PROTO "    <Mean> %d\n",$sWidths[$streamNum]);
	printf(PROTO "      ");
	for ($j=1; $j<=$sWidths[$streamNum]; $j++){
	    printf(PROTO "0.0 ");
	}
	printf(PROTO "\n");
	printf(PROTO "    <Variance> %d\n",$sWidths[$streamNum]);
	printf(PROTO "      ");
	for ($k=1; $k<=$sWidths[$streamNum]; $k++){
	    printf(PROTO "1.0 ");
	}
	printf(PROTO "\n");
    }
}

#-------------------------------------------------------
# WriteFullCMixtures: write the full covariance mixtures
#-------------------------------------------------------
sub WriteFullCMixtures {
    local($streamNum)=@_;
    local($i,$j,$k,$mixWght,$tmpVecSize)=0;

    $mixWght=1/$mixes[$streamNum];
    $tmpVecSize=$sWidths[$streamNum];

    for ($i=1; $i<=$mixes[$streamNum]; $i++){
	printf(PROTO "  <Mixture> %d %1.4f\n",$i,$mixWght);
	printf(PROTO "    <Mean> %d\n",$sWidths[$streamNum]);
	printf(PROTO "      ");
	for ($j=1; $j<=$sWidths[$streamNum]; $j++){
	    printf(PROTO "0.0 ");
	}
	printf(PROTO "\n");
	printf(PROTO "    <InvCovar> %d\n",$sWidths[$streamNum]);
	while ($tmpVecSize>=1){
	    for ($k=1; $k<=$tmpVecSize; $k++){
		if ($k==1){
		    printf(PROTO "1.0 ");
		}else{
		    printf(PROTO "0.0 ");
		}
	    }
	    printf(PROTO "\n");
	    $tmpVecSize--;
	}
	$tmpVecSize=$sWidths[$streamNum];
    }
}

#-----------------------------------------------
# WriteTiedMixes: Write tied mixes to macro file
#-----------------------------------------------
sub WriteTiedMixes {
    local($i,$j,$k)=0;

    if (-r $outDir."/newMacros"){
	unlink(<$outDir/newMacros>);
    }
    open(MACRO, ">>$outDir/newMacros") || die "Cannot open $outDir/newMacros for writing";
    &WriteGlobOpts(MACRO);
    for ($i=1; $i<=$nStreams; $i++){
	for ($j=1; $j<=$mixes[$i]; $j++){
	    printf(MACRO "~m \"TM_${i}_${j}\"\n");
	    printf(MACRO "<Mean> %d\n",$sWidths[$i]);
	    for ($k=1; $k<=$sWidths[$i]; $k++){
		printf(MACRO "0.0 ");
	    }
	    printf(MACRO "\n");
	    printf(MACRO "<Variance> %d\n",$sWidths[$i]);
	    for ($k=1; $k<=$sWidths[$i]; $k++){
		printf(MACRO "1.0 ");
	    }
	    printf(MACRO "\n");
	}
    }
}

#----------------------------------------------
# WriteDProbs: Write the discrete probabilities
#----------------------------------------------
sub WriteDProbs {
    local($s)=@_;

    printf(PROTO "      <DProb> %d*$mixes[$s]\n",-2371.8*log(1/$mixes[$s]));
}

#-----------------------------------------------
# WriteTiedWghts: Write the tied mixture weights
#-----------------------------------------------
sub WriteTiedWghts {
    local($streamNum)=@_;

    printf(PROTO "<TMix> \"TM_${streamNum}_\"\n");
    printf(PROTO "%e*$mixes[$streamNum]\n",1/$mixes[$streamNum]);
}

#----------------------------------------------
# WriteStates: Write the contents of the states
#----------------------------------------------
sub WriteStates {
    local($i,$j)=0;

    for ($i=1; $i<=$nStates; $i++){
	printf(PROTO "  <State> %d <NumMixes> ",$i+1);
        for ($k=1; $k<=$nStreams; $k++){
	    printf(PROTO "%d ",$mixes[$k]);
	}
	printf(PROTO "\n");
	for ($j=1; $j<=$nStreams; $j++){
	    printf(PROTO "  <Stream> %d\n",$j);
	    if ($hsKind =~ /^[Dd]/){
		&WriteDProbs($j);
	    }elsif ($hsKind =~ /^[pP]/){
		if ($cKind =~ /^[dD]/){
		    &WriteDiagCMixtures($j);
		}else{
		    &WriteFullCMixtures($j);
		}
	    }elsif ($hsKind =~ /^[Tt]/){
		&WriteTiedWghts($j);
	    }
	}
    }
}

#-----------------------------------------------------------
# WriteTransMat: Write the contents of the transition matrix
#-----------------------------------------------------------
sub WriteTransMat {
    local($i,$j)=0;

    printf(PROTO "  <TransP> %d\n",$nStates+2);
    for ($i=1; $i<=$nStates+2; $i++){
	for ($j=1; $j<=$nStates+2; $j++){
	    if (($i==1)&&($j==2)){
		printf (PROTO "   1.000e+0");
	    }elsif (($i==$j)&&($i!=1)&&($i!=$nStates+2)){
		printf (PROTO "   6.000e-1");
	    }elsif ($i==($j-1)){
		printf (PROTO "   4.000e-1");
	    }else{
		printf (PROTO "   0.000e+0");
	    }
	}
	printf (PROTO "\n");
    }	    
}

#----------------------------------------
# WriteHMM: Write the contents of the HMM
#----------------------------------------
sub WriteHMM {
    local($hmmName)=@_;
    local($i)=0;

    open(PROTO, ">$outDir/$hmmName") || die "Cannot open $outDir/$hmmName for writing";
    &WriteGlobOpts(PROTO,$hmmName);
    printf(PROTO "<BeginHMM>\n");
    printf(PROTO "  <NumStates> %d\n",$nStates+2);
    &WriteStates();
    &WriteTransMat();
    printf(PROTO "<EndHMM>\n");
    close(PROTO);
}

#------------------------------------------
# WriteHSet: Write the contents of the HSet
#------------------------------------------
sub WriteHSet {

    open(HMMLIST, $hmmList) || die "Cannot open $hmmList for reading";

    printf "\nWriting HMMSet\n\n";
    if ($hsKind =~ /^[tT]/){
	printf "Writing Tied Mixtures to $outDir/newMacros\n";
	&WriteTiedMixes();
	printf "\n";
    }
    while (<HMMLIST>) {
	chop($_);
	printf "Writing HMMDef to $outDir/$_\n";
	&WriteHMM($_);
    }
    close(HMMLIST);
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区中文日韩| 综合av第一页| 欧美日韩久久久| 色综合久久88色综合天天免费| 国产一区二区精品久久99| 国产精品一级黄| 成人高清av在线| 91婷婷韩国欧美一区二区| 99精品久久只有精品| 一本色道久久加勒比精品 | 欧美精品v国产精品v日韩精品| 91年精品国产| 欧美日韩久久一区二区| 欧美一区二区啪啪| 精品久久一区二区三区| 国产欧美日韩一区二区三区在线观看| 欧美激情一区二区三区不卡| 国产精品久久久久婷婷二区次| **性色生活片久久毛片| 奇米影视一区二区三区| 国产呦萝稀缺另类资源| 国产一区二区精品久久| 99精品视频在线观看免费| 91在线一区二区三区| 欧美日韩视频在线第一区| 日韩欧美中文一区| 中文字幕免费不卡在线| 亚洲成人av福利| 国产麻豆视频精品| 欧美亚洲愉拍一区二区| 久久久久久电影| 亚洲久草在线视频| 美女久久久精品| av在线综合网| 欧美日韩国产高清一区二区三区 | 91香蕉视频mp4| 欧美丰满美乳xxx高潮www| 亚洲二区视频在线| 国产精品一品二品| 91麻豆精品国产自产在线观看一区| 久久蜜桃av一区精品变态类天堂 | 激情文学综合网| 色综合久久久久网| 久久久综合精品| 日韩不卡免费视频| 色综合久久久久| 国产欧美综合色| 秋霞影院一区二区| 欧洲国产伦久久久久久久| 日韩视频一区二区三区在线播放| 国产精品人人做人人爽人人添| 蜜桃av一区二区| 欧美色视频在线观看| 国产亲近乱来精品视频| 久久精品国产成人一区二区三区| 在线观看国产91| 欧美经典一区二区| 国产毛片精品国产一区二区三区| 欧美日韩mp4| 亚洲一区二区三区在线| av在线播放一区二区三区| 欧美精品一区二区三区久久久| 亚洲成av人片在线| 91成人免费电影| 最新国产の精品合集bt伙计| 国产精品中文字幕一区二区三区| 3d动漫精品啪啪1区2区免费| 亚洲综合成人网| 色999日韩国产欧美一区二区| 国产精品私人自拍| 国产盗摄女厕一区二区三区| 久久精品综合网| 国产在线精品视频| 久久久久久99精品| 国产精品综合av一区二区国产馆| 欧美一级二级三级乱码| 麻豆精品一二三| 日韩欧美aaaaaa| 极品少妇xxxx精品少妇偷拍 | 欧美经典一区二区| 成人禁用看黄a在线| 国产精品久久久久久久久免费桃花| 国产成人精品免费在线| 久久中文娱乐网| 国产大陆a不卡| 国产精品国产三级国产aⅴ中文| 成人国产精品免费网站| 国产精品动漫网站| 日本电影亚洲天堂一区| 亚州成人在线电影| 日韩欧美资源站| 国产精品一区二区黑丝| 国产精品电影一区二区| 欧美亚一区二区| 蜜臀av一区二区| 国产日韩精品一区二区三区在线| 成人高清视频在线| 夜夜精品视频一区二区| 欧美一区二区大片| 国产福利精品导航| 亚洲免费在线观看| 欧美xingq一区二区| 成人黄色777网| 午夜在线电影亚洲一区| 亚洲精品一区二区三区影院 | 国产风韵犹存在线视精品| 亚洲欧美激情小说另类| 69成人精品免费视频| 成人在线综合网| 亚洲va欧美va人人爽午夜| 亚洲精品在线网站| 欧洲一区在线观看| 国产精品综合一区二区三区| 亚洲国产精品久久一线不卡| 久久丝袜美腿综合| 欧美性受极品xxxx喷水| 懂色中文一区二区在线播放| 午夜在线成人av| 国产精品成人免费精品自在线观看| 欧美日韩高清在线| 成人国产精品免费观看动漫| 美女一区二区在线观看| 亚洲精品乱码久久久久久| 精品av综合导航| 欧美日韩电影在线| 色综合久久久久| 国产精品1区2区3区在线观看| 婷婷一区二区三区| 亚洲精品五月天| 日本一区二区视频在线| 日韩欧美黄色影院| 欧亚洲嫩模精品一区三区| 国产69精品久久久久毛片| 日本不卡视频一二三区| 亚洲一区二区三区不卡国产欧美| 国产区在线观看成人精品 | 国产片一区二区| 日韩精品在线一区| 制服丝袜亚洲精品中文字幕| 欧美在线一二三四区| 99re热这里只有精品视频| 国产精品99久| 另类人妖一区二区av| 日韩高清不卡在线| 亚洲一级二级在线| 亚洲综合一区二区三区| 亚洲精品成人少妇| 亚洲日穴在线视频| 日韩一区有码在线| 综合分类小说区另类春色亚洲小说欧美| 久久精品综合网| 久久精品亚洲精品国产欧美kt∨| 日韩视频中午一区| 日韩免费看网站| 久久亚区不卡日本| 久久奇米777| 国产欧美一区二区精品仙草咪| 久久综合久久99| 国产女人aaa级久久久级| 国产欧美一区二区在线观看| 国产人成亚洲第一网站在线播放 | 久久99久久久久| 麻豆一区二区三| 国产在线精品一区二区夜色| 国产精品1024久久| aa级大片欧美| 91国偷自产一区二区使用方法| 欧美视频精品在线观看| 欧美一区二区私人影院日本| 日韩精品一区二区三区老鸭窝| 精品国产免费人成电影在线观看四季| 日韩欧美国产wwwww| 欧美激情在线一区二区三区| 亚洲欧美在线aaa| 婷婷六月综合网| 国产一二精品视频| 一本色道久久综合狠狠躁的推荐 | 欧美性猛片aaaaaaa做受| 欧美日韩国产色站一区二区三区| 欧美一级理论性理论a| 久久免费精品国产久精品久久久久| 国产精品网站在线| 午夜国产不卡在线观看视频| 国产精品99精品久久免费| 欧美中文字幕一区二区三区| 精品国产乱码久久久久久久| 日韩一区在线播放| 奇米一区二区三区| 99在线精品视频| 欧美va亚洲va国产综合| 亚洲另类在线一区| 久久机这里只有精品| 91精品1区2区| 国产女主播一区| 日韩电影一区二区三区四区| 99国产精品一区| 精品国一区二区三区| 一区二区三区精品| 国产 日韩 欧美大片| 欧美xxxxx裸体时装秀|