The google transcription service does not identify multiple languages in the registration. Below is my code. I have used different formats (MP3, MP4 and FLAC) and models. But it still doesn't work. This is just a code variant.
What could be the problem why it does not transcribe in multiple languages?
Code for MP3:
new Promise(async (resolve, reject) => {
const request = {
config: {
encoding: "MP3",
sampleRateHertz: 16000,
audioChannelCount: 2,
languageCode: ["en-US"],
alternativeLanguageCodes: ["es-ES", "fr-FR", "en-US"],
useEnhanced: true,
enableWordConfidence: true,
enableWordTimeOffsets: true,
enableAutomaticPunctuation: true
},
audio: {
uri: `gs://${process.env.GOOGLE_CLOUD_STORAGE_BUCKET_SCRIPTOMAN}/multilingual.mp3`
}
};
let [operation] = [];
try {
[operation] = await googleSpeechClient.longRunningRecognize(request);
} catch {
try {
request.config.audioChannelCount = 1;
[operation] = await googleSpeechClient.longRunningRecognize(request);
} catch (error) {
reject(error);
}
}
if ([operation] != undefined && operation != undefined) {
const [response] = await operation.promise();
resolve(response.results);
} else
reject();
}).then(results => {
console.log(results);
}).catch(error => console.log(error));
Code for FLAC:
new Promise(async (resolve, reject) => {
const request = {
config: {
encoding: "FLAC",
audioChannelCount: 2,
languageCode: ["en-US"],
alternativeLanguageCodes: ["es-ES", "fr-FR", "en-US"],
enableWordConfidence: true,
enableWordTimeOffsets: true,
enableAutomaticPunctuation: true
},
audio: {
uri: `gs://${process.env.GOOGLE_CLOUD_STORAGE_BUCKET_SCRIPTOMAN}/multilingual.flac`
}
};
let [operation] = [];
try {
[operation] = await googleSpeechClient.longRunningRecognize(request);
} catch {
try {
request.config.audioChannelCount = 1;
[operation] = await googleSpeechClient.longRunningRecognize(request);
} catch (error) {
reject(error);
}
}
if ([operation] != undefined && operation != undefined) {
const [response] = await operation.promise();
resolve(response.results);
} else
reject();
}).then(results => {
console.log(results);
}).catch(error => console.log(error));