ai_cangtoushi:基于 Electron 运行时的智能藏头诗生成工具

AI藏头诗生成器PC版本

分支1Tags0

AI藏头诗生成器

基于 Electron 运行时的智能藏头诗生成工具,让你轻松创作独一无二的藏头诗!🎨

116dcdf68401348cfd9722f8b6110708.png

欢迎加入开源鸿蒙PC社区: https://harmonypc.csdn.net/

简介

本项目基于 Electron 运行时,让你可以使用 HTML/CSS/JavaScript 开发 HarmonyOS 桌面应用。通过内置的桥接层,前端代码可以直接调用鸿蒙原生 API。

AI藏头诗生成器是一款智能创作工具,能够根据用户输入的藏头文字,自动生成符合格律要求的藏头诗。支持多种诗歌体裁和情感风格,让诗词创作变得简单有趣。

┌─────────────────────────────────────────────────────────────┐
│                    前端应用层                        │
│         (HTML/CSS/JavaScript + 藏头诗生成系统)             │
├─────────────────────────────────────────────────────────────┤
│              Electron + Preload 层                  │
│              (IPC 通信、API 暴露)                    │
├─────────────────────────────────────────────────────────────┤
│               HarmonyOS 原生层                       │
│         (libadapter.so + ETS Adapters)              │
└─────────────────────────────────────────────────────────────┘

快速开始

环境要求

  • Node.js 18+
  • DevEco Studio 5.0+
  • HarmonyOS SDK

运行项目

在 DevEco Studio 中打开项目,直接运行即可。应用会自动全屏并加载 index.html 文件。

构建 HAP

ohos_hap 目录下运行:

hvigorw assembleHap

项目结构

ohos_hap/
├── electron/                    # HAP 入口模块
├── web_engine/                  # 核心引擎模块
│   └── src/main/
│       ├── ets/
│       │   ├── adapter/         # 鸿蒙原生适配器
│       │   └── jsbindings/      # JS 绑定层
│       └── resources/resfile/resources/app/
│           ├── main.js          # Electron 主进程
│           ├── preload.js       # 桥接脚本
│           ├── index.html       # 藏头诗生成主页面
│           ├── style.css        # 多主题样式系统
│           └── js/
│               ├── config.js    # 诗词素材数据库
│               ├── battle.js    # 主控制器
│               └── ai.js        # AI生成核心
└── docs/                        # 技术文档

功能特性

1. 智能藏头诗生成

  • 输入藏头文字:支持2-10个字的藏头输入
  • AI智能生成:基于规则引擎和素材库自动创作
  • 藏头字高亮:生成结果中藏头字自动高亮显示
  • 重新生成:不满意可一键重新生成

2. 多种诗歌体裁

体裁 句数 每句字数 特点
七言绝句 4 7 短小精悍,意境深远
五言绝句 4 5 简洁含蓄,古风浓厚
七言律诗 8 7 气势恢宏,格律严格
五言律诗 8 5 工整对仗,意境开阔
词·长短句 6 7 音律优美,婉转悠扬
自由体 自定义 自定义 灵活自由,无拘无束

3. 六大情感风格

  • 💖 浪漫抒情:花前月下,情意绵绵
  • ⚔️ 豪迈壮阔:气吞山河,壮志凌云
  • 🌲 田园风光:山水田园,闲适悠然
  • 🏠 思乡怀古:故土情怀,历史沧桑
  • 🎉 欢快喜庆:喜气洋洋,热闹非凡
  • 😢 婉约哀愁:细腻温婉,忧思绵绵

4. 押韵与平仄

  • 自动押韵:智能匹配韵脚,朗朗上口
  • 平仄协调:符合传统诗词格律要求
  • 可选开关:根据需要开启或关闭

5. 多主题切换

内置6种精美主题,一键切换:

主题 风格 配色
科技感 深色背景 + 青色发光 赛博朋克
古典雅致 宣纸色 + 朱砂红 传统中国风
简约现代 纯白 + 科技蓝 扁平化设计
优雅墨色 黑白灰 + 金色 高雅简约
温暖秋色 暖黄橙 + 棕色 秋天氛围
夜间模式 纯黑 + 黄色发光 护眼设计

6. 历史记录管理

  • 自动保存:每次生成自动保存到历史
  • 快速加载:点击历史记录快速查看
  • 本地持久化:LocalStorage存储,刷新不丢失
  • 容量限制:最多保存50条记录

7. 诗歌操作

  • 📋 复制功能:一键复制诗歌文本
  • 🔊 朗读功能:Web Speech API语音朗读
  • 💾 保存功能:收藏喜欢的诗歌

8. 视觉效果

  • 粒子动画:科技感粒子漂浮效果
  • 流畅过渡:主题切换平滑动画
  • 响应式设计:适配各种屏幕尺寸

技术特点

CSS变量主题系统

/* 科技感主题示例 */
[data-theme="tech"] {
    --primary: #00d9ff;
    --accent: #7b2cbf;
    --bg-paper: #0a0a0f;
    --text-primary: #e0e0e0;
    --shadow: 0 0 20px rgba(0, 217, 255, 0.15);
}

/* 古典雅致主题示例 */
[data-theme="classical"] {
    --primary: #2c3e50;
    --accent: #c0392b;
    --bg-paper: #f5f0e6;
    --text-primary: #2c3e50;
    --shadow: 0 4px 12px rgba(44, 62, 80, 0.1);
}

诗歌素材数据库

