npm 包 @aws-sdk/client-polly 使用教程

阅读时长 7 分钟读完

前言

随着人工智能技术的发展,语音合成技术也越来越受到关注。作为一名前端开发者,我们可以使用 AWS 的 P●●● 服务来进行语音合成,而 @aws-sdk/client-polly 库就提供了方便的接口来让我们在前端中使用 P●●●。

本文将介绍 @aws-sdk/client-polly 的使用方法,并提供详细的示例代码和指导意义。希望本文对你的学习和开发有所帮助。

安装和配置

使用 @aws-sdk/client-polly 需要先安装 AWS SDK for JavaScript v3(以下简称 SDK)。

  1. 打开命令行,输入以下命令安装 SDK:

  2. 接着,使用以下命令安装 @aws-sdk/client-polly:

  3. 在使用 @aws-sdk/client-polly 时,需要提供访问 P●●● 的凭证,可以在 AWS 管理控制台中获取。

  4. 使用以下代码初始化 SDK:

    注:region 的值根据 P●●● 的实际位置进行设置。

  5. 若需要使用 Amazon S3 存储语音合成后的文件,还需要在这里初始化 S3 客户端。这里以 AWS SDK for JavaScript v3 的 S3Client 为例:

  6. 配置完成后,就可以使用 @aws-sdk/client-polly 进行语音合成了。

语音合成

@aws-sdk/client-polly 的 SynthesizeSpeechCommand 命令可以用来进行语音合成。下面演示如何使用该命令将一段中文文本转化为语音:

-- -------------------- ---- -------
----- - ------------- - - --------------
----- - ----------------------- - - ---------------------------------

----- -------- ---------------------- -
  ----- ------ - -
    ------------- ------
    ----- -----
    --------- -------
    -------- --------
  --
  --- -
    ----- ---- - ----- -------------------- ---------------------------------
    ----- ---- - -----------------
    --------------------------- --- ------------------
    ----------------------
  - ----- ----- -
    --------------------- -----
  -
-

上述代码中,params 对象中的 OutputFormat 属性指定了输出格式为 mp3,Text 属性为待转化的文本,TextType 属性表示文本类型为普通文本,VoiceId 属性表示合成的语音是智瑜女声。 SynthesizeSpeechCommand 命令的结果 data 中包含合成后的音频数据,我们可以将它写入本地文件作为输出文件。

需要注意的是,合成语音的文本长度有限制。具体限制可以在 AWS 官方文档 中查看。

语音播放

使用 Web Audio API 可以播放从 AWS P●●● 返回的语音合成音频数据。

-- -------------------- ---- -------
----- - ----------------------- - - ---------------------------------

-------- --------------- -
  ----- ------- - --- ---------------
  ----- ------ - -----------------------------
  ----------------------------- ------ -- -
    ------------- - -------
    ------------------------------------
    ----------------
  ---
-

----- -------- ----------------------------- -
  ----- ------ - -
    ------------- ------
    ----- -----
    --------- -------
    -------- --------
  --
  --- -
    ----- ---- - ----- -------------------- ---------------------------------
    ----------------------------
  - ----- ----- -
    --------------------- -----
  -
-

上述代码中,playAudio 函数用来播放音频数据。我们使用 AudioContext 创建音频上下文,使用 decodeAudioData 方法解码音频数据,最后使用 BufferSource 并连接到音频上下文和扬声器输出设备播放。

synthesizeSpeechAndPlay 函数 combine 了 synthesizeSpeechplayAudio 的功能,实现了语音合成和播放功能。

语音存储

如果需要将合成的语音存储起来,可以使用 AWS S3 服务进行存储。

-- -------------------- ---- -------
----- - ----------------------- - - ---------------------------------

----- -------- --------------------------------- ----------- ----------- -
  ----- ------ - -
    ------------- ------
    ----- -----
    --------- -------
    -------- --------
  --
  --- -
    ----- ---- - ----- -------------------- ---------------------------------
    ----- ------------ - -
      ------- -----------
      ---- -----------
      ----- --- -----------------------------
    --
    ----- ------ - ----- ----------------- --------------------------------
    ----------------------- ---------------------
  - ----- ------- -
    ------------------------------------
  -
-

上述代码中,我们使用 PutObjectCommand 命令将语音合成输出的音频数据存储到 S3 上。uploadParams 对象中包含 S3 Bucket 名称和文件名,以及待存储的音频数据。PutObjectCommand 命令的返回结果包含 S3 Object URL。

总结

本文介绍了 @aws-sdk/client-polly 的使用方法,使用示例代码演示了如何进行语音合成、播放和存储。希望本文对你的学习和开发有所帮助。同时,我们也欢迎你在实践过程中记录遇到的问题和技术难点,分享实战经验和技术洞见,以推动前端技术的进步。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6f483ba9b7065299ccba62

纠错
反馈