2025-02-17 21:35:47
过去这一年,我的阅读主要围绕心理健康、自我认知和个人成长展开。这些书籍帮助我更深入地理解了自我和他人,也为日常生活提供了实用的工具和方法。虽然遗憾没能在读完时及时记录感受,但重温这些书籍时,仍能感受到它们带给我的启发和改变。以下是我对这些书籍的简要回顾与思考。
作者:罗伯特·戴博德
译者:陈赢
出版社:天津人民出版社
一本很薄的故事书,有点像童话或者寓言故事,如书名,讲述了蛤蟆先生去看心理医生的故事。 读起来很轻松,流畅,一下就可以读完。这本书提供了一个了解心理咨询的视角,是一本不错的心理学读物。 书中还科普了交互分析理论(Transactional Analysis,TA)中的儿童自我状态,父母自我状态,成人自我状态。这个理论认为我们会在这三种状态不停地切换,非常有趣的理论,有助于帮助了解自我。
作者:Irvin D. Yalom
译者:张亚
出版社:中国轻工业出版社
这是一部关于如何面对死亡的深刻著作。
这本书讲了死亡焦虑的普遍性,如何识别死亡焦虑,它能够带来什么,以及我们可以如何去面对它。
对我而言,这本书帮助最大的就是带我了解了伊比鸠鲁的观念:
这本书给了我一些方法去处理我的死亡焦虑,也给我带来了一些新的思考去看待自己的死亡和他人的死亡。书中还讨论了死亡意识如何反过来影响我们的生活态度,以及如何将对死亡的思考转化为珍惜当下的动力。如果你有存在焦虑或者死亡焦虑,我非常推荐这本书。
作者:马歇尔·卢森堡
译者:刘轶
出版社:华夏出版社
这本书介绍了非暴力沟通。也是一种生活理念。它提示我要关注自己内心的感受和需求,真诚地与人沟通。
通过把注意力放到观察、感受、需求和请求这四个要素来改善沟通,同时非暴力沟通还强调自主的重要性,强调个人责任。我觉得这一点和存在主义的观念是很吻合。
书中还提到了很多非常有意思的讨论:比如观察和评论的区别,请求和要求的区别。这些讨论不仅帮助我反思与人的沟通,也帮助我反思人际关系。
非暴力沟通方法在亲密关系中尤其有效,能帮助伴侣之间建立更深入的理解和连接。
书中还有很多内容,需要真正去读并且实践才有用,非常有帮助,非常推荐这本书。
作者:安迪·帕帝康
译者:李芳龄
出版社:星出版
这本书科普了冥想和正念,有很多帮助理解冥想的故事,还提供一些方法帮助入门冥想。
之前一直听说过冥想,听过很多关于冥想的传闻,却也没有真正了解过。今年特别想尝试一下冥想,买了这本书来了解一下,让我对冥想有了不同的认识。书中还提供了很多隐喻帮助理解冥想。我也尝试了冥想,对我而言确实有帮助的。
如果你也对冥想感兴趣,或者正在尝试但觉得摸不着头绪,很推荐这本书。我看的这个版本是繁体中文,还有一个简体中文的版本,名字是《十分钟冥想》。
作者:伊莱恩·阿伦
译者:于娟娟
出版社:华夏出版社
这是一本讲述所谓高敏感人群的特质的书。
听了枫言枫语的节目,专门看了这本书。我大致也属于比较敏感的人群,这本书帮助高敏感人群了解自我,理解自我,并且提供了一些方法更好的与外部世界相处。还有很重要的是,能够带来很大的认同感。
作者:韩江
译者:胡椒筒
出版社:四川文艺出版社
这是一本小说,由2024年诺贝文学奖作者韩江写的。书中通过三个视角来叙述同一个故事,这点比较有趣。我是慕名去看,没有我想象中的好看,整本书像是讲述几个精神病的故事,很压抑。
作者:洛丽·戈特利布
译者:张含笑
出版社:上海文化出版社
这是一本讲述心理咨询的书。这本书很厚,由一个心理咨询师的视角写作,书中以一个个故事组成,每一个章节是一个故事,有作者本人的故事,也有作者作为心理咨询师在咨询室里遇到的故事。虽然很厚但是读起来没有压力,可以慢慢看看,每天看几个故事。我喜欢这本书不是一本说教的书,平易近人,没有让人感觉是在尝试告诉你什么道理,而是通过一个个故事,让你自己去感受,找到自己的理解。
希望今年能保持阅读的习惯,也期待遇见更多好书。
2024-12-09 22:13:53
制作短视频时,巧妙的音效能提升表现力、吸引观众兴趣并提高完播率。比如,下面这个视频,视频和声音有着一致体验。声音跟随着画面的焦点移动,在左右耳朵穿梭。
这种声音的立体移动效果,实际上是通过精妙的声道控制实现的。
具体而言,声音的左右穿梭可以通过调整左右声道的音量来完成。比如,我们可以逐步减弱左声道的音量,同时逐渐增强右声道的音量。这种渐进式的音量变化,会给观众造成声音从左向右流动的听觉错觉,仿佛声音正在穿越立体空间。通过细腻地控制声音的转换,我们可以为视频增添一层令人着迷的听觉维度,提升视听体验。
接下来,我将分享如何使用 Audacity 制作这种立体音。
你可以前往 Audacity 或者是它的 Github 页面下载。但需要是要注意的是,在官网下载时,如果你没有选择 “Download without Muse Hub” 选项,那么它可能会捆绑安装 Muse Hub。
你还可以安装可选的 FFmpeg 库。如果你要使用 Audacity 编辑 AC3, M4A, MP4 或 WMA 格式的音频,则是必须的。
https://support.audacityteam.org/basics/installing-ffmpeg
将音频导入 Audacity,你可以直接将音频拖入 Audacity 或者选择“文件 > 导入 > 音频”。
然后你可以看到音频的波形图:
首先我们使用“包络”工具标记声道切换的位置。
找到“包络”工具,
在期望声音左右切换的位置点一下,标记声音切换的位置,方便后面我们调整各声轨的音量变换。
比如,我想要每一秒声音切换(声音从左到右或者从右到左)一次,我就每隔一秒标记一下:
点击“分离立体声轨”,将左右声道分开成两个声轨,方便编辑。
分离声轨后,上面的声轨代表左声道,下面的声轨的右声道。这样就能分别控制左耳和右耳听到的声音。按照下图的方式调整声轨。
逐渐减弱左耳听到的声音,同时逐渐增强右耳的声音,就能制造声音从左到右的效果。
同理,逐渐减弱右耳听到的声音,同时逐渐增强左耳的声音,就能制造声音从右到左的效果。
反复调节,调整到你期望的效果:
最后,通过“文件 > 导出音频”,导出降噪后的音频。
https://manual.audacityteam.org/man/envelope_tool.html
2024-11-14 22:20:20
我一直使用 CapCut 来剪辑视频。有时想做一些安静或突出音效的视频,但当放大声音总会听到底噪(环境音)。可能是空调,也可能是风扇的声音。这种持续噪音基本无法通过静音部分内容去除,所以需要使用音频降噪功能。CapCut 原本提供免费音频降噪的功能,但后面变成了收费功能。于是,开始在网上找能够实现这一功能的软件。我的需求很简单,只要能够实现音频降噪这个功能就行,所以我没有选择使用功能强大的音频剪辑软件,我在寻找一个轻量化的软件。
我找到了 Audacity,它轻量化(不到100MB)且是开源的,功能强大易于使用。它的降噪功能,总体感觉比 CapCut 好。在 Audacity 中,可以选择噪音样本,再设定降噪范围,并且可以调整降噪的参数,最后的效果也比 CapCut 更佳。
接下来,我分享如何使用 Audacity 降噪音频。
你可以前往 Audacity 或者是它的 Github 页面下载。但需要是要注意的是,在官网下载时,如果你没有选择 “Download without Muse Hub” 选项,那么它可能会捆绑安装 Muse Hub。
你还可以安装可选的 FFmpeg 库。如果你要使用 Audacity 编辑 AC3, M4A, MP4 或 WMA 格式的音频,则是必须的。
https://support.audacityteam.org/basics/installing-ffmpeg
将音频导入 Audacity,你可以直接将音频拖入 Audacity 或者选择“文件 > 导入 > 音频”。
然后你可以看到音频的波形图:
用鼠标左键选取噪音样本(仅包含你想要减少的噪音的区域),然后点击“效果器 > 噪音移除与修复 > 降噪”:
然后 ,点击“取得噪音特征”。
接下来,选择你要降噪的范围:
然后再次点击“效果器 > 噪音移除与修复 > 降噪”:
点击“预览”可以听降噪后的效果,调整降噪的参数,直到预期的效果。这通常最好通过反复试验来完成,调整滑块并使用预览按钮聆听降噪后的音频。最后,点击“确定”。
最后,通过“文件 > 导出音频”,导出降噪后的音频。
除了上面的方法,你还可以通过 Audacity 使用频谱编辑(Spectral Editing)、噪音门(Noise Gate)和陷波滤波器(Notch Filter)等方式来降噪音频,如果你感兴趣,下面是参考链接:
https://support.audacityteam.org/repairing-audio/noise-reduction-removal
https://manual.audacityteam.org/man/noise_reduction.html
https://manual.audacityteam.org/man/alternative_noise_reduction_techniques.html
2024-10-20 16:06:43
今年八月,树莓派基金会的本地化协调人员联系了我,向我介绍了 Moonhack,并询问我是否有兴趣翻译该项目。起初,我并不了解这个活动,但在网上搜索后,我发现它是一个有教育意义的活动,旨在通过编程教育,帮助全球各地的孩子提升科技(STEM)素养。同时,我也注意到在中文世界中,这个编程活动并不知名。
我觉得这个项目很有意义,它为儿童编程学习提供了优质资源。我希望能够通过将其翻译成中文,让中文世界的孩子们更方便地获取这些教育资源。因此,我参与了翻译活动,翻译了其中的两个 Scratch 项目。
现在,Moonhack 2024 已经正式启动,我希望通过这篇文章,向更多人推广这个活动,提供多一种学习编程的方式。即使不参加活动,活动中提供的项目教程也是个不错学习资源。
Moonhack 是一项面向青少年的免费国际编程挑战赛,由 Code Club Australia 每年举办。在过去的 8 年里,超过 190,000 名儿童一直在编写 Moonhack 项目。
你可以在这里查看往年的项目:https://moonhack.com/previous-projects/
Moonhack2024 于 10 月 14 日至 31 日举行。今年的主题为:气候变化。这些项目将帮助参与者了解从农业工作者如何利用气候数据提高农作物产量和实践可持续农业,到全球气温上升对海洋生物种群的影响等话题。
参与者可以使用 Scratch、micro:bit 或 Python 进行编程。
今年有六个项目,感兴趣的可以前往 Moonhack 官网了解:
Great Pacific Garbage Patch 大太平洋垃圾带(不限制编程平台)
在任何编码平台中使用您的编码技能,创建一个可以清理太平洋大垃圾带的解决方案。
In Deep Water 深陷水中(Scratch项目)
创建一个迷宫游戏,帮助减缓上升的水位。帮助乌龟在水位上升之前回到地球。
Sweeten the Crop 让作物更甜美 (Scratch项目)
你能种出完美的甘蔗作物吗?创建一个点击游戏,尽力尝试一下吧。
Water Adventure 水之旅(Scratch项目)
创建一个展示水循环的动画。然后进一步开发,反映人类的影响。
Talking Rubbish 垃圾会说话(micro:bit项目)
创建一个设备,用于跟踪放入垃圾桶中的垃圾类型,并利用数据制定行动计划。
Turtles and Temperature 海龟与温度(Python项目)
编写一个程序,利用温度数据来观察这对海龟幼崽性别的影响。
相关链接:
2024-10-10 22:39:34
Follow 是一个最近新出的 RSS阅读器,由 RSSHub 的作者 DIYgod 的新团队 RSSNext 开发。
我喜欢 RSS 这个概念,尤其是 RSSHub 使得许多原生不支持 RSS 的网站和平台都能够通过 RSS 来订阅,让 RSS 有更多可能。我喜欢互联网开放的理念,更倾向不受特定平台限制地获取信息,并希望避免推荐算法的影响。长期以来,我使用 FreshRSS 来管理的 RSS 订阅。看到 Follow 这个新兴的 RSS 阅读器项目出现,我感到非常兴奋,期待它为 RSS 生态注入新的活力。
Follow 目前处于内测阶段,需要邀请码才能体验。当我在社交媒体看到 Follow 的宣传时,我向 DIYgod 私信,并且幸运地获得了一个邀请码以参加早期测试。现在我使用 Follow 已经差不多一个月,接下来谈谈我的体会。如果你也对Follow 感兴趣,文末我提供了两个邀请码。
出色的UI设计和动效
具体可以查看 Follow 的核心开发者 Innei 写的文章《浅谈 Follow 中的设计理念》,这里就不再赘述。
与 RSSHub 深度结合
通过与 RSSHub 深度结合,Follow 提供了非常便捷的订阅体验,你可以直接在 Follow 里面搜索订阅 X、bilibili、youtube 等热门的社交平台以及各种 RSSHub支持的网站。
对媒体提供不同的视图
在不同的视图下,Follow 将 RSS 订阅以不同的形式呈现。大多数的 RSS 阅读器,只提供了一个统一的视图,也就是文章视图。而 Follow 团队别出心裁的为各个视图设计不同的信息处理方式。
比如在“播客视图”,你会感觉 Follow 变成了一个优秀的播客播放器。有一个精致的播放器,展示 shownote,甚至支持点击 shownote 中时间轴节点跳转播放进度。
在“视频视图”,信息以视频封面呈现。点击视频,能够直接在 Follow 播放视频。
自动化 提供了丰富的自动化能力,比如AI摘要、翻译、重写和 Webhooks 等。
处于活跃开发阶段,反馈问题能够快速的处理
Follow的开发者非常活跃,也有全职开发人员,问题处理的速度很快。有功能请求开发者也会积极考虑和开发。我反馈了一些问题都得到了回复和处理。
谈完了又优点,再来谈谈我认为的一些缺点。其实也不至于说是这款软件的缺点,只能说是我个人不是那么喜欢的地方。
默认索引用户订阅的站点,可能暴露付费RSS订阅或者私人订阅。目前,Follow 自动将用户的 RSS 订阅整合到其数据库中,并在其他用户搜索时显示。虽然这提高了用户体验,但也带来了隐私和安全风险。特别是对于私人RSS源(如Wallabag)或付费内容,即使选择了"私人关注",它们仍可能被包含并被公开搜索。我向 Follow 反应了这个问题,但是遗憾的是开发团队认为这不是目前开发的重点。
后端不是开源的,无法自部署。这一点就见仁见智,习惯了使用 FreshRSS,我确实有点贪心希望 Follow 能够自部署。我看到 Follow 团队正在招聘全职开发、产品经理和市场营销专家。我猜测 Follow会发展成为一个付费服务,如果定价合理的话,我会愿意支持。希望Follow 团队能够越走越远。
如果你曾在 RSSHub 项目贡献过代码,你可以直接私信 DIYgod 或者 Follow 的X账号获取邀请码。
你也可以向内测用户获取邀请码,这里提供两个邀请码,先到先得,使用后请在评论区反馈。如果你很想参加内测,也可以直接评论,并且谈谈你对Follow 的看法,我会直接在评论回复邀请码。但是我的邀请码也十分有限(10天一个),只能尽量邀请。
241024更新:现在 Follow 已经开始 Beta 测试,不用邀请码也能体验一些功能能,但是会有一些限制。
241125更新:现在 Follow 网页终于支持移动端访问了,还支持PWA! 在墨水平板上也能使用,效果也很不错。
欢迎在 Follow 上订阅本博客:https://app.follow.is/feed/53322153570297857
我整理的 STEAM 教育硬件资讯列表:https://app.follow.is/share/lists/72173389013837824
学习英语的播客列表:https://app.follow.is/share/lists/92088247676273664
2025.02.14 更新的新邀请码:
2023-11-12 16:20:10
最近升级了 OpenAI Python 包的最新版本。运行旧代码时出现编译错误:
You tried to access openai.ChatCompletion, but this is no longer supported in openai>=1.0.0 - see the README at https://github.com/openai/openai-python for the API.
You can run `openai migrate` to automatically upgrade your codebase to use the 1.0.0 interface.
Alternatively, you can pin your installation to the old version, e.g. `pip install openai==0.28`
A detailed migration guide is available here: https://github.com/openai/openai-python/discussions/742
在查看了提示中迁移说明的后,写一个基本示例来调用openai>=1.0.0版本,供大家参考:
说明:代码中设置 base_url
以自定义主机,从而能够使用第三方 OpenAI 代理,这个选项的可选的,如果你使直接访问openai的服务,可以删除这一个配置。
from openai import OpenAI
client = OpenAI(
api_key="xxx",
base_url = 'xxx'
)
def get_completion(prompt, model="gpt-3.5-turbo-1106"):
messages = [{"role": "user", "content": prompt}]
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=0.7,
)
return response.choices[0].message.content
prompt = "你好,ChatGPT!"
print(get_completion(prompt))
如果要启用 OpenAI 新推出的 JSON mode:
def get_completion(prompt, model="gpt-3.5-turbo-1106"):
messages = [{"role": "user", "content": prompt}]
response = client.chat.completions.create(
model=model,
messages=messages,
response_format={"type": "json_object"},
temperature=0.7,
)
return response.choices[0].message.content
import openai
openai.api_key = ''
openai.api_base = ''
def get_completion(prompt, model="gpt-3.5-turbo-1106"):
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=0.7,
)
return response.choices[0].message["content"]
prompt = "你好,ChatGPT!"
print(get_completion(prompt))