Skip to content

CloudLadder

int-kimi edited this page Jul 23, 2022 · 10 revisions

Language

随着计算机科学与人工智能、机器学习技术的发展,人们对于各类机器学习应用的要求越来越高. 然而,机器学习应用的开发通常对相关理论背景和编程技巧要求较高,为了降低机器学习应用的开发门槛,我们希望通过设计一款语言,使缺乏相关背景的开发者可以方便地使用机器学习应用接口来开发各式各样的应用. 因此,CL语言应运而生,其简单易用的语法特性与封装良好的机器学习接口使得我们可以快速开发出一系列机器学习相关应用.

Data Types

Image

Introduction

CLImage是cloud-ladder中的一种数据类型,可以在程序中使用图片作为数据进行操作

Methods

  • 加载图片
    let img = image("/path/to/image");
    
  • 展示图片
    // 您可以用管道来快速构建应用
    "/path/image" | image | Image.show;
    // 也可以用顺序的方式书写代码
    let img = image("/path/to/image");
    img.show();
    

AI Methods

  • toCaptionText: 为图片生成对应的描述文本
    let img = image("/path/to/image");
    print(img.toCaptionText());  // 自动生成对图片的描述文本
    

im2text example 对上面的图片,该函数返回值为 "a bird flying in the air over a field of flowers"

Audio

Introduction

CLAudio是cloud-ladder中的一种数据类型,可以在程序中使用音频作为数据进行操作,目前支持.wav和.mp3格式的音频。

Methods

概述:Audio目前支持对音频的输入、播放、保存等基本操作,对音频进行处理,进行语音识别等操作。

  1. Audio的构造: 支持通过给定音频文件路径或者传入一个Audio类型的变量进行构造:
let x = audio("data/audio/test.wav");  
let y = audio(x);
  1. Audio音频的播放: 可以通过play方法播放音频:
let x = audio("data/audio/test.wav"); 
Audio.play(x);
#或写为
"data/audio/test.wav"
    | audio
    | Audio.play()
    ;
  1. Audio音频的保存: 对于经过处理后的音频,可以调用save方法保存在想要的位置
let x = audio("data/audio/test.wav"); 
...
save(x,"data/audio/processed.wav");
  1. toString方法: 对于从文件中读取的音频,toString方法会返回路径;对于没有文件路径的音频则返回AudioInputStream.toString();
  2. cutAudio方法: 可以从音频中剪切掉从start到end的部分:
let x = audio("data/audio/test.wav"); 
let y = Audio.cutAudio(x,start,end); 
  1. mergeAudio方法: 将两个音频拼接在一起:
let x = audio("data/audio/test1.wav"); 
let y = audio("data/audio/test2.wav"); 
let z = Audio.mergeAudio(x,y); 
  1. mixAudio方法: 将两个音频混合在一起同时播放:
let x = audio("data/audio/test1.wav"); 
let y = audio("data/audio/test2.wav"); 
let z = Audio.mixAudioAudio(x,y); 
  1. mp3ToWav方法: 对于大部分音频操作,都是直接wav进行处理的,因此有时候需要将MP3文件转为wav文件,对于Audio类型,会自动转换。
let x = audio("data/audio/test.mp3); 

此时x中保存的就是wav的音频了。

  1. wavToMp3方法: 同样支持由wav转mp3,参数为mp3文件的保存路径
let x = audio("data/audio/test.wav"); 
Audio.wavToMp3("data/audio/test.mp3");
  1. toVoiceConversion音调变声方法: 可以对输入的音频进行音调变声,需要cloud-ladder-server的支持,通过上传音频让服务器进行变声,并返回音频。
let x = audio("data/audio/test.wav"); 
#进行高音调变声
let y = Audio.toVoiceConversion(x,"high");
    #或写为
x
| Audio,toVoiceConversion("high")
;
#进行低音调变声
let y = Audio.toVoiceConversion("low");

AI Methods

此类方法都需要cloud-ladder-server支持,提供AI服务。

  1. toSpeechRecognition语音识别方法: 该方法可以通过上传wav类型音频,对该音频进行语音识别并返回字符串结果。目前仅支持普通话(zh-CN)和英语(en-US)
let x = audio("data/audio/test.wav"); 
print(Audio.toSpeechRecognition(x,"zh-CN"));

Examples

let x = audio("data/audio/test.wav"); 
Audio.play(x);

"data/audio/test.wav"
    | audio
    | Audio.toSpeechRecognition("zh-CN")
    | print
    ;
    
let y = Audio.toVoiceConversion(x,"high");
save(y,"data/audio/processed.wav");

Text

Introduction

Text是cloud-ladder中的一种数据类型,可以在程序中使用读入大文本作为数据进行操作,目前支持.docx、.doc、.pdf、.txt格式的大文本。

Methods

1.文本读入 在text中,在创建对象时,会对应于文件的后缀名自动识别文本的类型并将文本读出。 参数为对应的文件位置

let cltext = text("audio/Test.doc");
let cltext = text("audio/ctext.docx");
let cltext = text("audio/WordForTest.pdf");

2.获取文本 在text中,可以使用getContent读取对应类型之中存储的文本。 参数为读取的text类型的数据

let content = Text.getContent(cltext);

3.创建词云 在text中,可以调用createWordCloud创建词云图片,目前支持创建圆形图片,还未设计更改的接口。 参数为对应的text类型的数据和词云图片存储位置

Text.createWordCloud(cltext, "D:\\ciyun.png");

AI Methods

在ai库的使用上,我们在cl基础上构建库aud,调用aud.t2a实现

aud.t2a(content);

Examples

import "baidu\baidu_audio.cl" as aud;

//let cltext = text("audio/Test.pdf"); let cltext = text("audio/ctext.txt"); //let cltext = text("audio/WordForTest.pdf");

let content = Text.getContent(cltext); Text.createWordCloud(cltext, "D:\ciyun.png"); print(content); aud.t2a(content) | save("audio/111.mp3") ;

audio("audio/111.mp3") |Audio.play ;