0

我正在尝试将 AWS Transcribe 集成到我的 Node.JS 应用程序中。AWS S3 和 Polly 工作正常,但 AWS Transcribe 不能。我正在使用 AWS 的示例代码。

当我想通过AWS 示例代码开始转录作业时,我收到以下错误:请求的模块“./libs/transcribeClient.js”不提供名为“transcribeClient”的导出

这也是我收到未定义所需错误的唯一文件。我想知道为什么它只发生在 AWS 转录上而不是其他服务上?我还可以通过 AWS CLI 开始转录工作。

AWS Transcribe 代码不起作用 - transcribeClient.js:

const AWS_BUCKET_NAME="X"
const AWS_REGION="eu-central-1"
const AWS_ACCESS_KEY="XXX"
const AWS_SECRET_KEY="XXX"

// snippet-start:[transcribe.JavaScript.createclientv3]
const { TranscribeClient } = require('@aws-sdk/client-transcribe');
// Create anAmazon EC2 service client object.
const transcribeClient = new TranscribeClient({ AWS_REGION, AWS_ACCESS_KEY, AWS_SECRET_KEY });
module.exports = { transcribeClient };

AWS Polly 代码有效 - pollyClient.js:

const AWS_BUCKET_NAME="X"
const AWS_REGION="eu-central-1"
const AWS_ACCESS_KEY="XXX"
const AWS_SECRET_KEY="XXX"

// snippet-start:[polly.JavaScript.createclientv3]
const { PollyClient } =require( "@aws-sdk/client-polly");
// Create an Amazon S3 service client object.
const pollyClient = new PollyClient({ AWS_REGION, AWS_ACCESS_KEY, AWS_SECRET_KEY});
module.exports = { pollyClient };

我期待着您的阅读!谢谢!

4

1 回答 1

0

我解决了。现在它可以在我的 Node.js 12 环境中使用了。

package.json
"type": "modules"改为"type": "commonjs".

transcribeClient.js 需要如下所示:
这里我将 export 更改为 module.exports。

const { TranscribeClient } = require("@aws-sdk/client-transcribe");
const transcribeClient = new TranscribeClient({ AWS_REGION, AWS_ACCESS_KEY, AWS_SECRET_KEY});
module.exports = { transcribeClient };

transcribe_create_job.js 需要如下所示:
这里我将 import 语句更改为 require。

const { StartTranscriptionJobCommand } = require("@aws-sdk/client-transcribe");
const { transcribeClient } = require("./libs/transcribeClient.js")

// Set the parameters
const params = {
  TranscriptionJobName: "test123",
  LanguageCode: "en-GB", // For example, 'en-US'
  MediaFormat: "webm", // For example, 'wav'
  Media: {
    MediaFileUri: "https://x.s3.eu-central-1.amazonaws.com/dlpasiddi.webm",
  },
};

const run = async () => {
  try {
    const data = await transcribeClient.send(
      new StartTranscriptionJobCommand(params)
    );
    console.log("Success - put", data);
    return data; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
于 2021-06-17T07:31:27.877 回答