【正点原子i.MX93开发板试用连载体验】录音小程序采集语料

 本文最早发表于电子发烧友论坛:【新提醒】【正点原子i.MX93开发板试用连载体验】基于深度学习的语音本地控制 - 正点原子学习小组 - 电子技术论坛 - 广受欢迎的专业电子论坛! (elecfans.com)

接下来就是要尝试训练中文提示词。首先要进行语料采集,这是一个比较耗费人力的事情,通常大公司会有有专人进行语料收集,我只好自己亲自做。这里参考了AliOS Things里面提供的一个录音工具,方便快速录音。对这个工具做了一点修改,原来的代码只能在Linux下运行,现在改成在Windows下也能运行。

import pyaudio
import wave
import random
import time
import os
from IPython import display
#from pydub import AudioSebment
#from pydub.playback import play
#from playsound import playsound
CHUNK = 2
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 16000
SAMPLEWIDTH = 2
RECORD_SECONDS = 1
FILE_FORMAT = '.wav'
RECODER_NAME = 'lk'
#play stream
def play_wav(name, pyaudio):f = wave.open(name,"rb")  #open stream  play_stream = pyaudio.open(format = p.get_format_from_width(f.getsampwidth()),  channels = f.getnchannels(),  rate = f.getframerate(),  output = True)  #read data  data = f.readframes(CHUNK)while data:  play_stream.write(data)data = f.readframes(CHUNK)#stop streamplay_stream.stop_stream()  play_stream.close()  #close PyAudio  
#    pyaudio.terminate()f.close()
def save_wav(name, frames):wf = wave.open(name, 'wb')wf.setnchannels(CHANNELS)wf.setsampwidth(p.get_sample_size(FORMAT))wf.setframerate(RATE)wf.writeframes(b''.join(frames))wf.close()  
def record_wav(duration):time.sleep(0.2) # 1sec, 0.1secprint("开始录音,请说话......")
#    count = 3
#    for i in range(3):
#        time.sleep(0.2) # 1sec, 0.1sec
#        count -= 1
#        print(count)frames = []stream = p.open(format=FORMAT,channels=CHANNELS,rate=RATE,input=True,frames_per_buffer=CHUNK)for i in range(0, int(RATE * duration / SAMPLEWIDTH)):data = stream.read(CHUNK, exception_on_overflow = False)frames.append(data)#count = 0#while count < int(RECORD_SECONDS * RATE):#    data = stream.read(CHUNK)#    frames.append(data)#     count += CHUNKstream.stop_stream()stream.close()print("录音结束!")return frames
# main function
if __name__ == '__main__':p = pyaudio.PyAudio()input('请按回车键开始录制!\n')# record filescount = 0for i in range(250):print("开始第%d录制!" % count)hash_name = str(hex(abs(hash(RECODER_NAME + str(random.random()))) % 1000000000)).replace('0x','') \+ '_nohash_' + str(count) + FILE_FORMATrframes = record_wav(1) # record 1 secsave_wav(hash_name, rframes)#time.sleep(0.5) # 1sec, 0.1secprint("录音回放开始!\n")play_wav(hash_name, p)print("录音回放结束!\n")value = input("按‘回车’保存,放弃本条请按‘其他’键并回车!\n")if (value == ''):count += 1print("保存录音成功!")else:os.remove(hash_name)print("已删除本条录音!")input('请按回车键开始录制!\n')#display.display(display.Audio(hash_name, rate=16000))#wav = AudioSegment.from_wav(hash_name)#play(wav)p.terminate()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871049.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LLM大模型从入门到精通(3)--LLM主流大模型类别

目录 1 ChatGLM-6B模型简介&#xff1a; 2 LLaMA模型简介&#xff1a; 3 BLOOM模型简介 4 Baichuan-7B模型 随着ChatGPT迅速火爆&#xff0c;引发了大模型的时代变革&#xff0c;国内外各大公司也快速跟进生成式AI市场&#xff0c;近百款大模型发布及应用。开源语言大模型种…

