Change temp file name for server application (#1535)

Avoid issue of removing file if it exists in the current working
directory
This commit is contained in:
Felix 2023-11-22 09:23:36 +01:00 committed by GitHub
parent 146169ec38
commit 5c7be85fdc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -453,21 +453,23 @@ int main(int argc, char ** argv) {
std::vector<float> pcmf32; // mono-channel F32 PCM
std::vector<std::vector<float>> pcmf32s; // stereo-channel F32 PCM
// write file to temporary file
std::ofstream temp_file{filename, std::ios::binary};
// write to temporary file
const std::string temp_filename = "whisper_server_temp_file.wav";
std::ofstream temp_file{temp_filename, std::ios::binary};
temp_file << audio_file.content;
temp_file.close();
// read wav content into pcmf32
if (!::read_wav(filename, pcmf32, pcmf32s, params.diarize)) {
fprintf(stderr, "error: failed to read WAV file '%s'\n", filename.c_str());
if (!::read_wav(temp_filename, pcmf32, pcmf32s, params.diarize)) {
fprintf(stderr, "error: failed to read WAV file '%s'\n", temp_filename.c_str());
const std::string error_resp = "{\"error\":\"failed to read WAV file\"}";
res.set_content(error_resp, "application/json");
std::remove(temp_filename.c_str());
whisper_mutex.unlock();
return;
}
// remove temp file
std::remove(filename.c_str());
std::remove(temp_filename.c_str());
printf("Successfully loaded %s\n", filename.c_str());