首页 > 解决方案 > 如何解决媒体翻译 GCP API 中的音频编码错误?

问题描述

这是我的代码。我已经浏览了谷歌云平台 API 文档,并按照 GCP DOC 正确的步骤进行操作。但仍然无法修复编码错误,您可以在下面看到它。我正在尝试将音频剪辑从 en-US(英语)翻译成 hi-IN(印地语),如果您可以为此解决方案提供一些替代方法,那将会很有帮助。

function main(filename, encoding, sourceLanguage, targetLanguage) {
 
  const fs = require('fs');

  const {
    SpeechTranslationServiceClient,
  } = require('@google-cloud/media-translation');

  const client = new SpeechTranslationServiceClient();

  async function quickstart() {
 
   const filename = './16kmonoceo.wav';
   const encoding = 'LINEAR16';
   const sourceLanguage = 'en-US';
   const targetLangauge = 'hi-IN';

    const config = {
      audioConfig: {
        audioEncoding: encoding,
        sourceLanguageCode: sourceLanguage,
        targetLanguageCode: targetLangauge,
      },
    };


    const initialRequest = {
      streamingConfig: config,
      audioContent: null,
    };

    const readStream = fs.createReadStream(filename, {
      highWaterMark: 4096,
      encoding: 'base64',
    });

    const chunks = [];
    readStream
      .on('data', chunk => {
        const request = {
          streamingConfig: config,
          audioContent: chunk.toString(),
        };
        chunks.push(request);
      })
      .on('close', () => {
        // Config-only request should be first in stream of requests
        stream.write(initialRequest);
        for (let i = 0; i < chunks.length; i++) {
          stream.write(chunks[i]);
        }
        stream.end();
      });

    const stream = client.streamingTranslateSpeech().on('data', response => {
      const {result} = response;
      if (result.textTranslationResult.isFinal) {
        console.log(
          `\nFinal translation: ${result.textTranslationResult.translation}`
        );
        console.log(`Final recognition result: ${result.recognitionResult}`);
      } else {
        console.log(
          `\nPartial translation: ${result.textTranslationResult.translation}`
        );
        console.log(`Partial recognition result: ${result.recognitionResult}`);
      }
    });

  }
  quickstart();
}

main(...process.argv.slice(2));

这是我的命令行错误。 检查错误消息 我使用的是 Windows 10 和 IDE VS CODE。

标签: node.jswindowsapigoogle-cloud-platform

解决方案


在这种情况下,仔细阅读错误消息会有所帮助。

某些模块将“LINEAR16”作为 audioEncoding 值表示没有使用该名称的编码。

快速查看文档显示“linear16”(小写)作为要使用的值。


推荐阅读