代码随想录算法训练营Day37||动态规划part05

初识完全背包&#xff0c;和零一背包的区别就是要正序遍历背包&#xff0c;从而让物品可以反复使用。 518.零钱兑换II: 即装满价值为j的背包有几种方法&#xff0c;和494目标和几乎一致&#xff0c;只不过换成了零一背包。通过不同的遍历顺序&#xff0c;可以求出组合数&#…

Java常用的API_02(正则表达式、爬虫)

Java正则表达式 七、正则表达式7.1 格式7.1.1 字符类注意字符类示例代码1例2 7.1.2 预定义字符预定义字符示例代码例2 7.1.3 区别总结 7.2 使用Pattern和Matcher类与直接使用String类的matches方法的区别。&#xff08;1&#xff09; 使用Pattern和Matcher类示例代码 &#xff…

分布式系统—Ceph块存储系统(RBD接口)

目录 一、服务端操作 1 创建一个名为 rbd-xy101 的专门用于 RBD 的存储池 2 将存储池转换为 RBD 模式 3 初始化存储池 4 创建镜像 5 管理镜像 6.Linux客户端使用 在管理节点创建并授权一个用户可访问指定的 RBD 存储池 ​编辑修改RBD镜像特性&#xff0c;CentOS7默认情…

Matlab结合ChatGPT—如何计算置信区间?

​前面分享了带置信区间的折线图和带置信区间的折线散点图的绘图教程&#xff1a; 很多人表示&#xff0c;昆哥&#xff0c;图是很好看啦&#xff0c;但咱不会求置信区间啊&#xff0c;咋办嘞&#xff1f; 说实话&#xff0c;这种事情属于数据处理&#xff0c;一般都是在画图前…

家政服务小程序:提高家政服务,新商机!

当下&#xff0c;社会生活的节奏非常快&#xff0c;人们忙于工作&#xff0c;在日常生活家务清洁中面临着时间、精力不足的问题&#xff0c;因此对家政服务的需求日益增加&#xff0c;这也推动了家政行业的迅速发展。目前不少年轻人都开始涌入到了家政行业中&#xff0c;市场的…

HTTP协议。(HTTP-概述和特点、HTTP-请求协议、HTTP-请求数据格式、浏览器访问服务器的几种方式)

2.1 HTTP-概述 HTTP协议又分为&#xff1a;请求协议和响应协议 请求协议&#xff1a;浏览器将数据以请求格式发送到服务器 包括&#xff1a;请求行、请求头 、请求体 响应协议&#xff1a;服务器将数据以响应格式返回给浏览器 包括&#xff1a;响应行 、响应头 、响应体 2.…

重要!!!MySQL 9.0存在重大BUG!!

7/11日开源数据库软件服务商percona发布重要警告&#xff0c;最新的mysql版本存在重大bug&#xff0c;原文如下 Do Not Upgrade to Any Version of MySQL After 8.0.37 Warning! Recently, Jean-Franois Gagn opened a bug on bug.mysql.com #115517; unfortunately, the bug…

CT金属伪影去除的去噪扩散概率模型| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 A denoising diffusion probabilistic model for metal artifact reduction in CT CT金属伪影去除的去噪扩散概率模型 01 文献速递介绍 CT图像中的金属伪影是在CT扫描视野内存在金属物体&#xff08;如牙科填充物、骨科假体、支架、手术器械等&#xff09;时出…

探索Java网络编程精髓:UDP与TCP的实战魔法!

Java 中提供了专门的网络编程程序包 java.net&#xff0c;提供了两种通信协议&#xff1a;UDP&#xff08;数据报协议&#xff09;和 TCP&#xff08;传输控制协议&#xff09;&#xff0c;本文对两种通信协议的开发进行详细介绍。 1 UDP 介绍 UDP&#xff1a;User Datagram Pr…

