导出文本转语音文件时,文件在Azure Blob Storage中的存储位置是哪里?
解决Azure Speech Studio TTS直接导出到Blob Storage的问题
先理清UI导出的逻辑
Speech Studio里的「导出到Blob Storage」功能,不是在Speech Service资源里预先配置存储账户,而是每次导出时需要你提供目标Blob容器的SAS URL(带写入权限)。你之前可能没注意到这个输入项——导出对话框里应该有一个输入框,要求填写「Blob容器SAS URL」,而非选择已有的存储账户。
导出成功后,Speech Studio不会主动返回文件的存储链接,你需要自己登录到对应的Azure存储账户,进入指定容器直接查找生成的MP3文件(文件名默认是随机字符串,也可以在导出对话框里自定义)。
跳过本地下载的更优方案:用API直接生成到Blob
如果想彻底跳过手动导出+本地下载的步骤,推荐用Azure Speech REST API或SDK直接将TTS音频流上传到Blob Storage,流程如下:
步骤1:获取Speech Service的密钥和区域
在Azure门户的Speech Service资源中,进入「密钥和终结点」页面,复制其中一个密钥和对应的区域(比如eastus)。
步骤2:生成Blob容器的SAS URL
在存储账户的容器页面,点击「生成SAS」,勾选「写入」权限,设置有效期后生成并复制SAS URL。
步骤3:用Python代码直接生成并上传(示例)
import requests from azure.storage.blob import BlobClient # Speech Service配置 speech_key = "你的Speech密钥" region = "你的区域" text = "要转换的文本内容" # Blob Storage配置 blob_sas_url = "你的Blob容器SAS URL" blob_name = "自定义的MP3文件名.mp3" # 调用Speech TTS API获取音频流 tts_url = f"https://{region}.tts.speech.microsoft.com/cognitiveservices/v1" headers = { "Ocp-Apim-Subscription-Key": speech_key, "Content-Type": "application/ssml+xml", "X-Microsoft-OutputFormat": "audio-16khz-128kbitrate-mono-mp3" } ssml = f"""<speak version='1.0' xml:lang='zh-CN'> <voice xml:lang='zh-CN' xml:gender='Female' name='zh-CN-XiaoxiaoNeural'> {text} </voice> </speak>""" response = requests.post(tts_url, headers=headers, data=ssml.encode('utf-8')) response.raise_for_status() # 将音频流直接上传到Blob Storage blob_client = BlobClient.from_blob_url(blob_sas_url + "/" + blob_name) blob_client.upload_blob(response.content, overwrite=True) print(f"音频已上传到Blob:{blob_client.url}")
这个方法直接将TTS生成的音频流上传到Blob,完全跳过本地存储环节,适合集成到你的应用程序中。
内容的提问来源于stack exchange,提问作者Greg Gum
相关产品推荐
相关产品推荐

