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

python:如何播放 .spx 声音文件

.spx 是 Speex音频编解码器的文件扩展名,它是一种开源的、免费的音频编解码器,主要用于语音压缩和语音通信领域。spx 文件通常用于语音记录、VoIP应用、语音信箱等场景。

.mp3 是一种广泛使用的音频格式,它采用了有损压缩算法,可以在保持较高音质的同时减小文件大小。mp3文件可以在各种设备和平台上播放,包括计算机、移动设备、音频播放器等。

FFmpeg 可以将.spx文件转码成.wav文件,基于 pyaudio 和 wave 实现播放.wav 声音文件。

where ffmpeg
D:\FFmpeg\64\ffmpeg.exe
#-- 转换.spx 到 .wav:
ffmpeg -i input.spx -acodec pcm_s16le output.wav
#-- 转换.wav 到 .mp3:
ffmpeg -i input.wav -f mp3  output.mp3

pip install pyaudio
pip install wave

编写 play_spx.py  如下

# -*- coding: utf-8 -*-
""" 播放 *.spx 音频文件 """
import os
import sys
import time
from tkinter import filedialog
import pyaudio
import wave# main()
f1 = ''
if len(sys.argv) ==1:filetypes = [('spx file','.spx'),('ogg file','.ogg')]f1 = filedialog.askopenfilename(initialdir='D:/Music', filetypes=filetypes)
elif len(sys.argv) ==2:f1 = sys.argv[1]
else:print('usage: python play_spx.py file1.spx')sys.exit(1)if not os.path.exists(f1):print(f"{f1} is not exists.")sys.exit(2)fn,ext = os.path.splitext(f1)
if ext.lower() not in ('.spx','.ogg'):print('ext is not (.spx , .ogg )')sys.exit(2)f2 = fn +'.wav'
if not os.path.exists(f2):os.system(r"D:\FFmpeg\64\ffmpeg.exe -i %s -acodec pcm_s16le %s" % (f1,f2))
else:print(f"{f2} is exists")# 初始化 PyAudio
p = pyaudio.PyAudio()def play_wav(filename):# 打开 WAV 文件wf = wave.open(filename, 'rb')# 打开音频流stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),channels=wf.getnchannels(),rate=wf.getframerate(), output=True)chunk = 1024data = wf.readframes(chunk)while data :stream.write(data)data = wf.readframes(chunk)stream.stop_stream()stream.close()wf.close()print(f2)
#time.sleep(1)
time1 = time.time()
# 播放音频
play_wav(f2)
time2 = time.time()
print("run time: %.3f s" % (time2-time1))

运行 python play_spx.py 

参阅:pyaudio:基于pyaudio和pydub 实现一个简易音乐播放器播放wav、mp3等格式音乐


安装 pip install pygame
pygame 能播放*.mid , *.mp3 , *.wav ,编写 play_mid.py  如下:

# -*- coding: utf-8 -*-
import os
import sys
import time
from tkinter import filedialog
import traceback
import pygame
from pygame import mixerdef mixer_init():freq = 44100bitsize = -16channels = 2buffer = 2048mixer.init(freq, bitsize, channels, buffer)# optional volume 0 to 1.0mixer.music.set_volume(0.9)def play_mid(file):if mixer.music.get_busy():mixer.music.fadeout(1000)mixer.music.stop()clock = pygame.time.Clock()try:mixer.music.load(file)except:print(traceback.format_exc())mixer.music.play()while mixer.music.get_busy():clock.tick(30)# main()
f1 = ''
if len(sys.argv) ==1:filetypes = [('mid file','.mid'),('mp3 file','.mp3'),('wav file','.wav')]f1 = filedialog.askopenfilename(initialdir='D:/Music', filetypes=filetypes)
elif len(sys.argv) ==2:f1 = sys.argv[1]
else:print('usage: python play_mid.py file1.mid')print('usage: python play_mid.py file1.mp3')print('usage: python play_mid.py file1.wav')sys.exit(1)if not os.path.exists(f1):print(f"{f1} is not exists.")sys.exit(2)fn,ext = os.path.splitext(f1)
if ext.lower() not in ('.mid','.mp3','.wav'):print('.ext is not (.mid , .mp3','.wav')sys.exit(2)time1 = time.time()
print(f1)
mixer_init()
try:play_mid(f1)
except KeyboardInterrupt as ex:# if user hits Ctrl+C then exit# (works only in console mode)mixer.music.fadeout(1000)mixer.music.stop()raise SystemExit from ex
mixer.music.stop()
time2 = time.time()
print("run time: %.3f s" % (time2-time1))

