Azure语音转写免费版
概述
Azure语音转写免费版是一款面向个人用户的轻量级语音转文字工具,基于Azure AI Transcription SDK实现。支持批量转写存储在Blob中的音频文件,自动生成带时间戳的转写结果。几行Python代码即可完成音频到文字的转换,适合播客、会议录音、视频字幕等场景.
核心能力
| 能力 | 说明 |
|---|---|
| 批量转写 | 将存储在Blob中的音频文件批量转写为文字 |
| 多语言支持 | 支持中文、英文等数十种语言识别 |
| 时间戳输出 | 生成带时间戳的转写结果,便于字幕制作 |
| 格式兼容 | 支持WAV、MP3等主流音频格式 |
| 简易API | Python SDK,几行代码完成转写 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置. |
核心功能执行
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
参数配置与调用
用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
config_options参数,支持修改/重置/导入操作
结果处理与输出
用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:Azure、进行批量语音转文、支持基础转写与时、适合个人用户处理、语音转写免费版、面向个人用户的轻、量级语音转文字工、批量语音转文字、支持存储在、自动语言识别、英文等多种语言、简单的等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
使用场景
场景一:播客录音转文字
个人播客创作者将录制好的音频转写为文字稿,用于发布文章或生成字幕.
import os
from azure.ai.transcription import TranscriptionClient
# ...
# 初始化客户端
client = TranscriptionClient(
endpoint=os.environ["TRANSCRIPTION_ENDPOINT"],
credential=os.environ["TRANSCRIPTION_KEY"]
)
# ...
# 批量转写播客音频
job = client.begin_transcription(
name="podcast-episode-01",
locale="zh-CN",
content_urls=["https://<storage>.blob.core.windows.net/podcast/episode01.wav"]
)
# ...
result = job.result()
print(f"转写状态: {result.status}")
print(f"转写内容: {result.transcript}")
场景二:会议录音整理
将会议录音转写为文字,便于后续整理会议纪要.
# 会议录音转写
meeting_job = client.begin_transcription(
name="team-meeting-20260118",
locale="zh-CN",
blob.core.windows.net/meetings/meeting.wav"],
diarization_enabled=False # 免费版不启用说话人分离
)
# ...
result = meeting_job.result()
# ...
# 输出带时间戳的转写结果
for segment in result.segments:
print(f"[{segment.start_time} - {segment.end_time}] {segment.text}")
场景三:视频字幕生成
为视频生成中文字幕文件.
# 视频音频轨转写为字幕
subtitle_job = client.begin_transcription(
name="video-subtitle",
locale="zh-CN",
blob.core.windows.net/videos/audio_track.wav"]
)
# ...
result = subtitle_job.result()
# ...
# 生成SRT字幕文件
def generate_srt(segments, output_path):
with open(output_path, 'w', encoding='utf-8') as f:
for i, seg in enumerate(segments, 1):
start = format_timestamp(seg.start_time)
end = format_timestamp(seg.end_time)
f.write(f"{i}\n{start} --> {end}\n{seg.text}\n\n")
# ...
def format_timestamp(seconds):
hours = int(seconds // 3600)
minutes = int((seconds % 3600) // 60)
secs = int(seconds % 60)
millis = int((seconds % 1) * 1000)
return f"{hours:02d}:{minutes:02d}:{secs:02d},{millis:03d}"
# ...
generate_srt(result.segments, "subtitle.srt")
print("字幕文件已生成: subtitle.srt")
不适用场景
以下场景Azure语音转写免费版不适合处理:
- 专业医学法律翻译认证
- 同声传译
- 文学创作翻译
触发条件
需要文本翻译、多语言转换、本地化处理时使用。不适用于非本工具能力范围的需求.
快速开始
- 阅读## 核心能力章节了解skill功能
- 按## 依赖说明配置环境
- 执行所需能力对应的命令
- 参考## 错误处理章节处理异常
- 查看## FAQ解答常见疑问
依赖详情
pip install azure-ai-transcription
2. 配置环境变量
export TRANSCRIPTION_ENDPOINT="https://<resource>.cognitiveservices.azure.com"
export TRANSCRIPTION_KEY="配置值"
3. 执行转写
import os
from azure.ai.transcription import TranscriptionClient
# ...
client = TranscriptionClient(
endpoint=os.environ["TRANSCRIPTION_ENDPOINT"],
credential=os.environ["TRANSCRIPTION_KEY"]
)
# ...
# 最简转写
job = client.begin_transcription(
name="my-audio",
locale="zh-CN",
content_urls=["https://<storage>/audio.wav"]
)
# ...
result = job.result()
print(result.transcript)
示例
环境变量配置
# .env 文件
TRANSCRIPTION_ENDPOINT=https://myresource.cognitiveservices.azure.com
TRANSCRIPTION_KEY=your_subscription_key_here
支持的语言代码
| 语言 | locale代码 |
|---|---|
| 中文(简体) | zh-CN |
| 中文(繁体) | zh-TW |
| 英语(美国) | en-US |
| 英语(英国) | en-GB |
| 日语 | ja-JP |
| 韩语 | ko-KR |
| 法语 | fr-FR |
| 德语 | de-DE |
音频格式要求
| 格式 | 推荐采样率 | 说明 |
|---|---|---|
| WAV | 16kHz, 16-bit | 推荐格式,无损 |
| MP3 | 16kHz+ | 有损压缩,兼容性好 |
| FLAC | 16kHz+ | 无损压缩 |
最佳实践
- 音频质量:使用清晰的录音,背景噪音越少识别准确率越高
- 语言指定:始终指定正确的locale,可显著提升识别准确率
- 文件格式:推荐使用WAV格式,16kHz采样率获得最佳效果
- Blob存储:音频文件需存储在可公开访问的Blob URL中
- 结果轮询:批量转写为异步操作,需轮询结果直到完成
- 错误处理:添加超时和重试机制,处理网络异常
常见问题
Q1:转写结果准确率不高怎么办?
确保音频质量良好,背景噪音少。指定正确的locale语言代码。对于专业领域内容,可考虑使用自定义语音模型.
Q2:支持本地文件转写吗?
免费版需要音频文件存储在可访问的Blob URL中。如需处理本地文件,需先上传至Blob存储.
Q3:转写需要多长时间?
转写时间取决于音频时长。通常处理速度约为音频时长的0.5-1倍.
已知限制
免费版受Azure免费层级限制,每月有固定的转写时长额度。如需更大用量,建议升级至PRO版本.
Q5:如何获取时间戳信息?
转写结果的segments属性包含每段文字的开始时间和结束时间,可用于字幕生成.
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Python版本: 3.8及以上
第三方依赖
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Python 3 | 运行时 | 必需 | python.org 下载安装 |
| azure-ai-transcription | Python SDK | 必需 | pip install azure-ai-transcription |
| Azure认知服务 | 云服务 | 必需 | Azure门户创建资源 |
API Key 配置
TRANSCRIPTION_ENDPOINT:Azure认知服务端点URLTRANSCRIPTION_KEY:Azure认知服务订阅密钥- 使用订阅密钥认证(不支持DefaultAzureCredential)
可用性分类
- 分类: MD+EXEC(纯Markdown指令,核心功能需要exec命令行执行能力)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent执行语音转写任务。核心转写功能通过Python SDK调用Azure AI服务实现.
- API Key通过环境变量配置: export API_KEY=your_key
错误处理
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
输出格式
{
"success": true,
"data": {
"result": "Azure语音转写免费版处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "azure transcription"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
评论
加载中…