半小时验证语音降噪—贾扬清邀你体验快捷云上开发 | 《阿里云机器学习PAI-DSW入门指南》

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 本文将实战讲解贾扬清在回答内部同学提出的业务问题时,给自己设的一个挑战:半小时内架构一个有体感的demo,达到语音降噪的效果。

点击即可参与机器学习PAI-DSW动手实验室

点击可下载完整电子书《阿里云机器学习PAI-DSW入门指南》

语音降噪,在开源领域通过科学计算肯定有现有的解决方案。从业务需求上讲,最有价值的一件事情是,怎么让大家能迅速地做POC,架起解决方案?
本文将实战讲解贾扬清在回答内部同学提出的业务问题时,给自己设的一个挑战:半小时内架构一个有体感的demo,达到语音降噪的效果。

半小时实验达到的语音降噪的效果

首先给大家看一下最终的效果。我录了一个关着吸尘器的时候的语音:

In [2]:

import IPython
IPython.display.Audio('https://notebook-dataset.oss-cn-beijing.aliyuncs.com/noises/normal.wav')

Out[2]:
https://developer.aliyun.com/topic/download?id=826

以及开着吸尘器的时候讲话的语音:
In [3]:

IPython.display.Audio('https://notebook-dataset.oss-cn-beijing.aliyuncs.com/noises/voice_with_noise.wav')

Out[3]:
https://developer.aliyun.com/topic/download?id=827

以及,通过降噪以后,带着吸尘器的那一段音频的降噪效果:
In [4]:

IPython.display.Audio('https://notebook-dataset.oss-cn-beijing.aliyuncs.com/noises/voice_reduced_noise.wav')

Out[4]:
https://developer.aliyun.com/topic/download?id=828

效果怎么样?
在实际业务当中,我们的思路往往不是上来就开始钻研算法,而是按照这样的一个思路:

  • 怎么将业务问题翻译成技术问题?
  • 有没有现有解决方案来测试一下效果?
  • 效果好的话,怎么落地?
  • 效果不好的话,怎么做算法迭代?

今天想展示的就是通过DSW快速解决前两个问题,即如何迅速安装开源的算法包、做数据的可视化、到最后算法效果的测试这整个流程。用现有的平台迅速地验证这些业务问题的效果,是不是一件很有意思的事情呢?

通过DSW快速验证

首先,通过搜索,我们发现有一个github的项目,noisereduce,和我们需要解决的场景很相似。基本上,可以通过两段语音,一段是噪音(做建模),一段是带噪音的语音,来实现降噪的效果。

对于标准的Python算法包,在DSW里面拉起很容易。因为DSW预装了底层的一些科学计算框架,比如说TensorFlow,因此只需要安装新增的这些包的需求:
In [5]:

!pip install noisereduce > /dev/null

我拿iPhone和家里的吸尘器录了几段视频,上传到DSW上面,然后就是大家常见的码代码了:

In [6]:

from matplotlib import pyplot
import io
import noisereduce as nr
import numpy as np
import soundfile as sf
from urllib.request import urlopen
/Users/huanghong/opt/anaconda3/lib/python3.7/site-packages/tqdm/autonotebook.py:17: TqdmExperimentalWarning: Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console) " (e.g. in jupyter console)", TqdmExperimentalWarning)

In [7]:

# 先把音频文件导入进来:
normal_data, normal_rate = sf.read(io.BytesIO(urlopen('https://notebook-dataset.oss-cn-beijing.aliyuncs.com/noises/normal.wav').read()))
noise_data, noise_rate = sf.read(io.BytesIO(urlopen('https://notebook-dataset.oss-cn-beijing.aliyuncs.com/noises/noise.wav').read()))
mixed_data, mixed_rate = sf.read(io.BytesIO(urlopen('https://notebook-dataset.oss-cn-beijing.aliyuncs.com/noises/voice_with_noise.wav').read()))
# iPhone的音频是立体声的,我们只处理一个声道,所以我们先选单声道。
normal_data = np.ascontiguousarray(normal_data[:,0])
noise_data = np.ascontiguousarray(noise_data[:,0])
mixed_data = np.ascontiguousarray(mixed_data[:,0])
rate = normal_rate

我们可以用Notebook的功能来播放这些音频。在开头大家已经听过样例了,这里我们听一下噪声:
In [8]:

IPython.display.Audio(data=noise_data,rate=rate)

Out[8]:
https://developer.aliyun.com/topic/download?id=829

对于噪声文件,我们来截取中间一段作为噪声的建模。先看看,哪段比较合适。

In [9]:

pyplot.plot(noise_data)

Out[9]:
[]
image.png
看来,截取40000到200000的这一段最合适,我们剪一下。

In [10]:

noise_data = noise_data[40000:200000]
pyplot.plot(noise_data)

Out[10]:
[]
image.png

然后,我们就可以直接调用一下noisereduce里面的功能看看结果怎么样。一行代码:

In [11]:

reduced_version = nr.reduce_noise(audio_clip=mixed_data, noise_clip=noise_data)

我们来听一下,降噪之后的语音效果怎么样。

In [12]:

IPython.display.Audio(data=reduced_version,rate=rate)

Out[12]:
https://developer.aliyun.com/topic/download?id=830

再听一下降噪之前的版本。

In [13]:

IPython.display.Audio(data=mixed_data,rate=rate)

