当前位置: 首页 > article >正文

【ElevenLabs马来文语音实战指南】:20年AI语音工程师亲授7大避坑要点与本地化发音调优秘技

更多请点击 https://intelliparadigm.com第一章ElevenLabs马来文语音技术全景概览ElevenLabs 作为全球领先的文本转语音TTS平台近年来持续扩展其多语言支持能力其中马来文Bahasa Melayu已正式纳入其高质量语音合成模型体系。该技术支持标准马来西亚语ISO 639-1: ms覆盖吉隆坡、槟城及新加坡等地常用发音规范并兼容常见马来文正字法Ejaan Rumi及部分阿拉伯文字母Jawi转写场景需预处理为拉丁字符。核心语音能力特性自然韵律建模基于自监督语音表征如wav2vec 2.0微调准确还原马来文特有的轻重音节节奏与句末升调特征方言适配性默认模型基于标准书面马来语训练支持通过prompt tuning微调口音倾向如“Kuala Lumpur urban”或“Johor colloquial”实时低延迟合成API平均响应时间低于480ms含网络传输适用于交互式教育应用与客服语音播报API调用示例马来文TTS请求{ text: Terima kasih kerana menggunakan perkhidmatan kami., model_id: eleven_multilingual_v2, voice_settings: { stability: 0.5, similarity_boost: 0.75 } }注需在HTTP头中设置xi-api-key并指定Content-Type: application/jsoneleven_multilingual_v2是当前唯一支持马来文的生产级模型不兼容旧版eleven_monolingual_v1。支持的语言能力对比能力维度马来文支持状态说明语音克隆✅ 实验性开放需上传≥3分钟纯净马来文语音样本无背景噪音、非混响环境情感控制⚠️ 有限支持仅支持happy/calm/serious三类不支持angry等强情绪标签数字/缩写朗读✅ 全面优化自动将RM50读作“lima puluh ringgit”KPKT读作“Kementerian Perumahan dan Kerajaan Tempatan”第二章马来文语音合成的核心原理与实操校准2.1 马来语音系特征解析元音弱化、辅音连缀与重音规律元音弱化现象马来语中非重读音节的 /a/ 常弱化为中央元音 [ə]如batu石头在快速语流中读作 [bəˈtʊ]。该弱化具有音系补偿性维持节奏稳定性。典型辅音连缀限制马来语原生词禁止复杂辅音丛仅允许以下两类合法连缀/pr/, /tr/, /kr/如prasejarah,traktor/sw/, /sy/如swasta,syarat重音分布规律词形结构重音位置例词CVCV末音节rumah[ruˈmah]CVCVCV倒数第二音节sekolah[səˈkɔ.lah]2.2 ElevenLabs Malay模型架构解密声学建模与韵律预测机制多任务联合建模结构Malay模型采用共享编码器双头解码器设计分别输出梅尔频谱声学与F0/能量/时长韵律三元组class MalayDecoder(nn.Module): def __init__(self): self.acoustic_head Linear(512, 80) # 80-dim mel spectrogram self.prosody_head Linear(512, 3) # F0, energy, duration logits该设计使底层语音表征同时承载音素发音与语调节奏信息提升跨说话人泛化能力。韵律感知注意力机制引入韵律门控Prosody Gate动态调节自注意力权重在Transformer层间注入局部韵律约束抑制不自然停顿训练目标对比任务损失函数权重梅尔重建L1 STFT loss1.0基频预测Dynamic time warping-aware MSE0.32.3 文本预处理实战Jawi转Rumi标准化与方言词干归一化Jawi-Rumi 映射规则库构建# 基于 Unicode 的 Jawi 字符到 Rumi 的确定性映射 jawi_to_rumi { ا: a, ب: b, ت: t, ث: ts, ج: j, چ: c, # 马来西亚方言特有字符对应 /tʃ/ ڽ: ny, # 方言鼻音化标记 }该映射表覆盖标准 Jawi 字母及马来半岛方言扩展字符چ和ڽ为非 ISO 15924 标准但高频出现的方言变体需优先识别。方言词干归一化策略移除方言后缀如-lah,-tah,-kau合并同源变体makan↔mangam→makan标准化效果对比原始 Jawi转换后 Rumi归一化词干مکنmakanmakanمنڬمmangammakan2.4 音素对齐验证使用PraatWaveSurfer进行IPA级发音偏差定位双工具协同工作流Praat生成音素边界标注TextGridWaveSurfer加载音频与标注实现可视化比对。关键在于时间戳对齐精度需达±5ms以支持IPA级如 /θ/ vs /s/细微发音差异定位。TextGrid解析示例IntervalTier phones 0 2.345 p b t d k g f v θ ð s z ʃ ʒ h m n ŋ l r j w该片段定义单层音素区间每行含起始/终止时间及IPA符号WaveSurfer通过插件textgrid2ws自动映射至波形轴线。常见偏差类型对照表IPA目标音高频替代音典型时长偏差/θ//f/, /t/12ms送气不足/ð//d/, /v/−8ms浊化缺失2.5 模型微调前哨基于本地语料的MOS评分基线建立方法语料预处理与MOS标注对齐需将本地语音样本统一采样至16kHz按句切分并绑定人工MOS1–5分标签。关键在于确保音频时长、信噪比与标注一致性。自动化MOS模拟评估流水线# 基于Wav2Vec2特征轻量回归头预测MOS from transformers import Wav2Vec2FeatureExtractor extractor Wav2Vec2FeatureExtractor.from_pretrained(facebook/wav2vec2-base) # 输入waveform (1, T)输出logits → 映射至[1.0, 5.0]区间该代码提取声学表征后接入3层MLP回归头输出经Sigmoid缩放与线性偏移实现分数校准num_labels1损失函数采用MSE适配细粒度主观评分分布。基线性能对照表模型本地语料MOS MAE跨域泛化MAEZero-shot Wav2Vec20.821.37微调后本基线0.410.93第三章本地化发音调优的三大关键技术路径3.1 Prosody Tuning通过SSML控制句末升调/降调与口语停顿节奏核心SSML语音韵律标签SSML中prosody与break是控制语调和节奏的关键speak version1.1 prosody pitch10Hz contour(0%,20Hz) (50%,5Hz) (100%,-15Hz) 这是一个疑问句 /prosody break time300ms/ prosody rate90% 而这是一个陈述句。 /prosody /speakcontour定义音高变化轨迹起始升调疑问、句末陡降确认break time精确插入300ms自然停顿模拟人类思考间隙。常见语调模式对照表语境pitch属性contour示例一般疑问句15Hz(0%,10Hz) (100%,25Hz)陈述句收尾-10Hz(0%,5Hz) (100%,-20Hz)3.2 Phoneme Override针对Kedah/Perak方言定制音素映射表JSON Schema方言音素差异驱动的覆盖设计Kedah/Perak方言中 /r/ 常弱化为 /w/ 或零声母/ə/ 高频替代标准马来语 /a/。Phoneme Override 机制通过声明式 JSON Schema 实现轻量级音素重映射。核心映射配置示例{ locale: ms-KD, overrides: [ {standard: r, dialect: w, context: final}, {standard: a, dialect: ə, context: unstressed} ] }该配置定义了音素替换规则在词尾位置将标准音素r替换为w在非重读音节中将a映射为中央元音ə确保TTS输出符合方言语音规律。Schema 验证约束字段类型说明localestringISO 639-1 region code如ms-KDcontextenum取值initial/medial/final/unstressed3.3 Voice Cloning适配用≤3分钟高质量马来语录音优化Voice Design参数录音预处理关键约束采样率固定为 16 kHz单声道PCM 编码信噪比 ≥ 25 dB静音段自动裁剪阈值 -45 dBFS核心参数映射表语音特征对应Voice Design参数马来语特化建议值F0 基频范围pitch_range[85, 220] Hz较英语窄5%元音共振峰偏移vowel_formant_shift3.2%反映马来语/i/与/u/高前/高后分布克隆微调脚本示例# Malay-optimized fine-tuning call cloner.finetune( audio_pathms_MY_sample.wav, # ≤180s, clean Malay speech langms, # ISO 639-1 code triggers phoneme aligner duration_budget175, # max allowed seconds (3 min - 5s safety margin) speaker_adaptationTrue # enables prosody transfer from native speakers )该调用强制启用马来语音素对齐器ms_phonemizer跳过英语默认的G2P流程duration_budget防止过拟合短语音片段保障泛化性。第四章生产环境避坑指南从API集成到合规交付4.1 API请求陷阱UTF-8 BOM导致的Malay文本解析失败与修复方案BOM干扰解析的典型表现当API响应体以EF BB BF开头UTF-8 BOMGo语言json.Unmarshal会将BOM误认为非法JSON起始字符抛出invalid character looking for beginning of value错误。修复方案对比方案适用场景风险预处理去除BOM第三方API不可控需确保仅移除首BOM服务端禁用BOM输出自有API服务需协调后端团队Go语言BOM清洗示例// 从响应Body读取并剥离UTF-8 BOM func stripBOM(b []byte) []byte { if len(b) 3 b[0] 0xEF b[1] 0xBB b[2] 0xBF { return b[3:] // 跳过前3字节BOM } return b }该函数检测字节数组头部是否为标准UTF-8 BOM签名0xEF 0xBB 0xBF仅在匹配时截断前3字节避免误删合法内容。适用于任意HTTP响应体预处理。4.2 延迟优化流式响应中buffer size与chunk duration的黄金配比缓冲区与分块时长的耦合关系流式响应延迟由网络传输、内核缓冲和应用层写入节奏共同决定。buffer size 决定单次系统调用可写入的数据量chunk duration 则控制逻辑分块的时间粒度。典型Go HTTP流式服务配置func streamHandler(w http.ResponseWriter, r *http.Request) { w.Header().Set(Content-Type, text/event-stream) w.Header().Set(Cache-Control, no-cache) flusher, ok : w.(http.Flusher) if !ok { panic(streaming unsupported) } // 每50ms生成一个chunk每个chunk约1KBbuffer size ≈ 1024 ticker : time.NewTicker(50 * time.Millisecond) defer ticker.Stop() for range ticker.C { fmt.Fprintf(w, data: %s\n\n, generateEvent()) flusher.Flush() // 触发底层writeflush受socket buffer影响 } }该配置下若OS socket send buffer为64KB而chunk过小如100B且flush过于频繁将引发大量小包与上下文切换开销若chunk过大如8KB则增加首字节延迟TTFB。实测延迟对照表Buffer SizeChunk DurationAvg. End-to-End LatencyP95 Jitter4KB20ms32ms8.2ms8KB50ms41ms3.1ms16KB100ms67ms1.9ms4.3 合规性红线马来西亚PDPA对语音数据存储与跨境传输的硬约束本地化存储强制要求根据PDPA第62条语音数据若含个人身份信息如姓名、身份证号、生物声纹必须在马来西亚境内服务器存储。以下Go语言片段用于校验语音元数据是否触发本地化策略func enforceLocalStorage(meta VoiceMetadata) bool { return meta.ContainsPII || meta.HasBiometricVoiceprint // PII: 个人身份信息HasBiometricVoiceprint: 声纹特征标识 }该函数返回true即需路由至吉隆坡或槟城认证数据中心否则违反PDPA第47条罚则。跨境传输前置条件须获数据主体明示书面同意接收国须被马来西亚OAIC列为“充分保护水平”国家当前仅含日本、韩国、欧盟部分成员国传输协议须嵌入数据处理附录DPA明确删除权与审计权合规状态对照表传输目的地OAIC认可状态附加义务新加坡否须签署标准合同条款SCCs并报备OAIC德国是仅需DPA备案无需单独授权4.4 A/B测试框架构建马来语TTS效果评估矩阵Intelligibility, Naturalness, Cultural Fit三维度评估指标定义Intelligibility单词识别率 ≥92%基于100名母语者听写测试NaturalnessMOS评分 ≥4.15分制含韵律连贯性与停顿合理性Cultural Fit方言适配度如吉隆坡/槟城发音偏好、敬语使用合规率如“awak” vs “anda”场景匹配AB分流逻辑实现# 基于用户区域ID与设备语言双哈希分流 import hashlib def assign_variant(user_id: str, lang: str) - str: key f{user_id}_{lang}.encode() return A if int(hashlib.md5(key).hexdigest()[:2], 16) % 2 0 else B该函数确保同一用户在相同语言环境下始终分配至固定变体避免体验割裂哈希截取前两位十六进制字符提升随机性与可复现性。评估矩阵权重配置维度权重数据来源Intelligibility40%ASR转录人工校验Naturalness35%MOS众包平台Cultural Fit25%本地语言学家标注第五章未来演进与跨语言语音工程启示多语种端到端模型的实时部署挑战在东南亚市场落地中我们基于 Whisper-large-v3 微调了覆盖泰语、越南语、印尼语的三语联合解码器。为降低 GPU 显存占用采用torch.compile(modereduce-overhead)与 KV 缓存分片策略推理延迟从 820ms 压缩至 310msRTF0.38。语音工程中的语言无关特征抽象使用 WavLM-large 提取 speaker-agnostic 的帧级表征冻结底层 12 层仅微调最后 2 层适配低资源语种构建音素对齐增强模块通过 forced alignment 工具如 Montreal Forced Aligner注入跨语言音系约束在蒙古语语音识别中该方案使词错误率WER下降 22.7%尤其改善喉音与长元音识别。开源工具链协同演进# 使用 ESPnet2 K2 构建可微分 WFST 解码器 from espnet2.bin.asr_inference import Speech2Text speech2text Speech2Text( asr_train_configexp/asr_train_asr_conformer_raw_zh_en_specaug_sp/config.yaml, asr_model_fileexp/asr_train_asr_conformer_raw_zh_en_specaug_sp/valid.acc.ave.pth, token_typebpe, bpemodeldata/lang_char/train_bpe5000/bpe.model, devicecuda, # 启用 k2-based lattice rescoring ctc_weight0.3, lm_weight0.5, )跨语言语音质量评估标准化指标中文斯瓦希里语乌尔都语CER%4.218.915.6Intonation F10.870.630.71