运行 python play_mid.py output.wav

相关文章:

python:如何播放 .spx 声音文件

.spx 是 Speex音频编解码器的文件扩展名,它是一种开源的、免费的音频编解码器,主要用于语音压缩和语音通信领域。spx 文件通常用于语音记录、VoIP应用、语音信箱等场景。 .mp3 是一种广泛使用的音频格式,它采用了有损压缩算法,可…...

HTML学习笔记(6)

利用dom操作实现&#xff0c;对一个表格的增删改查 代码如下&#xff1a; todolist.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, …...

走向基于大语言模型的新一代推荐系统:综述与展望

HightLight 论文题目&#xff1a;Towards Next-Generation LLM-based Recommender Systems: A Survey and Beyond作者机构&#xff1a;吉林大学、香港理工大学、悉尼科技大学、Meta AI论文地址&#xff1a; https://arxiv.org/abs/2410.1974 基于大语言模型的下一代推荐系统&…...

【DeepSeek-R1 +1.5B】2060显卡ollama本地部署+open-webui界面使用

https://github.com/open-webui/open-webui Deepseek开源R1系列模型&#xff0c;纯RL助力推理能力大跃升&#xff01; 2060显卡下使用deepseek-r1-1.5B deepseek开源小模型需要的显存&#xff08;根据显存来选模型大小&#xff09; &#xff0c;图from: DeepSeek本地部署&…...

《翻转组件库之发布》

背景 继《翻转组件库之打包》_杨晓风-linda的博客-CSDN博客之后&#xff0c;组件库已经可以正常构建&#xff0c;那如何像elementUI等组件库那样&#xff0c;用npm安装&#xff0c;按照既定的用法使用即可呢&#xff1f;本篇便为你揭晓 资料相关 1、npm官方文档&#xff1a;…...

在深度学习中,样本不均衡问题是一个常见的挑战,尤其是在你的老虎机任务中,某些的中奖倍数较高

在深度学习中,样本不均衡问题是一个常见的挑战,尤其是在你的老虎机任务中,某些的中奖倍数较高 在深度学习中,样本不均衡问题是一个常见的挑战,尤其是在你的老虎机任务中,某些的中奖倍数较高而其他的中奖倍数较低。这种不均衡会导致模型偏向于高频样本(低中奖倍数的),…...

语言月赛 202311【基因】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202311] 基因 题目描述 有一个长度为 n n n 的字符串 S S S。其只包含有大写字母。 小 A 将 S S S 进行翻转后&#xff0c;得到另一个字符串 S ′ S S′。两个字符串 S S S 与 S ′ S S′ 对应配对。例如说&#xff0c;对…...

unity学习26:用Input接口去监测: 鼠标,键盘,虚拟轴,虚拟按键

目录 1 用Input接口去监测&#xff1a;鼠标&#xff0c;键盘&#xff0c;虚拟轴&#xff0c;虚拟按键 2 鼠标 MouseButton 事件 2.1 鼠标的基本操作 2.2 测试代码 2.3 测试情况 3 键盘Key事件 3.1 键盘的枚举方式 3.2 测试代码同上 3.3 测试代码同上 3.4 测试结果 4…...

GB/T 43698-2024 《网络安全技术 软件供应链安全要求》标准解读

一、43698-2024标准图解 https://mmbiz.qpic.cn/sz_mmbiz_png/rwcfRwCticvgeBPR8TWIPywUP8nGp4IMFwwrxAHMZ9Enfp3wibNxnfichT5zs7rh2FxTZWMxz0je9TZSqQ0lNZ7lQ/640?wx_fmtpng&fromappmsg 标准在线预览&#xff1a; 国家标准|GB/T 43698-2024 相关标准&#xff1a; &a…...

