news 2026/7/28 5:59:09

图形化编程与AI语音融合:mPython调用百度语音API实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图形化编程与AI语音融合:mPython调用百度语音API实战指南

1. 项目概述:当图形化编程遇上智能语音

最近在折腾青少年编程教育,发现一个挺有意思的组合:用mPython这个图形化编程工具,去调用百度语音的AI能力。乍一听,你可能觉得这是两个不太搭界的东西——一个是为中小学生和编程初学者设计的、拖拖拽拽就能写程序的积木式工具;另一个则是需要写代码、调API的成熟AI服务。但恰恰是这种“跨界”,让这个项目充满了实践价值和教学魅力。

简单来说,这个项目的核心,就是在mPython的图形化编程环境中,集成百度语音的识别和合成功能。想象一下,一个刚接触编程的孩子,不需要理解复杂的网络请求、JSON数据解析,只需要像搭乐高一样,把几个写着“开始录音”、“识别成文字”、“把文字读出来”的积木块拼在一起,就能做出一个能听懂指令、会开口说话的智能小应用。这极大地降低了AI应用开发的门槛,让创意能快速落地。

它解决了什么问题呢?首先,是学习的趣味性和成就感。传统的编程入门,往往从打印“Hello World”开始,略显枯燥。而通过语音交互,学生可以立刻做出能和自己对话的程序,比如一个语音控制的智能台灯、一个会讲故事的机器人,这种即时反馈非常吸引人。其次,是对AI技术原理的直观感知。学生虽然不写底层代码,但通过配置语音识别的语言类型、合成的声音角色等参数,能初步理解AI服务“输入-处理-输出”的流程。最后,它打通了硬件与云服务的连接。mPython本身常用于掌控板、micro:bit等开源硬件,结合百度语音后,就能做出真正具备“耳朵”和“嘴巴”的智能硬件原型。

所以,无论你是信息技术老师、创客教育从业者,还是对物联网和AI感兴趣的编程爱好者,甚至是家长想带孩子一起玩点有趣的科技项目,这个“用mPython玩百度语音”的组合,都值得你花时间深入了解。它不只是一个技术实现,更是一个激发创意、理解现代应用开发模式的绝佳入口。

2. 核心思路与方案选型:为什么是mPython + 百度语音?

在决定动手之前,我们得先搞清楚,为什么是这两个技术栈的组合,而不是用Python直接写脚本,或者用其他图形化工具。这背后的选型逻辑,决定了整个项目的可行性和独特价值。

2.1 mPython的定位与优势

mPython并不是一个通用的编程IDE,它是一款由国内团队开发、主要面向中小学信息技术教育和创客教育的图形化编程软件。它的核心优势在于:

  1. 极低的学习门槛:采用Scratch式的积木块拖拽编程,屏蔽了语法错误,让学习者专注于逻辑构建。这对于编程零基础的青少年或快速原型验证来说,效率极高。
  2. 对开源硬件的原生支持:mPython与掌控板(mPython board)、micro:bit等硬件深度集成。在软件内可以直接为这些硬件编程,并模拟运行,还能一键烧录。这意味着我们做的语音应用,可以非常方便地部署到真实的硬件设备上。
  3. 内置网络与物联网能力:mPython的积木库中,本身就提供了HTTP网络请求、MQTT物联网协议等模块。这为我们调用百度语音这类需要联网的云服务API,提供了基础能力,不需要从零开始实现网络通信。
  4. 跨平台与易用性:软件支持Windows、macOS,界面友好,安装简单,非常适合教学和家庭环境。

选择mPython,就意味着我们选择了快速原型开发和教育普及的路径。我们的目标不是写出性能最优、代码最优雅的工业级应用,而是用最短的路径,实现一个可交互、可演示、能激发兴趣的智能语音应用。

2.2 百度语音API的适用性分析

市面上提供语音服务的厂商不少,为什么偏偏是百度语音?这基于以下几个务实的考量:

  1. 免费额度与易获取性:百度AI开放平台为大部分服务(包括语音识别和合成)提供了永久免费额度。对于个人学习、教学演示和小型项目来说,这个免费额度完全够用。申请API Key和Secret Key的过程也相对简单,门槛较低。
  2. API接口稳定且文档清晰:作为国内主要的AI服务商,百度语音的API经过长期迭代,稳定性和可靠性有保障。其官方文档详尽,提供了丰富的参数说明和调用示例,降低了集成时的调试成本。
  3. 功能全面,满足基础需求:其语音识别支持多种语言和方言,合成语音也提供多种音色可选。对于教学和创意项目而言,这些功能已经足够丰富,能做出多样化的效果。
  4. 与国内网络环境兼容性好:服务节点在国内,访问速度和稳定性通常优于一些国际服务,这对于在课堂或家庭网络环境下稳定运行至关重要。

