function vtMAINVisual(VocalTractVecToTime,SWPDForBMP) if nargin < 2 SWPDForBMP = 'BMP'; % PDF, BMP %======================================================================================== % 1. Jaw Position 4. Tongue Apex 7. Larynx Height 10. Nasal Cavity % 2. Tongue Position 5. Lip Aperture 8. Glottal Aperture 11. Phoneme Label % 3. Tongue Shape 6. Lip Protrusion 9. Glottal Frequency %======================================================================================== % 1 2 3 4 5 6 7 8 9 10 11 % JW TP TS TA LA LP LH GA FX NS % 3 3 3 3 3 3 3 3 3 3 Max % 0 0 0 0 0 0 0 0 0 0 Relax % -3 3 -3 -3 -3 -3 -3 -3 -3 -3 Min %======================================================================================== VocalTractVecToTime = ... {[ 0.5, -2, 1 , -2 , 1, -1 , 0, 0, 0, 0], 'i' ; [ 0.5, -2, 1 , -2 , 0, 2 , 0, 0, 0, 0], 'y(\"u)' ; [-1 , -1, 1 , -2 , 1, -0.5, 0, 0, 0, 0], 'e' }; end % if you want a BMP Figure (not a PDF Animation) use first line if strcmp(SWPDForBMP,'BMP') && size(VocalTractVecToTime,1)>1 VocalTractVecToTime = VocalTractVecToTime(1,1:2); end NumberOfTimeFrames = size(VocalTractVecToTime,1); VocalTractVecToTimeSTR = Mat2StrCustom(VocalTractVecToTime); %---------------- Add some commands before and after --------------- LatexDefCommandsOfCordsPre = ['\newarray\SpeakVec' ... '\readarray{SpeakVec}{']; LatexDefCommandsOfCordsPost = ['}'... ' \dataheight=11' ... ' \def\Nframes{' num2str(NumberOfTimeFrames+1) '}']; % %------- Create the Coordinates file ---------------- fid = fopen('vtLatex_TimeParams.tex', 'w'); fwrite(fid,sprintf('%s %s %s',LatexDefCommandsOfCordsPre,... VocalTractVecToTimeSTR,... LatexDefCommandsOfCordsPost),'char'); fclose(fid); %---------------- START the Compilers ----------------------------- if strcmp(SWPDForBMP,'BMP') %-- tex2dvi !latex -interaction=nonstopmode vtLatex_FigureLauncher.tex %--- view dvi %!"C:/Program Files/MiKTeX 2.8/miktex/bin/yap.exe" vtLatex_FigureLauncher.dvi %--- dvi2ps !dvips -o vtLatex_FigureLauncher.ps vtLatex_FigureLauncher.dvi %--- ps2bmp strpwd = lower(pwd); eval(['!i_view32.exe "' strpwd '\vtLatex_FigureLauncher.ps"' ... ' /crop=(130,250,550,600) /convert="' ... strpwd '\vtLatex_FigureLauncher.bmp" ']); %--- read and show a = imread('vtLatex_FigureLauncher.bmp'); imshow(a); elseif strcmp(SWPDForBMP,'PDF') %-- tex2dvi !latex -interaction=nonstopmode vtLatex_AnimationLauncher.tex %--- view dvi %!"C:/Program Files/MiKTeX 2.8/miktex/bin/yap.exe" vtLatex_AnimationLauncher.dvi %--- dvi2ps !dvips -o vtLatex_AnimationLauncher.ps vtLatex_AnimationLauncher.dvi %---- ps2pdf !ps2pdf vtLatex_AnimationLauncher.ps %--- view pdf !AcroRd32.exe vtLatex_AnimationLauncher.pdf end %=================================================================== % Matrix to a String Ordering with & intervening %=================================================================== function STR = Mat2StrCustom(Matr) R = size(Matr,1); C = length(Matr{1,1}); STR = []; for IndRow= 1:R for IndCol = 1:C STR = [STR num2str(Matr{IndRow,1}(IndCol)) '&']; end STR = [STR Matr{IndRow,2} '&']; end STR = STR(1:end-1);