Author Archives: csslayer

Redmi AirDots 3 Pro 原神版体验兼我的十年耳机史

本来想要标题写个「评测」但是想了想,觉得自己完全不是那种能认真客观评价这种产品的。耳机从来我要求也就是听个响。而买这款的主要原因当然也是觉得这次联动做的特别有诚意想要收藏。 所以最多也就是横向对比一下用过的其他耳机了。 老实说,这几年买过的蓝牙耳机加起来可能有8个了,算上非蓝牙可能一共得有十几个,与其说这次是评价这款耳机,倒不如说是某种对我不断尝试蓝牙耳机的总结。 首先,我对音质是真的没有要求,通俗的说就是听个响。这么多耳机音质方面我其实分不出什么高下。真要说的话,我看中的大概最重要的是舒适度。 把时间倒回10年前,从10人民币级耳机毕业的第一款……是 Panasonic RP-HTX7,纯粹是因为看了《花开伊吕波》之后觉得这个耳机颜值很好才买的。当然因为是头一次买上百元级别的,至少是真的发现音质不一样了。唯一的问题是我太能造耳机了,侧躺着也经常强行带着,以至于耳罩坏的很快。 当时考虑的是买个入耳式的蓝牙,因为也确实体验到了有线毕竟是不够爽。下一款就是 Avantree Sacool Bluetooth 这个蓝牙耳机。牌子自然是没听过的,买来之后总之是觉得不太爽,结果反而入了 Comply 的记忆海绵耳塞的坑。而我这个人老实说,耳油是特别重的,以至于 Comply 的消耗速度在我这实在是太快。所以又打起了要不要试试骨传导的想法。 AfterShokz TREKZ Titanium 然后就尝试了骨传导。总之下场是这个被我最后造坏了……另外舒适度来说,实在也没有达到预期。贴在后脸上的位置总之是感觉也怪怪的。 之后又尝试了另一个 Bose Soundsport ,也试了用别的耳塞,总之是怎么戴怎么不得劲。然后我觉得我可能不适合戴入耳式的耳机,想起HTX 7是覆耳式的,于是又鬼迷心窍去买了有线的 AKG Q 701 。AKG Q 701 可能是这么多耳机里我最后悔的一个了。因为 TM 这玩意它压脑袋,戴上之后头顶会很痛。我尝试了许久各种姿势乃至自己用尼龙扣强行让某些地方减轻用力都没有得到什么效果。 之后又听说了主动降噪……我是真的听一个什么新玩意就想要试试…这次学乖了,买了个二手的 Sony MDRNC500D。效果来说是还不错,舒适度也可以,然而最后连接杆被我造坏了…… 然后就进入到正题,也就是我还在用的几个耳机。首先是 Bose QuietComfort … Continue reading

Posted in 日志 | Leave a comment

libime 原理介绍(二)

之前第一篇主要介绍了关于 beam search 和输入切分相关的内容,以及提供的一些基础数据结构。接下来主要着重补全介绍上次没有提及的 UserLanguageModel 和 HistoryBigram 的实现细节。 声明,本文需要的很多前置知识都可以在大学本科的自然语言处理类课程找到,关键词「统计语言模型」,「N-gram」。概括的说,N-gram模型是对现实语言的不精确概括,它不关心语法,只关心词与词之间出现的频率,尽管不精确,但对于输入法,机器翻译,语音识别等等领域都有不错的效果。 首先上一篇当中提到了我们的输入法的算法核心是 N-gram 和 beam search。一般对采用这种算法的输入法来说,N会取 3 或者 2。可以取得效果和内存占用的平衡。这里姑且来说我们也继承了一部分 Sunpinyin 的精神,因为最初最初的数据就是采用 Sunpinyin 使用的 Open-Gram。当然这里顺便一提,在最新的版本我们重新用全新的数据训练了语言模型。但依然采用了和 Sunpinyin 一样的 Trigram。 HistoryBigram,顾名思义,是一个存储用户输入的 Bigram。它干的事情其实非常之简单,就是把用户的输入的句子根据词一条一条的储存起来。而在内存中,它被存储在 DATrie 中。你也许想问一个问题,就是 DATrie 抽象起来看,可以被看作一个字符串到 4 byte 数据的映射,那么它究竟是怎么存储 Bigarm 这样有两个级别的 Key 的映射表呢? 答案其实很简单,就是你把 Key … Continue reading

Posted in fcitx development | Tagged , , | Leave a comment

Fcitx 5 Plasma Theme support

Kimpanel is a plasma applet that uses plasma and dbus to display the input method popup window. In X11, people who want to have native plasma theme based input method window may use it to provide a nice integration with … Continue reading

Posted in fcitx development | Tagged , , , | 1 Comment

libime 原理介绍(一)

2022/06/29:感谢一些朋友的指正,更新了关于 rime 的一点信息。 写在开头的话:许多年前,在我才刚刚开始用 linux 的时候,刚好赶上了 Sunpinyin 的诞生。那个时候 Yong Sun 写了 Sunpinyin 代码导读。尽管那个时候因为知识的储备不够丰富,基本上没有能够理解文章的内容,但是现在回过头来的话,终于在 2017 年的时候,自己从头写了一个类似算法的输入法引擎,来代替早已过时的 Fcitx 4 中的默认拼音和码表。 虽然也许有人会有疑问,为什么要从头写这样一个输入法引擎,难道 Sunpinyin 不够好吗?我很久之前的一篇博客其实具体做出了一些功能上的解释。这里我们再重新从代码角度来解释一下 libime 的来龙去脉。 libime 目前的库分为 4 个部分,其中粤拼单独在一个Git 代码仓库里,粤拼大部分的代码是和拼音类似的。之后也不会特别介绍粤拼的部分。 另外一些原因是,其中很多核心的代码对我自己来说也已经不很熟悉了,也是趁此机会记录一下翻新一下自己的记忆。另外我相信这些经历的部分,对于了解 Linux 输入法和 Fcitx 的发展过程的也是很有趣的,当成一个故事来看大概也不错? 核心部分(Core) 在解说 Core 之前,就要说到为什么要写 libime 这件事。而这就不得不说说之前的几个前辈们,有些我只有大致的了解,所以可能有错误。首先是 fcitx4 … Continue reading

Posted in fcitx development | 2 Comments

Analysis on a recent issue between Vivaldi and fcitx5-gtk

This article intends to explain the technical details between a issue happens when using fcitx5 on Vivaldi. I’m not a Vivaldi user and Vivaldi is not fully open source, so I can’t really comment what change actually caused this, but … Continue reading

Posted in 日志 | Tagged , , , | 1 Comment