Я хотел бы распознать аудиофайл на сервере NodeJS.
Я использую командную строку на Windows 10 и Node версия 10.6.0, я установил @ google-cloud / speech regulary с npm .Более того, я объявил переменную среды для учетных данных (объяснение здесь https://cloud.google.com/docs/authentication/getting-started?hl=en), и скопировал файл json в папку «учетные данные»:
set GOOGLE_APPLICATION_CREDENTIALS = "C: \Users \ Me \ Documents \ NodeJs \ Project1 \ credentials \ RDCommandeVocale-b521de3b57d9.json "
Файл был закодирован через ffmpeg с помощью этой команды:
ffmpeg -i newRecording.aac -vol 512 -c flac -ar 16000 newRecording.flac
Мой исходный код:
const folderName = "uploaded";
const fileName = "newRecording";
const client = new speech.SpeechClient();
const config = {
encoding:"FLAC",
sampleRateHertz: 16000,
languageCode: "fr-FR"
};
const audioBytes = fs.readFileSync(`${__dirname}\\` + folderName + "\\" + fileName + ".flac").toString('base64');
//This doesn't work else with this :
//const audioBytes = fs.readFileSync(".\\uploaded" + fileName + ".flac").toString('base64');
// ... nor this one
//const audioBytes = fs.readFileSync("./uploaded" + fileName + ".flac").toString('base64');
const request = {
config: config,
audio: audioBytes,
};
client.recognize(request).then( response=>{
const transcription = response.results
.map(result => result.alternatives[0].transcript)// récupérer uniquement la première alternative
.join('\n');
console.log("Textual transcription: ", transcription );
res.status(200)
.json({ status: "success", message: transcription });
},
(err)=>{
console.log("Transcription ERROR : ", JSON.stringify(err));
res.status(500)
.json({ status: "error", message: JSON.stringify(err) });
});
Я получаю эту ошибку:
Текстовая транскрипция: {"errno": - 4058, "syscall": "lstat", "code": "ENOENT", "path": "c: \ Users \ Me \ Documents \ Me \ NodeJs \ Project1 \\"C: "}
Имеется ли ссылка на этот тип ошибки в документах Google Cloud API?