- 博客(124)
- 资源 (1)
- 收藏
- 关注
原创 【TTS】尝试让tts支持日语
pykakasi是一个Python自然语言处理(NLP)库,用于将平假名、片假名和汉字(日语文本)转写为罗马字(拉丁/罗马字母)。它能够处理NFC(指Unicode字符的一种标准化形式,用于确保不同表示方式的字符在比较时能够被视为相同)形式的字符。我们将日语转为罗马音,这样tts就可以很方便地读出来。但这样读出来的声音,没有感情,更像是机器声音。因此其实只能作为一种缓解手段,还是需要支持日语的tts。旧版v1.2 API、wakati类以及。函数将在v3.0版本发布后被弃用。
2025-12-07 10:37:59
352
原创 【Agent】在基于WSL2的Linux的ALSA输出音频
本文介绍了在WSL2(Ubuntu 22.04)中配置音频输出的方法。由于WSL2默认不包含音频驱动,需通过安装alsa-utils和配置PulseAudio来启用音频功能。具体步骤包括:1)安装alsa-utils;2)配置PulseAudio使用WSLg的音频服务;3)添加ALSA全局配置;4)安装必要的音频库。配置完成后,可通过aplay播放测试音频,或使用pyaudio进行Python音频编程。文中提供了完整的配置命令和Python示例代码,帮助用户在WSL环境中实现音频播放功能。
2025-09-27 19:59:18
574
原创 【Agent开发】部署IndexTTS
本文介绍了如何部署IndexTeam开发的IndexTTS-1.5文本转语音系统。首先通过ModelScope下载模型,配置基于WSL的Ubuntu 22.04环境(RTX4070显卡),使用pip创建虚拟环境并安装依赖项。重点说明了模型文件的放置位置和运行流程,包括参考音频的准备工作。测试结果显示单次推理时间约2.8秒,生成2.82秒音频,RTF值为0.9936。作者指出当前版本存在优化空间,计划后续将其改造为长期服务。文章提供了完整的部署指南,特别针对Windows WSL环境下的CUDA调用问题进行了
2025-09-05 20:13:48
533
原创 【C/C++】柔性数组
柔性数组是C99标准引入的特性,允许结构体最后一个成员是未指定大小的数组。它常用于动态数据结构,需通过malloc分配内存(如malloc(sizeof(struct) + N))。相比指针方案,柔性数组能提升缓存命中率并减少内存分配次数,但存在越界访问和sizeof计算问题。使用时需注意:必须作为最后一个成员、至少两个命名成员、不能直接初始化或嵌套。C++虽不支持,但gcc作为扩展允许使用。该特性体现了C语言给予程序员灵活性的设计哲学。
2025-08-29 21:46:39
943
原创 【Agent】LLM格式化输出
有时候我们希望LLM以格式化输出一些文本,比如json。这在LLM输出多种信息的时候尤其有用。下面的测试使用RTX4070显卡(12G显存),LLM为Qwen3-1.7B。
2025-08-24 14:18:10
529
原创 【Python】一些PEP提案(六):元类、默认 UTF-8、Web 开发
摘要:本文介绍了Python中的元类(metaclass)和WSGI接口两个重要概念。元类是控制类创建的类,通过继承type并重写__new__或__init__方法实现,常用于单例模式等场景。Python 3默认使用UTF-8编码源代码,无需显式声明。WSGI是Python Web应用的服务器与框架接口标准,允许不同框架(Gunicorn、uWSGI等)与服务器(Flask、Django等)互相配合。文章通过示例代码展示了如何实现简单的WSGI应用和使用Flask框架。建议在生产环境中使用更现代的异步框架
2025-08-15 19:27:30
1101
原创 【Python】一些PEP提案(五):f-string、海象运算符、print 改为函数
Python字符串插值与表达式赋值特性摘要 PEP 498引入f-string语法,允许在字符串前加f/F前缀,通过{}直接嵌入表达式,支持数学运算、函数调用和格式说明符(如数字、日期格式化)。需注意引号嵌套规则和{}转义方法。相比传统格式化方法,f-string性能更优,但在日志记录场景需谨慎使用。 PEP 572提出海象运算符(:=),可在表达式内赋值,简化临时变量使用,如if条件判断和列表推导式中避免重复计算。该特性存在争议,需合理选择使用场景。 PEP 3105将Python 2的print语句改为
2025-08-09 14:18:04
591
原创 【python】转移本地安装的python包
我们现在需要将某个环境已经安装的 python 包离线传递到另外一个环境,且确保这种安装行为最终不需要对 PYPI 中央仓库的有效连接,也能完成。
2025-08-02 19:41:39
435
原创 【Python】一些PEP提案(四):scandir、类型约束,异步async&await
返回一个迭代器,每次产生一个对象,该对象同时包含文件名和文件属性(如大小、修改时间、是否为目录等)。传统的仅会返回文件的名字。比如我们想遍历目录下的所有文件和子目录(Linux里目录也看做文件),然而文件名和是否为文件是可以作为对象的一个属性的,如果我们查找到的文件会包装成对象的话,所以用再比如获取文件属性(如大小、修改时间),意味着一次额外的系统调用,但是事实上可以将stat作为类的一个属性,比如。
2025-07-25 22:18:22
906
原创 【Python】一些PEP提案(三):with 语句、yield from、虚拟环境
这玩意让我想起了Kotlin和Rust的问号标识符,都是将try-catch进行包装,避免出现太多重复代码(Go:我假设你不是在内涵我)
2025-07-18 23:02:54
393
原创 【Python】一些PEP提案(二):生成器表达式、装饰器、yield
如果此时执行上述代码,你会发现没什么区别。事实上生成器表达式是惰性的,也就是说,直到for循环执行最后一次,才能生成所有数字。而前面的是先生成所有数字,再执行for循环。这种设计对异步编程来说十分方便。注意,和迭代器一样,生成器是一次性消耗的:迭代结束后无法重复使用,需重新创建。
2025-07-11 20:12:48
909
原创 【Python】一些PEP提案(一):列表生成式、字典生成式、迭代器、枚举、布尔值
PEP这玩意有点类似C++各个编译器厂商给标准委员会的提案,但比起C++,显然兼容性包袱低的Python的提案更加大胆,很多居然成为了标准。
2025-07-05 09:41:59
1024
原创 【C/C++】gettimeofday
由于是系统接口,因此无法看到具体实现,外部头文件定义如下:gcc 版本 8.4.1,Linux内核版本4.19.112-2.el8.x86_64。
2025-06-16 15:55:21
650
原创 【agent开发】VS Code连接WSL失败解决
摘要:用户将WSL网络模式改为Mirrored后导致VS Code WSL远程连接失败,尝试删除.vscode-server目录和降低WSL插件版本均无效。最终解决方案是切换回NAT模式,不仅恢复了VS Code连接,还解决了之前uvicorn服务器本地访问问题以及LLM模型无法使用的问题。测试代码显示切换后Qwen3模型能正常返回结果,验证了NAT模式的稳定性。
2025-06-08 11:22:36
1276
2
原创 【python】uv管理器
摘要:uv是一个用Rust编写的快速Python包和项目管理工具。文章介绍了uv的安装方法(Windows/Linux),WSL网络配置技巧,以及如何使用uv管理Python版本和项目依赖。uv可以创建/管理虚拟环境,通过pyproject.toml配置项目元数据和镜像源,并生成uv.lock锁定文件确保依赖一致性。还演示了创建项目、添加/删除依赖包(如requests)、构建发行版等操作。uv提供了类似conda的Python版本管理功能,同时支持版本约束和不同安装源,是一个高效的Python项目开发工具
2025-05-31 21:55:26
2315
原创 【C++】grpc(一):安装
因为接触了一些第三方项目和其他原因,我需要了解一些 RPC 相关的知识,首选的就是 Google 的 gRPC 库了。
2025-05-05 18:23:41
851
原创 【C++】extern
C++程序员应该都知道单一定义规则ODR在任何一个翻译单元中,只允许存在任何变量、函数、类类型、枚举类型 、概念 (自 C++20 起) 或模板的一个定义(其中一些可能具有多个声明,但只允许一个定义)。在整个程序(包括任何标准库和用户定义的库)中,需要出现每个非 内联 函数或变量的一个且仅一个定义,这些函数或变量是 odr-使用 的(见下文)。编译器不要求诊断此违规行为,但违反它的程序的行为是未定义的。具体来说,如果在头文件中初始化一个变量,在多个源文件包含此头文件,在联合编译时,就会报重定义的错误。
2025-05-01 10:21:41
461
原创 【C++】bitset
最近刷 LeetCode 的时候,发现有个 STL 的标准库叫 bitset 在处理位运算相关的题目时十分好用。这里写篇文章介绍下。
2025-03-30 17:19:23
526
原创 【C++】filt工具的使用
filt是一个用于处理 C++ 名称修饰(name mangling)的工具。在 C++ 里,为支持函数重载和类成员函数等特性,编译器会对函数名、类名等进行修饰,让它们在符号表中保持唯一。不过修饰后的名称可读性差,难以理解。filt工具可以把这些修饰后的名称还原成原始的 C++ 名称,这样在调试、分析程序时,就能够更清晰地了解程序的结构与调用关系。
2025-03-23 14:33:09
842
原创 【C++】Rusage(一)
本文介绍C++中几个统计程序内存数据的方式:<sys/resource.h>(Unix/Linux)、GetProcessTimes(Windows)
2025-02-28 23:10:49
1096
原创 在本地部署Deepseek
这篇文章介绍用LM Studio和huggingface部署一个deepseek到自己的电脑上,应该不需要代码知识,至少不需要太多。
2025-02-23 11:36:31
736
原创 利用 Valgrind 检测 C++ 内存泄露
Valgrind 是一款运行在 Linux 系统上的编程工具集,主要用于调试和分析程序的性能、内存使用等问题。其中最常用的工具是 Memcheck,它可以帮助检测 C 和 C++ 程序中的内存管理错误,如内存泄漏、使用未初始化的内存、越界访问等。
2025-02-16 21:18:19
824
原创 【C++】使用gdb在命令行下调试C++程序(一)
去年我有个同事在命令行下非常帅气地调试C++程序,确实羡慕到我了,我就计划写篇文章介绍用gdb在命令行下调试,结果一拖就拖了很久,这次还是不能再拖了。
2025-02-09 11:03:40
951
原创 【Rust练习】28.use and pub
练习题来自:https://practice-zh.course.rs/crate-module/use-pub.html。
2025-01-15 22:52:14
577
原创 【Rust练习】26.Package and Crate
建议在命令行下操作完成本节内容,Windows 11/10 首选 Windows 终端,好看,支持渲染中文字体,缺点是功能太少了;其次推荐 mobaxterm,除了难看没别的缺点,功能强大。
2025-01-03 21:28:25
420
原创 【WSL】Ubuntu 24.04 安装配置docker
这次我在新搭建的台式机安装的WSL上,也安装一个docker,因为最近要开发TTS相关的东西。
2024-12-28 18:57:13
1845
原创 【Rust练习】24.panic
练习题来自:https://practice-zh.course.rs/result-panic/panic.html。
2024-12-11 22:12:33
627
原创 【Rust】unsafe rust入门
C++中其实没有unsafe这个东西,像类似裸指针这种,在C++中甚至是一种比较常用的用法。毕竟智能指针,比如shared_ptrunique_ptr,用法更为复杂。所以我个人认为,Rust的unsafe的意义是,将这些不安全的操作变得复杂,变得难写,进而引导程序员选择更加简单,更加好写的安全用法。这和C++如今的处境刚好相反,C++中按照安全原则写出来的代码都比较复杂,这也是历史原因,毕竟不能动现成的代码。另外,unsafe也是一种承诺,不再由编译器保证代码的安全性,而是由程序员自己来保证。
2024-12-01 23:17:02
1613
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