Polly 返回 0 字节
Polly returning 0 bytes
尝试通过 AWS polly 执行基本的 tts 任务,我可以使用 CLI 和这种类型的命令获得可播放的 mp3:
aws polly synthesize-speech --output-format mp3 --voice-id Joanna --text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' hello.mp3
但是,按照提供的示例 here,我得到了 0 字节的 mp3 文件。
我的代码:
from boto3 import Session
from botocore.exceptions import BotoCoreError, ClientError
from contextlib import closing
import os
import sys
import subprocess
from tempfile import gettempdir
session = Session(profile_name="default")
polly = session.client("polly")
try:
response = polly.synthesize_speech(Text="This is what you wrote. It'd be cool if it also
worked.",
OutputFormat="mp3",
VoiceId="Joanna",
)
except (BotoCoreError, ClientError) as error:
print(error)
sys.exit(-1)
if "AudioStream" in response:
with closing(response["AudioStream"]) as stream:
output = ("speech.mp3")
print(os.path.join(gettempdir(), "hopa"))
try:
with open(output, "wb") as file:
file.write(stream.read())
except IOError as error:
print(error)
sys.exit(-1)
else:
print("Could not stream audio")
sys.exit(-1)
os.startfile(output)
您在 with
中的缩进不正确。
这个有效:
import boto3
from botocore.exceptions import BotoCoreError, ClientError
from contextlib import closing
import sys
polly = boto3.client("polly")
try:
response = polly.synthesize_speech(
Text="This is what you wrote. It'd be cool if it also worked.",
OutputFormat="mp3",
VoiceId="Joanna",
)
except (BotoCoreError, ClientError) as error:
print(error)
sys.exit(-1)
if "AudioStream" in response:
with closing(response["AudioStream"]) as stream:
output = "speech.mp3"
try:
with open(output, "wb") as file:
file.write(stream.read())
except IOError as error:
print(error)
sys.exit(-1)
else:
print("Could not stream audio")
sys.exit(-1)
尝试通过 AWS polly 执行基本的 tts 任务,我可以使用 CLI 和这种类型的命令获得可播放的 mp3:
aws polly synthesize-speech --output-format mp3 --voice-id Joanna --text 'Hello, my name is Joanna. I learned about the W3C on 10/3 of last year.' hello.mp3
但是,按照提供的示例 here,我得到了 0 字节的 mp3 文件。
我的代码:
from boto3 import Session
from botocore.exceptions import BotoCoreError, ClientError
from contextlib import closing
import os
import sys
import subprocess
from tempfile import gettempdir
session = Session(profile_name="default")
polly = session.client("polly")
try:
response = polly.synthesize_speech(Text="This is what you wrote. It'd be cool if it also
worked.",
OutputFormat="mp3",
VoiceId="Joanna",
)
except (BotoCoreError, ClientError) as error:
print(error)
sys.exit(-1)
if "AudioStream" in response:
with closing(response["AudioStream"]) as stream:
output = ("speech.mp3")
print(os.path.join(gettempdir(), "hopa"))
try:
with open(output, "wb") as file:
file.write(stream.read())
except IOError as error:
print(error)
sys.exit(-1)
else:
print("Could not stream audio")
sys.exit(-1)
os.startfile(output)
您在 with
中的缩进不正确。
这个有效:
import boto3
from botocore.exceptions import BotoCoreError, ClientError
from contextlib import closing
import sys
polly = boto3.client("polly")
try:
response = polly.synthesize_speech(
Text="This is what you wrote. It'd be cool if it also worked.",
OutputFormat="mp3",
VoiceId="Joanna",
)
except (BotoCoreError, ClientError) as error:
print(error)
sys.exit(-1)
if "AudioStream" in response:
with closing(response["AudioStream"]) as stream:
output = "speech.mp3"
try:
with open(output, "wb") as file:
file.write(stream.read())
except IOError as error:
print(error)
sys.exit(-1)
else:
print("Could not stream audio")
sys.exit(-1)