我开发了一个开源的 Wakatime 替代品,主要关注点是它可以自我托管,因此您可以控制自己的数据。<p>此外,我认为 Wakatime 的用户界面/用户体验并不是最好的,因此我专注于简约和干净的设计,同时从 Plausible Analytics 中汲取了很多灵感和原则,因为它广为人知,应该更容易让用户习惯 Ziit 的界面。<p>我最近发布了 Ziit 的第一个主要版本 v1.0.0,期待您对尚未实现的功能提供反馈。<p>虽然 Ziit 目前仅支持 VS Code,但我正在积极开发 JetBrains 和 Zed 的扩展。<p>如果您想试用,可以在公共实例上创建一个账户,网址是 <a href="https://ziit.app" rel="nofollow">https://ziit.app</a>。
返回首页
最新
我厌倦了手动回复应用商店的评论,于是我建立了一个一体化的平台来帮助我完成这项工作。<p>这是我第一个完全自建的副项目,我非常希望能听到你的反馈!
两个月前,我意识到我的智力可能很快就会变成一种商品,这让我陷入了一场安静的存在危机。<p>如果智力不能让我与人工智能区分开来,那么还有什么能做到呢?<p>我们会死,人工智能不会。我们的注意力是顺序的,而人工智能的注意力是并行的。<p>出于好奇,我决定测试这个理论,花了10天时间参加了一个内观静修,以重置我的多巴胺水平,并有意训练我的注意力。<p>最初是哲学上的思考,后来变得生动而具体。这两个月的一些切实成果包括:<p>- 大部分腹部脂肪减少(每周减少0.5公斤),没有改变饮食<p>- 最大摄氧量从53提高到58<p>- 释放了慢性肌肉紧张(颈部、背部、臀部)<p>- 睡眠时间减少一小时,精力依然充沛<p>- 完全没有拖延——随时进入心流状态<p>这就像从黑白视野切换到全彩视野。
JAR工具是您一站式的在线解决方案,可以轻松地在浏览器中查看、编辑和反编译Java JAR文件,无需安装。
上周我推出了FoundersAround,因为我想知道是否有更多的创始人与我在同一地区。<p>目前,列表中有43位创始人。随着创始人提交自己的初创公司,这个数字在慢慢增长。让我们看看能否达到100位。<p>从技术上讲,这是一个基于氛围编码的前端产品(HTML、CSS和JS)。
## 引言
在数字教育转型的浪潮中,HarmonyOS 5通过其创新的分布式能力和人工智能技术栈,为教育软件开辟了智能交互的新范式。以*K12口语训练场景*为切入点,本文深入分析如何利用ArkUI框架和AI语音服务,创建具有实时语音评估和课堂内容智能转录等功能的智能教育解决方案,实现三大突破:
* 技术亮点
多模态交互:支持语音和触控的双通道输入,适用于课堂快速响应和口语跟进等教学场景
教育级延迟:边缘侧语音识别响应时间为1.2秒,确保课堂互动流畅
可及性支持:实时字幕生成技术,辅助特殊教育场景
* 教育场景中的价值
- *语言学习*:AI语音评估实现发音准确性的实时评分
- *课堂录音*:自动生成教学内容的时间戳文本
- *作业评分*:通过语音指令快速调用题库资源
构建一个实时语音转文本功能,支持长按按钮触发录音并动态显示识别结果。适用于语音输入和实时字幕等场景。
---
## 详细开发过程
### 1. 环境准备
*系统要求*:HarmonyOS 5 API 9+
*设备支持*:需要验证设备麦克风硬件能力
```typescript
// 设备能力检测
if (!canIUse('SystemCapability.AI.SpeechRecognizer')) {
promptAction.showToast({ message: '设备不支持语音识别' })
}
```
### 2. 权限配置
*步骤说明*:
1. 声明权限:添加到 `module.json5`:
```json
"requestPermissions": [
{
"name": "ohos.permission.MICROPHONE",
"reason": "$string:microphone_permission_reason",
"usedScene": {
"abilities": ["EntryAbility"],
"when": "always"
}
}
]
```
2. 动态请求权限:
```typescript
private async requestPermissions() {
const atManager = abilityAccessCtrl.createAtManager();
try {
const result = await atManager.requestPermissionsFromUser(
getContext(),
['ohos.permission.MICROPHONE']
);
this.hasPermissions = result.authResults.every(
status => status === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED
);
} catch (err) {
console.error(`权限请求失败: ${err.code}, ${err.message}`);
}
}
```
### 3. 语音引擎管理
*生命周期控制*:
```typescript
// 引擎初始化
private async initEngine() {
this.asrEngine = await speechRecognizer.createEngine({
language: 'zh-CN', // 支持多种语言,如en-US
online: 1 // 在线识别模式
});
this.configureCallbacks();
}
// 资源释放
private releaseEngine() {
this.asrEngine?.finish('10000');
this.asrEngine?.cancel('10000');
this.asrEngine?.shutdown();
this.asrEngine = undefined;
}
```
### 4. 核心配置参数