我的编程空间,编程开发者的网络收藏夹
学习永远不晚

扣丁学堂Python培训简述如何用Py

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

扣丁学堂Python培训简述如何用Py

本篇文章扣丁学堂Python培训小编给大家介绍一下如何用Python实现播放音频和录音功能,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,感兴趣的小伙伴就随小编一起来了解一下吧。

三种播放音频的方式

使用 python 播放音频有以下几种方式:

os.system()

os.system(file) 调用系统应用来打开文件,file 可为图片或者音频文件。

缺点:要打开具体的应用,不能在后台播放音频。

pyaudio

安装:pip install pyaudio

官方提供了播放音频与录音的 api ,使用十分方便,只要把Filename更改为你的音频文件的文字,就可以播放音频了。

"""PyAudio Example: Play a WAVE file."""

import pyaudio

import wave

CHUNK = 1024

FILENAME = '你的音频文件'

def play(filename = FILENAME):

wf = wave.open(filename, 'rb')

p = pyaudio.PyAudio()

stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),

channels=wf.getnchannels(),

rate=wf.getframerate(),

output=True)

data = wf.readframes(CHUNK)

while data != b'':

stream.write(data)

data = wf.readframes(CHUNK)

stream.stop_stream()

stream.close()

p.terminate()

jupyter notebook

在 jupyer notebook 中播放音频可以使用以下函数:

import IPython.display as ipd

ipd.Audio(文件名)

几种读取音频的方式

python 有很多读取音频文件的方法,内置的库 wave ,科学计算库 scipy, 和方便易用的语音处理库 librosa。

下面将介绍分别使用这几种库读取音频文件:

安装:

wave 是内置库直接导入即可。

scipy: pip install scipy

librosa: pip install librosa

使用:

wave.open:

参数 path 为文件名,mode 为打开方式

以'rb'方式打开文件返回一个 Wave_read 对象,而以'wb'方式打开文件返回一个 Wave_write 对象。

scipy.io.wavfile:

参数 path 为文件名

返回 rate : 采样率(每秒采样点的个数),data : 音频数据

librosa.load:

参数 path 为文件名

返回 y 为音频数据,sr 为采样率

from scipy.io import wavfile

import librosa

import pyaudio

file = wave.open(path,'rb')

rate, data = wavfile.read(path)

y, sr = librosa.load(path)

下面演示一个使用 wavfile 读取音频文件并且画出波形的例子:

首先要计算音频到底持续了多长时间,wave 的 shape 就是总的采样点个数,除以采样频率可以得到持续的总时间(秒),乘1000得到总持续时间(毫秒)。接着通过 np.linsapce 产生时间的序列,最后使用 matplotlib 画出图像。

from scipy.io import wavfile

import matplotlib.pyplot as plt

import numpy as np

%matplotlib inline

sr, wave = wavfile.read('D://QQPCMgr/Desktop/python3/skip.wav')

sample_number = wave.shape[0]

total_time = int(sample_number / sr * 1000)

time_series = np.linspace(0,total_time,sample_number)

fig, ax = plt.subplots(1, 1)

ax.plot(time_series, wave)

ax.set_title('Time*Amplitude')

ax.set_xlabel('Time/ms')

ax.set_ylabel('Amplitude/dB')

Python 实现录音功能

其中,函数 multi_record每结束一次录音会询问 “是否进行下一次录音?”,按回车就可以进行下一次录音了。

import wave

import pyaudio

import matplotlib.pyplot as plt

import time

CHUNK = 1024

FORMAT = pyaudio.paInt16

CHANNELS = 2

RATE = 44100

RECORD_SECONDS = 5

def record(filename='output.wav'):

"""官方录音教程

"""

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,

channels=CHANNELS,

rate=RATE,

input=True,

frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):

data = stream.read(CHUNK)

frames.append(data)

print("* done recording")

stream.stop_stream()

stream.close()

p.terminate()

wf = wave.open(filename, 'wb')

wf.setnchannels(CHANNELS)

wf.setsampwidth(p.get_sample_size(FORMAT))

wf.setframerate(RATE)

wf.writeframes(b''.join(frames))

wf.close()

def multi_record(num=3):

"""implement 多次录音"""

for i in range(1,num+1):

print('第{}次录音准备'.format(i))

filename = 'record_{}.wav'.format(i)

record(filename)

time.sleep(second)

_ = input('进行下一次录音?')

def main():

multi_record()

if name == '__main__':

main()

想要了解更多关于Python和人工智能方面内容的小伙伴,请关注扣丁学堂Python培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Python开发环境搭建视频,Python培训后的前景无限,行业薪资和未来的发展会越来越好的,扣丁学堂老师精心推出的Python视频教程定能让你快速掌握Python从入门到精通开发实战技能。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

扣丁学堂Python培训简述如何用Py

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

扣丁学堂Python培训简述如何用Py

本篇文章扣丁学堂Python培训小编给大家介绍一下如何用Python实现播放音频和录音功能,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,感兴趣的小伙伴就随小编一起来了解一下吧。三种播放音频的方式使用
2023-01-31

