我的奶奶

奶奶的生卒年

奶奶生于民国十九年农历六月初三(公元1930年6月28日), 卒于公元2024年11月1日(农历十月初一), 享年95岁

爷爷生于民国八年(公元1920年),卒于1991年,享年72岁

奶奶的出生地

谭家岭

奶奶父母和兄弟姐妹

  • 据奶奶回忆,她的父母早亡(具体年份未知,推测在1943年前), 留下奶奶和 妹妹(老二)和弟弟(老三) 三人
  • 奶奶的妹妹应该是1932年生人,比奶奶小两岁
  • 据奶奶回忆,她的弟弟是饿死的(推测是营养不良和疾病导致), 推测年份1943年前,因此,弟弟死亡时最大年龄不超过10岁
  • 据奶奶回忆,13岁嫁给爷爷(即1943年)

奶奶的亲妹妹

奶奶儿孙

  • 据奶奶回忆,
  • 大女
  • 二女
  • 三儿
  • 四儿:
  • 五儿: 1968
  • 六儿:

  • 奶奶80岁大寿那天(2010年),我得到重点高中通知书
  • 奶奶90岁大寿那天(2020年),我弟弟高考成绩出来,创造高中最好成绩,双喜临门

语音技术学习笔记

几个关键概念

  • TTS(Text-to-Speech): 根据输入文本生成音频
  • SoVITS (Soft Voice Cloning): SoVITS(Soft Voice Imitation Transfer System), 克隆特定人的音色

语音服务商

Real Time Agent

TTS(Text To Speech)开源项目:

ChatTTS:

GPT-SoVITS

https://github.com/openai/whisper

4_Sui+Move核心概念

Sui Move的 Object基础概念

  • Sui Move 是以Object为核心
  • Sui的交易输入和输出都是 Object
  • Object是Sui的基本存储单元
  • Object即 struct
  • Sui 的 Object 必须包含一个 id: UID字段, 并且设置key特性
  • Sui中每个Object都必须有一个 owner, owner可以是:
    • 一个地址
    • 其他object
    • Object是”shared”

Object的所有权

https://github.com/sui-foundation/sui-move-intro-course/blob/main/unit-two/lessons/2_ownership.md

在Sui Move中,Object一共有4种所有权:

  • Owned: owned object交易不需要全局排序
    • Owned by an address
    • Owned by another object
  • Shared
    • Shared immutable:
      • 没有owner, 所有人都不可修改
    • Shared mutable:
      • 任何人都可以读取和修改, shared object交易需要进行全局排序

3_HelloWorld

基础理论知识

  • Sui以Object(对象)为核心(Object有点类似Bitcoin中的UTXO)

  • Sui标准库发布在0x2下面

  • 发布的模块是不可变Object(immutable object),

    • 不可变Object:
      • 不能被修改+不能被转移+不能被删除
      • 任何人都可以使用
  • 结构体的特性(abilities)

    • copy: value can be copied (or cloned by value)
    • drop: value can be dropped by the end of the scope
    • key: value can be used as a key for global storage operations
    • store: value can be held inside a struct in global storage
  • 函数可见性:

    • private: the default visibility of a function; it can only be accessed by functions inside the same module
    • public: the function is accessible by functions inside the same module and by functions defined in another module
    • public(package): the function is accessible by functions of modules inside the same package

HelloWorld

  • 创建move项目: sui move new hello_world

  • Move.toml中的 rev = "framework/testnet" 改为 rev = "framework/devnet"

  • source/hello_world.move 输入完整代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    module hello_world::hello_world {

    use std::string;

    // 自定义结构体
    /// An object that contains an arbitrary string
    public struct HelloWorldObject has key, store {
    id: UID,
    /// A string contained in the object
    text: string::String
    }

    #[lint_allow(self_transfer)]
    public fun mint(ctx: &mut TxContext) {
    let object = HelloWorldObject {
    id: object::new(ctx),
    text: string::utf8(b"hello fucker!")
    };

    // 将 对象转给调用者
    transfer::public_transfer(object, tx_context::sender(ctx));
    }

    }
  • 编译move代码: sui move build

  • 发布package: sui client publish --gas-budget 20000000 ./

    • 可以看到输出之后的package ID
  • export PACKAGE_ID=xxx

  • 调用package : sui client call --function mint --module hello_world --package $PACKAGE_ID --gas-budget 10000000

  • Copyrights © 2021-2025 youngqqcn

请我喝杯咖啡吧~