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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
6月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
在本教程中,您将学习在阿里云交互式建模平台PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理,实现文本驱动的图像编辑功能单卡即可完成AIGC图片风格变化、背景变化和主体变化等功能。让我们一同开启这场旅程,为您的图像编辑添上无限可能性的翅膀吧。
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
|
2月前
|
机器学习/深度学习 算法 算法框架/工具
为什么使用C++进行机器学习开发
C++作为一种高性能语言,在某些性能要求极高或资源受限的场景下也具有非常重要的地位。C++的高效性和对底层硬件的控制能力,使其在大规模机器学习系统中发挥重要作用,尤其是当需要处理大数据或实时响应的系统时。
48 3
|
3月前
|
人工智能 编解码 算法
使用PAI-DSW x Free Prompt Editing开发个人AIGC绘图小助理
本文介绍如何借助阿里云PAI-DSW及Free Prompt Editing算法开发个性化AIGC绘图助手,实现图像智能编辑与生成。首先需领取PAI-DSW免费试用资源并创建实例;随后通过运行教程文件完成环境搭建。WebUI界面预设了多种参数供调整,如图像分辨率、编辑层数量等,支持更改图像背景与风格等功能演示。完成实验后应及时清理资源以避免额外费用。此外,参与阿里云开发者社区的“AIGC绘图小助手”活动,不仅可获得免费云资源试用,还有机会赢得桌面折叠风扇、小度智能屏X9等礼品。
|
3月前
|
机器学习/深度学习 Kubernetes Docker
机器学习开发的灵药:Docker容器
机器学习开发的灵药:Docker容器
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
Sklearn入门指南:构建你的第一个机器学习模型
【7月更文第22天】在数据科学与机器学习领域,Scikit-learn(简称sklearn)是一个广泛使用的Python库,以其简洁的API和丰富的功能集而著称。本指南将引领你从安装到使用sklearn构建你的第一个机器学习模型,以一个简单的线性回归任务为例,逐步深入理解这个强大的工具。
108 2
|
3月前
|
机器学习/深度学习 人机交互 API
【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战
【机器学习】Whisper:开源语音转文本(speech-to-text)大模型实战
217 0
|
3月前
|
机器学习/深度学习 人工智能 Linux
【机器学习】Dify:AI智能体开发平台版本升级
【机器学习】Dify:AI智能体开发平台版本升级
243 0
|
5月前
|
机器学习/深度学习 人工智能 数据处理
人工智能平台PAI产品使用合集之PAI-DSW实例服务器ping不通google.com,该如何排查
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 人工智能 Java
Java与AI集成开发:机器学习模型部署
Java与AI集成开发:机器学习模型部署
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】集成语音与大型语音模型等安全边界探索
【机器学习】集成语音与大型语音模型等安全边界探索
269 5

相关产品

  • 人工智能平台 PAI