当前位置: 首页 > article >正文

Qwen3-ASR-1.7B代码实例:Python调用API接口实现批量音频转写自动化

Qwen3-ASR-1.7B代码实例Python调用API接口实现批量音频转写自动化1. 引言音频转写的自动化需求在日常工作中我们经常需要处理大量的音频文件转写任务。无论是会议录音、采访记录还是语音备忘录手动逐一听写不仅耗时耗力还容易出错。Qwen3-ASR-1.7B作为阿里云通义千问团队开发的高精度语音识别模型为我们提供了完美的解决方案。这个1.7B参数版本的语音识别模型支持52种语言和方言包括30种主要语言和22种中文方言具备自动语言检测能力。更重要的是它提供了API接口让我们可以通过编程方式实现批量音频转写的自动化。本文将手把手教你如何使用Python调用Qwen3-ASR-1.7B的API接口构建一个高效的批量音频转写工具。无论你是技术小白还是有经验的开发者都能快速上手。2. 环境准备与API基础2.1 安装必要的Python库首先我们需要安装几个必要的Python库。打开终端或命令提示符执行以下命令pip install requests tqdm python-dotenv这些库的作用分别是requests用于发送HTTP请求到API接口tqdm显示进度条让批量处理过程更直观python-dotenv管理环境变量保护API密钥等敏感信息2.2 获取API访问信息Qwen3-ASR-1.7B镜像部署后Web服务通常运行在7860端口。假设你的实例访问地址是https://gpu-实例ID-7860.web.gpu.csdn.net/API端点通常是/api/transcribe我们将在代码中使用这个接口。3. 核心代码实现3.1 基础API调用函数让我们从最简单的单个音频文件转写开始import requests import json import os from tqdm import tqdm def transcribe_audio(api_url, audio_path, languageauto): 单个音频文件转写函数 参数: api_url: API接口地址 audio_path: 音频文件路径 language: 语言代码默认为auto自动检测 返回: 转写结果文本 try: # 准备请求数据 files {audio: open(audio_path, rb)} data {language: language} # 发送POST请求 response requests.post(api_url, filesfiles, datadata) # 检查响应状态 if response.status_code 200: result response.json() return result.get(text, ) else: print(f错误: HTTP {response.status_code}) return None except Exception as e: print(f转写过程中出错: {str(e)}) return None finally: # 确保文件被关闭 if files in locals(): files[audio].close() # 使用示例 api_url https://gpu-你的实例ID-7860.web.gpu.csdn.net/api/transcribe result transcribe_audio(api_url, meeting.wav) print(f转写结果: {result})3.2 批量处理实现现在我们来扩展这个函数支持批量处理多个音频文件import glob from pathlib import Path def batch_transcribe(api_url, audio_folder, output_folderresults, languageauto): 批量转写音频文件夹中的所有文件 参数: api_url: API接口地址 audio_folder: 音频文件所在文件夹 output_folder: 结果输出文件夹 language: 语言代码 返回: 成功转写的文件数量 # 创建输出文件夹 Path(output_folder).mkdir(exist_okTrue) # 获取所有支持的音频文件 audio_extensions [*.wav, *.mp3, *.flac, *.ogg] audio_files [] for ext in audio_extensions: audio_files.extend(glob.glob(os.path.join(audio_folder, ext))) if not audio_files: print(未找到音频文件) return 0 print(f找到 {len(audio_files)} 个音频文件) # 批量转写 success_count 0 for audio_file in tqdm(audio_files, desc转写进度): result transcribe_audio(api_url, audio_file, language) if result: # 保存结果到文件 output_file os.path.join( output_folder, f{Path(audio_file).stem}_transcript.txt ) with open(output_file, w, encodingutf-8) as f: f.write(result) success_count 1 print(f完成 {success_count}/{len(audio_files)} 个文件的转写) return success_count # 使用示例 batch_transcribe( api_urlhttps://gpu-你的实例ID-7860.web.gpu.csdn.net/api/transcribe, audio_folderaudio_files, output_foldertranscripts )4. 高级功能与错误处理4.1 带重试机制的转写函数网络请求可能会失败我们需要添加重试机制import time from requests.exceptions import RequestException def transcribe_with_retry(api_url, audio_path, languageauto, max_retries3): 带重试机制的音频转写函数 参数: api_url: API接口地址 audio_path: 音频文件路径 language: 语言代码 max_retries: 最大重试次数 返回: 转写结果文本 for attempt in range(max_retries): try: result transcribe_audio(api_url, audio_path, language) if result is not None: return result except RequestException as e: print(f第 {attempt 1} 次尝试失败: {str(e)}) if attempt max_retries - 1: wait_time 2 ** attempt # 指数退避 print(f等待 {wait_time} 秒后重试...) time.sleep(wait_time) print(f文件 {audio_path} 转写失败已达到最大重试次数) return None4.2 结果格式化和统计让我们添加一些结果处理的增强功能def process_transcription_results(input_folder, output_filesummary.csv): 处理转写结果生成汇总报告 参数: input_folder: 转写结果文件夹 output_file: 汇总文件输出路径 import csv from datetime import datetime results [] transcript_files glob.glob(os.path.join(input_folder, *.txt)) for file_path in transcript_files: with open(file_path, r, encodingutf-8) as f: content f.read() # 基础统计 char_count len(content) word_count len(content.split()) line_count len(content.split(\n)) results.append({ filename: Path(file_path).name, char_count: char_count, word_count: word_count, line_count: line_count, process_time: datetime.now().strftime(%Y-%m-%d %H:%M:%S) }) # 保存为CSV if results: with open(output_file, w, newline, encodingutf-8) as f: fieldnames [filename, char_count, word_count, line_count, process_time] writer csv.DictWriter(f, fieldnamesfieldnames) writer.writeheader() writer.writerows(results) print(f汇总报告已保存到: {output_file}) return results5. 完整自动化脚本现在我们把所有功能整合成一个完整的脚本#!/usr/bin/env python3 Qwen3-ASR-1.7B 批量音频转写自动化脚本 作者: 桦漫AIGC集成开发 import argparse import os from pathlib import Path def main(): # 解析命令行参数 parser argparse.ArgumentParser(descriptionQwen3-ASR-1.7B 批量音频转写工具) parser.add_argument(--api-url, requiredTrue, helpAPI接口地址) parser.add_argument(--input-dir, requiredTrue, help音频文件输入目录) parser.add_argument(--output-dir, defaulttranscripts, help转写结果输出目录) parser.add_argument(--language, defaultauto, help语言代码默认为auto自动检测) parser.add_argument(--max-retries, typeint, default3, help最大重试次数) args parser.parse_args() # 执行批量转写 print(开始批量音频转写...) success_count batch_transcribe( api_urlargs.api_url, audio_folderargs.input_dir, output_folderargs.output_dir, languageargs.language ) # 生成汇总报告 if success_count 0: process_transcription_results(args.output_dir) print(f批量转写完成成功处理 {success_count} 个文件) else: print(没有文件被成功转写) if __name__ __main__: main()使用这个脚本的方法很简单python audio_transcriber.py \ --api-url https://gpu-你的实例ID-7860.web.gpu.csdn.net/api/transcribe \ --input-dir 我的音频文件 \ --output-dir 转写结果 \ --language zh # 中文转写6. 实际应用建议6.1 性能优化技巧如果你需要处理大量音频文件可以考虑以下优化措施# 使用多线程加速处理 from concurrent.futures import ThreadPoolExecutor, as_completed def parallel_batch_transcribe(api_url, audio_files, languageauto, max_workers4): 多线程批量转写 success_count 0 with ThreadPoolExecutor(max_workersmax_workers) as executor: # 提交所有任务 future_to_file { executor.submit(transcribe_with_retry, api_url, file, language): file for file in audio_files } # 处理完成的任务 for future in tqdm(as_completed(future_to_file), totallen(audio_files)): file future_to_file[future] try: result future.result() if result: success_count 1 except Exception as e: print(f文件 {file} 处理失败: {str(e)}) return success_count6.2 常见问题处理在实际使用中可能会遇到的一些问题音频质量不佳建议先对音频进行降噪处理网络不稳定使用我们上面实现的重试机制大文件处理如果音频文件很大考虑先分割再转写def split_large_audio(audio_path, max_duration300, output_foldersplit_audio): 分割大音频文件为小段 使用pydub库需要额外安装: pip install pydub from pydub import AudioSegment from pydub.silence import split_on_silence Path(output_folder).mkdir(exist_okTrue) audio AudioSegment.from_file(audio_path) chunks split_on_silence( audio, min_silence_len1000, silence_thresh-40, keep_silence500 ) output_files [] for i, chunk in enumerate(chunks): output_file os.path.join(output_folder, f{Path(audio_path).stem}_part{i1}.wav) chunk.export(output_file, formatwav) output_files.append(output_file) return output_files7. 总结通过本文的代码实例你已经掌握了使用Python调用Qwen3-ASR-1.7B API接口实现批量音频转写自动化的完整方法。从基础的单文件转写到复杂的批量处理、错误重试、结果统计我们覆盖了实际应用中的各种场景。关键要点回顾Qwen3-ASR-1.7B提供高质量的语音识别能力支持多种语言和方言通过简单的API调用就能实现音频转写功能批量处理可以大幅提高工作效率适当的错误处理和重试机制确保程序稳定性你可以根据实际需求调整代码比如添加邮件通知功能、集成到现有工作流中或者开发Web界面让非技术人员也能使用。这个自动化工具不仅能节省大量时间还能确保转写结果的一致性和准确性。现在就开始尝试吧让你的音频转写工作变得更加高效和轻松获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