ASP.NET Core与EF Core的集成

目录 分层项目中EF Core的用法 数据库的配置 数据库迁移 步骤汇总 注意&#xff1a; 批量注册上下文 分层项目中EF Core的用法 创建一个.NET类库项目BooksEFCore&#xff0c;放实体等类。NuGet&#xff1a;Microsoft.EntityFrameworkCore.RelationalBooksEFCore中增加实…...

【AI大模型】Ubuntu18.04安装deepseek-r1模型+服务器部署+内网访问

以下内容主要参考博文&#xff1a;DeepSeek火爆全网&#xff0c;官网宕机&#xff1f;本地部署一个随便玩「LLM探索」 - 程序设计实验室 - 博客园 安装 ollama Download Ollama on Linux curl -fsSL https://ollama.com/install.sh | sh 配置 ollama 监听地址 ollama 安装后…...

SpringAI系列 - 使用LangGPT编写高质量的Prompt

目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…...

Github - 记录一次对“不小心包含了密码的PR”的修复

Github - 记录一次对“不小心包含了密码的PR”的修复 前言 和好朋友一起开发一个字节跳动青训营抖音电商后端(now private)的项目&#xff0c;某大佬不小心把本地一密码commit上去并提了PR。 PR一旦发出则无法被删除&#xff0c;且其包含的commit也能被所有能看到这个仓库的…...

【玩转 Postman 接口测试与开发2_014】第11章:测试现成的 API 接口(下)——自动化接口测试脚本实战演练 + 测试集合共享

《API Testing and Development with Postman》最新第二版封面 文章目录 3 接口自动化测试实战3.1 测试环境的改造3.2 对列表查询接口的测试3.3 对查询单个实例的测试3.4 对新增接口的测试3.5 对修改接口的测试3.6 对删除接口的测试 4 测试集合的共享操作4.1 分享 Postman 集合…...

前后端通过docker部署笔记

项目背景&#xff1a;这是一个SpringBootvue3的项目&#xff0c;通过maven打包后&#xff0c;需要在Linux服务器上部署&#xff0c;本篇博客主要记录docker-compose.yaml文件的含义&#xff1a; docker-compose.yml 文件中定义了一个 algorithm_platform_frontend 容器&#…...

五十天精通硬件设计第四天-场效应管知识及选型

场效应管(FET,Field-Effect Transistor)是一种利用电场效应控制电流的半导体器件,广泛应用于放大、开关等电路中。以下是场效应管的基本知识及选型要点: 一、场效应管的基本知识 1. 类型: - **结型场效应管(JFET)**: - N沟道和P沟道两种类型。 - 栅极与…...

了解 ALV 中的 field catalog (ABAP List Viewer)

在 ABAP 中&#xff0c;字段目录是使用 ALV &#xff08;ABAP List Viewer&#xff09; 定义内部表中的数据显示方式的关键元素。它提供对 ALV 中显示的字段的各种属性的控制&#xff0c;例如列标题、对齐方式、可见性、可编辑性等。关键概念&#xff1a; Field Catelog 字段目…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之修改密码和个人资料

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f383;1.修改密码 -持久…...

十一、CentOS Stream 9 安装 Docker

一、Docker 环境安装 1、软件源(仓库)信息 使用如下命令可列出当前系统配置的所有软件源(仓库)信息 # 列出所有软件源 dnf repolist 这表明系统有三个仓库 AppStream 、 BaseOS、Extras-Common 被启用 2、配置软件源镜像 使用如下命令可配置 Docker 软件包下载的镜像地址 …...

FreeRTOS学习 --- 中断管理

什么是中断&#xff1f; 让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断 中断执行机制&#xff0c;可简单概括为三步&#xff1a; 1&#xff0c;中断请求 外设产生中断请求&#xff08;GPIO外部中断、定时器中断…...

从逻辑门到加法器:Verilog实现半加器与全加器的三种抽象层级

1. 项目概述&#xff1a;从逻辑门到加法器的数字世界基石在数字电路和芯片设计的入门路上&#xff0c;加法器是一个绕不开的经典课题。它不仅是算术逻辑单元&#xff08;ALU&#xff09;的核心组件&#xff0c;更是理解数字系统如何执行基本运算的关键。今天&#xff0c;我们不…...