注意:使用任何云服务API,都需要注册对应的平台账号并创建应用,以获取鉴权信息(API Key和Secret Key)。请务必妥善保管这些信息,不要泄露在公开的代码或项目中。

2.3 技术整合的关键挑战与思路

将图形化编程与云端API结合,主要挑战在于如何在不写代码的情况下,完成复杂的HTTP请求构造和数据处理。百度语音API的调用,通常需要以下步骤:

  1. 获取Access Token(需要向认证服务器发送包含API Key和Secret Key的请求)。
  2. 录制或读取音频文件,并进行格式转换(如转为16k采样率的pcm格式)。
  3. 将音频数据以POST方式发送到识别接口,或将要合成的文本发送到合成接口。
  4. 接收返回的JSON数据,并从中解析出识别结果或合成的音频文件。

在纯代码环境中,这些步骤用几十行Python(配合requests库)就能搞定。但在mPython中,我们需要用现有的积木块“拼”出这个过程。核心思路是:

  • 利用“网络”类积木:主要是“HTTP请求”积木,它可以帮助我们向指定URL发送GET或POST请求,并获取返回结果。
  • 字符串与字典的拼接处理:API请求往往需要构造特定的URL参数或JSON格式的请求体。这需要用到“文本”类积木进行字符串拼接和“字典”类积木进行数据构造。
  • 基础逻辑与流程控制:使用“循环”、“条件判断”等积木来控制整个调用流程,例如先获取Token,再使用Token进行语音识别。

因此,整个项目可以看作是一个在图形化界面下,对标准API调用流程的“可视化封装”与“逻辑重组”。接下来,我们就进入实战环节,看看如何一步步把这些积木搭建成一个可用的系统。

3. 环境准备与核心积木解析

工欲善其事,必先利其器。在开始拼接我们的智能语音应用之前,我们需要把“工具”准备好,并深入理解其中几个关键“零件”(积木)的用法。

3.1 软件、硬件与云端账号准备

  1. 安装mPython软件

    • 访问mPython官网或相关开源社区,下载对应操作系统(Windows/macOS)的最新版本安装包。
    • 安装过程通常很简单,一路“下一步”即可。安装完成后打开软件,你会看到一个分为“积木区”、“脚本区”、“舞台区”的界面。
  2. 准备百度AI开放平台账号

    • 访问百度AI开放平台官网,用百度账号登录。
    • 进入“控制台”,在“语音技术”产品下找到“语音识别”和“语音合成”。
    • 分别创建两个应用(或者一个应用同时开通两项服务)。创建成功后,在“应用详情”里,你会看到至关重要的三样信息:API KeySecret KeyAppID。请将它们复制保存到一个安全的地方,我们后续会频繁用到。
  3. (可选)硬件准备

    • 如果你想最终把程序烧录到硬件上运行,需要准备一块掌控板micro:bit,以及对应的数据线。
    • 对于纯软件模拟和测试,硬件不是必须的,mPython的模拟器可以运行大部分功能。

3.2 核心积木功能深度解析

mPython的积木库很丰富,我们本项目主要会用到以下几类,需要特别理解它们的用法和限制:

3.2.1 网络请求积木:“HTTP请求”这是连接本地与云端服务的核心桥梁。其参数配置是关键:

  • 请求方式:百度语音API通常使用POST(提交数据)和GET(获取Token)。
  • URL地址:需要填入完整的API端点地址,例如获取Token的地址是https://aip.baidubce.com/oauth/2.0/token
  • 请求头:是一个字典,用于告诉服务器一些额外信息。例如,在提交音频数据时,需要设置Content-Type: audio/pcm;rate=16000。在mPython中,我们需要用“创建字典”积木来构建这个部分。
  • 请求体:对于POST请求,这里是发送的数据。可能是URL参数格式(如获取Token时),也可能是二进制音频数据。这里有一个大坑:mPython的“HTTP请求”积木对请求体的处理方式需要根据内容类型灵活调整,有时需要将字典转换为特定格式的字符串。