Qwen3-ASR-1.7B代码实例:Python调用API接口实现批量音频转写自动化

Qwen3-ASR-1.7B代码实例:Python调用API接口实现批量音频转写自动化 1. 引言:音频转写的自动化需求 在日常工作中,我们经常需要处理大量的音频文件转写任务。无论是会议录音、采访记录还是语音备忘录,手动逐一听写不仅耗时耗力&a…...

三维直流亥姆霍兹线圈交付某国家级电科院

为某电科院研究打造的精密磁场平台,近日投入使用。这款三维圆形直流亥姆霍兹线圈,以仿真驱动设计,重新定义大空间与高精度的平衡。空间与精度的双重突破:基于SeeweTek仿真优化,在超大内径下仍保持极高磁场均匀度&#…...

革新性炉石传说插件:如何通过游戏体验增强实现效率提升

革新性炉石传说插件:如何通过游戏体验增强实现效率提升 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 在快节奏的现代生活中,炉石传说玩家常常面临三大核心痛点&am…...

AirPodsDesktop:Windows和Linux用户的完整AirPods体验终极指南

AirPodsDesktop:Windows和Linux用户的完整AirPods体验终极指南 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 你是…...

windows下oracle 11g搭建主备

Oracle Data Guard 主备搭建 主库: 192.168.100.73 SIDorcl 备库: 192.168.100.74 SIDorcldg一、主库配置 (在73服务器执行) -- 1.1 开启归档模式 alter system set db_recovery_file_destC:\app\Administrator\flash_recovery_area scopeboth; alter system set db_recovery…...