告别水下照片的蓝绿色偏:手把手教你用OpenCV和Python实现图像增强与色彩还原

告别水下照片的蓝绿色偏&#xff1a;手把手教你用OpenCV和Python实现图像增强与色彩还原 每次从潜水旅行回来&#xff0c;看着相机里那些本该绚丽多彩的珊瑚礁照片变成一片蓝绿色&#xff0c;总是让人感到沮丧。水下摄影爱好者、海洋生物研究者或是从事水下工程的专业人士都面临…...

Steam库存管理革命:5分钟掌握批量操作终极指南

Steam库存管理革命&#xff1a;5分钟掌握批量操作终极指南 【免费下载链接】Steam-Economy-Enhancer 中文版&#xff1a;Enhances the Steam Inventory and Steam Market. 项目地址: https://gitcode.com/gh_mirrors/ste/Steam-Economy-Enhancer Steam Economy Enhancer…...

089、机器人动力学:拉格朗日法

机器人动力学:拉格朗日法 从一次机械臂抖动说起 去年调试一台六轴协作机器人,末端负载从0.5kg换到2kg,位置环PID参数调了三轮,静态精度勉强达标。一跑轨迹,末端抖得像筛糠。同事说“加个低通滤波”,我试了,抖动小了,但轨迹跟踪滞后明显。后来翻出动力学模型,用拉格朗…...

从零到一:UniApp CLI 实战入门与避坑指南

1. 为什么需要UniApp CLI&#xff1f; 第一次接触UniApp的开发者可能会疑惑&#xff1a;明明有HBuilderX这样完善的图形化工具&#xff0c;为什么还要学习CLI&#xff1f;这个问题我也曾经纠结过。经过多个项目的实战验证&#xff0c;我发现CLI在以下场景中优势明显&#xff1a…...

Linux僵死IO与不可中断睡眠分析

Linux僵死IO与不可中断睡眠分析在 Linux 系统里&#xff0c;有一类问题特别让人困惑&#xff1a;进程存在、CPU 不高&#xff0c;但命令卡住、服务停不下来、甚至 kill 也无效。很多这类现象最终都与不可中断睡眠状态有关&#xff0c;尤其常见于 IO 阻塞场景。中级阶段需要理解…...

2026 电子招投标全流程操作指南:环境搭建→签章→上传→解密全避坑

据安华招标 2025 年度电子招投标技术白皮书显示&#xff0c;全国公共资源交易平台电子标覆盖率已达98.7%&#xff0c;但因纯技术操作失误导致的废标率仍高达22%。其中环境配置错误、签章失效、解密失败三大问题&#xff0c;占所有技术类废标的85% 以上。很多企业投入数月打磨标…...

OpenWrt嵌入式Linux开发入门:从编译到部署的完整实践指南

1. 项目概述&#xff1a;为什么选择OpenWrt作为嵌入式开发的起点 如果你对Linux系统有一定了解&#xff0c;并且想踏入嵌入式开发的大门&#xff0c;或者你是一个网络爱好者&#xff0c;想让家里的路由器“脱胎换骨”&#xff0c;那么OpenWrt绝对是一个绕不开的名字。它不是一…...

终极GitHub加速指南:如何免费将下载速度提升10倍以上

终极GitHub加速指南&#xff1a;如何免费将下载速度提升10倍以上 【免费下载链接】Fast-GitHub 国内Github下载很慢&#xff0c;用上了这个插件后&#xff0c;下载速度嗖嗖嗖的~&#xff01; 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 对于国内开发者来…...

如何快速掌握MegSpot:免费跨平台视觉分析工具的终极指南

如何快速掌握MegSpot&#xff1a;免费跨平台视觉分析工具的终极指南 【免费下载链接】MegSpot MegSpot是一款高效、专业、跨平台的图片&视频对比应用 项目地址: https://gitcode.com/gh_mirrors/me/MegSpot 你是否经常需要在不同设备上对比图片色彩差异&#xff1f;…...