在网页上直接跑Win11,5秒内克隆自己的声音 | 蛮三刀酱的Github周刊第二期

大家好,这里是每周更新的Github精彩分享周刊,我是每周都在搬砖的蛮三刀酱

我会从Github热门趋势榜里选出 高质量、有趣,牛B 的开源项目进行分享。

微信外部链接无法跳转,链接都以附录形式放在最下方。也可在各大平台搜索:蛮三刀酱。

1. PowerShell:不止于Windows,支持全平台的强大Shell

项目介绍

没错,就是微软的那个PowerShell,可能有很多同学在Windows上用过,功能还是比较强大的。

PowerShell Core 是一个跨平台(Windows、Linux 和 macOS)自动化和配置工具/框架,可以很好地与您现有的工具配合使用,并针对处理结构化数据(例如 JSON、CSV、XML 等)、REST API 进行了优化 。 它包括一个命令行Shell、一个相关的脚本语言和一个用于处理 cmdlet 的框架。

Windows PowerShell和PowerShell Core的区别

我看了下Github仓库上的解释,该个仓库(PowerShell Core)是从Windows PowerShell代码库拉取的分支,但在此库中所做的修改不会同步至Windows PowerShell代码库,所以在这里提出的问题或者是修复和Windows PowerShell并不是同步的。

这次冲上Trand榜,不确定具体原因,但应该是开始支持了一个全新的平台,目前已经支持这么多平台了:

PowerShell 与 cmd 有什么不同?

  • PowerShell是跨平台的,cmd是Windows专用的。
  • PowerShell有面向对象的管道。
  • PowerShell能够调用.NET的很多功能。
  • PowerShell内置有Azure相关的command

演示

这位老哥给我们演示了在MacOS上安装和使用PowerShell

https://www.youtube.com/watch?v=QBfuzwYUxl8

一句话点评

摘自知乎:Powershell和cmd的区别大概就像Python Shell和Bash的区别一样大吧。

2. gctoolkit:微软官方出品的Java GC日志分析器

项目介绍

GCToolkit 是一组用于分析 HotSpot Java 垃圾收集 (GC) 日志文件的库。 该工具包将 GC 日志文件解析为一个个小的事件,并提供聚合数据的 API。 这样一来用户就能对JVM中的内存的状态进行复杂和高度自定义的分析。

使用方式

GCToolkit 由 3 个 Java 模块组成,涵盖 API、GC 日志文件解析器和基于 Vert.x 的消息传递模块。

让我们看一个在 GC 完成后总堆占用率的示例:

1
2
3
4
5
6
7
8
9
10
public class Main { 
public static void main(String[] args) throws Exception {
var path = Path.of(args[0]);
var logFile = new SingleGCLogFile(path);
var gcToolKit = new GCToolKit();
var jvm = gcToolKit.analyze(logFile);
var results = jvm.getAggregation(HeapOccupancyAfterCollectionSummary.class);
System.out.println(results.toString());
}
}

代码大致思路如下,建立一个数据源,新建一个GCToolKit,开始根据类HeapOccupancyAfterCollectionSummary对GC进行分析,将分析数据集合到日志里。

下面是一个堆占用聚合数据的实现HeapOccupancyAfterCollectionSummary:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Collates(HeapOccupancyAfterCollection.class) 
public class HeapOccupancyAfterCollectionSummary implements HeapOccupancyAfterCollectionAggregation {

private HashMap<GarbageCollectionTypes, XYDataSet> aggregations = new HashMap<>();

public void addDataPoint(GarbageCollectionTypes gcType, DateTimeStamp timeStamp, long heapOccupancy) {
var dataSet = aggregations.computeIfAbsent(gcType, k -> new XYDataSet());
dataSet.add(timeStamp.getTimeStamp(),heapOccupancy);
}

public HashMap<GarbageCollectionTypes, XYDataSet> get() {
return aggregations;
}
}

一句话点评

蛮三刀酱:第一眼看GCToolkit这个名字以为是个图形化的GC查看器,就像JVisualVM一样,实际上GCToolkit更加偏底层数据处理框架。

3. Realtime-Voice-Clone-Chinese:5秒内克隆您的声音

项目介绍

AI拟声: 5秒内克隆您的声音并生成任意语音内容(支持中文),很有意思的一个AI项目。

演示

https://www.bilibili.com/video/BV1sA411P7wM/

使用方式

  1. 需要安装PyTorchffmpeg,然后克隆项目代码
  2. 使用数据集训练合成器:使用aidatatang_200zh或者SLR68 dataset数据集
  3. 启动工具箱,录制声音,然后就能生成声音。

一句话点评

蛮三刀酱:以后再也不怕做鬼畜没有语音素材了!

4. papers-we-love:计算机最佳论文整理

项目介绍

Papers We Love (PWL) 是一个围绕阅读、讨论和学习更多关于计算机科学学术论文的社区。 该库里可以找到的一些最佳论文(Best Paper)的目录,将分散在网络上的好论文汇集在一起。

使用方式

该仓库直接以文件夹进行了分类:

并且还推荐了其他的一些论文搜索网站,有些你应该耳熟能详了。

一句话点评

蛮三刀酱:其实如果你是正在做科研的学生,可能这些大方向的最佳论文不能满足你。不过对于想要了解整个计算机方向最新科研成果的工业界人士,或者是科研小白,看下这些论文肯定能够有所收获。

5. 网页版windows11:用前端代码做一个Windows11

项目介绍

这个开源项目旨在使用 React、CSS (SCSS) 和 Js 等标准 Web 技术在 Web 上复制 Windows 11 桌面体验。

演示

使用方式

在线体验网站:win11.blueedge.me

一句话点评

蛮三刀酱:离谱,离谱啊!

结尾

Github精彩项目分享是我新开的一个系列,也是一个全新的尝试,我想把内容尽量提炼和压缩,保证文章的趣味性,并且通俗易懂。

也请大家多多提意见,我会不断地改进。

我是目前在阿里搬砖的工程师蛮三刀酱。

持续的创作离不开你的点赞和转发分享!