• 请不要在回答技术问题时复制粘贴 AI 生成的内容
retemlamb
V2EX  ›  程序员

做了一个完全本地的语音转文字工具,不想只做一个 Whisper GUI

  •  1
     
  •   retemlamb · 18h 59m ago · 2816 views

    这几个月一直在做一个叫 OpenASR 的项目,今天来 V2EX 聊聊。

    起因很简单。平时会议录音、视频素材、语音笔记需要转文字,也经常要给 Agent 口述比较长的需求。试了不少语音服务,要么要上传云端,要么只支持 Whisper ,要么需要自己搭 Python 环境装 CUDA 下权重改参数。

    其实本地 ASR 模型这两年发展得很快。Whisper 之外,Qwen3-ASR 、SenseVoice 、FireRed 、Dolphin 、X-ASR 都是非常优秀的模型,但普通用户想体验它们的门槛还是太高了——每个模型一套推理框架、一套依赖、一套配置方式。模型越来越多,使用体验还停留在开发者工具阶段。

    所以我想做一个统一的本地 ASR 工具。音频不上传服务器,模型下完可以断网跑。支持本地音频视频转文字、实时字幕、全局语音输入、CLI 和本地 API ,多种模型一键切换。

    为什么不只做 Whisper GUI ?

    OpenASR 语音转写演示

    一方面,不同 ASR 模型各有强项。有些中文场景强,有些方言覆盖广,有些适合实时流式,有些对低配设备友好。一个好的本地 ASR 工具不应该绑死在一个模型上。

    另一方面,现在各家模型的 runtime 其实很割裂。有的跑在 ggml 上,有的用 ONNX ,有的要 PyTorch ,开放的推理接口也不统一。如果你想同时用 Whisper 和 FireRed 和 Dolphin ,实际上要装三套环境、学三套用法。OpenASR 想把这层差异吃掉——统一成一个引擎、一套模型格式、一个入口,用户不需要关心底层跑的是什么。而且统一引擎不只是方便,同模型同参数下我们实测比 whisper.cpp 快约 8%,这个指标是 CI 门禁锁住的,每次提交都跑,不允许回归。

    目前已经接入了 Whisper 、Qwen3-ASR 、SenseVoice 、FireRed 、Dolphin 、X-ASR 、Moonshine 、Parakeet 等十几个模型族,做了一个模型市场,打开就能搜索、下载、切换,不用碰命令行。

    聊几个我觉得比较有意思的:

    FireRedASR2 来自小红书团队,在公开中文测试集上表现非常强,很多场景可以到 SOTA 级别。不过 benchmark 只是参考,真实会议、噪声、口音环境下到底怎么样,我自己也没完全摸清,希望有人帮忙测。

    Dolphin 是 Dataocean AI 和清华联合做的,最大亮点是支持 22 种中文方言和地区口音。普通话模型"能听懂一点方言"和专门针对方言训练的模型,体验差别真的很明显。四川话、粤语、吴语、闽南语用户如果愿意试试,我特别想知道结果。

    X-ASR 来自上海交大、复旦等机构,是中英双语流式模型。不是"录完再识别",而是边说边出字,特别适合实时字幕和语音输入。也是我自己 vibe coding 时最喜欢的模型。

    一些技术细节

    OpenASR 模型市场

    底层不是套壳 whisper.cpp 。基于 vendored ggml fork 自己写的推理引擎,有一套自研的 .oasr 模型格式,mmap 零拷贝加载。Whisper 同模型同参数下实测比 whisper.cpp 快约 8%,其他模型族对比各自的最佳推理方案也保持更快或与 SOTA 持平。M1 上最快的模型可以到 37 倍实时速度,几乎所有模型都可以做到实时,除了两个特别大的 8B 模型。

    模型下载也不是裸 HTTP 拉文件。每个模型经过 sha256 校验 + Ed25519 catalog 签名 + GGUF 格式预检,通过了才原子安装。"不联网"不只是一句口号,信任链是完整的。

    另外 openasr serve 可以起一个本地 OpenAI 兼容 API (/v1/audio/transcriptions),改个 base_url 就能接现有的 OpenAI SDK 生态。如果你的 agent 工具链已经在用 OpenAI 的转录接口,换成本地几乎零改动。

    除了转录本身,还有标点恢复、说话人分离、声纹识别这些周边模型,不过这部分还在完善。后续也会计划支持实时翻译、转写后的文本润色、视频/音频总结等功能。

    当前状态

    项目还是 0.1.x 早期阶段。支持 macOS Apple Silicon 和 Windows x64(有对 vulkan/cuda/rocm 的支持),有桌面端安装包和本地 CLI/API 。核心用 Rust 写,Apache-2.0 开源。

    接下来给自己定了个目标:尽量每周研究一个新的 ASR 模型族,适合本地跑的就接入,不适合的也记录原因。不会为了数量把"能启动"当成正式支持。

    官网: https://openasr.org GitHub: https://github.com/QuintinShaw/openasr

    最后想问几个问题

    1. 各位用过哪些 ASR 模型觉得效果好但比较小众的?不一定排行榜第一,某个场景特别强就很有价值。
    2. 中文方言场景,有没有实际体验过 X-ASR / FireRed / Dolphin / SenseVoice 的?
    3. 如果做一个本地 ASR 模型库,你觉得最需要什么功能?

    具体的问题、失败案例、模型推荐对我来说比点赞有用得多,欢迎直接吐槽

    60 replies    2026-07-21 22:59:25 +08:00
    tangseng233
        1
    tangseng233  
       18h 54m ago
    manhere
        2
    manhere  
       18h 49m ago
    ASR 一定要做说话人识别啊,单纯的出字幕没啥意义
    retemlamb
        3
    retemlamb  
    OP
       18h 48m ago
    @tangseng233 感谢推荐,这个之前没关注过。转写 + 说话人分离正好是后面想补的方向,我研究一下看能不能适配进来
    retemlamb
        4
    retemlamb  
    OP
       18h 45m ago
    @manhere 说话人识别确实是刚需。目前 cli 已经接了 pyannote segmentation 做说话人切换检测,加 wespeaker 做声纹聚类,--diarize 一个参数就能开。desktop 上这块还在打磨中
    bearqq
        5
    bearqq  
       18h 43m ago
    和这个项目水乳交融一下? https://github.com/kigner/audio.cpp-webui
    retemlamb
        6
    retemlamb  
    OP
       18h 37m ago
    @bearqq 看了下这个项目,都是基于 ggml 的方向,不过定位不太一样。audio.cpp 覆盖面更广( TTS 、语音转换、音乐生成都做),偏开发者框架; OpenASR 专注在 ASR 这一块,目标是让普通用户也能直接用起来。底层有一些可以互相参考的地方
    Leon6868
        7
    Leon6868  
       18h 12m ago
    实时可以做到说话人分割吗?
    retemlamb
        8
    retemlamb  
    OP
       18h 0m ago
    @Leon6868 录音/会议转写的说话人分离已经支持了,预计本周上线 desktop 。实时字幕的说话人分离还在探索中,延迟和稳定性还没达到我满意的程度
    zshwdt22023
        9
    zshwdt22023  
       17h 58m ago
    关注了,之前都是用硅基流动免费的 SenseVoiceSmall ,用来识别视频字幕,效果勉强能用。最近也研究好用的本地 asr 模型,不过都是你官网里列出来的。
    方言场景我不怎么关注,不过在处理中文混杂英文的场景下,SenseVoiceSmall 效果很差。
    如果做一个本地 ASR 模型库,我觉得最需要一些实际的测试结果,那 6 个推荐的模型,我也不知道哪个识别的准确率高。
    retemlamb
        10
    retemlamb  
    OP
       17h 48m ago
    @zshwdt22023 中英混杂确实是 SenseVoice 的短板,这个场景推荐试试 X-ASR 或者 Qwen3-ASR ,体感好不少。测试对比这块确实该补上,我后面整理一份不同场景下的实测结果出来
    DICK23
        11
    DICK23  
       17h 31m ago
    我前两天让 ai 帮我试了一下 ios 的本地模型 SpeechTranscriber ,感觉效果也勉强能接受
    retemlamb
        12
    retemlamb  
    OP
       17h 23m ago
    @DICK23 SpeechTranscriber 我也在关注,macOS/iOS 26 上中文确实差点意思,27 beta 上英文提升很明显,后续得看 Apple 会不会给中文换更强的语言模型。目前本地中文场景 OpenASR 接的几个模型体验会好不少,欢迎对比试试( iOS 版也在开发中,近期会上线
    indexError
        13
    indexError  
       17h 5m ago
    win10 cpu x86_64 版本双击没反应。
    中文用户最期望的是方言语音转普通话文本,这个开源模型基本都做不到,痛点在这里。你既然做开源了,可以把这块补齐。
    识别-用户手动纠错-上传(方言类型、使用模型、识别语句/纠正语句)。上传用户可以选择同步词库,至于最终怎么处理,你得自己想办法。(小红书春节发的那套 2s 里面有个 LID 模型,但是太大了)

    我的观点( windows ):
    办公电脑+普通话+固定场景,sensevoicesmall + 文本替换 + pyannote 那套就是最优解了
    个人电脑+普通话+各种 x 普,qwen3-0.6b + 热词 + pyannote 也够用了。

    最后打个广:windows 离线语音转文本 https://owlmeeting.com/
    retemlamb
        14
    retemlamb  
    OP
       16h 45m ago
    @indexError Win10 双击没反应的话,你下的应该是 GitHub 上的 CLI 版本,那个是命令行工具。桌面端安装包在官网 openasr.org 可以下,装完直接双击用。

    ![Dolphin 模型详情]( https://openasr.org/assets/openasr-desktop-dolphin-zh.png)

    方言这块目前接了 Dolphin ( 22 种方言)和 FireRedASR2 AED-L (中文方言准确率很高),普通配置的电脑都能流畅跑( FireRedASR2 LLM 也接入了,但是太占用内存了)。大部分模型也支持热词,可以针对特定术语或人名做纠正。方言转普通话文本这个方向确实是刚需,最终解法可能还是要靠方言微调,这块我也在探索中
    kelvinaltajiin
        15
    kelvinaltajiin  
       15h 44m ago via Android
    英文口音的表现如何? 印度口音和苏格兰口音
    People11
        16
    People11  
       15h 24m ago
    最近也做了个这个 transcript.people11.dev
    retemlamb
        17
    retemlamb  
    OP
       15h 20m ago
    @kelvinaltajiin 刚好最近看了 AppTek 发的多口音英语长对话 benchmark ( https://arxiv.org/abs/2604.27543 ),129 小时真实呼叫中心数据,覆盖 14 种英语口音,比 LibriSpeech 更接近实际场景。

    https://openasr.org/assets/accent-wer-table.png

    目前 OpenASR 里 Parakeet TDT v3 和 Qwen3-ASR 1.7B 都已经接入了,各有强项:印度英语 Parakeet v3 WER 约 9.7% 更优,苏格兰英语 Qwen3-ASR 1.7B WER 约 11.1% 更稳。总体英语口音上推荐先试 Qwen3-ASR (平均分是目前最高的),追求速度低延迟可以用 Parakeet
    retemlamb
        18
    retemlamb  
    OP
       15h 8m ago
    @People11 刚试了一下,效果挺好的,在浏览器里运行还挺有意思的。Nemotron 这个模型我也在关注,后续看看能不能接进 OpenASR (之前主要在测试模型中文的效果,Nemotron 的这个模型 FLEURS CER 大概是 20 上下)
    Mithril
        19
    Mithril  
       14h 52m ago
    可以看一下 Handy ,但 Handy 之前的版本不能实时处理,相当于按键说话,用起来还是有点麻烦的。
    Leon6868
        20
    Leon6868  
       14h 44m ago
    @retemlamb #8 之前我做过实时说话人分割,感觉问题主要是会持续飘逸,而且真实环境的录音效果不好,很难做到因果的。
    111111111111
        21
    111111111111  
       14h 34m ago
    win11 安装了配置了,但是无法正常使用,是因为我没有独立显卡的原因吗?
    摁下了快捷键,系统提示麦克风在使用,但是有任何文字出来,软件显示没有听到声音
    aoooo
        22
    aoooo  
       14h 17m ago
    杀毒软件一直报木马呢?
    yukminnie
        23
    yukminnie  
       14h 11m ago
    这种软件用过好几个,感觉最大的问题还是大部分无法合理断句。
    chendahui007
        24
    chendahui007  
       14h 6m ago
    whisper 对中文幻觉很高,可以试试 soniox ,demo: https://audiototextconverter.com/
    by9858
        25
    by9858  
       14h 2m ago
    提个小建议 下载模型能不能不要默认放在 C 盘,可以自定义路径或者下载到安装目录不行吗?
    特意安装到 D 盘,下载个大型模型结果 C 盘爆了
    12wk34
        26
    12wk34  
       13h 59m ago
    qwen 是唯一能在背景嘈杂下使用的
    lel020
        27
    lel020  
       13h 40m ago
    必须本地模型吗, 我更想要一个能配置各种模型 api 的,能在任意位置输入的应用,非输入法,
    retemlamb
        28
    retemlamb  
    OP
       13h 28m ago
    @Mithril Handy 确实不错,我们也参考了不少。它最近 0.9.0 刚加了 Nemotron 的流式支持。OpenASR 这边实时转写从一开始就做了,目前 X-ASR 支持边说边出字,体验上会更接近自然输入
    retemlamb
        29
    retemlamb  
    OP
       13h 22m ago
    @aoooo Windows 版用的是 Azure Trusted Signing 的代码签名证书,不是自签名。但因为是新项目下载量还不够,SmartScreen 信誉还没建立起来,所以会弹警告。已经跟微软反馈过了,下载量上去之后会自动消失。目前安装时点"更多信息"→"仍然运行"就行,代码本身是开源的可以随时审查

    Microsoft:

    The SmartScreen warning that you reported indicates that the application and/or certificate used to sign it do not yet have a reputation established in our system. Applications without a known reputation will show warnings when downloaded or installed. This does not prevent users from still clicking through to download or run the application. To do so, they can select "More info" -> "Run anyway" option within SmartScreen prompt window.

    Reputation is established by how your download is used by Windows, Edge, Internet Explorer users and the SmartScreen® Service intelligence algorithms. Downloads are assigned a reputation rating based on many criteria, such as download traffic, download history, past anti-virus results and URL reputation.  This reputation may be based on the downloaded program or can also be assigned to the publisher, based on digital certificate information.

    Once your signing certificate has gained reputation in our system, all applications or releases signed with your certificate should have warn-free experience (assuming nothing happens to denigrate the reputation of the certificate, such as being used to sign malware).

    Please note, unsigned files will have to establish reputation each time a new version is released.

    Thank you for contacting Microsoft.
    retemlamb
        30
    retemlamb  
    OP
       13h 18m ago
    @111111111111 不需要独立显卡,CPU 就能跑。你描述的情况像是音频采集没有正确传到引擎。麻烦打开设置 → 高级设置 → 日志目录,找到 daemon.log ,把最后 20 行贴在这里或者到 GitHub Issues 里提交一下,我帮你看看具体原因
    retemlamb
        31
    retemlamb  
    OP
       13h 7m ago
    @Leon6868 #20 确实,实时场景下说话人分割的飘逸和录音环境噪声是两个大问题。目前转写的分离效果还行,实时还在探索
    hezp
        32
    hezp  
       13h 4m ago   ❤️ 1
    有意思,支持支持
    retemlamb
        33
    retemlamb  
    OP
       13h 4m ago
    @yukminnie #23 断句确实是通病。目前接了 FireRed 的标点模型可以有很明显的改善(在 FireRedASR2 AED / Dolphin 的模型设置中启用),Qwen 系列的断句和标点也不错,后续也在看用 LLM 做转写后文本润色
    retemlamb
        34
    retemlamb  
    OP
       13h 0m ago
    @by9858 #25 好建议,目前 Windows 上模型默认存在用户目录下,确实会占 C 盘。自定义模型存储路径这个在设置-高级设置中有,后续我也会放到更醒目的位置
    retemlamb
        35
    retemlamb  
    OP
       12h 56m ago
    @lel020 #27 也许你要找的是这个? https://github.com/xuyungit/VoiceX 支持 13 种不同的云服务,支持 Windows/macOS
    yiranw09
        36
    yiranw09  
       12h 53m ago
    期待实时字幕能完成说话人分离,开会的时候还满需要的(懒得做会议纪要了)
    retemlamb
        37
    retemlamb  
    OP
       12h 52m ago
    @chendahui007 #24 soniox 看了一下是云端方案,效果确实不错。OpenASR 主打本地,定位不太一样(实际上像 Qwen / FireRed 系的模型在中文能力上还是不错的,FireRedASR2 LLM 的普通话 CER 可以达到 2.89%,恐怖如斯
    retemlamb
        38
    retemlamb  
    OP
       12h 46m ago
    @12wk34 之前是这样,今年 2 月小红书团队的 FireRedASR2 AED 也很能打,对性能要求不高,嘈杂的音乐歌词的 CER 1.17% ,小红书团队说是工业级别模型,唯一的缺点是没有标点符号,需要搭配 FireRedPunc (小红书团队的文字断句和加标点模型) 使用,在模型设置里可以开启
    retemlamb
        39
    retemlamb  
    OP
       12h 31m ago
    @yiranw09 #36 会议纪要这个场景确实是刚需。录音转写的说话人分离目前已经支持了(即将上线)。实时字幕的说话人分离难度要大不少——线上会议软件是靠“谁的麦克风在说话”来区分的,但线下录音只有一路混合音频,要实时区分不同说话人挑战还是很大的,在努力中
    yiranw09
        40
    yiranw09  
       12h 28m ago
    @retemlamb #39 还有一点问题,我 windows 上用不了,mac 没有问题。windows 无论转写还是实时字幕都没有反应,麦克风权限显示正在被使用。实时字幕会报:Realtime session has not started. Send session.start before streaming microphone audio.
    ccvip
        41
    ccvip  
       12h 24m ago
    已 star ,最近在刚需使用 ASR ,有本地 cuda 环境,下载了一些涂料行业的音频资料,测试了 5 种以上的 ASR,包括本地部署的 SenseVoiceSmall 、funasr 、Whisper ,联网的 qwenasr,阶跃星辰 asr 、豆包、还有七牛等平台的,我测试的结果,豆包在工业专属词汇方面遥遥领先,领先了不是一点,领先很多。看到了博主宣传对阶跃星辰期望值比较高,实测跟 qwen 差不多。
    期待 OP 的作品越来越完善,我今天就试试 FireRedASR2
    retemlamb
        42
    retemlamb  
    OP
       12h 22m ago
    @yiranw09 #40 这个看起来是 Windows 上实时会话没正确启动的问题,麻烦到 GitHub Issues ( https://github.com/QuintinShaw/openasr/issues )提一个,把那条报错信息贴上,再打开设置 → 高级设置 → 日志目录,把 daemon.log 也附上,我帮你排查
    retemlamb
        43
    retemlamb  
    OP
       12h 5m ago
    @ccvip 感谢 star 和详细的测试反馈!豆包在工业专属词汇上强确实符合预期,毕竟背后有字节的行业数据。

    FireRedASR2 在中文上确实很猛,附一组 FireRedASR2 论文里的公开 benchmark 数据供参考:

    模型 普通话 CER% 方言 CER% aishell1 CER% aishell2 CER%
    FireRedASR2-LLM 2.89 11.55 0.64 2.15
    FireRedASR2-AED 3.05 11.67 0.57 2.51
    Doubao-ASR 3.69 15.39 1.52 2.77
    Qwen3-ASR 3.76 11.85 1.48 2.71

    其中 aishell1/aishell2 覆盖了智能家居、自动驾驶、工业生产等十几个领域的词汇,是公开集里最接近行业应用场景的。不过这两个集还是安静环境下的朗读语音,跟你的涂料行业真实录音肯定有差距,期待你试完 FireRedASR2 的反馈
    Mithril
        44
    Mithril  
       12h 3m ago
    @retemlamb 本地简单试了一下,识别率还行。如果你们想要以后作为商业项目,支持会议上的实时字幕或者转译的话,可以考虑一下分离 Inference ,让这个 Desktop 支持连接到远程推理。
    很多办公用本 0.6B 的模型都跑不起来,不是内存不够,就是 CPU 性能极差。

    不过我也遇到了 40 楼的问题,设置里刷新一下麦克风选择就可以了。
    ningxing
        45
    ningxing  
       12h 2m ago
    做的太好了,晚上用用看。对了有没有人知道反向的文本转语音类似的项目有吗?也许想要本地模型
    yiranw09
        46
    yiranw09  
       12h 1m ago   ❤️ 1
    @retemlamb #42 已提 issues ,log 丢 ai 说是 Xe 核显和 ggml 不兼容,改 cpu 就好了。但是 cpu 还是比较弱的...
    ccvip
        47
    ccvip  
       11h 50m ago
    我的本地 ASR 刚需功能
    1 、批量操作,如果只是 1v1 转换,直接用飞书妙计或通义听悟即可,本地一定要具备工业化流水线处理的能力。
    2 、说话人识别,比如下载了很多的课程、抖音视频,需要整理入知识库,说话人还是很重要的
    3 、行业热词识别和整理,如果指望手打字不显示,有没有什么模型或工具或好的提示词,或者用几个不同水平的模型,把易错词行业词筛出来。
    4 、如果支持使用在线模型,不同模型的额度计费标准别搞错了,比如豆包模型充值的 ASR 额度仅限普通模型使用,极速版 ASR 另扣费,所以我买了百元额度一分钱没扣又欠费好几十元
    tingjiannishuo
        48
    tingjiannishuo  
       11h 41m ago
    能克隆别人的声音转成中文吗,比如让巴菲特讲中文
    retemlamb
        49
    retemlamb  
    OP
       11h 36m ago
    @yiranw09 #46 目前核实应该是 I 卡兼容的问题( metal N 卡 A 卡都没问题),正在修复中,0.1.17 版本正在走签名发布流程(会对报错自动回退到 CPU 上),稍晚时候会彻底修复 I 卡的问题
    retemlamb
        50
    retemlamb  
    OP
       11h 30m ago
    @Mithril 感谢试用和建议!分离推理这个方向我们架构上已经是这么设计的——引擎和前端是分开的,目前 openasr serve 可以起一个本地 OpenAI 兼容 API ,办公室里一台性能好的机器跑推理,其他设备调 API 就行。后续移动端上线后,也会支持连远程服务端转写,不用每台设备都跑模型
    retemlamb
        51
    retemlamb  
    OP
       10h 23m ago
    @ccvip #47 这四点都很实在:

    1. 批量处理目前 CLI 支持,桌面端的批量导入在做了
    2. 说话人识别已经接了,录音转写可以用 --diarize 开启,桌面端预计本周上线
    3. 热词功能目前大部分模型已经支持了,可以在模型设置里添加行业术语。多模型交叉校验筛易错词这个思路挺好,记下了
    4. 本地跑的好处就是没有这些计费坑,跑多少都不花钱,其实像现在大多数人的设备都有很强的计算能力,完全可以胜任这些工作

    此外目前 FireRedASR2-LLM 遇到一个图复用的问题,我在修复中,当前可能运行速度较慢。FireRedASR2-AED 目前是正常的,可以先试试,我会尽快修复这个问题。之后会对所有模型进行全方位性能检测,确保每个模型在各种设备上都可以利用到设备性能的物理极限
    retemlamb
        52
    retemlamb  
    OP
       10h 14m ago
    @tingjiannishuo #48 dots.tts / CosyVoice 3 这类模型在跨语种声音克隆上都有不错的效果 fyi
    retemlamb
        53
    retemlamb  
    OP
       10h 11m ago
    @ningxing #45 dots.tts / CosyVoice 3 也都是 TTS 模型(文字转语音),并且有很好的语音克隆效果
    aaxx2xx
        54
    aaxx2xx  
       9h 40m ago
    断句最好的模型是什么呢?(剪辑需求)。错别字倒是无所谓
    skills
        55
    skills  
       8h 24m ago
    其实可以加一个翻译,比如别人说中文,可以在线实时转英文那就更牛逼了。 我得推荐给我写头条账号的朋友推荐一下你这个工具。
    hellodigua
        56
    hellodigua  
       8h 21m ago
    刚想问问是否支持 CLI ,没想到已经支持了,好评好评
    B4a1n
        57
    B4a1n  
       8h 13m ago
    需要长时间的日语字幕识别 幻听少的 楼主推荐用哪个
    iyuanyi
        58
    iyuanyi  
       8h 8m ago
    看了楼主,我的好像太简陋了 https://freeaudiototext.com
    indexError
        59
    indexError  
       7h 9m ago
    @skills windows 可以看看这个 https://owlmeeting.com/
    Explr
        60
    Explr  
       5h 39m ago via Android
    说话人识别试试 VibeVoice-ASR ?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   956 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 746ms · UTC 20:38 · PVG 04:38 · LAX 13:38 · JFK 16:38
    ♥ Do have faith in what you're doing.