- 博客(80)
- 收藏
- 关注
原创 b站内容下载
比较好一款下载软件, 无需安装, https://bbdownloader.com/bilibili/zh。直接复制视频地址到这个网站,输入验证码即可下载。
2025-07-29 10:06:11
223
原创 git lfs使用
如果访问不了hugggingface.co用hf-mirror.com替代,国内下载速度还是挺快的。apt install git lfs 或者下载二进制文件加到环境变量。git lfs clone huggingface文件路径。先按照pip install modelscope。
2025-07-28 11:15:28
297
原创 vscode里几种程序调试配置
调试配置需要先配置tasks.json激活环境,然后配置launch.json。tasks.json 里先激活虚拟环境。launch.json配置。bash启动脚本是这样。或者这种简单配置也行。
2025-05-23 18:55:27
630
原创 Qwen2-1.5B-Instruct量化评估
lm_head需要w8a8, w4a8g32和w4a16g32损失太大。w4a8g32-mxint太差,w8a8g32-mxint效果可以。w4需要per-block, w8需要per-channel。per-channel损失较大,需要用per-block。omniquant 优化w4。bmm损失在2-3%
2024-12-11 11:29:27
510
原创 语音唤醒相关
和唤醒相关的关键词wake-up word recognition / detection / spotting、voice triggering、voice activation、keyword spotting。其中keyword spotting主要用来待指【关键词检索】任务,有时也用来指语音唤醒,「关键词检索」与「语音唤醒」不同,它是在事先录制好的大量语音中搜索特定的关键词。这是一个离线任务,所以并不需要实时进行语音识别,也可以建立索引以加速检索。tips:掌握关键词是快速入门一个领域好方法,
2021-06-23 17:54:59
1804
原创 sed和awk使用
sed主要用于删除和替换文本,awk主要用于过滤和增加文本。sed按行执行,awk按列执行简述在以下的文章中会介绍使用 linux sed 命令删除和替换文件中指定字符的 20 个例子。sed 替换字符的命令格式 如下:$ sed 's/find/replace/' file示例文件:$ cat fileLinuxSolarisUbuntuFedoraRedHat 1. 删除指定的字符,比如 ‘a’$ sed 's/a//' fileLinuxSolrisUbuntuFe
2021-06-18 14:28:01
899
原创 python split方法
描述split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。语法split() 方法语法:str.split(str="", num=string.count(str))参数str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。num – 分割次数。默认为 -1, 即分隔所有。返回值返回分割后的字符串列表。实例line = ‘2512-157242-0002 HE WAS GLAD THAT MOT
2021-06-11 15:56:57
727
1
原创 vocab生成
在nlp或者asr任务中,通常都需要根据corpus创建词典,并将单词在词典中的位置进行映射。词典中词可以是单个字也可以是字符,需要根据具体应用进行处理,一般在端到端asr任务中,vocab中单位都是字。首先我们拿到的标注文本一般是这样的MDT_F2F_223_158.wav 反正,呃对还有两台平板,然后高中的时候学校不给带手机我们都借他的手机用,他的手机真的借遍了全班MDT_F2F_223_159.wav 那会儿我有一次问他,我说我想借你的苹果四,他说哦,那台就或者是json文件, 一个json
2021-06-02 14:23:18
2702
1
原创 visual-speech
import IPython.display as ipdwave_sample= ipd.Audio(audio)wave_sampleimport matplotlib.pyplot as pltimport librosa.displayx,sr=librosa.load(audio)plt.figure(figsize=(14,5))librosa.display.waveplot(x,sr=sr)X = librosa.stft(x) #短时傅里叶变换Xdb=libro
2021-06-01 16:19:25
167
原创 ctc网络输出解码
图 1 alpha矩阵大小横坐标是声学特征,x1-x6一共有6帧语音,每一帧语音输出是一个v大小概率分布,v是token词典大小,现在假设token单位是字符,并且字典大小是三个字符,[%,c,a,t],所以v的大小是4。前向概率计算参数包括两点:1.所有声学特征输出概率分布矩阵y2 已插入空白符的label序列, 大小为Lyarray([[0.17914049, 0.27980623, 0.26827714, 0.27277615], [0.23065626, 0.226.
2021-05-26 17:36:18
611
1
原创 语音识别训练和解码——声学特征与文本标记如何对齐
语音识别,输入是声学特征的序列,上图中X是经过一定规则提取的39维mfcc向量组成的矩阵,矩阵大小是不固定的,因为输入语音长度不一样,提取的语音帧就不一样,比如有10039,100039, 一般按照25ms一帧,10ms一个帧移,所以一秒中语音有100帧。由于人说话字数不固定的,所以一句话说完时长不一样,这样得到帧矩阵大小就不一样。所以语音识别是典型的seq2seq问题。上图中X是提取的mfcc向量序列,Y是token序列,token的粒度可以是字符,字,词,音素。传统的语音识别一般将Y转换为S,S是相.
2021-05-25 16:34:41
1665
原创 encode-decode结构
encode的输入是变长的序列向量,每个向量之间会在batch内填充为固定长度,神经网络限制,不能输入变长的向量。encode输出固定长度的向量,但序列数量和输入数量保持不变,也就是一个输入产生一个输出。每个输出之间是独立的。encode的网络可以不固定,比如常见nlp任务用rnn,。encode将可变序列编码为固定状态,decode将固定状态输入映射为其它可变序列。decode的网络可以不固定,其中ctc 结合search策略也可以用来做decode。通用的“编码器-解码器”接口定义:fro.
2021-05-25 15:12:20
1211
原创 ls -l du -h du-sh df -h
(base) root@ai-PowerEdge-R740:/data/cn-celeb1# ls -lh cn-celeb.tgz-rw-r--r-- 1 root root 30G 11月 7 2019 cn-celeb.tgz(base) root@ai-PowerEdge-R740:/data/cn-celeb1# du -h cn-celeb.tgz30G cn-celeb.tgz(base) root@ai-PowerEdge-R740:/data/cn-celeb1# ls
2021-05-21 11:49:58
290
原创 kaldi download_and_untar.sh阅读
标题这个脚本解析第一部分:使用方法介绍 1 #!/bin/bash 2 3 # Copyright 2014 Johns Hopkins University (author: Daniel Povey) 4 # Copyright 2016 Tsinghua University (author: Dong Wang) 5 # Apache 2.0 6 7 # Adapted from librispeech recipe local/download_an
2021-05-20 21:45:33
615
1
原创 kaldi parse_options.sh
一般程序里的局部变量我们都会设置默认值,如果没有传真值,程序执行时候使用默认值,这个在python或其它程序里都比较好实现,在shell里如何实现呢?test.sh代码a=1b=1echo "\$0 =${0} \$1=${1} \$2=${2}"echo "default a=${a} b=$b"echo "update a=${a} b=$b"即使我们这样执行 bash test.sh --a 10 --b 22, 执行结果(notebook) root@ai-PowerEdge-R
2021-05-20 11:53:20
762
原创 set -o -e -i pipifail作用
-eExit immediately if a command exits with a non-zero status.pipefailIf set, the return value of a pipeline is the value of the last (rightmost) command to exit with a non-zero status, or zero if all commands in the pipeline exit successfully. This .
2021-05-19 20:50:29
610
原创 shell脚本调试模板
模板内容:#!/bin/bash_DEBUG="off"function DEBUG(){ [ "$_DEBUG" == "on" ] && $@}DEBUG echo 'Reading files'for i in *do grep 'something' $i > /dev/null [ $? -eq 0 ] && echo "Found in $i file"doneDEBUG set -xa=2b=3c=$(( $a + $
2021-05-19 19:15:50
153
原创 kaldi lesson教程示例
创建示例目录第一步:egs目录下创建lesson文件夹,lesson文件夹创建版本标识文件夹v1mkdir lessoncd lessonmkdir v1结果展示(notebook) root@ai-PowerEdge-R740:/opt/asr/kaldi/egs# ls -l lesson/total 4drwxr-xr-x 2 root root 4096 5月 19 10:32 v1为什么lesson下还要创建v1?v1表示第一个版本,方便版本管理和path.sh返回
2021-05-19 17:01:24
1051
3
原创 pytorch中squeeze()和unsqueeze()函数介绍
squeeze() 在原始数据上增加一个维度,但不改变数据特征值大小,每个数据还是三个特征unsqueeze()减少一个维度,只针对该维度是1的维度维度不为1的作用没有效果,c的原来维度为2,强行减少没有效果。...
2021-05-18 16:05:32
325
原创 wandb使用
wandb和tensorboard最大区别是tensorboard的数据是存在本地的,wandb是存在wandb远端服务器,wandb会为开发真创建一个账户并生成登陆api的key。运行自己程序之前需要先登陆wandb第一步 安装wandbpip install wandb第二步 登陆wandb网页,注册账户并获取api keywandb注册首页, 一般用google账户或者github账户注册都行, 注册时注意保存username注册成功会在这个页面有注册信息展示,api key也是在这个页面
2021-05-17 16:45:30
38606
41
原创 paddle安装
安装前配置百度镜像源,pip镜像源配置官网地址 paddle 2.0安装命令python3 -m pip install paddlepaddle-gpu -i https://pypi.tuna.tsinghua.edu.cn/simple虽然指定阿里云镜像,但是安装时候自动选择百度镜像,百度镜像下载非常快。安装完成...
2021-05-17 11:18:29
4545
原创 竞赛结果保存模板
import timedef time_change(timeStamp): timeArray = time.localtime(timeStamp) t = time.strftime("%H:%M", timeArray) day = time.strftime("%Y%m%d", timeArray) return day, tday, t = time_change(time.time())print(day,t)print(day,t[:2], t[-2:
2021-05-13 17:13:21
107
原创 torch.nn.utils.rnn.pad_sequence用法
class MyCollate: def __init__(self, pad_idx): self.pad_idx = pad_idx #填充值 def __call__(self, batch): imgs = [item[0].unsqueeze(0) for item in batch] imgs = torch.cat(imgs, dim=0) targets = [item[1] for item in batch
2021-05-12 16:22:07
5890
原创 数据处理-padding,DataLoader中collate_fn使用
DataLoader可通过collate_fn参数,对Dataset生成的mini-batch的可迭代数据进行后处理,如数据填充。collate_fn应当是一个可调用对象,常见的可以是外部定义的函数或者lambda函数。其接受DataLoader。在不设置collate_fn参数时,DataLoader的mini-batch样本序列样式取决于对应dataset参数的设置。而dataset只要是覆写了__init__、__getitem__和__len__方法的Dataset子类即可,所以其输出形式可以很
2021-05-12 16:04:40
1894
原创 Python_魔法方法__call__使用
概述Python有很多内置魔法方法,一般表现为双下划线开头和结尾。例如 name、doc、new、init、call__等,这些魔法方法会让对象持有特殊行为,今天就介绍,自己平时使用比较多的__call,我称它为:实例魔法方法使用方法什么叫实例魔法方法呢?,就是它可以把类实例当做函数调用。例子class add1(): def __init__(self) -> None: pass def __call__(self, *args) -> in
2021-05-12 11:45:14
500
原创 nn.CrossEntropyLoss()并不要求target与模型最后一层输出一样
CNN( (conv1): Conv2d(1, 8, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (pool): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (conv2): Conv2d(8, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (fc1): Linear
2021-05-11 15:28:27
473
原创 自定义数据集Dataset
模板from torch.utils.data import DataLoader, Datasetclass CatsAndDogsDataset(Dataset): def __init__(self, csv_file, root_dir, transform=None): self.data = pd.read_csv(csv_file) self.root_dir = root_dir self.transform = transform
2021-05-11 14:28:41
1271
原创 transforms.ToTensor()的作用就是变换图像数据为tensor并shape转化为[channel, h, w]
图片数据封装时候往往需要用到transform, 这个方法一方面将图片数据shape成【channel, w, h】,另一方卖弄将图片array转化为tensorclass CatsAndDogsDataset(Dataset): def __init__(self, csv_file, root_dir, transform=None): self.annotations = pd.read_csv(csv_file) self.root_dir = root_d
2021-05-11 14:16:49
3849
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