css横向滚动条支持鼠标滚轮

在做视频会议的时候&#xff0c;标准模式视图会有顶部收缩的一种交互方式&#xff0c;用到了横向滚动&#xff1b;一般情况下鼠标滚轮只支持竖向滚动&#xff0c;这次写个demo是适配横向滚动&#xff1b; 效果图展示 实现横向滚动条顶部显示 <div className{style.remote_u…

【YOLO格式的数据标签,目标检测】

标签为 YOLO 格式&#xff0c;每幅图像一个 *.txt 文件&#xff08;如果图像中没有对象&#xff0c;则不需要 *.txt 文件&#xff09;。*.txt 文件规格如下: 每个对象一行 每一行都是 class x_center y_center width height 格式。 边框坐标必须是 归一化的 xywh 格式&#x…

nginx正向代理和反向代理

nginx正向代理和反向代理 正向代理以及缓存配置 代理&#xff1a;客户端不再是直接访问服务器&#xff0c;通过代理服务器访问服务端。 正向代理&#xff1a;面向客户端&#xff0c;我们通过代理服务器的IP地址访问目标服务端。 服务端只知道代理服务器的地址&#xff0c;真…

每日一练 - OSPF邻居关系建立故障排查

01 真题题目 OSPF邻居关系建立出现故障&#xff0c;通过display ospf error命令查看&#xff0c;显示如下信息&#xff0c;则邻居建立失败的原因可能是&#xff1a; A. Router ID冲突 B.区域ID不匹配 C.网络掩码不一致 D.MTU不一致 02 真题答案 B 03 答案解析 从图片中可以…

数据丢失?不存在的!

今年3月份&#xff0c;AT&T遭遇了严重的数据泄露事件&#xff0c;导致7300万客户账户信息被泄露。泄露的信息包括客户的姓名、电话号码、邮寄地址等敏感资料&#xff0c;甚至部分客户的加密密码也被泄露&#xff0c;使得约760万AT&T用户的账户面临被劫持的风险。 此次…

博客文章多平台发布工具

做过博客分享和自媒体的同学应该都知道&#xff0c;在多个平台上同步发布、更新自己的原创内容&#xff0c;是快速传播知识、提高用户触达率的有效方式。 然而&#xff0c;一篇文章要在N个平台上重复进行编辑、排版、图片/视频上传的苦恼&#xff0c;你一定经历过吧&#xff1…

从汇编层看64位程序运行——静态分析和动态分析入门

大纲 GDBIDA总结参考资料 之前一直谈各种相对宏观的工具怎么使用&#xff0c;比如Flink、RabbitMQ等。最近想聊聊比较微观的技术&#xff0c;用各种“显微镜”去看看运行在系统层的二进制码是什么样子。当然二进制码比较难以记忆&#xff0c;于是我会从二进制码的助记符——汇编…

408数据结构-图的应用2-最短路径 自学知识点整理

前置知识&#xff1a;最小生成树&#xff0c;图的遍历 最短路径 当图是带权图时&#xff0c;把从一个顶点 v 0 v_0 v0​到图中其余任意一个顶点 v i v_i vi​的一条路径所经过边上的权值之和&#xff0c;定位为该路径的带权路径长度&#xff0c;把带权路径长度最短的那条路径&…

centOS79中安装redis7.0

##red## &#x1f534; 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff0c;雄雄的小课堂。 一、前言 新服务器&#xff0c;一些环境是少不了要安装的&#xff0c;比如常见的redis&#xff0c;mysql&#xff0c;nginx等&#xff0c;今天&#xff0c;上次&a…

【Golang】map的使用

map声明的方式 //声明var m map[string]string//在使用map之前&#xff0c;先make&#xff0c;make的作用就是给map分配空间m make(map[string]string)m["lover"] "Yzx"m["friend1"] "Zxw"m["friend2"] "Zzc"…