Full Page Screen Capture:智能捕获技术实现无缝网页完整截图体验

Full Page Screen Capture:智能捕获技术实现无缝网页完整截图体验 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-c…...

粒子群算法调参指南:如何避免陷入局部最优(附非线性递减权重实现)

粒子群算法调参实战:非线性权重策略与全局优化技巧 粒子群优化算法(PSO)作为群体智能领域的经典方法,其性能高度依赖参数配置。许多工程师在基础应用阶段能够获得可接受的结果,但当问题复杂度提升时,常常陷…...

全面掌握MelonLoader:Unity游戏Mod加载器的终极指南

全面掌握MelonLoader:Unity游戏Mod加载器的终极指南 【免费下载链接】MelonLoader The Worlds First Universal Mod Loader for Unity Games compatible with both Il2Cpp and Mono 项目地址: https://gitcode.com/gh_mirrors/me/MelonLoader 你是否曾经为Un…...

别再手动摆引脚了!嘉立创EDA专业版符号库设计,从蓝桥杯真题到高效实战

嘉立创EDA符号库设计实战:从竞赛真题到工程级规范 第一次用嘉立创EDA专业版设计符号库时,我盯着满屏的引脚和属性栏发呆了十分钟——明明教程里的步骤看起来那么简单,为什么自己操作时总在"摆引脚-改属性-保存报错"的循环里打转&am…...

