прочитать бинарный файл HTK в Matlab

Я запускаю пакет HTK для извлечения функций MFCC из моих данных. Но теперь эти функции хранятся в формате файла .mfc, который, согласно книге htk, представляет собой двоичный файл с прямым порядком байтов. Когда я открываю эти файлы в Matlab, есть некоторые значения, которые кажутся значениями заголовков или чем-то еще, любой орган знает, как я могу отделить значения заголовков от основных данных?


person MMD    schedule 27.02.2015    source источник
comment
Проверьте обмен файлами Matlab mathworks.com/matlabcentral/fileexchange, есть несколько представлений, подобных этому mathworks.com/matlabcentral/fileexchange/32849- htk-mfcc-matlab/   -  person Daniel    schedule 27.02.2015
comment
Да, я видел его, но его файлы больше не существуют!   -  person MMD    schedule 27.02.2015
comment
Я не понимаю. Чего не хватает?   -  person Daniel    schedule 27.02.2015
comment
ой! Извините, я проверил математику, кажется, они привязали доступ к IP-адресам из Ирана! Поэтому я не вижу кодов, о которых вы говорите!   -  person MMD    schedule 27.02.2015


Ответы (1)


Вы можете использовать этот код из обмена файлами Matlab. выпущен под лицензией bsd

function [ features, sampPeriod, parmKind ] = readhtk_lite( filename )
% READHTK_LITE Simple routine for reading HTK feature files.
%
%   [ FEATURES, SAMPPERIOD, PARMKIND ] = READHTK_LITE( FILENAME )
%   returns FEATURES from HTK [1] feature file specified by FILENAME,
%   along with sample period (s) in SAMPPERIOD and parameter kind
%   in PARAMKIND. Note that this function provides a trivial 
%   implementation with limited functionality. For fully featured 
%   support of HTK I/O refer for example to the VOICEBOX toolbox [2].
%   
%   Inputs
%           FILENAME is a filename as string of a HTK feature file
%
%   Outputs
%           FEATURES is a feature matrix with feature vectors 
%           as rows and feature dimensions as columns
%
%           SAMPPERIOD is a sample period (s)
%
%           PARMKIND is a code indicating a sample kind
%           (see Sec. 5.10.1 of [1], pp. 80-81)
%
%   Example
%           [ features, sampPeriod, parmKind ] = readhtk_lite( 'sp10_htk.mfc' );
%
%   References
%
%           [1] Young, S., Evermann, G., Gales, M., Hain, T., Kershaw, D., 
%               Liu, X., Moore, G., Odell, J., Ollason, D., Povey, D., 
%               Valtchev, V., Woodland, P., 2006. The HTK Book (for HTK 
%               Version 3.4.1). Engineering Department, Cambridge University.
%               (see also: http://htk.eng.cam.ac.uk)
%
%           [2] VOICEBOX: MATLAB toolbox for speech processing by Mike Brookes
%               url: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html

%   Author: Kamil Wojcicki, September 2011


    mfcfile = fopen( filename, 'r', 'b' );

    nSamples = fread( mfcfile, 1, 'int32' );
    sampPeriod = fread( mfcfile, 1, 'int32' )*1E-7;
    sampSize = 0.25*fread( mfcfile, 1, 'int16' );
    parmKind = fread( mfcfile, 1, 'int16' );

    features = fread( mfcfile, [ sampSize, nSamples ], 'float' ).';

    fclose( mfcfile );


% EOF
person Daniel    schedule 27.02.2015