成品网站是什么意思,湖南建设人才网,徐州网易联合创新中心,福州做网站费用.spx 是 Speex音频编解码器的文件扩展名#xff0c;它是一种开源的、免费的音频编解码器#xff0c;主要用于语音压缩和语音通信领域。spx 文件通常用于语音记录、VoIP应用、语音信箱等场景。
.mp3 是一种广泛使用的音频格式#xff0c;它采用了有损压缩算法#xff0c;可….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(initialdirD:/Music, filetypesfiletypes)
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(rD:\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(formatp.get_format_from_width(wf.getsampwidth()),channelswf.getnchannels(),ratewf.getframerate(), outputTrue)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(initialdirD:/Music, filetypesfiletypes)
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 CtrlC 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