利用python制作语音变声器,这么牛的技术还不来学?

APP 也有文字转换为语音的功能,虽然听起来很别扭,但是基本能解决长辈们看不清文字或者眼睛疲劳,通过文字转换为语音来获取信息。

我们用 Python 能否实现文字转语音呢,可以的,百度有个语音接口,可以在 Python 中直接调用,甚至提供了多种声音选择,当然可以选择萌妹子的声音。

通过 pip 命令直接安装( -i 后面是豆瓣的镜像,这样下载安装速度更快)

百度语音合成地址如下:
点击立即使用,没有登录的会要求先登录,用自己的百度的账号登录就可以,没有百度账号的新注册一个。

登录后进入应用页面,语音识别包括:输入法、搜索、英语、粤语、四川话、远扬,还有语音合成等库。我们可以看到,大部分 API 的调用次数免费且无限制的。在这里插入图片描述

我们创建一个应用,勾选需要的接口权限,我的要求比较简单,只是简单的文字转语音,所以勾选的接口也比较少。当然,这个接口还可以做人脸识别、图像识别、自然语言处理等,大家按需选择。
在这里插入图片描述
创建完成后,我们在应用列表可以看到应用的三个重要的值:AppID、API Key、Secret Key,这三个值等下调用接口时会用到。
在这里插入图片描述
在文档中心,我们来看看基本的上传参数。
在这里插入图片描述
根据接口文档,我们写个简单的代码,能够调通接口就行。
我们需要填入你创建应用的 APPID、APIKEY 和 SECRET_KEY 的值。

其中,per 的值表示男女声的,0 和 1 是普通的女声和男声,听起来有点别扭,3 和 4 是带有感情的,明显比 0 和 1 有感情,大家可以试试。

执行代码后,同级目录下就会生成一个 audio.mp3 的文件。

我们加入金山词霸的接口,每天返回优美的英文和中文翻译语句,我们让度丫丫把她读出来,让声音秒变撒娇萌妹。

金山词霸的接口很简单,直接 requests 调用,返回的 json 格式语句,我们返回英语语句和中文语句。

给出 APPID、APIKEY 和 SECRET_KEY 的值。
下面的步骤和上面一样,只是把上面固定的文本换成接口返回的金山词霸的语句而已。
在这里插入图片描述
我们打开文件,还能听出一些撒娇声,不信?你打开听听!
我发文章的时候,金山词霸返回的中文语录是:事情很少是不可能的;人们之所以不成功,与其说是条件不够,不如说是决心不够。
接下来,就可以把这个撒娇萌妹的音频 发微信给朋友 或者免费发短信给朋友 都可以,之前讲过,这里就不再啰嗦了。

作者:Python知识圈链接:https://juejin.im/post/5dca056e5188256e0638e65c
  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基本简介   录音啦是一款会议录音,会议录音转文字、电脑声音转文字、文字转语音的多功能软件,客户目前面向政府、银行、企业等行政人员。减少工作量,节约工作时间。目前本软件识别引擎有四种,分别是:科大讯飞、捷通华声,百度、都拥有国内国外较为领先的识别技术,能够让您在开会的时候,让演讲人的声音,迅速转换为文字,方便进行会议纪要工作。 软件特色   1.简易安装   软件安装非常简单,没有广告插件、没有捆绑程序、简单几步操作即可安装在您的电脑上运行;   2.自动升级   软件能够实现自动更新,运行软件,将会检测自身版本,升级到官网最新的版本,免除您寻找新版本的烦恼;   3.低廉的价格   产品可以先试用体验,满意后在购买我们的产品。相信从功能、价格上的定已经是目前市面上最低价;   4.文件分段 & 时间节点   您的录音将分段识别,可查看每分钟的识别情况,以及收听每段录音、支持表格导出、打印、搜索等功能;   5.批量 & 识别   软件支持批量录音转文字功能,软件能为您节约大量的时间、一定能够成为您的好助手!   6.客户服务   如家人般的客户服务,在保障您能够稳定运行软件的同时,随时为您解答疑问,远程协助进行技术服务;   7.多语言识别   软件目前支持四大识别引擎、支持中文、英文、粤语识别,更多语言,请等待技术人员进行适配;   8.联网 & 识别   请保障软件处于互联网环境中使用、录音识别不会泄露您的隐私,识别的效率将取决于您的网络速度;
Python可以利用PyAudio库实现变声功能。PyAudio是Python中用于录制和播放音频的库。变声的实现需要使用音频信号的数字信号处理技术,一般来说可以通过改变音频信号的频率、音高和音量等参数来实现变声的功能。 以下是一个简单的Python代码示例,可以通过改变音频信号的速率来实现变声的功能: ```python import pyaudio import numpy as np # 变声函数,rate为变声率,大于1为变高音,小于1为变低音 def pitch_shift(samples, rate): input_len = len(samples) output_len = int(input_len / rate) output_samples = np.zeros(output_len, dtype=samples.dtype) for i in range(output_len): j = int(i * rate) output_samples[i] = samples[j] return output_samples # 录音并变声 def record_and_play(rate): CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 RECORD_SECONDS = 5 p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) frames = [] print("Recording...") for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("Playing...") samples = np.frombuffer(b''.join(frames), dtype=np.int16) output_samples = pitch_shift(samples, rate) output_data = output_samples.astype(np.int16).tobytes() out_stream = p.open(format=FORMAT, channels=CHANNELS, rate=int(RATE * rate), output=True) out_stream.write(output_data) stream.stop_stream() stream.close() out_stream.stop_stream() out_stream.close() p.terminate() # 运行变声 if __name__ == '__main__': rate = float(input("Enter pitch shift rate: ")) record_and_play(rate) ``` 这个示例代码可以录制5秒钟的音频并播放出来,通过输入变声率实现变声功能。其中变声函数`pitch_shift()`通过改变音频信号的速率来实现变声的功能。在`record_and_play()`函数中,首先录制音频,然后将音频信号传入变声函数中,并将变声后的信号播放出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值