相关文章:

【ElevenLabs马来文语音实战指南】:20年AI语音工程师亲授7大避坑要点与本地化发音调优秘技

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs马来文语音技术全景概览 ElevenLabs 作为全球领先的文本转语音(TTS)平台,近年来持续扩展其多语言支持能力,其中马来文(Bahasa Mela…...

【权威实测报告】:在137组对比测试中,仅2组prompt达成Apple Human Interface Guidelines认证级毛玻璃效果(附完整prompt审计清单)

更多请点击: https://kaifayun.com 第一章:【权威实测报告】:在137组对比测试中,仅2组prompt达成Apple Human Interface Guidelines认证级毛玻璃效果(附完整prompt审计清单) 为验证当前主流AI图像生成模型…...

PowerBI主题模板终极指南:35款专业模板一键美化数据报表

PowerBI主题模板终极指南:35款专业模板一键美化数据报表 【免费下载链接】PowerBI-ThemeTemplates Snippets for assembling Power BI Themes 项目地址: https://gitcode.com/gh_mirrors/po/PowerBI-ThemeTemplates 还在为PowerBI报表的单调外观而烦恼吗&…...

百度文库文档免费下载终极指南:三步获取PDF完整教程

百度文库文档免费下载终极指南:三步获取PDF完整教程 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 你是否经常在百度文库找到心仪的文档,却因为需要下载券或付费而无法保存…...

架构解密:如何通过FastExcel流式处理引擎重塑Java Excel操作效率标准

架构解密:如何通过FastExcel流式处理引擎重塑Java Excel操作效率标准 【免费下载链接】fastexcel Generate and read big Excel files quickly 项目地址: https://gitcode.com/gh_mirrors/fas/fastexcel 在当今数据驱动的企业环境中,Excel文件处理…...

如何学会自己写代码控制STM32(裸机)-GPIO篇

//总结自己的工作经验,帮助学习单片机的入门者,快速上手写代码该文章是基于STM32F401裸机代码编写思路,后续会更新增加STM32FreeRTOS首先想要写单片机的程序,你必须有扎实的C语言基础,从我多次面试的经验总结&#xff…...

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略

3个企业级验证码识别架构设计:DdddOcr技术选型与性能优化策略 【免费下载链接】ddddocr 带带弟弟 通用验证码识别OCR pypi版 项目地址: https://gitcode.com/gh_mirrors/dd/ddddocr 引言:验证码识别在企业自动化系统中的战略价值 在当今数字化时…...

机器人仿真创新方案:基于ROS的工业级虚拟测试平台

机器人仿真创新方案:基于ROS的工业级虚拟测试平台 【免费下载链接】wpr_simulation 项目地址: https://gitcode.com/gh_mirrors/wp/wpr_simulation 在机器人技术快速发展的今天,硬件成本高昂、测试周期漫长、算法验证困难已成为制约机器人产业发…...

IOT-Tree支持[子站-中心]数据同步功能-轻松支持你的物联网平台

在版本1.9.0开始,IOT-Tree内部移植并开源了中心-子站点的数据同步功能,这个功能已经在我们开发团队的企业用户系统中使用了很长一段时间,足够稳定和可靠。 当前很多物联网系统中,经常有如下需求: 1)一些工…...

