iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >扣丁学堂Python培训简述如何用Py
  • 919
分享到

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

如何用丁学堂Python 2023-01-31 08:01:14 919人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

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

本篇文章扣丁学堂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从入门到精通开发实战技能。

--结束END--

本文标题: 扣丁学堂Python培训简述如何用Py

本文链接: https://www.lsjlt.com/news/192997.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 扣丁学堂Python培训简述如何用Py
    本篇文章扣丁学堂Python培训小编给大家介绍一下如何用Python实现播放音频和录音功能,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,感兴趣的小伙伴就随小编一起来了解一下吧。 三种播放音频的方式...
    99+
    2023-01-31
    如何用 丁学堂 Python
  • 扣丁学堂Python培训简述Pytho
    本篇文章扣丁学堂Python培训小编给读者们分享一下Python线程池模块ThreadPoolExecutor用法,文中结合实例形式分析了Python线程池模块ThreadPoolExecutor的导入与基本使用方法,对此感兴趣的小伙伴就...
    99+
    2023-01-31
    丁学堂 Python Pytho
  • 扣丁学堂区块链培训简述用Django实
    对数字货币的崛起感到新奇的我们,一定想知道其背后的技术——区块链是怎样实现的。本篇文章扣丁学堂区块链培训小编给读者们分享一下用Django实现一个可运行的区块链应用,感兴趣的小伙伴就随小编来了解一下吧。 准备工作 本文要求读者对Pytho...
    99+
    2023-01-31
    区块 丁学堂 Django
  • 扣丁学堂Python培训之Python
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于python3字符串操作总结的详细介绍,中通过示例代码介绍的非常详细,下面我们一起来看一下吧。 字符串截取 s = 'hello's[0:3]'he's[:] #截取全部字符'hell...
    99+
    2023-01-31
    丁学堂 Python
  • 扣丁学堂Python培训详解Pytho
    Python生成器与迭代器对于喜欢Python开发的小伙伴们来说应该是不陌生的,不了解的小伙伴也没有关系,本篇文章扣丁学堂Python培训小编就给小伙伴们详解一下Python生成器与迭代器,感兴趣的小伙伴就随小编来了解一下吧。 列表生成式...
    99+
    2023-01-31
    详解 丁学堂 Python
  • 扣丁学堂Python培训详解如何在Ap
    对Python开发技术感兴趣的小伙伴是否知道如何在Apache中运行Python WSGI应用呢不知道的小伙伴也没有关系,本篇文章扣丁学堂Python培训小编就给读者们分享一下如何在Apache中运行Python WSGI应用,对此感兴趣...
    99+
    2023-01-31
    详解 如何在 丁学堂
  • 扣丁学堂Python培训之基于itch
    今天扣丁学堂Python培训老师给大家分享一个基于itchat模块实现微信防撤回的案例,比如有时候,女神发来一条消息,说约你看电影,她考虑了一下,又撤回了,不约你了…而你又想知道她究竟发了什么,该怎么办?微信防撤回了解一下。 环境要求 P...
    99+
    2023-01-31
    丁学堂 Python itch
  • 千锋扣丁学堂Python培训之Web版
    今天千锋扣丁学堂Python培训老师给大家分一篇关于PythonWeb版语音合成实例详解,首先语音合成技术能将用户输入的文字,转换成流畅自然的语音输出,并且可以支持语速、音调、音量设置,打破传统文字式人机交互的方式,让人机沟通更自然,下面...
    99+
    2023-01-31
    丁学堂 千锋扣 Web
  • 千锋扣丁学堂Python培训之代理IP
    今天千锋扣丁学堂Python培训老师给大家分享一篇Python代理IP爬虫新手使用的详细介绍,首先Python爬虫要经历爬虫、爬虫被限制、爬虫反限制的过程。当然后续还要网页爬虫限制优化,爬虫再反限制的一系列道高一尺魔高一丈的过程。爬虫的初...
    99+
    2023-01-31
    丁学堂 千锋扣 IP
  • 千锋扣丁学堂Python培训之操作Ex
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于Python3操作Excel文件(读写)的简单实例详解,首先来安装版本安装的版本为0.9.3,但是官网的介绍还是关于Version0.7.3版本的,无妨,不影响理解。 安装 读Exce...
    99+
    2023-01-31
    操作 千锋扣 丁学堂
  • 千锋扣丁学堂Python培训之黑客们会
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于黑客们会用到哪些关于Python技术的详细介绍,首先Python已经成为漏洞开发领域的行业标准,读者会发现大多数概念验证工具都是用Python语言编写的(除了用Ruby写的安全漏洞检测...
    99+
    2023-01-31
    黑客 千锋扣 丁学堂
  • 千锋扣丁学堂Python培训之开发一个
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于如何利用Python开发一个简单的猜数字游戏的详细介绍,文中通过示例代码介绍的非常详细下面我们一起来看一下吧。 游戏规则 玩家将猜测一个数字。如果猜测是正确的,玩家赢。如果不正确,程序...
    99+
    2023-01-31
    千锋扣 丁学堂 Python
  • 千锋扣丁学堂Python培训之十个安全
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于初学者学习Python中的10个安全漏洞以及如何修复漏洞的方法。比如在写代码的过程中,我们的总会遇见各式各样的大坑小坑。Python也不例外,在使用模块或框架时,也存在着许多糟糕的实例...
    99+
    2023-01-31
    千锋扣 丁学堂 Python
  • 千锋扣丁学堂Python培训之详解实现
    今天千锋扣丁学堂Python培训老师给大家分享一篇关于Python两台电脑实现TCP通信的方法示例,文中通过示例代码介绍的非常详细,首先比如为了实现Nao机器人与电脑端的TCP通信,于是研究了一下Python实现TCP通信,在网上也看到了...
    99+
    2023-01-31
    详解 千锋扣 丁学堂
  • 扣丁学堂浅谈如何使用Python控制摄
    今天扣丁学堂Python培训老师给大家分享一篇关于使用Python控制摄像头拍照并发邮件的详细介绍,首先为什么会有写这个程序的想法呢下面我们一起来看一下吧。 最初的想法是写一个可以用电脑前置摄像头拍照的程序,在舍友使用你电脑的时候,不经意...
    99+
    2023-01-31
    浅谈 如何使用 丁学堂
  • Java培训简述如何处理没有被捕获的异常
    ...
    99+
    2023-06-02
  • python培训之零基础如何学习pyth
    老男孩python培训教你如何零基础学python根据TIOBE最新排名,Python已超越C#,与Java,C,C++成为全球前5大流行编程语言之一。从云端、客户端,到物联网终端,python应用无处不在。从国内的百度、阿里、腾讯、网易、...
    99+
    2023-01-31
    基础 python pyth
  • 培训教育机构如何利用线上教学软件提高教学效果
    随着互联网技术的快速发展,培训教育机构也开始借助线上教学软件来提供更便捷、高效的教学方式。本文将介绍培训教育机构如何利用线上教学软件提高教学效果,并举例说明其在实际应用中的优势。1. 方便灵活的学习方式传统的线下教学方式往往受到时间和地点...
    99+
    2024-01-20
    线上 教育机构 教学效果
  • 教你如何用Python做人脸识别,简单易学!
    Python是一种计算机编程语言以及配套的软件工具和库。Python简单易学,代码十分简洁,它使用强制空白符作为缩进,这大大提高了Python的开发效率,使用Python能够在更短的时间内完成更多的工作。Python是一门开源的语言,并且P...
    99+
    2023-09-05
    python 开发语言
  • 如何用python实现简单的学生成绩管理系统
    这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,下面我们一起来看看吧。需求:代码:imp...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作