扣丁学堂Python培训简述Pytho

本篇文章扣丁学堂Python培训小编给读者们分享一下Python线程池模块ThreadPoolExecutor用法,文中结合实例形式分析了Python线程池模块ThreadPoolExecutor的导入与基本使用方法,对此感兴趣的小伙伴就随
2023-01-31

扣丁学堂区块链培训简述用Django实

对数字货币的崛起感到新奇的我们,一定想知道其背后的技术——区块链是怎样实现的。本篇文章扣丁学堂区块链培训小编给读者们分享一下用Django实现一个可运行的区块链应用,感兴趣的小伙伴就随小编来了解一下吧。准备工作本文要求读者对Python有基
2023-01-31

扣丁学堂Python培训之Python

今天千锋扣丁学堂Python培训老师给大家分享一篇关于python3字符串操作总结的详细介绍,中通过示例代码介绍的非常详细,下面我们一起来看一下吧。字符串截取s = 'hello's[0:3]'he's[:] #截取全部字符'hello'消
2023-01-31

扣丁学堂Python培训详解Pytho

Python生成器与迭代器对于喜欢Python开发的小伙伴们来说应该是不陌生的,不了解的小伙伴也没有关系,本篇文章扣丁学堂Python培训小编就给小伙伴们详解一下Python生成器与迭代器,感兴趣的小伙伴就随小编来了解一下吧。列表生成式:例
2023-01-31

扣丁学堂Python培训详解如何在Ap

对Python开发技术感兴趣的小伙伴是否知道如何在Apache中运行Python WSGI应用呢?不知道的小伙伴也没有关系,本篇文章扣丁学堂Python培训小编就给读者们分享一下如何在Apache中运行Python WSGI应用,对此感兴趣
2023-01-31

扣丁学堂Python培训之基于itch

今天扣丁学堂Python培训老师给大家分享一个基于itchat模块实现微信防撤回的案例,比如有时候,女神发来一条消息,说约你看电影,她考虑了一下,又撤回了,不约你了…而你又想知道她究竟发了什么,该怎么办?微信防撤回了解一下。环境要求Pyth
2023-01-31

千锋扣丁学堂Python培训之Web版

今天千锋扣丁学堂Python培训老师给大家分一篇关于PythonWeb版语音合成实例详解,首先语音合成技术能将用户输入的文字,转换成流畅自然的语音输出,并且可以支持语速、音调、音量设置,打破传统文字式人机交互的方式,让人机沟通更自然,下面我
2023-01-31

千锋扣丁学堂Python培训之代理IP

今天千锋扣丁学堂Python培训老师给大家分享一篇Python代理IP爬虫新手使用的详细介绍,首先Python爬虫要经历爬虫、爬虫被限制、爬虫反限制的过程。当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程。爬虫的初级
2023-01-31

千锋扣丁学堂Python培训之操作Ex

今天千锋扣丁学堂Python培训老师给大家分享一篇关于Python3操作Excel文件(读写)的简单实例详解,首先来安装版本安装的版本为0.9.3,但是官网的介绍还是关于Version0.7.3版本的,无妨,不影响理解。安装读Excel文件
2023-01-31

千锋扣丁学堂Python培训之详解实现

今天千锋扣丁学堂Python培训老师给大家分享一篇关于Python两台电脑实现TCP通信的方法示例,文中通过示例代码介绍的非常详细,首先比如为了实现Nao机器人与电脑端的TCP通信,于是研究了一下Python实现TCP通信,在网上也看到了很
2023-01-31

千锋扣丁学堂Python培训之黑客们会

今天千锋扣丁学堂Python培训老师给大家分享一篇关于黑客们会用到哪些关于Python技术的详细介绍,首先Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测工
2023-01-31

千锋扣丁学堂Python培训之十个安全

今天千锋扣丁学堂Python培训老师给大家分享一篇关于初学者学习Python中的10个安全漏洞以及如何修复漏洞的方法。比如在写代码的过程中,我们的总会遇见各式各样的大坑小坑。Python也不例外,在使用模块或框架时,也存在着许多糟糕的实例。
2023-01-31

千锋扣丁学堂Python培训之开发一个

今天千锋扣丁学堂Python培训老师给大家分享一篇关于如何利用Python开发一个简单的猜数字游戏的详细介绍,文中通过示例代码介绍的非常详细下面我们一起来看一下吧。游戏规则玩家将猜测一个数字。如果猜测是正确的,玩家赢。如果不正确,程序会提示
2023-01-31

扣丁学堂浅谈如何使用Python控制摄

今天扣丁学堂Python培训老师给大家分享一篇关于使用Python控制摄像头拍照并发邮件的详细介绍,首先为什么会有写这个程序的想法呢下面我们一起来看一下吧。最初的想法是写一个可以用电脑前置摄像头拍照的程序,在舍友使用你电脑的时候,不经意间获
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录