[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: MatLab Port - 'fullfile' issues

From: Andy Buckle
Subject: Re: MatLab Port - 'fullfile' issues
Date: Fri, 5 Dec 2014 08:33:33 +0000

On 4 December 2014 at 21:13, FuzE <address@hidden> wrote:
Hey All,Quite new to Octave and trying to port a lot of MatLab code.  This is
just the first file in the project, and I appear to be having trouble with
"fullfile".  Here's the command window input/error, followed by the full
file code. I'd appreciate any thoughts on how this can be approached.  Thank
you!Fuz>> Prototype_01_ServerWaiting...rm: cannot lstat
`../../bridge/\\tmpMsgFromBridge.m': No such file or directoryerror:
wavread: No such file or directoryerror: called from:error:
C:\Octave\Octave-3.8.2\share\octave\3.8.2\m\audio\wavread.m at line 74,
column 7error:
at line 32, column 27and the code:function Prototype_01_Server()        %
Configure user options    bridgeDir = '../../bridge/';    demoAudio = 3;
saveDir =
while (true)        fprintf('Waiting...\n');        fName =
fullfile(bridgeDir, 'tmpMsgFromBridge.m');        while ~exist(fName,
'file')            pause(.1);        end        clear tmpMsgFromBridge;
run(fName);             system(sprintf('rm %s', fName));        tStamp = clock;
filename = sprintf('%d', tStamp(1:5));                    % determine what
message we received        switch            case demoAudio
[fName, path] = uigetfile({'*.wav', 'WAV Files'}, 'Pick a file');
[audio, fs] = wavread(fullfile(path, fName));                fName =
fullfile(bridgeDir, 'tmpAudio.wav');                wavwrite(audio, fs,
fName);                fName = fullfile(bridgeDir, 'tmpMsgToBridge');
fid = fopen(sprintf('%s.tmp', fName), 'w');                fprintf(fid,
'msg={}\n');                fprintf(fid, '\n');
fprintf(fid, 'msg.fName="tmpAudio.wav"\n');                fclose(fid);
system(sprintf('mv %s.tmp %s.lua', fName, fName));
fprintf('Sent DemoAudioMsg...\n');                            case
MsgAudio.MID_AUDIO_SAMPLES                fprintf('Received audio
message...\n');                fName = fullfile(bridgeDir, msg.fName);
audioStruct = struct();                [, audioStruct.Fs] =
wavread(fName);                wavpath_rcvd = fullfile(saveDir, [filename,
'_rcvd.wav']);                AudioHandler.writeAudioFile(audioStruct,
wavpath_rcvd);                    fprintf('Processing Audio...\n');
% Analyze input wav file, store results in JavaDb                javaDbPath
= fullfile(saveDir, filename);                SimpleAnalysis(wavpath_rcvd,
javaDbPath);                                % Extract prosody data from
Analysis db                prosodyStruct =
ProsodyHandler.extractJavaDb(javaDbPath);                                %
Write prosody data to csv file (only for debug)                csvpath_send
= fullfile(saveDir, [filename, '_send.csv']);
ProsodyHandler.writeCsvFile(prosodyStruct, csvpath_send);
% Send analyzed prosody message to client                fName =
fullfile(bridgeDir, 'tmpMsgToBridge');                fid =
fopen(sprintf('%s.tmp', fName), 'w');                fprintf(fid,
'msg={}\n');                fprintf(fid, '\n');
fprintf(fid, 'msg.filtIDs={');                if
~isempty(prosodyStruct.filtId)                    fprintf(fid, '%d,',
prosodyStruct.filtId);                end                fprintf(fid,
'}\n');                fprintf(fid, 'msg.tStartVec={');                if
~isempty(prosodyStruct.tStart)                    fprintf(fid, '%f,',
prosodyStruct.tStart);                end                fprintf(fid,
'}\n');                fprintf(fid, 'msg.pitchTrack={');                if
~isempty(prosodyStruct.pitch)                    fprintf(fid, '%f,',
prosodyStruct.pitch);                end                fprintf(fid, '}\n');
fprintf(fid, 'msg.powerTrack={');                if
~isempty(prosodyStruct.power)                    fprintf(fid, '%f,',
prosodyStruct.power);                end                fprintf(fid, '}\n');
fclose(fid);                system(sprintf('mv %s.tmp %s.lua', fName,
fName));                fprintf('Sent ProsodyMsg...\n');
case MsgProsody.MID_PROSODY_DATA                fprintf('Received
ProsodyMsg...\n');                prosodyStruct = struct();
prosodyStruct.filtId = msg.filtId';                prosodyStruct.tStart =
msg.tStart';                if isfield(msg, 'pitchEnvTime') &&
length(msg.pitchEnvTime) > 1                    tmp =
interp1(msg.pitchEnvTime, msg.pitchEnvVal, msg.tStart, 'linear');
tmp(isnan(tmp)) = msg.pitch(isnan(tmp));                    tmp(msg.pitch <
60) = 0;                    prosodyStruct.pitch = tmp';                else
prosodyStruct.pitch = msg.pitch';                end                if
isfield(msg, 'powerEnvTime') && length(msg.powerEnvTime) > 1
tmp = interp1(msg.powerEnvTime, msg.powerEnvVal, msg.tStart, 'linear');
tmp(isnan(tmp)) = msg.power(isnan(tmp));
prosodyStruct.power = tmp';                else
prosodyStruct.power = msg.power';                end
% Parse prosody message and save as csv file                csvpath_rcvd =
fullfile(saveDir, [filename, '_rcvd.csv']);
ProsodyHandler.writeCsvFile(prosodyStruct, csvpath_rcvd);
% Update Java Db with new prosody data                dbFilts =
ProsodyHandler.loadJavaDb(prosodyStruct, javaDbPath);
% Fix tDur field to be frame length                dbSynth = dbFilts;
tStart = [dbSynth.tStart];                tDur = [diff(tStart), 5e-3];
tmp = num2cell(tDur);                [dbSynth.tDur] = deal(tmp{:});
% Convert dbSynth to serialized synthesis job                serJob =
AettsLoader.dbSynthToJava(dbSynth);                                %
Synthesize job and save to wav file                wavpath_send =
fullfile(saveDir, [filename, '_send.wav']);
AettsLoader.synthesizeJob(serJob, wavpath_send);
% Send synthesized audio message to client                audioStruct =
AudioHandler.readAudioFile(wavpath_send);       =
int16(round( * 32768));                fName =
fullfile(bridgeDir, 'tmpAudio.wav');
wavwrite(, audioStruct.Fs, fName);                fName =
fullfile(bridgeDir, 'tmpMsgToBridge');                fid =
fopen(sprintf('%s.tmp', fName), 'w');                fprintf(fid,
'msg={}\n');                fprintf(fid, '\n');
fprintf(fid, 'msg.fName="tmpAudio.wav"\n');                fclose(fid);
system(sprintf('mv %s.tmp %s.lua', fName, fName));
fprintf('Sent AudioMsg...\n');        end    endend

Your saveDir seems to have C: missing from the start.

If you need to report a problem, it's helpful to give the shortest bit of code you can manage that reproduces the problem. Indeed, the exercise of doing this will often help you solve it yourself. You are more likely to get help if you can present the problem concisely.

/* andy buckle */

reply via email to

[Prev in Thread] Current Thread [Next in Thread]