合成语音 - Amazon 适用于 Ruby 的 SDK
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

合成语音

此示例使用 synthesize_speech 方法从文件中获取文本并生成包含合成的语音的 MP3 文件。

选择 Copy 将代码保存在本地。

创建文件 polly_synthesize_speech.rb

添加必需的 Gem。

注意

适用于 Ruby 的 Amazon SDK 版本 2 没有特定于服务的 Gem。

# Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # This file is licensed under the Apache License, Version 2.0 (the "License"). # You may not use this file except in compliance with the License. A copy of the # License is located at # # http://aws.amazon.com/apache2.0/ # # This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS # OF ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. require 'aws-sdk-polly' # In v2: require 'aws-sdk' begin # Get the filename from the command line if ARGV.empty?() puts 'You must supply a filename' exit 1 end filename = ARGV[0] # Open file and get the contents as a string if File.exist?(filename) contents = IO.read(filename) else puts 'No such file: ' + filename exit 1 end # Create an Amazon Polly client using # credentials from the shared credentials file ~/.aws/credentials # and the configuration (region) from the shared configuration file ~/.aws/config polly = Aws::Polly::Client.new resp = polly.synthesize_speech({ output_format: "mp3", text: contents, voice_id: "Joanna", }) # Save output # Get just the file name # abc/xyz.txt -> xyx.txt name = File.basename(filename) # Split up name so we get just the xyz part parts = name.split('.') first_part = parts[0] mp3_file = first_part + '.mp3' IO.copy_stream(resp.audio_stream, mp3_file) puts 'Wrote MP3 content to: ' + mp3_file rescue StandardError => ex puts 'Got error:' puts 'Error message:' puts ex.message end
注意

生成的 MP3 文件采用 MPEG-2 格式。

请参阅 GitHub 上的完整示例