3.2.2 数据处理积木:“字典”与“列表”API调用中,数据的组装和解析极度依赖它们。

  • “创建字典”:用于构建请求头(headers)和某些请求参数(params)。你需要精确知道API要求的键名(key)。
  • “字典获取值”:用于从API返回的JSON数据(在mPython中会自动被转换为字典)中,提取出我们需要的字段。例如,从Token获取的返回结果中提取access_token字段。
  • 列表:在处理一些返回结果或管理多条语音指令时可能会用到。

3.2.3 文本与逻辑积木

  • 字符串拼接:用于动态生成URL(比如将Token拼接到识别接口的URL中)和构造请求体字符串。
  • 条件判断与循环:控制程序流程,例如“如果识别结果包含‘开灯’这个词,则执行点亮LED的操作”。

3.2.4 (硬件相关)音频积木如果你使用掌控板,会用到“录音”、“播放音频”等积木。需要注意的是,硬件直接录制的音频格式和参数(采样率、位数)可能与百度API要求的不完全一致,可能需要在云端或本地进行转换,或者选择支持该格式的API参数。

实操心得:在图形化编程中调试网络请求比写代码更“黑盒”。一个非常实用的技巧是,先使用专业的API测试工具(如Postman或Apifox),将整个调用流程(获取Token、识别、合成)跑通,记录下正确的URL、请求头、请求体格式。然后再在mPython中,用积木块一丝不差地还原这个流程。这能帮你快速定位是参数错误、格式错误还是网络问题。

4. 实战构建:分步实现语音识别与合成

现在,我们进入最核心的实操环节。我将以**实现一个“语音指令控制台灯”**的微型项目为例,分步拆解如何在mPython中调用百度语音的识别和合成功能。我们会先完成语音识别(听懂指令),再加入语音合成(开口回应)。

4.1 第一步:获取百度语音服务的Access Token

任何调用百度语音API的请求,都需要携带一个有效的Access Token。这个Token有一定有效期(通常为30天),我们需要先获取它。

原理:向百度的认证服务器发送一个携带了API KeySecret Key的GET请求,服务器会返回一个包含access_token的JSON响应。