Out[13]:
https://developer.aliyun.com/topic/download?id=831

我们可以把降噪之后的版本存下来:

In [14]:

sf.write('voice_reduced_noise.wav', reduced_version, rate)

算法是AI的核心,但是要实现业务,功夫在算法之外。

大家可以看到,在上面的样例当中,其实核心算法很短:首先,有大量的开原算法可以让我们快速验证现有的技术在不同场景当中的价值;其次,很多应用并不一定在第一时间就需要特别高大上的算法。对于关注业务的工程师来说,如何快速做POC,验证可行性,然后从浅到深来把算法落地,做算法创新,实现业务落地,这是我们今天关注的重点。

今天,一切业务都会数据化,一切数据都会业务化。相应的,一切应用就会数据化和智能化。我们对AI的看法可以用英语来做一下类比:几十年前,英语是一种服务,我们雇佣专业的翻译来帮我们做业务;但是今天,英语是一种工具,我们绝大多数人用各种工具来学习英语,使用英语。

这就对平台提出了更高的要求。PAI一直向“最懂你的AI平台”不断努力。DSW(Data Science Workshop)这个产品,目标是给大家一个云上托管的,易用、开放的机器学习和深度学习开发平台,让大家很容易地能够拉起一个典型的开发环境,迅速投入到算法和应用的开发当中。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
【AAAI 2024】再创佳绩!阿里云人工智能平台PAI多篇论文入选
阿里云人工智能平台PAI发表的多篇论文在AAAI-2024上正式亮相发表。AAAI是由国际人工智能促进协会主办的年会,是人工智能领域中历史最悠久、涵盖内容最广泛的国际顶级学术会议之一,也是中国计算机学会(CCF)推荐的A类国际学术会议。论文成果是阿里云与浙江大学、华南理工大学联合培养项目等共同研发,深耕以通用人工智能(AGI)为目标的一系列基础科学与工程问题,包括多模态理解模型、小样本类增量学习、深度表格学习和文档版面此次入选意味着阿里云人工智能平台PAI自研的深度学习算法达到了全球业界先进水平,获得了国际学者的认可,展现了阿里云人工智能技术创新在国际上的竞争力。
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
在阿里云机器学习平台上布置一个PyTorch模型
在阿里云机器学习平台上布置一个PyTorch模型【1月更文挑战第21天】【1月更文挑战第105篇】
162 1
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
|
3月前
|
人工智能 算法 开发工具
Mixtral 8X7B MoE模型在阿里云PAI平台的微调部署实践
Mixtral 8x7B 是Mixtral AI最新发布的大语言模型,是当前最为先进的开源大语言模型之一。阿里云人工智能平台PAI,提供了对于 Mixtral 8x7B 模型的全面支持,开发者和企业用户可以基于 PAI-快速开始轻松完成Mixtral 8x7B 模型的微调和部署。
|
1月前
|
自然语言处理 算法 关系型数据库
阿里云PAI大模型RAG对话系统最佳实践
本文为大模型RAG对话系统最佳实践,旨在指引AI开发人员如何有效地结合LLM大语言模型的推理能力和外部知识库检索增强技术,从而显著提升对话系统的性能,使其能更加灵活地返回用户查询的内容。适用于问答、摘要生成和其他依赖外部知识的自然语言处理任务。通过该实践,您可以掌握构建一个大模型RAG对话系统的完整开发链路。
|
2月前
|
缓存 数据可视化 安全
开发阿里云 RPA 机器人的技巧
在当今数字化时代,机器人流程自动化(RPA)技术正逐渐成为企业提高效率和优化业务流程的重要手段。阿里云 RPA 作为一种强大的工具,为开发高效的机器人提供了丰富的功能和支持。本文将分享一些开发阿里云 RPA 机器人的技巧,帮助您更好地利用该平台的能力。
|
3月前
|
机器学习/深度学习 人工智能 分布式计算
阿里云PAI:一站式AI研发平台,引领深度学习潮流
阿里云PAI:一站式AI研发平台,引领深度学习潮流 随着人工智能的飞速发展,深度学习框架已经成为AI研发的核心工具。然而,选择合适的深度学习框架并不容易,需要考虑的因素包括计算性能、易用性、支持的算法组件等多种因素。今天,我们就来介绍一款一站式AI研发平台——阿里云PAI,看看它如何解决这些痛点。
115 1
|
3月前
|
关系型数据库 分布式数据库 数据库
阿里云PolarDB开发者大会首度召开,让数据库开发像“搭积木”一样简单
阿里云PolarDB开发者大会首度召开,让数据库开发像“搭积木”一样简单
109 0
|
3月前
|
存储 编解码 弹性计算
阿里云网盘与相册开发版提供了丰富的功能和全面的加速解决方案
阿里云网盘与相册开发版提供了丰富的功能和全面的加速解决方案【1月更文挑战第13天】【1月更文挑战第63篇】
27 2
|
3月前
|
机器学习/深度学习 人工智能 物联网
Mixtral 8X7B MoE模型基于阿里云人工智能平台PAI实践合集
本文介绍如何在PAI平台针对Mixtral 8x7B大模型的微调和推理服务的最佳实践,助力AI开发者快速开箱。以下我们将分别展示具体使用步骤。

热门文章

最新文章

相关产品

  • 人工智能平台 PAI