长期使用Taotoken Token Plan套餐对项目研发成本的控制效果

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐对项目研发成本的控制效果 在项目研发中,大模型API调用成本是预算管理的重要一环。对…...

[SSD]SSD主控

SSD系统架构SSD系统由一块CPU主控,可以是ARM或者RISC-v;整个主控芯片分为三个部分,分别是主机接口控制器,缓存控制器和闪存控制器,它可以分为前端和后端,前端就是主机接口控制器和主机之间的通信&#xff0…...

数据库与仓储

数据库与仓储 位置:Source/DataBases 项目作用H.DataBases.Share数据库共享代码。H.DataBases.SqliteSqlite 支持。H.DataBases.SqlServerSQL Server 支持。 Repository 相关: H.Extensions.DataBase.Repository H.Presenters.Repository H.Controls.…...

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计

化学合成革命:5分钟用AI完成复杂分子逆向合成路线设计 【免费下载链接】aizynthfinder A tool for retrosynthetic planning 项目地址: https://gitcode.com/gh_mirrors/ai/aizynthfinder 你是否曾为设计一个复杂分子的合成路线而彻夜难眠?在传统…...

终极指南:如何用OpenHTMLtoPDF轻松生成专业级PDF文档

终极指南:如何用OpenHTMLtoPDF轻松生成专业级PDF文档 【免费下载链接】openhtmltopdf An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support. Now also with accessible PDF support (WCAG, Section 508, PDF…...

联想笔记本BIOS解锁神器:3分钟开启隐藏硬件性能

联想笔记本BIOS解锁神器:3分钟开启隐藏硬件性能 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具,例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh_mirrors/le/LEGI…...

程序员会被产品经理替代吗?——当AI让“全栈”成为常态,我们的价值在哪里?

程序员会被产品经理替代吗?——当AI让“全栈”成为常态,我们的价值在哪里? 最近,V2EX上一个帖子引发了激烈讨论:随着AI能力的指数级增长,一个人就能完成从前需要整个团队才能做到的全栈开发。如果产品经理借…...

3个关键步骤:在macOS上制作Windows启动盘的完整指南

3个关键步骤:在macOS上制作Windows启动盘的完整指南 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Legacy Sup…...

通过Taotoken聚合调用,在不同时段测试模型响应速度的观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken聚合调用,在不同时段测试模型响应速度的观察 在构建依赖大模型能力的应用时,响应速度是一个直…...

Steam游戏时长与卡牌挂机:HourBoostr与SingleBoostr完整使用指南

Steam游戏时长与卡牌挂机:HourBoostr与SingleBoostr完整使用指南 【免费下载链接】HourBoostr Two programs for idling Steam game hours and trading cards 项目地址: https://gitcode.com/gh_mirrors/ho/HourBoostr Steam玩家都知道,解锁游戏交…...

别再瞎找了!2026年不容错过的专业AI论文软件

2026年AI论文写作工具已从“基础生成”升级为智能协同研究系统,核心评价维度包括文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规与多语言支持。本次测评覆盖6款主流工具,涵盖中文与英文场景、全流程与专项功能、免费与付费版本,让你…...

BilibiliDown音频提取终极指南:如何从B站视频中提取高质量音乐

BilibiliDown音频提取终极指南:如何从B站视频中提取高质量音乐 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_m…...

凡亿AD22--PCB设计课程项目总结及后续学习规划

一、本次PCB设计课程核心总结本次系列课程的核心定位是「PCB设计入门基础」,核心目标是帮助新手快速上手,搭建PCB设计的基础认知,整体围绕“工具操作基础知识点”两大核心展开,具体总结如下:1. 课程核心目标本次课程不…...

良心云用户如何快速接入Taotoken实现大模型API调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 良心云用户如何快速接入Taotoken实现大模型API调用 对于在良心云服务器上部署应用的开发者而言,将大模型能力集成到自己…...

如何快速掌握智能电源管理:macOS用户的完整配置指南

如何快速掌握智能电源管理:macOS用户的完整配置指南 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX SleeperX是一款专为macOS用户设计的开源…...

8255与74LS273实现流水灯控制原理

箱图片和题目要求,这是一个经典的微机原理/接口技术实验。你需要构建一个包含输入(开关)、处理(8255读取)、输出(74LS273锁存驱动LED)的系统。由于我无法直接为你绘制CAD图纸,我为你…...

ElevenLabs芬兰语TTS深度评测:9大真实场景实测,准确率92.7% vs 传统引擎差距在哪?

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs芬兰语TTS技术概览与评测背景 ElevenLabs 作为当前语音合成领域的领先平台,其多语言支持能力持续扩展,芬兰语(Finnish)于2023年第四季度正式纳…...

Solidity 知识点速记整理 - (2026年) (75 - 94)

文章目录前言Solidity 知识点速记整理 - (2026年) (75 - 94)前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那…...

视启未来[特殊字符]百度智能云:给大模型一双手,让AI真正触碰物理世界

如果说过去两年,大模型在数字世界里掀起了一场海啸;那么2026年,这场海啸正在以“具身智能”的形态,猛烈地拍击物理世界的海岸线。但这里却有一个“骨感”的现实:AI能写出拿普利策奖的文章,能画出媲美梵高的…...

从一次任务到一次进化:完整拆解 Skill 创建、复用、修补链路

点击上方 前端Q,关注公众号回复加群,加入前端Q技术交流群写到这一篇,第二章的拼图终于齐了。 前面四篇我把 Hermes 的自学习系统拆成了 4 个零件:Memory(记知识)、Skill(记做法)、Nu…...

BilibiliDown终极指南:5分钟掌握免费跨平台B站视频下载技巧

BilibiliDown终极指南:5分钟掌握免费跨平台B站视频下载技巧 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirr…...