在mPython中的实现步骤

  1. 准备参数

    • 在“变量”积木区,创建三个变量,分别存入你的api_keysecret_keytoken_url(固定为:https://aip.baidubce.com/oauth/2.0/token)。
    • 创建一个变量access_token用于存放即将获取到的令牌。
  2. 构造请求URL

    • 百度这个接口要求参数以URL查询字符串形式传递。我们需要拼接这样一个URL:https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[你的API Key]&client_secret=[你的Secret Key]
    • 使用“文本”积木中的“连接...和...”块,将token_url、固定参数字符串、以及api_keysecret_key变量拼接起来,形成完整的请求地址。
  3. 发送HTTP GET请求

    • 拖入“网络”分类下的“HTTP请求”积木。
    • 请求方式选择GET
    • URL填入上一步拼接好的完整地址。
    • “请求头”可以留空或创建一个空字典。
    • “请求体”留空。
  4. 处理返回结果并提取Token

    • “HTTP请求”积木会返回服务器的响应内容。将其存储到一个变量,比如response
    • 这个response是一个字符串,格式是JSON。幸运的是,mPython的“HTTP请求”积木在收到JSON响应时,有时会自动将其转换为字典对象(取决于版本和设置)。更稳妥的做法是,使用“JSON”相关积木(如果有)或字符串处理来解析。但通常,我们可以直接将其视为字典。
    • 使用“字典获取值”积木,从response字典中,获取键为access_token的值,并将其存入access_token变量。

关键注意事项

  • 获取Token的请求频率有限制,不要在一个循环里疯狂调用。最好在程序启动时获取一次,然后重复使用这个Token,直到程序结束或Token过期(实践中,教学演示的时间远小于30天,所以一次获取即可)。
  • 务必检查response中是否包含error字段,如果包含说明获取失败(可能是Key错误、网络问题等),需要做错误处理(例如用“显示”积木在屏幕上输出错误信息)。

4.2 第二步:实现语音识别(听懂你的话)

获取Token后,我们就可以进行语音识别了。这里我们假设通过掌控板上的麦克风录音,然后将录音数据发送给百度云进行识别。

原理:将录制好的音频数据(需符合API要求的格式,如pcm、16k采样率、单声道),通过POST请求发送到语音识别接口,接口返回识别出的文本。

在mPython中的实现步骤

  1. 录制音频

    • 使用“音频”分类下的“录音”积木(如果使用掌控板)。设定录音时长,比如3秒,存入一个变量audio_data。注意硬件录音的原始格式。
  2. 准备识别请求参数

    • 识别接口URL:https://vop.baidu.com/server_api
    • 需要构造请求头(headers):至少包含Content-Type,指明音频格式,例如audio/pcm;rate=16000特别注意:还需要在URL中携带Token,格式是?dev_pid=1537&cuid=[一个设备标识]&token=[你的access_token]。其中dev_pid=1537表示普通话输入法模型。
    • 请求体(body):就是audio_data变量中的原始二进制音频数据。
  3. 发送HTTP POST请求

    • 拖入“HTTP请求”积木。
    • 方式选择POST
    • URL填入拼接好的带Token的完整识别地址。
    • 请求头填入构造好的字典。
    • 请求体直接选择audio_data变量。
  4. 解析识别结果

    • 接收返回的response
    • response字典中,按照百度API文档的说明,找到存放识别结果的路径。通常是response['result'][0]。将其存入变量recognized_text

格式转换的坑: 这是本项目最大的难点之一。百度标准语音识别接口要求音频为特定的pcm格式。而掌控板录制的原始音频可能是wav或其他格式,采样率也可能不是16000Hz。有几种解决思路:

  • 使用支持更多格式的API参数:百度语音识别有一个format参数,可以尝试指定为wav或其他格式,但兼容性需要测试。
  • 在云端处理:有些服务端接口支持自动转换,但百度标准接口要求较严格。
  • 在mPython中预处理(较复杂):如果积木支持,可以尝试在发送前对音频数据进行重采样或格式裁剪。但这超出了图形化编程的便捷范畴。
  • 实测捷径:对于教学演示,一个可行的办法是预先录制好符合要求的音频文件,存储在掌控板或作为程序资源,直接使用这个文件数据进行识别,绕过实时录音的格式问题。这虽然牺牲了实时性,但保证了流程的畅通,更适合第一步的验证。

4.3 第三步:实现语音合成(让硬件开口说话)

当识别出指令文本后,我们可以让硬件“说出”一句回应,比如“灯已打开”。

原理:将文本、发音人、语速、音调等参数,发送到语音合成接口,接口返回一个音频文件(通常是mp3格式)。我们将这个音频数据保存并播放出来。

在mPython中的实现步骤

  1. 准备合成请求参数

    • 合成接口URL:http://tsn.baidubce.com/text2audio
    • 同样需要在URL中携带Token:?tok=[你的access_token]&ctp=1&lan=zh&per=[音色代码]
      • per参数选择音色,0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫等。
    • 请求头:Content-Type: application/x-www-form-urlencoded
    • 请求体:需要构造一个表单数据,包含tex(要合成的文本,需要URL编码)、vol(音量)、spd(语速)、pit(音调)等字段。在mPython中,我们需要将这些参数拼接成tex=你好&vol=5&spd=5&pit=5这样的字符串。
  2. 发送HTTP POST请求并接收音频

    • 使用“HTTP请求”积木,POST方式,URL和请求头如上设置。
    • 请求体填入拼接好的参数字符串。
    • 关键的响应处理:语音合成接口返回的直接是音频文件的二进制数据,而不是JSON。我们需要将response保存为一个文件(比如response.mp3)或者直接存入一个变量供播放。
  3. 播放合成后的语音

    • 使用“音频”分类下的“播放音频文件”或“播放音频数据”积木(取决于你上一步保存数据的方式),将得到的音频播放出来。

避坑指南

  • 文本URL编码:如果合成的文本包含中文或特殊字符(如空格、标点),必须进行URL编码(Percent-Encoding)。例如,“你好 世界”需要编码为“%E4%BD%A0%E5%A5%BD%20%E4%B8%96%E7%95%8C”。mPython可能没有直接的URL编码积木,这是一个难点。变通方法是避免在合成文本中使用空格和复杂标点,或者寻找扩展积木。
  • 响应内容类型判断:合成成功返回音频数据,失败则返回JSON错误信息。在程序中最好先判断响应头或内容的前几个字节,来决定是播放还是报错。

4.4 第四步:整合与交互逻辑设计

将以上三步串联起来,并加入简单的交互逻辑,就构成了我们的小项目。

  1. 程序初始化:启动时,获取并保存access_token
  2. 主循环
    • 等待一个触发条件(比如按下掌控板的A键,或者一个“开始监听”的指令)。
    • 触发后,执行第二步:录音并识别
    • recognized_text进行判断:
      • 如果包含“开灯”,则控制硬件上的LED灯点亮,同时执行第三步:合成并播放“灯已打开”。
      • 如果包含“关灯”,则熄灭LED,播放“灯已关闭”。
      • 如果包含“讲故事”,则播放一段预存的或通过合成生成的故事音频。
      • 其他情况,播放“我没听清,请再说一遍”。
  3. 错误处理:在每个网络请求步骤后,最好检查一下响应是否包含错误信息,并用屏幕显示或声音提示用户。

通过这样的流程,一个虽然简单但完整的、具备“感知-思考-行动-反馈”循环的智能语音交互原型就搭建完成了。整个过程完全在图形化界面中完成,让学生能清晰地看到数据(Token、音频、文本)是如何在各个模块间流动的。

5. 常见问题、调试技巧与项目拓展

即使按照步骤操作,在实际搭建过程中也难免会遇到各种问题。这里我总结了一些常见坑点和调试方法,以及如何让这个小项目变得更丰富。

5.1 问题排查清单

问题现象可能原因排查步骤与解决方案
获取Token失败1. API Key或Secret Key错误。
2. 网络连接问题。
3. 拼接的URL格式错误。
1. 仔细核对控制台的应用信息,确保复制无误,注意不要有多余空格。
2. 检查电脑或硬件网络是否正常。
3. 使用“显示”积木将拼接好的完整URL打印出来,复制到浏览器地址栏直接访问,看能否返回JSON(浏览器会提示下载一个文件,用文本编辑器打开查看)。
语音识别返回错误1. Token无效或过期。
2. 音频格式不符合要求。
3. 采样率不匹配。
4. 请求头Content-Type设置错误。
1. 重新获取Token。
2.优先验证音频格式:这是最高频的坑。尝试使用一个绝对符合标准的16k、16bit、单声道pcm文件进行识别测试,如果成功,问题就在音频采集或转换环节。
3. 确认接口URL中的参数rate与音频实际采样率一致。
4. 对照百度API文档,检查请求头是否正确。
识别结果为空或乱码1. 录音环境噪音太大。
2. 录音音量过低。
3. 使用了不匹配的dev_pid(如用中文模型识别英文)。
1. 在安静环境下测试,嘴离麦克风近一些。
2. 检查硬件麦克风是否正常,尝试增大录音增益(如果积木支持)。
3. 确认语言模型参数设置正确。普通话一般为1537
语音合成失败或无声1. Token问题。
2. 文本未进行URL编码。
3. 播放器不支持返回的音频格式。
4. 合成参数(如per音色编号)不正确。
1. 同上,检查Token。
2.对合成文本进行URL编码,或暂时使用纯英文无空格文本测试。
3. 将response内容先保存为.mp3文件,用电脑上的播放器打开,确认文件本身是否有声音。
4. 查阅文档,使用正确的音色代码。
程序在硬件上运行卡顿1. 网络请求耗时。
2. 硬件性能有限,处理音频数据慢。
1. 网络请求是主要耗时操作,在代码逻辑上避免不必要的连续请求,例如不要在每个循环都获取Token。
2. 对于复杂的连续对话,可以考虑在云端完成多轮交互,硬件只做最终指令执行和结果播报。

5.2 调试技巧与心得

  1. “分而治之”与“单元测试”:不要试图一次性拼完整个复杂流程。应该先独立测试每个环节。例如:

    • 单独写一个程序,只测试“获取Token”功能,成功后将Token打印出来。
    • 单独写一个程序,使用上一步得到的Token和一个标准音频文件,测试“语音识别”功能。
    • 单独写一个程序,测试“语音合成”功能。 每个环节都调通后,再将它们像管道一样连接起来。
  2. 善用“显示”积木:在关键节点,如拼接好的URL、接收到的response、解析后的文本,都用屏幕显示或串口打印出来。亲眼看到中间数据,是定位问题最直接的方式。

  3. 模拟器优先,硬件后行:mPython的模拟器可以运行大部分网络和逻辑功能。先在模拟器上把核心流程跑通,再烧录到硬件上调试硬件相关的部分(如录音、播放),这样可以减少硬件烧录等待时间,提高调试效率。

  4. 理解“黑箱”,善用外部工具:当mPython中的网络请求怎么都调不通时,请回到“白箱”环境。用Postman等工具,完全模拟一次成功的API调用,记录下所有细节(精确的URL、header、body)。然后回到mPython,让你的积木程序“复刻”这次成功调用。这能帮你厘清,到底是参数问题,还是mPython对某种数据格式的支持问题。

5.3 项目拓展与创意方向

这个基础框架可以衍生出无数有趣的创意项目:

  1. 智能语音助手:结合物联网模块,实现语音控制家里的台灯、风扇、窗帘(需搭配继电器等执行器)。
  2. 语音交互故事机:预置多个故事关键词,对孩子说的故事名称进行识别,然后播放对应的故事音频,甚至可以结合合成技术动态生成故事结局。
  3. 语音问答百科:识别问题后,通过网络请求查询公开的百科API或知识库,将答案用语音合成播报出来。
  4. 语音情绪识别(进阶):百度语音技术也提供情绪识别API。可以录制一段话,先识别文字,再分析说话人的情绪(高兴、生气、悲伤),并让硬件做出相应的表情(通过点阵屏显示)或回应。
  5. 多语种翻译机:识别中文,调用翻译API转为英文,再将英文文本合成语音播放出来,实现一个简易的实时翻译机。

我个人在实际操作中的体会是,图形化编程与AI云服务的结合,其精髓不在于实现的技术有多深奥,而在于将复杂的流程封装成直观的模块,让创造者能聚焦于逻辑和创意本身。过程中遇到的每一个坑,无论是音频格式、网络请求还是数据编码,都是理解现代软件应用如何运作的绝佳机会。对于教学而言,带领学生踩过这些坑、解决这些问题,远比直接给他们一个完美的程序更有价值。这个项目就像一座桥,一端连着趣味和创意,另一端则通向真实的、由代码和网络构成的技术世界。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 5:59:03

Arduino串行通讯从入门到精通:原理、实战与典型应用解析

1. 从“自说自话”到“双向奔赴”:为什么串行通讯是Arduino的必修课如果你刚开始玩Arduino,可能觉得点亮一个LED、让蜂鸣器响两声就挺有意思。但玩着玩着,你肯定会冒出一些新想法:能不能让Arduino告诉我它测到的温度是多少&#x…

作者头像 李华
网站建设 2026/7/28 5:56:10

观察《天荒地老等你》:中文歌如何被读者点开

先谈听感——旋律更贴人,编曲留出呼吸。正因如此,《天荒地老等你》不像口号,更像一次靠得住的靠近,把它放回生活碎片里:晚风里并肩、通话里的停顿、重逢前的深呼吸。听众不必先懂乐理,只要承认自己正在经历…

作者头像 李华
网站建设 2026/7/28 5:53:27

提升文档用户体验:Mike版本选择器与重定向功能实战

提升文档用户体验:Mike版本选择器与重定向功能实战 【免费下载链接】mike Manage multiple versions of your MkDocs-powered documentation via Git 项目地址: https://gitcode.com/gh_mirrors/mi/mike Mike作为GitHub加速计划中的文档版本管理工具&#xf…

作者头像 李华
网站建设 2026/7/28 5:53:00

ModularAvatar菜单系统教程:如何3步创建专业级交互界面

ModularAvatar菜单系统教程:如何3步创建专业级交互界面 【免费下载链接】modular-avatar 项目地址: https://gitcode.com/gh_mirrors/mo/modular-avatar ModularAvatar是一款功能强大的开源工具,专为VRChat创作者设计,能够帮助用户轻…

作者头像 李华
网站建设 2026/7/28 5:50:01

KDoctor与其他环境检测工具对比:为什么它是KMM开发者的首选

KDoctor与其他环境检测工具对比:为什么它是KMM开发者的首选 【免费下载链接】kdoctor Environment analysis tool 项目地址: https://gitcode.com/gh_mirrors/kd/kdoctor KDoctor是一款专为Kotlin Multiplatform Mobile(KMM)开发打造的…

作者头像 李华