告别广告骚扰:硬件狗狗绿色单文件版本体验

在当今的软件市场中,广告似乎已经成为了很多软件的标配。 用户在使用软件的过程中,不得不面对各种弹窗广告和界面广告的骚扰。 这不仅影响了用户的使用体验,也可能带来一些安全隐患。 而硬件狗狗的出现,为用户提供了一个全新的…...

Qwen3-ASR-1.7B在Ubuntu20.04上的Docker化部署教程

Qwen3-ASR-1.7B在Ubuntu20.04上的Docker化部署教程 1. 引言 语音识别技术正在改变我们与设备交互的方式,而Qwen3-ASR-1.7B作为一款支持52种语言和方言的开源模型,为开发者提供了强大的语音转文字能力。今天,我将带你一步步在Ubuntu 20.04系…...

手把手教你准备Kubernetes 1.29.4离线安装包:从containerd到etcd的完整下载清单

Kubernetes 1.29.4离线部署全攻略:构建企业级私有化容器平台的必备清单 在金融、军工、能源等对网络隔离要求严格的行业,或是边缘计算、生产车间等网络条件受限的场景中,离线部署Kubernetes集群成为刚需。但面对containerd、CNI插件、etcd等…...

ComfyUI-AnimateDiff-Evolved技术指南:从静态图像到动态视频的AI创作全流程

ComfyUI-AnimateDiff-Evolved技术指南:从静态图像到动态视频的AI创作全流程 【免费下载链接】ComfyUI-AnimateDiff-Evolved Improved AnimateDiff for ComfyUI and Advanced Sampling Support 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-AnimateDiff-E…...

腾视科技大模型一体机解决方案:低成本私有化落地,重塑行业智能应用新格局

在数字化浪潮席卷各行各业的今天,大模型技术正成为驱动创新的核心引擎。然而,企业在引入大模型时,往往面临数据安全难保障、长期成本高、场景适配性不足等痛点。腾视科技深耕技术研发,推出“大模型一体机低成本私有化落地解决方案…...

Qt播放MP4视频时,如何优雅地处理播放列表和播放模式?一个实战案例分享

Qt播放MP4视频时如何优雅处理播放列表与播放模式 在开发多媒体应用时,播放列表管理和播放模式切换往往是比基础播放功能更具挑战性的部分。本文将深入探讨如何在Qt框架下构建一个健壮的MP4播放器,重点解决播放列表的智能管理和多种播放模式的优雅实现。…...

程序员都在给AI当“监工”!7万多条编程消息揭开当前编程现状

程序员都在给AI当“监工”!来自圣母大学和范德堡大学的研究团队,对超过一万次完整真实编程对话记录,多达74998条开发指令进行了深度剖析。现代开发者投入最多时间的不再是从零开始编写代码,恰恰相反,他们主要在指导人工…...

SEO 优化自学常见的误区有哪些

SEO 优化自学常见的误区有哪些 在互联网时代,SEO(搜索引擎优化)已经成为了提升网站流量和品牌知名度的关键。对于很多自学SEO的人来说,常常会犯一些错误,导致他们的努力难以见到实际效果。本文将详细探讨SEO 优化自学…...

D3KeyHelper:革新性暗黑3自动化助手,重新定义游戏效率体验

