Adds support for stdin wav input

This commit is contained in:
Alan 2022-11-09 15:24:06 -03:00 committed by Georgi Gerganov
parent b21213c23e
commit 7519eabf65

View File

@ -454,9 +454,30 @@ int main(int argc, char ** argv) {
std::vector<float> pcmf32; std::vector<float> pcmf32;
{ {
drwav wav; drwav wav;
if (!drwav_init_file(&wav, fname_inp.c_str(), NULL)) {
fprintf(stderr, "%s: failed to open WAV file '%s' - check your input\n", argv[0], fname_inp.c_str()); if (fname_inp == "-") {
whisper_print_usage(argc, argv, {}); std::vector<uint8_t> wav_data;
{
uint8_t buf[1024];
while (true)
{
const size_t n = fread(buf, 1, sizeof(buf), stdin);
if (n == 0)
{
break;
}
wav_data.insert(wav_data.end(), buf, buf + n);
}
}
if (drwav_init_memory(&wav, wav_data.data(), wav_data.size(), NULL) == false)
{
fprintf(stderr, "error: failed to open WAV file from stdin\n");
return 4;
}
}
else if (drwav_init_file(&wav, fname_inp.c_str(), NULL) == false) {
fprintf(stderr, "error: failed to open '%s' as WAV file\n", fname_inp.c_str());
return 4; return 4;
} }