const poemThemes = {
    romantic: {
        name: '浪漫抒情',
        words: ['花', '月', '情', '思', '梦', '缘', '爱', '恋'],
        lines: [
            '花开四季香满庭',
            '月照西楼影自怜',
            '情意绵绵似水流',
            '思念悠悠如云烟'
        ]
    },
    heroic: {
        name: '豪迈壮阔',
        words: ['天', '地', '山', '河', '剑', '酒', '风', '云'],
        lines: [
            '天高地阔任我行',
            '地势坤厚载物情',
            '山高路远志不移',
            '河水滔滔向东流'
        ]
    }
};

AI生成核心算法

function generateAcrostic(hiddenWords, options = {}) {
    const { theme, type, useRhyme, usePingze } = options;
    
    // 遍历每个藏头字
    const lines = [];
    for (let i = 0; i < hiddenWords.length; i++) {
        const line = generateLine(hiddenWords[i], themeData, config, i);
        lines.push(line);
    }
    
    return {
        id: Date.now(),
        title: generateTitle(hiddenWords),
        hiddenWords: hiddenWords,
        lines: lines,
        ...options,
        createdAt: new Date().toISOString()
    };
}

粒子动画效果

.particle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: var(--primary);
    border-radius: 50%;
    animation: float 15s infinite ease-in-out;
    box-shadow: 0 0 10px var(--primary);
}

@keyframes float {
    0%, 100% {
        transform: translateY(0) translateX(0) scale(1);
        opacity: 0.3;
    }
    25% {
        transform: translateY(-100px) translateX(50px) scale(1.2);
        opacity: 0.6;
    }
}

本地存储管理

function saveHistory() {
    localStorage.setItem('poemHistory', JSON.stringify(poemHistory));
    localStorage.setItem('poemStats', JSON.stringify(stats));
}

function loadHistory() {
    const saved = localStorage.getItem('poemHistory');
    if (saved) {
        poemHistory = JSON.parse(saved);
    }
}

语音朗读实现

function readPoem() {
    if (!window.speechSynthesis) {
        alert('您的浏览器不支持语音朗读功能!');
        return;
    }
    
    window.speechSynthesis.cancel();
    
    const text = `${poem.title}${poem.lines.join(',')}。`;
    const utterance = new SpeechSynthesisUtterance(text);
    utterance.lang = 'zh-CN';
    utterance.rate = 0.8;  // 适中的语速
    
    window.speechSynthesis.speak(utterance);
}

使用说明

生成藏头诗

  1. 输入藏头文字:在左侧输入框输入2-10个字(如:春风得意)
  2. 选择体裁:从下拉菜单选择诗歌体裁
  3. 选择风格:点击情感风格按钮(可多选或单选)
  4. 设置押韵:勾选是否需要自动押韵
  5. 点击生成:等待AI智能创作
  6. 查看结果:在中间区域查看生成的藏头诗

操作诗歌

  • 📋 复制:点击复制按钮,将诗歌复制到剪贴板
  • 🔊 朗读:点击朗读按钮,听取诗歌内容
  • 💾 保存:点击保存按钮,收藏到本地
  • 🔄 重新生成:点击重新生成,获得新的诗歌

管理历史

  • 查看历史:右侧面板显示历史记录列表
  • 加载历史:点击历史项快速加载
  • 清空历史:点击清空按钮删除所有历史

切换主题

  1. 在顶部右侧找到「主题」下拉菜单
  2. 选择喜欢的主题风格
  3. 页面将平滑过渡到新主题
  4. 主题选择会自动保存

体裁配置

诗歌体裁详解

七言绝句

  • 四句诗,每句七字
  • 共28字
  • 二、四句押韵
  • 适合表达凝练的意境

五言绝句

  • 四句诗,每句五字
  • 共20字
  • 二、四句押韵
  • 简洁含蓄,意在言外

七言律诗

  • 八句诗,每句七字
  • 共56字
  • 四联分明(起承转合)
  • 中间两联对仗

五言律诗

  • 八句诗,每句五字
  • 共40字
  • 颔联、颈联对仗
  • 工整严谨,意境深远

词·长短句

  • 6句组成
  • 每句7字为主
  • 长短句结合,音律优美

自由体

  • 无严格格律限制
  • 藏头字数决定句数
  • 每句7字为主
  • 自由灵活

开发指南

添加新主题

config.jspoemThemes 对象中添加:

const poemThemes = {
    myTheme: {
        name: '我的主题',
        words: ['字1', '字2', '字3', ...],
        lines: [
            '字1开头的诗句',
            '字2开头的诗句',
            '字3开头的诗句'
        ]
    }
};

添加新体裁

config.jspoemTypes 对象中添加:

const poemTypes = {
    myType: {
        name: '我的体裁',
        lines: 4,        // 句数
        syllables: 7      // 每句字数
    }
};

扩展生成算法

ai.js 中修改 generateLine() 函数:

function generateLine(hiddenWord, themeData, config, index) {
    // 自定义生成逻辑
    // ...
}

定制主题样式

style.css 中添加新的主题:

[data-theme="myTheme"] {
    --primary: #颜色值;
    --accent: #颜色值;
    /* 其他变量... */
}

技术栈

  • 前端: HTML5 + CSS3 + JavaScript (ES6+)
  • 样式: CSS Custom Properties (变量系统)
  • 动画: CSS Animations + Keyframes
  • 存储: LocalStorage API
  • 朗读: Web Speech API
  • 运行时: Electron (HarmonyOS 定制版)
  • 原生层: ArkTS + libadapter.so

浏览器兼容性

功能 Chrome Firefox Safari Edge
CSS变量 49+ 31+ 9.1+ 15+
ES6解构 49+ 44+ 10+ 14+
LocalStorage 4+ 3.5+ 4+ 12+
Speech API 33+ 49+ 7+ 79+
Clipboard API 66+ 63+ 13.1+ 79+

相关文档

License

MIT