D3KeyHelper:革新性暗黑3自动化助手,重新定义游戏效率体验 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款…...

# Activiti 5.13 没有流程图追踪?自己解析BPMN画进度图,政务用户一眼看懂

Activiti 5.13 没有流程图追踪?自己解析BPMN画进度图,政务用户一眼看懂 非科班野生程序员,深耕政务信息化20年,这套自研Java Web框架支撑过省级新农保、全国首例跨省医保结算等核心民生系统,18年稳定运行至今。这篇复…...

WarcraftHelper:魔兽争霸3终极优化工具,如何让经典游戏在现代电脑上流畅运行

WarcraftHelper:魔兽争霸3终极优化工具,如何让经典游戏在现代电脑上流畅运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还…...

从零开始:SDXL 1.0电影级绘图工坊Docker环境搭建与测试

从零开始:SDXL 1.0电影级绘图工坊Docker环境搭建与测试 1. 为什么选择SDXL 1.0与Docker组合 SDXL 1.0作为Stable Diffusion系列的最新升级版本,在图像生成质量上实现了质的飞跃。相比前代产品,它原生支持1024x1024高清分辨率,生…...

GLM-OCR真实案例:识别合同文档、发票表格,办公效率翻倍

GLM-OCR真实案例:识别合同文档、发票表格,办公效率翻倍 1. 为什么你需要关注GLM-OCR 每天面对堆积如山的合同、发票和各类文档,你是否也经历过这样的痛苦时刻?眼睛酸痛地逐字核对合同条款,手动录入发票数据到Excel表…...

程序员副业变现全指南:从技术到收入

CSDN程序员副业图谱技术文章大纲副业需求分析与市场概况程序员副业的主要动机:收入多元化、技能拓展、兴趣变现当前市场需求:技术咨询、外包开发、在线教育、自媒体等数据支撑:副业收入占比、热门领域统计(如AI、Web3、小程序&…...

抖音无水印视频下载工具:5分钟快速上手完整指南

抖音无水印视频下载工具:5分钟快速上手完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

Phi-4-mini-reasoning模型效果展示:智能解读操作系统核心概念

Phi-4-mini-reasoning模型效果展示:智能解读操作系统核心概念 1. 模型能力概览 Phi-4-mini-reasoning是一款专注于技术概念解析的轻量级模型,特别擅长用通俗易懂的方式拆解复杂系统原理。在操作系统这类抽象概念的解释上,它能将教科书式的定…...

StructBERT中文语义匹配实战:Kubernetes集群中StructBERT服务弹性伸缩配置

StructBERT中文语义匹配实战:Kubernetes集群中StructBERT服务弹性伸缩配置 在自然语言处理的实际应用中,语义相似度判断是一个高频且核心的需求。无论是智能客服中的问题匹配、内容平台上的文本查重,还是知识库里的同义句检索,都…...

数据库AI方向探索-MCP原理解析DB方向实战

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

Z-Image-Turbo-rinaiqiao-huiyewunv 开发工具链:使用Cursor智能IDE加速模型集成代码编写

Z-Image-Turbo-rinaiqiao-huiyewunv 开发工具链:使用Cursor智能IDE加速模型集成代码编写 1. 引言 如果你正在尝试把Z-Image-Turbo这类图像生成模型集成到自己的项目里,可能遇到过这样的场景:对着API文档,一行行敲着重复的请求代…...

如何使用Everything Claude Code的Nutrient API实现智能文档处理:10个核心功能详解

如何使用Everything Claude Code的Nutrient API实现智能文档处理:10个核心功能详解 【免费下载链接】everything-claude-code The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claud…...

Facebook4月为什么很容易封号,是风控变严了吗?

是的,4月份Facebook的风控确实会明显趋严。 这是平台为清理垃圾内容和违规行为而进行的大规模审核行动,主要源于Meta在4月底宣布的一项重大政策收紧。具体的风控升级背景和应对方案如下:🧐 为什么4月风控尤其严?Meta官…...