Kotlin:补充(补档)
Kotlin: 补充(补档)
字符串内嵌表达式
Kotlin中字符串内嵌的语法规则:
1"hello, &{obj.name}. nice to meet you!"
——Kotlin允许我们在字符串中嵌入${ }这种语法结构的表达式,并在运行时使用表达式执行的结果替代这一部分内容。
另外,当表达式中仅有一个变量的时候,可以将两边的大括号省略,如下代码:
1"hello, $name. nice to meet you!"
函数的参数默认值
Kotlin语言中,次构造函数很少使用。Kotlin提供了给函数设定参数默认值的功能,它在很大程度上能替代次构造函数的作用。
具体来讲,我们可以在定义函数的时候给任意参数设定一个默认值,这样当调用此函数的时候不会强制要求调用方为此传值,在没有传值的情况下会自动使用参数的默认值。
给参数设定默认值,如下代码:
123fun printParams(num : Int , str : String = "hello") { println(&qu ...
Kotlin:空指针检查(补档)
Kotlin: 空指针检查(补档)
*空指针异常是Android系统上崩溃率最高的异常类型。
可空类型系统
Kotlin利用编译时判空检查的机制几乎杜绝了所有空指针异常。
分析一段Java代码:
1234public void doStudy(Study study) { study.readBooks(); study.doHomework();}
如果向doStudy()方法传入一个Null参数,则会发生空指针异常,因此要在调用参数的方法之前进行一个判空处理,如下代码:
123456public void doStudy(Study study) { if(study != null){ study.readBooks(); study.doHomework(); }}
这样,就避免了此方法中的空指针错误。
如果在Kotlin中重写上述的第一段代码:
1234fun doStudy(study : Study) { study.readBooks(); study.doHomework();}
那么 ...
Kotlin:Lambda编程(补档)
Kotlin: Lambda编程(补档)
List集合
由于逐项初始化集合的方式比较繁琐,kotlin专门提供了一个内置的listOf()函数用来简化初始化集合的过程,如下代码:
1val list = listOf("Apple" , "Banana" , "Orange" , "Pear" , "Grape")
尝试用 for-in 循环来遍历这个水果集合:
123456fun main() { val list = listOf("Apple" ,"Banana" , "Orange" , "Pear" , "Grape") for (fruit in list) { println(fruit) }}
注意:listOf定义的集合是一个不可变的集合(只读),如果要创建一个 ...
归档:TTS 常用数据集
归档:TTS 常用数据集
This post will be updated frequently, depending more datasets being testified.
Chinese-Mandarin 普通话
AISHELL-3
地址:https://www.aishelltech.com/aishell_3
希尔贝壳中文普通话语音数据库AISHELL-3的语音时长为85小时88035句,可做为多说话人合成系统。录制过程在安静室内环境中, 使用高保真麦克风(44.1kHz,16bit)。218名来自中国不同口音区域的发言人参与录制。专业语音校对人员进行拼音和韵律标注,并通过严格质量检验,此数据库音字确率在98%以上。
AISHELL-3 is a large-scale and high-fidelity multi-speaker Mandarin speech corpus which could be used to train multi-speaker Text-to-Speech (TTS) systems. The corpus contains ro ...
Implement USPS Handwritten Digits Classification with Pytorch
Implement USPS Handwritten Digits Classification with Pytorch
Define parameters and paths, transform the raw data to 32×32 to feed it into LeNET.
12345678910111213141516171819202122232425262728import torchimport torch.nn as nnimport torch.optim as optimimport torchvision.transforms as transformsfrom torchvision.datasets import USPSfrom torch.utils.data import DataLoader# Define parametersbatch_size = 64learning_rate = 0.001num_epochs = 10train_dataset_path = 'USPS/train'test_dataset_pa ...
论文笔记:TTS前沿课题
论文笔记:TTS前沿课题
论文原文地址:https://arxiv.org/abs/2106.15561
1. 背景
TTS是一种典型的Seq2Seq生成任务,自回归生成速度较慢。因此,如何加速自回归生成速度或减小模型大小以实现快速语音合成广受关注。此外,很多研究旨在提高语音合成的自然度和可理解性,尤其是在低资源环境下构建数据高效的TTS模型。由于TTS模型易出现鲁棒性问题,很多研究旨在提高语音合成的鲁棒性,减少跳字和重复。为了提高自然度,很多工作旨在对语音的风格/韵律进行建模、控制和转移,以生成富有表现旅的语音。下图为神经网络TTS模型的迭代过程。
什么是自回归:自回归是指在序列生成任务中,生成每个元素时都依赖于前面已生成的元素。具体来说,在自回归模型中,生成序列的每个元素都是通过条件概率模型来预测,而该模型的输入是已生成的前面的元素。在语音合成中的自回归模型中,生成语音的每个帧或每个音素依赖于之前已生成的帧或音素。模型会根据已生成的上下文信息来预测下一个帧或音素的概率分布,然后从该分布中采样得到下一个要生成的帧或音素。生成的序列会逐步延伸,直到生成整个语音信号。由于自回归生成需要 ...
论文笔记:TTS Key Components
论文笔记:TTS Key Components
论文原文地址:https://arxiv.org/abs/2106.15561
1. 分类
我们主要从基本 TTS 组件的角度对 TTS 的工作进行分类,这包括:文本分析(Text analysis),声学模型(Acoustic models),声码器(Vocoders),完全端到端模型(Fully end-to-end models)。这种分类方式描述了从文本到声学波形的处理过程:
文本分析:将字符转换为音素(phoneme)或者语言学特征
声学模型:从音素或语言学特征生成声学特征
声码器:将声学特征转换为波形
完全端到端模型:将字符或音素直接转换为波形
因此,我们可以整理出TTS工作的数据流:字符,语言特征,声学特征,波形。
2. 文本分析
文本分析通常被认为是TTS的前端(frontend),其将输入文本转化为语言特征,包含有关发音和韵律的丰富信息。在统计参数合成(statistic parametric synthesis)中,文本分析用于提取特征向量序列,并包含一些功能,如:文本归一化,分词,词性标注,韵律预测,以及字素到音 ...
使用 frp 搭建反向代理:简介及SSH启动
使用 frp 搭建反向代理 01:简介及SSH启动
1.关于 frp
frp(fast reverse proxy)是一款开源的反向代理程式,它通过从B端(内网客户端)建立一个长连接到A端(具有公网IP的代理服务器)的方式,实现将B端运行的网络服务映射到公网。它支持TCP,UDP以及HTTP(S)协议,也支持P2P连接模式。
frp 项目的 Github 地址:https://github.com/fatedier/frp
frp 文档地址:https://gofrp.org/docs/
frp 发行版目录:https://github.com/fatedier/frp/releases
本文示例环境为:CentOS7_amd64(A端),CentOS7_arm64(B端)详细记录搭建 frp 服务的具体过程
2.A 端配置
2.1 下载 frp
运行如下指令:
1wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
1tar -xf frp_0.44.0 ...
NLP 基础学习笔记:引论及正则表达式
NLP 基础学习笔记 01:引论以及正则表达式
1 NLP 引论
NLP ( Natural Language Processing, 自然语言处理 ) 是计算机领域以及人工智能领域的一个重要研究方法,它研究通过计算机来处理人类语言,以达到使计算机 “理解” 自然语言语义的目的 。通过 NLP 相关技术,使人类能更自由地由计算机进行 “通讯”。同时,这项技术也被应用于海量数据处理领域,如:舆情分析、知识图谱等。
本系列学习笔记将基于 Pytorch,整理、记录、总结 NLP 相关基础知识,包括中文分词 ( Segment )、词性标注 ( Tagging )、命名实体识别 ( NER, Named Entity Recoginition )、关键词提取、句法分析 ( Syntax Parsing )、文本向量化、情感分析等方面 ( Emotion Recognition )。
2 正则表达式
正则表达式,又称正规表达式,是一种以文字串来描述,符合其特定语法的表达式形式。其可以用于检索、字符串匹配等方面。正则表达式是处理自然语言的最基本的手段之一,其可以帮助我们抽取文本中所需的特定信息 ...
M1 MAC IDEA 配置 plantuml 捉虫
M1 Mac IDEA 配置 plantuml 踩坑
本机环境:macOS Monterey 12.2.1(Apple silicon)
关于 PlantUML
PlantUML 是一个开源工具,允许用户从纯文本语言创建图表。除了各种UML图,PlantUML 还支持各种其他软件开发相关格式(如Archimate, Block diagram, BPMN, C4, Computer network diagram, RED, Gantt chart, Mind map, WBD),以及 JSON 和 YAML 文件的可视化。
PlantUML 是特定领域语言的一个例子。除了自己的 DSL,PlantUML 还接受 AsciiMath, Creole, DOT 和 LaTex。它使用 GraphViz 来布局其图表,使用 Tikz 以支持 LaTeX。
在 IntelliJ IDEA 中安装 PlantUML 插件
1.在软件顶栏中启动偏好设置(Preferences)。
2.选中 Plugins 菜单,在 Marketplace 中搜索 PlantUML ,点击 Install 安装 ...