主要内容

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

深層学習を使用した音声コマンド認識

この例では,オーディオに存在する音声コマンドを検出する深層学習モデルに学習させる方法を説明します。この例では,音声コマンドデータセット[1]を使用して,与えられた一連のコマンドを認識する畳み込みニューラルネットワークに学習させます。

ネットワークにゼロから学习习さには,最初にデータセットをダウンロードなけれセットダウンロードませんん习セットのネットワークのの习を行わない习习,この例あるない场はのをに学问済みネットワーク読み込んで,以2节“事前学习済みネットワークによるコマンドコマンドコマンド认识认识认识认识"マイクからのストリーミング オーディオを使用したコマンド検出" を実行することができます。

事前学習済みネットワークによるコマンド認識

学習プロセスの詳細について説明する前に,事前学習済みの音声認識ネットワークを使用して音声コマンドを識別します。

事前学習済みのネットワークを読み込みます。

负载(“commandNet.mat”

ネットワークは次の音声コマンドを認識するように学習済みです。

  • “はい”

  • “いいえ”

  • "上"

  • "下"

  • "左"

  • "右"

  • “オン”

  • “オフ”

  • "停止"

  • "移動"

人が "停止" と発声している短い音声信号を読み込みます。

[x, fs] = audioread ('stop_command.flac');

コマンドを闻きます。

声音(x,fs)

事前学習済みのネットワークは,聴覚ベースのスペクトログラムを入力として受け取ります。最初に音声の波形を聴覚ベースのスペクトログラムに変換します。

关节extractAuditoryFeatureを使用して聴覚スペクトログラムを計算します。特徴抽出の詳細については、この例で後ほど説明します。

auditorySpect = helperExtractAuditoryFeatures (x, fs);

聴覚スペクトログラムに基づいてコマンドを分類します。

Command =分类(Trountainnet,听觉码)
命令=无条件停止

ネットワークは,このセットに属さない语“不明”と分类するよう学习习です。

次に,识别するコマンドの一道に含まれてない単语(“再生”)を分享します。

音声信号を読み込んで聞きます。

x = audioread (“play_command.flac”); 声音(x,fs)

聴覚スペクトログラムを計算します。

auditorySpect = helperExtractAuditoryFeatures (x, fs);

信号を分類します。

Command =分类(Trountainnet,听觉码)
命令=分类未知

ネットワークは,バックグラウンドノイズを“バックグラウンド”としてグラウンドですです済みです。

ランダムランダムなノイズでで构さ1空间の信号をし

X = PinkNoise(16E3);

聴覚スペクトログラムを計算します。

auditorySpect = helperExtractAuditoryFeatures (x, fs);

バックグラウンドノイズを分類します。

Command =分类(Trountainnet,听觉码)
命令=分类背景

マイクからのストリーミング オーディオを使用したコマンドの検出

事前学習済みのコマンド検出ネットワークをマイクからのストリーミング オーディオでテストします。没有停止など,いずれかのコマンドを発声してみてください。さらに,马文希拉房屋などの未知の単語や、0から 9までの数のいずれかを発声してみてください。

分别介绍しでし,マイクからオーディオをことができることができるデバイスを作物

分类= 20;adr = audiodevicereader(“采样器”fs,'samplesperframe'、地板(fs / classificationRate));

オーディオのバッファーを初期化します。ネットワークの分類ラベルを抽出します。ストリーミングオーディオのラベルと分類確率用の0.5秒のバッファーを初期化します。これらのバッファーを使用して長い時間にわたって分類結果を比較し,それによって,コマンドが検出されたタイミングとの”一致“を構築します。判定ロジックのしきい値を指定します。

audioBuffer=dsp.AsyncBuffer(fs);labels=trainedNet.Layers(end).Classes;YBuffer(1:classificationRate/2)=分类(“背景”);probBuffer = 0([元素个数(标签),classificationRate / 2));countThreshold =装天花板(classificationRate * 0.2);probThreshold = 0.7;

图形を作成し、作成した 图形が存在する限りコマンドを検出します。ループ処理を無限に実行するには、期限Infに設定します。ライブ検出を停止するには,単に图を閉じます。

h =图(“单位”'标准化'“位置”,[0.2 0.1 0.6 0.8]);timelimit = 20;Tic.句柄(h) && toc < timeLimit%从音频设备提取音频样本并将样品添加到%的缓冲。x = adr ();写(audioBuffer x);fs, y =阅读(audioBuffer fs-adr.SamplesPerFrame);规范= helperExtractAuditoryFeatures (y, fs);%对当前光谱图进行分类,将标签保存到标签缓冲区,%并将预测的概率保存到概率缓冲区。[Y预测,问题]=分类(培训网,规范,'executionenvironment'“cpu”);YBUFFER = [YBUFFER(2:END),Y预期];probbuffer = [probbuffer(:,2:结束),probs(:)];%绘制电流波形和谱图。次要情节(2,1,1)情节(y)轴牢固的Ylim([ -  1,1])子图(2,1,2)PColor(SPEC')Caxis([ -  4 2.6445])阴影平的%现在通过执行一个非常简单的实际命令检测来进行实际命令检测%的阈值操作。声明一个检测并将其显示在%图标题(如果以下所有条件均成立):1)最常见的标签%不是背景。2)至少countThreshold的最新帧%标签同意。3)预测标签的最大概率是在%最小阈值。否则,不要声明检测。[YMode,计数]=模式(YBuffer);maxProb = max(probBuffer(labels == YMode,:)); / /输出次要情节(2,1,1)如果ymode ==“背景”|| count < count threshold || maxprobb < probThreshold title(" "别的标题(string (YMode),“字体大小”, 20)结尾drawn结尾

音声コマンドデータセットの読み込み

この例では,谷歌语音命令データセット[1]を使用します。データセットをダウンロードして,ダウンロードしたファイルを解凍します。PathToDatabaseをデータの場所に設定します。

网址=“https://ssd.mathworks.com/金宝appsupportfiles/audio/google_speech.zip”;downloadFolder = tempdir;dataFolder = fullfile (downloadFolder,“谷歌演讲”);如果~exist(数据文件夹,“dir”) disp (“下载数据集(1.4 GB)……”)解压(url,下载文件夹)结尾

学習データストアの作成

学習データセットを指すaudiodatastore.(音频工具箱)を作成します。

ads=音频数据存储(完整文件(数据文件夹,“火车”),...“IncludeSubfolders”,真的,...“文件扩展名”“wav”...“LabelSource”“foldernames”
ads=audioDatastore,具有以下属性:文件:{'.\AppData\Local\Temp\google_speech\train\bed\00176480_nohash_0.wav'.''.\AppData\Local\Temp\google_speech\train\bed\Temp\google_speech\train\bed\004ae714_nohash_1.wav'.'和51085个以上}文件夹:{'C:\Users\jibrahim\AppData\Local\Temp\google_speech\train'}标签:[bed;bed;bed…和51085更分类]AlternateFileSystemRoots:{}输出数据类型:'double'支持输出格式:[“wav”“flac”“ogg”“mp4”“m4a”]默认输出格式:“wav”金宝app

认识する単语の选択

モデルモデルにコマンドとして认识させる単语を指定しコマンドせるではないすべての単语単语せるせるすべてすべての単语単语未知的とラベル付けします。コマンドではない単語に未知的とラベル付けすることで、コマンド以外のすべての単語の分布に近い単語のグループが作成されます。ネットワークは、このグループを使用して、コマンドと他のすべての単語の違いを学習します。

既知の単語と未知の単語の間でクラスの不均衡を減らし、処理を高速化するために、未知の単語の一部のみを学習セットに含めます。

子集(音频工具箱)を使用して,コマンドと不明の単語のサブセットのみが含まれるデータストアを作成します。各カテゴリに属している例の数をカウントします。

命令=分类([“是的”“没有”《飞屋环游记》“向下”“左”“对”“关于”“关闭”“停止”“走”]);isCommand = ismember (ads.Labels、命令);isUnknown = ~ isCommand;includeFraction = 0.2;mask = rand(numel(ads.Labels),1) < includeFraction;isUnknown = isUnknown & mask;ads.Labels (isUnknown) =分类(“未知”);adsTrain =子集(广告,isCommand | isUnknown);countEachLabel (adsTrain)
ans = 11×2 table Label Count _______ _____ down 1842 go 1861 left 1839 no 1853 off 1839 on 1864 right 1852 stop 1885 unknown 6483 up 1843 yes 1860

検证検证データストア作作作者

検証データ セットを指すaudiodatastore.(音频工具箱)作者王莹,王莹,王莹,王莹,王莹,王莹,王莹,莅临刊物,学士学校学刊物学习

ads=音频数据存储(完整文件(数据文件夹,“验证”),...“IncludeSubfolders”,真的,...“文件扩展名”“wav”...“LabelSource”“foldernames”)isCommand=ismember(ads.Labels,commands);isUnknown=~isCommand;includeAction=0.2;mask=rand(numel(ads.Labels),1)“未知”);adsValidation=子集(ads,isCommand |未知);countEachLabel(adsValidation)
ads = audioDatastore的属性:Files:{'…\AppData\Local\Temp\google_speech\validation\bed\026290a7_nohash_0.wav';’……\ AppData \当地\ Temp \ google_speech \床验证\ \ 060 cd039_nohash_0.wav;’……\ AppData \当地\ Temp \ google_speech \床验证\ \ 060 cd039_nohash_1.wav……{'C:\Users\jibrahim\AppData\Local\Temp\google_speech\validation'}标签:[bed;床上;床上……和6795年更直言]AlternateFileSystemRoots: {} OutputDataType:“双”SupportedOutputFormats:[金宝app“wav”“flac”“ogg”“mp4”“m4a格式”]DefaultOutputFormat:“wav”ans = 11×2表标签数  _______ _____ 264 260 247 270 256 257 256停止246未知850 260对261

データセットセット体を使っネットワークネットワークに习させ,できる限制精选を高くには,reduceDataset错误的に设定します。この例を短时间で行行するは,reduceDataset真正的に設定します。

reduceDataset = false;如果Depentataset numuniqueLabels = numel(唯一(adstrain.labels));%将数据集缩减到原来的20倍adstrain = splitheachlabel(adstrain,round(numel(adstrain.files)/ numuniqueLabels / 20));ADSValidation = SpliteachLabel(ADSValidation,ROUND(NUMER(ADSValidation.Files)/ NumUnIqueLabels / 20));结尾

聴覚スペクトログラムの计算

畳み込みニューラルネットワークの学習を効果的に行うためにデータを準備するには,音声波形を聴覚ベースのスペクトログラムに変換します。

特徴抽出のパラメーターを定義します。分段は各音声クリップの長さ(秒)です。frameDurationはスペクトル計算の各フレームの長さです。啤酒花持续时间は各スペクトル間のタイムステップです。numBandsは聴覚スペクトログラムのの数号。

音频特征提取器(音频工具箱)オブジェクトを作品成して特徴抽出抽出実行。

fs=16e3;%数据集的已知采样率。segmentDuration = 1;frameDuration = 0.025;hopDuration = 0.010;segmentSamples =圆(segmentDuration * fs);frameSamples =圆(frameDuration * fs);hopSamples =圆(hopDuration * fs);overlapSamples = framessamples - hopSamples;FFTLength = 512;numBands = 50;afe = audioFeatureExtractor (...“采样器”fs,...“FFTLength”FFTLength,...“窗口”,汉恩(框架,'定期'),...“OverlapLength”,重叠样本,...'Barkspectrum',真正的);setExtractorParams (afe'Barkspectrum'“麻木人”,麻木,“WindowNormalization”、假);

データデータセットからファイルを読み取り読み取りさせるネットワークははににははににが定サイズでばなりませませデータばなりませませのファイルせるなりませののファイルさがの部のファイルファイルさがが未満のゼロゼロががが未満未満ゼロゼロがが未満未満ゼロゼロがが未満ですゼロゼロがが未満未満ですゼロがが未満未満ですゼロがが未満未満ですゼロゼロが未満未満ですゼロゼロがを未満ですゼロゼロが未満未満ですゼロがが未満未満ですゼロゼロが未満未満です前后に适用しし长さをsegmentSamplesにします。

x =阅读(adsTrain);numSamples =大小(x, 1);numToPadFront = floor((segmentSamples - numSamples)/2);numToPadBack = cell ((segmentSamples - numSamples)/2);xPadded = 0 (numToPadFront 1“喜欢”, x); x; 0 (numToPadBack 1“喜欢”, x));

オーディオの特价を抽出するには,提取を呼び出します。出力は行に沿った時間をもつバーク スペクトルです。

特点=提取(afe xPadded);[numHops, numFeatures] =大小(特性)
numHops = 98 numFeatures = 50

このスペクトログラムは,聴覚スペクトログラムログラムにをし。小さい数码ののを取ると,丸め误差の原因にます。

処理を高速化するために、议案を使用して複数のワーカーに特徴抽出を分散できます。

最初に,データセットの区画数を決定します。并行计算工具箱™がない場合は,単一の区画を使用します。

如果〜isempty(ver('平行线')) && ~reduceDataset pool = gcp;numPar = numpartitions (adsTrain、池);别的numpar = 1;结尾

各区画について,データストアから読み取り,信号をゼロパディングしてから,特徴を抽出します。

议案ii=1:numPar subds=partition(adsTrain,numPar,ii);XTrain=zero(numHops,numBands,1,numel(subds.Files));为了idx = 1:numel(subds. files) x = read(subds);xPadded =[0(地板(segmentSamples-size (x, 1)) / 2), 1); x; 0(装天花板((segmentSamples-size (x, 1)) / 2), 1)];XTrain (:,:,:, idx) =提取(afe xPadded);结尾XTrainC {2} = XTrain;结尾

出力を変換し、4.番目の次元に聴覚スペクトログラムをもつ 4.次元配列にします。

XTrain =猫(4,XTrainC {:});[numHops, numBands numChannels numSpec] =大小(XTrain)
numHops = 98 numBands = 50 numChannels = 1 numSpec = 25021

.

epsil = 1 e-6;XTrain = log10(XTrain + epsil);

検証セットに対して,上記で説明した特徴抽出の手順を実行します。

如果〜isempty(ver('平行线') pool = gcp;numPar = numpartitions (adsValidation、池);别的numpar = 1;结尾议案II = 1:numpar subds = partition(ADSValidation,NumPar,II);xvalidation = zeros(numhops,numband,1,numel(subds.files));为了idx = 1:numel(subds. files) x = read(subds);xPadded =[0(地板(segmentSamples-size (x, 1)) / 2), 1); x; 0(装天花板((segmentSamples-size (x, 1)) / 2), 1)];xValidation(:,::,idx)=提取物(afe,xpadded);结尾XValidationC{ii}=XValidation;结尾XValidation =猫(4,XValidationC {:});XValidation = log10(XValidation + epsil);

学習ラベルと検証ラベルを分離します。空のカテゴリを削除します。

ytrain = removecats(adstrain.labels);yvalidation = removecats(adsvalidation.labels);

データの可催化

いくつかの习聴覚波形プロットします。

specmin = min(xtrain,[],“所有”);specMax = max (XTrain [],“所有”);idx = randperm(numel(adstrain.files),3);数字(“单位”'标准化'“位置”,[0.2 0.2 0.6 0.6]);为了i = 1:3 [x,fs] = audioread(adsTrain.Files{idx(i)});次要情节(2、3、i)情节(x)轴牢固的标题(字符串(adstrain.labels(idx(i))))子图(2,3,i + 3)spect =(xtrain(:,:,1,idx(i))');PColor(SPECT)Caxis([Specmin Specmax])阴影平的sound(x,fs)暂停(2)结尾

バックグラウンド ノイズ データの追加

このネットワークは,発声されたさまざまな単語を認識できるだけでなく,入力に無音部分またはバックグラウンドノイズが含まれているかどうかを検出できなければなりません。

_背景_ フォルダーのオーディオ ファイルを使用して、バックグラウンド ノイズの 1.秒間のクリップのサンプルを作成します。各バックグラウンド ノイズ ファイルから同じ数のバックグラウンド クリップを作成します。また、バックグラウンド ノイズの録音を独自に作成して、_背景_フォルダーに追加することもできます。スペクトログラムを計算する前に,この関数は,対数一様分布からサンプリングされた係数を使用して,volumeRangeで与えられた範囲に各オーディオ クリップを再スケーリングします。

adsBkg=音频数据存储(完整文件(数据文件夹,'背景') numBkgClips = 4000;如果reduceDataset numBkgClips = numBkgClips/20;结尾volumerange = log10([1e-4,1]);numbkgfiles = numel(adsbkg.files);numclipsperfile = histcounts(1:numbkgclips,linspace(1,numbkgclips,numbkgfiles + 1));xbkg = zeros(尺寸(xtrain,1),尺寸(xtrain,2),1,numbkgclips,“单身”);bkgall = readall(adsbkg);IND = 1;为了计数= 1:numBkgFiles bkg = bkgAll{count};idxStart =兰迪(元素个数(bkg) - f, numClipsPerFile(计数),1);idxEnd = idxStart + fs-1;^((volumeRange(2)-volumeRange(1)))*rand(numClipsPerFile(count),1) + volumeRange(1));为了j=1:numClipsPerFile(count)x=bkg(idxStart(j):idxEnd(j))*增益(j);x=max(min(x,1),-1);Xbkg(:,:,,:,ind)=提取(afe,x);如果模(ind,1000)=0显示(“已处理”+字符串(IND)+“背景剪辑来自”+字符串(多个片段))结尾Ind = Ind + 1;结尾结尾Xbkg=log10(Xbkg+epsil);
adsBkg = audioDatastore与属性:文件:{'…\AppData\Local\Temp\google_speech\background\doing_the_dish .wav';“…\ AppData \当地背景\ Temp \ google_speech \ \ dude_miaowing.wav;“…\ AppData \当地背景\ Temp \ google_speech \ \ exercise_bike.wav……{'C:\Users\jibrahim\AppData\Local\Temp\google_speech\background'} AlternateFileSystemRoots: {} OutputDataType: 'double'标签:{}SupportedOutputFormats: ["wav" 金宝app"flac" "ogg" "mp4" "m4a"] DefaultOutputFormat:“wav”从4000个背景剪辑中处理了1000个,从4000个背景剪辑中处理了2000个,从4000个背景剪辑中处理了3000个,从4000个背景剪辑中处理了4000个

バックグラウンド ノイズのスペクトログラムを学習セット、検証セット、およびテスト セットに分割します。_background_noise_フォルダーには约5分钟ののバックグラウンドノイズのみが含まれいるためためにデータセットセットのバックグラウンドにいいセット相ありありありありいグラウンドノイズののバリエーションをためためににににグラウンドノイズノイズののををにににに作者王家

numTrainBkg=地板(0.85*numBkgClips);numValidationBkg=地板(0.15*numBkgClips);XTrain(:,:,:,end+1:end+numTrainBkg)=Xbkg(:,:,:,:,1:numTrainBkg);YTrain(end+1:end+numTrainBkg)=“背景”;XValidation(:,:,:,end+1:end+numValidationBkg)=Xbkg(:,:,:,numTrainBkg+1:end);YValidation(end+1:end+numValidationBkg)=“背景”

学科セットと検证セットのさまざまなクラスラベルのをををプロットします。

数字(“单位”'标准化'“位置”,[0.2 0.2 0.5 0.5]) subplot(2,1,1) histogram(YTrain) title(“培训标签分发”)子图(2,1,2)直方图(YValidation)标题(“验证标签分发”

ニューラルネットワークアーキテクチャの定義

シンプルなネットワークアーキテクチャを層の配列として作成します。畳み込み層とバッチ正規化層を使用します。最大プーリング層を使って特徴マップを“空間的に”(つまり,時間と周波数に関して)ダウンサンプリングします。入力の特徴マップを時間の経過と共にグローバルにプーリングする最後の最大プーリング層を追加します。これによって(近似的な)時間並進不変性が入力スペクトログラムに課されるため,ネットワークは,音声の正確な時間的位置とは無関係に同じ分類を実行できます。また,グローバルプーリングによって,最後の全結合層のパラメーター数が大幅に減少します。ネットワークが学習データの特定の特徴を記憶する可能性を減らすために,最後の全結合層への入力に少量のドロップアウトを追加します。

このネットワークは,フィルターがほとんどない5つの畳み込み層しかないため小規模です。numFによって畳み込み层のフィルターフィルターを制御します。ネットワークの精密を高めるに,畳み込み层,バッチ正式化妆,およびrelu层のななを追して,ネットワーク深さを大厦すること试してください。numFををて,畳み込み畳み込みの数号増やしてみるもできます。

重み付き交差エントロピー分類損失を使用します。weightedClassificationLayer (classWeights)は,类权重によって重み付けされた観測値を使用して交差エントロピー損失を計算するカスタム分類層を作成します。分类(Ytrain)に現れるクラスと同じ順序でクラスの重みを指定します。各クラスの損失の合計重みを等しくするために,各クラスの学習例の数に反比例するクラスの重みを使用します。ネットワークの学習に Adam オプティマイザーを使用する場合、学習アルゴリズムはクラスの重み全体の正規化に依存しません。

classWeights = 1. / countcats (YTrain);classWeights = classWeights ' /意味着(classWeights);numClasses =元素个数(类别(YTrain));timePoolSize =装天花板(numHops / 8);dropoutProb = 0.2;numF = 12;[imageInputLayer([numHops numBands]))卷积2dlayer (3,numF,“填充”“相同”)BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(3,'走吧'2.“填充”“相同”)卷积2dlayer(3,2 * numf,“填充”“相同”)BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(3,'走吧'2.“填充”“相同”) convolution2dLayer(3、4 * numF,“填充”“相同”)BatchnormalizationLayer Ruilulayer MaxPooling2dlayer(3,'走吧'2.“填充”“相同”) convolution2dLayer(3、4 * numF,“填充”“相同”)BatchnormalizationLayer Rufulayer卷积2dlayer(3,4 * numf,“填充”“相同”) batchNormalizationLayer reluLayer maxPooling2dLayer([timePoolSize,1]) dropoutLayer(dropoutProb) fulllyconnectedlayer (numClasses) softmaxLayer weightedClassificationLayer(classWeights)];

ネットワークの学習

学習オプションを指定します。128年ミニバッチサイズをとして亚当オプティマイザーを使用します。学習は25エポック行い,20エポック後に学習率を10分の1に下げます。

miniBatchSize=128;validationFrequency=floor(numel(YTrain)/miniBatchSize);options=trainingOptions(“亚当”...'italllearnrate',3e-4,...“MaxEpochs”25岁的...“MiniBatchSize”,小批量,...“洗牌”“every-epoch”...'plots'“训练进步”...“冗长”假的,...“ValidationData”,{XValidation,YValidation},...“ValidationFrequency”,验证频率,...“LearnRateSchedule”“分段”...'学习ropfactor',0.1,...“LearnRateDropPeriod”20);

ネットワークに学習をさせます。GPUがない場合,ネットワークの学習に時間がかかる場合があります。

trainedNet = trainNetwork (XTrain、YTrain层,选择);

学习済みネットワークの评価

学習セット (データ拡張なし) と検証セットに対するネットワークの最終精度を計算します。このデータセットではネットワークは非常に正確になります。ただし、学習データ、検証データ、およびテスト データの分布はどれも似ていて、必ずしも実際の環境を反映していません。この制限は特に未知的カテゴリに当てはまります。このカテゴリには,少数の単語の発話しか含まれていません。

如果SDENTATASET LOAD(“commandNet.mat”“trainedNet”);结尾YVALPRED =分类(TRAIRATIONNET,XValidation);validationError =均值(yvalpred〜= yvalidation);YTrainPred =分类(TRAIRATIONNET,XTRAIN);TrainError =平均值(Ytrainpred〜= Ytrain);DISP(“训练错误:”+列车错误*100+“%”) disp (“验证错误:”+ validationError * 100 +“%”
培训误差:1.907%验证误差:5.5376%

混同行列をプロットします。列と行の要約を使用して,各クラスの適合率と再現率を表示します。混同行列のクラスを並べ替えます。大きな認識の違いが現れるのは,未知の単語間,コマンド向上没有,および没有の間にあります。

数字(“单位”'标准化'“位置”,[0.2 0.2 0.5 0.5]);CM = ConfusionChart(YValidation,YVALPRED);cm.title =“验证数据的混淆矩阵”;cm.摘要='列 - 归一化';cm.rowsummary =“行规范化”;SortClasses(cm,[命令,“未知”“背景”])

モバイル用药など,ハードウェアリソースリソースにがあるで使する场は,利用可致なおよび计算リソースのを使するします.cpuをを使するは,ネットワークネットワーク合并をkb単位で计算し,そのその予测速度をテストテストしし予测はははつの入入イメージの类にかかるネットワークネットワーク复ののイメージをネットワークネットワークに入する场をネットワークににに场场场同ににしてててててててててててててててててするてするてするます。ストリーミングストリーミングを分类する料,1つのイメージの予测时间が最も重要。

信息=谁(“trainedNet”);DISP(“网络大小:”+信息。字节/ 1024 +“知识库”为了i=1:100 x=randn([numHops,numBands]);tic[yppredicted,probs]=分类(trainedNet,x,“刽子果环境”“cpu”);时间(i)= toc;结尾DISP(CPU上单图像预测时间:+平均值(时间(11:end))*1000+“ms”
网络大小:286.7402 kB CPU上的单张图像预测时间:2.5119 ms

参考文献

[1]监狱长P。“语音指令:单字语音识别的公共数据集”,2017。可以从https://storage.googleapis.com/download.tensorflow.org/data/speech_commands_v0.01.tar.gz.谷歌2017.语音命令数据集版权所有は、次で公開されている 知识共享署名4.0许可证に従ってライセンスされています。https://creativeCommons.org/licenses/by/4.0/Legalcode.

参照

[1]监狱长P。“语音指令:单字语音识别的公共数据集”,2017。可以从http://download.tensorflow.org/data/speech_commands_v0.01.tar.gz.版权2017年谷歌。Speech Commands Dataset是在Creative Commons Attribution 4.0许可下使用的,可以在这里获得:https://creativeCommons.org/licenses/by/4.0/Legalcode.

参考

||

関連するトピック