常用语音转换-str2hex_hex2str

基于OpenAI技术栈构建智能语音助手:从GPT、Whisper到TTS的完整工程实践 语音交互作为人机交互的重要方式,其核心在于将自然语言转化为机器可理解并响应的指令。这一过程通常遵循语音识别、自然语言理解、对话管理、语音合成的技术链路。随着大语言模型的发展,AI Agent能够更精准地理解用户意图并生成上下文连贯的回复,极大地提升了智能语音助手的交互体验与实用性。在工程实践中,开发者可以借助成熟的技术栈,例如OpenAI的GPT模型进行意图理解与对话生成,结合Whisper实现高精度语音识别,并利用TTS技术完成自然语音合成,从而快速构建支持连续对话的智能语音应用原型。这种集成方案不仅适用 阅读详情

1. str2hex_hex2str

1.1. python 实现 hex2str, str2hex

python 实现字符串和16进制字符串相互转换

import sys

def str2hex(input_data: str) -> str:
    """将字符串转换为十六进制表示"""
    byte_data = input_data.encode('utf-8')
    return byte_data.hex()

def hex2str(hex_string: str) -> str:
    """将十六进制字符串转换回原始字符串"""
    try:
        byte_data = bytes.fromhex(hex_string)
        return byte_data.decode('utf-8')
    except ValueError as e:
        print(f"错误: 无效的十六进制字符串 - {e}")
        return None

# python str2hex.py str1 str2
if __name__ == "__main__":
    if "68656c6c6f" == str2hex("hello"):
            print("hello hex is 68656c6c6f")
    for i in range(len(sys.argv)-1):
        hex = str2hex(sys.argv[i+1])
        str_data = hex2str(hex)
        print(str_data, hex)
python str2hex.py str1 str2

hello hex is 68656c6c6f
str1 73747231
str2 73747232

1.2. C 实现 hex2str, str2hex

#include <ctype.h>
#include <stdio.h>
#include <string.h>

// 将字符串转换为十六进制字符串,返回实际转换的字节数(成功)或 -1(失败)
int str2hex(char *hex, unsigned int hex_len, unsigned char *str, unsigned int str_len) {
    int i;
    if (str_len * 2 > hex_len - 1) {
        printf("dst buf is not enough! Need %u bytes, but only %u available.\n", str_len * 2 + 1, hex_len);
        return -1;
    }

    for (i = 0; i < str_len; i++) {
        if (snprintf(hex + 2 * i, 3, "%02x", str[i]) != 2) {
            printf("Error converting byte at position %d\n", i);
            return -1;
        }
    }
    return i; // 返回转换的字节数
}

// 将十六进制字符串转换为字节数组,返回实际转换的字节数(成功)或 -1(失败)
int hex2str(const char *src, unsigned char *dst, unsigned int dst_len) {
    unsigned int src_len = strlen(src);
    unsigned int i, j;

    // 检查源字符串长度是否为偶数(每个字节对应两个十六进制字符)
    if (src_len % 2 != 0) {
        printf("Invalid hex string length (must be even)\n");
        return -1;
    }

    // 检查目标缓冲区是否足够大
    if (src_len / 2 > dst_len) {
        printf("dst buf is not enough! Need %u bytes, but only %u available.\n", src_len / 2, dst_len);
        return -1;
    }

    // 转换十六进制字符串为字节数组
    for (i = 0, j = 0; i < src_len; i += 2, j++) {
        char high = toupper(src[i]);
        char low = toupper(src[i + 1]);
        unsigned char value = 0;

        // 转换高4位
        if (high >= '0' && high <= '9') {
            value = (high - '0') << 4;
        } else if (high >= 'A' && high <= 'F') {
            value = (high - 'A' + 10) << 4;
        } else {
            printf("Invalid hex character at position %d: %c\n", i, high);
            return -1;
        }

        // 转换低4位并组合
        if (low >= '0' && low <= '9')
            value |= low - '0';
        else if (low >= 'A' && low <= 'F')
            value |= low - 'A' + 10;
        else {
            printf("Invalid hex character at position %d: %c\n", i + 1, low);
            return -1;
        }

        dst[j] = value;
    }

    return j; // 返回转换后的字节数
}

int main(void) {
    const char *original_str = "hello";
    unsigned int str_len = strlen(original_str);

    // 存储十六进制表示(11字节:10个字符+终止符)
    char hex_str[11] = {0};
    int hex_result = str2hex(hex_str, sizeof(hex_str), (unsigned char *)original_str, str_len);

    if (hex_result >= 0) {
        printf("str -> hex: %s -> %s (bytes converted: %d)\n", original_str, hex_str, hex_result);
    } else {
        printf("Failed to convert string to hex\n");
        return 1;
    }

    // 转换回字符串(6字节:5个字符+终止符)
    char decoded_str[6] = {0};
    int str_result = hex2str(hex_str, (unsigned char *)decoded_str, sizeof(decoded_str));
    if (str_result >= 0) {
        printf("hex -> str: %s -> %s (bytes decoded: %d)\n", hex_str, decoded_str, str_result);
    } else {
        printf("Failed to convert hex to string\n");
        return 1;
    }

    return 0;
}
gcc main.c
./a.out
str -> hex: hello -> 68656c6c6f (bytes converted: 5)
hex -> str: 68656c6c6f -> hello (bytes decoded: 5)

1.3. golang 实现 hex2str, str2hex

package main

import (
	"encoding/hex"
	"fmt"
	"os"
)

// StrToHex 将字符串转换为十六进制表示
func StrToHex(s string) string {
	return hex.EncodeToString([]byte(s))
}

// HexToStr 将十六进制字符串转换回原始字符串
func HexToStr(hexStr string) (string, error) {
	bytes, err := hex.DecodeString(hexStr)
	if err != nil {
		return "", fmt.Errorf("无效的十六进制字符串: %v", err)
	}
	return string(bytes), nil
}

func main() {
	// 自检示例
	testStr := "hello"
	expectedHex := "68656c6c6f"
	actualHex := StrToHex(testStr)
	
	if actualHex == expectedHex {
		fmt.Printf("测试通过: '%s' 的十六进制表示是 %s\n", testStr, expectedHex)
	} else {
		fmt.Printf("测试失败: '%s' 的十六进制表示应为 %s,但得到 %s\n", testStr, expectedHex, actualHex)
	}
}
go run main.go  
测试通过: 'hello' 的十六进制表示是 68656c6c6f
用法: go run str2hex.go [字符串1] [字符串2] ...

1.4. java 实现 hex2str, str2hex

import java.nio.charset.StandardCharsets;

public class HexConverter {

    // 将字符串转换为十六进制表示
    public static String strToHex(String input) {
        if (input == null) {
            return null;
        }
        byte[] bytes = input.getBytes(StandardCharsets.UTF_8);
        StringBuilder result = new StringBuilder();
        for (byte b : bytes) {
            result.append(String.format("%02x", b));
        }
        return result.toString();
    }

    // 将十六进制字符串转换回原始字符串
    public static String hexToStr(String hexInput) throws IllegalArgumentException {
        if (hexInput == null || hexInput.length() % 2 != 0) {
            throw new IllegalArgumentException("无效的十六进制字符串:长度必须为偶数");
        }
        int len = hexInput.length();
        byte[] data = new byte[len / 2];
        for (int i = 0; i < len; i += 2) {
            data[i / 2] = (byte) ((Character.digit(hexInput.charAt(i), 16) << 4)
                                 + Character.digit(hexInput.charAt(i+1), 16));
        }
        return new String(data, StandardCharsets.UTF_8);
    }

    public static void main(String[] args) {
        // 自检示例
        String testStr = "hello";
        String expectedHex = "68656c6c6f";
        String actualHex = strToHex(testStr);
        
        if (expectedHex.equals(actualHex)) {
            System.out.printf("测试通过: '%s' 的十六进制表示是 %s%n", testStr, expectedHex);
        } else {
            System.out.printf("测试失败: '%s' 的十六进制表示应为 %s,但得到 %s%n", 
                             testStr, expectedHex, actualHex);
        }
    }
}
javac HexConverter.java
java HexConverter      
测试通过: 'hello' 的十六进制表示是 68656c6c6f
使用Python的hex函数将整数转换为十六进制字符串 然后,我们使用int.from_bytes()函数将字节数据转换为整数,并指定使用大端字节序。最后,我们再次使用hex()函数将整数转换为十六进制字符串,并将结果打印出来。其中一个有用的函数是hex(),它可以将整数转换为对应的十六进制字符串。总结一下,通过使用Python的hex()函数,我们可以轻松地将整数和其他数据类型转换为十六进制字符串。要将整数转换为十六进制字符串,我们可以使用hex()函数。然后,我们使用hex()函数将该整数转换为对应的十六进制字符串,并将结果存储在变量。 阅读详情

相关推荐

Ai-Agent——语音陪伴助手

这篇文章摘要概述了一个情感语音机器人项目的实践过程: 摘要: 本文详细记录了一个情感语音机器人项目的开发实践,基于前期学习的LangChain和RAG技术基础。项目采用模块化架构实现语音对话全流程,核心包括:1) 通过LiveKit Server处理低延迟音频传输;2) 使用Silero VAD进行静音检测和Faster-Whisper实现语音转文本;3) 接入DeepSeek大模型处理对话逻辑;4) 采用CosyVoice进行音色克隆与语音合成;5) 利用LiveKit Python SDK完成音频回传。

蓝桉 916

c语言hex2str\str2hex等工具

【代码】c语言hex2str\str2hex等工具。

jh_csdn1的博客 1466

str2hex:数据格式转换实用程序

str2hex - 数据格式转换实用程序。 一种数据转换实用程序,可将文件或字符串转换为十六进制数字编码的不同表示形式,以及 Base64,甚至 MD5。 这是我 10 多年前编写的第一个 C 程序之一,所以不要严格判断:) 建造 它很简单: % make 用法 Usage: str2hex [params] <string> or: str2hex [params] '<string>' Params: -f <file> Read input from the file (Default is STDIN). -o <file> Output to the file (Default is STDOU). -q Ignore "new line" symbols. -h This help. -v Ve

python中string和十六进制、二进制互转

def str_to_hex(s): return ' '.join([hex(ord(c)).replace('0x', '') for c in s]) def hex_to_str(s): return ''.join([chr(i) for i in [int(b, 16) for b in s.split(' ')]]) def str_to_bin(s): return ' '.join([bin(ord(c)).replace('0b', '') for c in ...

人生苦短 1057

Win11下Wezterm配置Powershell默认终端全攻略(含主题同步技巧)

本文详细介绍了在Windows 11系统中,如何安装和配置Wezterm终端模拟器,并将其设置为PowerShell的默认终端。内容涵盖使用Winget或手动安装Wezterm,通过修改.lua配置文件切换默认Shell,并同步Campbell主题配色以还原熟悉的PowerShell视觉体验,旨在帮助开发者打造高效、个性化的命令行工作环境。

weixin_28363123的博客 1215

Mit6.S081-实验1-Xv6 and Unix utilities

Mit6.S081-实验1-Xv6 and Unix utilities前言一、Boot xv61,实验目的2,操作流程1)切换到xv6-labs-2020代码库的lab1分支2)启动xv63)测试xv64)过程分析5)其他操作二、在xv6中添加一个自己编写的程序1,源码准备2,编译配置3,测试添加程序4,过程分析三、xv6中shell简析 前言 一、Boot xv6 1,实验目的 利用qemu启动xv6 2,操作流程 1)切换到xv6-labs-2020代码库的lab1分支 git checkout ut

code a better life~ 36万+

str2hex格式化字符串以十六进制输出

#!/bin/python # str2hex : print hex of str arr=" select * from test.tb01; " for i in arr:   print('%#x'%ord(i)),    [root@abc home]# ./str2hex.py  0x20 0x73 0x65 0x6c 0x65 0x63 0x74 0x20 0x2a 0x20 0...

sunny05296的博客 5398

最大似然估计、梯度下降、EM算法、坐标上升

主要讲解的是机器学习中参数学习算法之间的区别,以及应用的场景。 最大似然估计: 其中目标函数是对数似然函数。为了求目标函数取最大值时的theta。有两个关机键步骤,第一个是对目标函数进行求导,第二个是另导数等于0,求解后直接得到最优theta。两个步骤缺一不可。 梯度下降: 对目标函数进行求导,利用导函数提供的梯度信息,使参数往梯度下降最快的方向移动一小步,来更新参数。为什

tzl2093的博客 5141

树莓派实现Modbus TCP到声光语音终端字节帧协议转换

Modbus TCP是工业自动化中最常用的上位机通信协议,而新型声光语音终端常采用自定义TCP字节帧协议,两者无法直连。其核心原理在于构建一个透明中间人代理,监听标准Modbus TCP请求,解析功能码与寄存器地址,动态映射为含帧头、长度域、命令ID、参数及CRC16-MODBUS校验的原生字节流。该方案规避了商业网关配置僵化、调试黑盒、成本高昂等痛点,具备高可维护性与零上位机侵入性,特别适用于老旧SCADA系统升级场景。本文基于树莓派4B与Python实现,完整覆盖TCP socket双工管理、动态帧构造

weixin_34192816的博客 255

大语言模型的三种主要架构 Decoder-Only、Encoder-Only、Encoder-Decoder

f基于 Transformer 模型以非灰色显示:decoder-only 模型在蓝色分支,encoder-only 模型在粉色分支,encoder-decoder 模型在绿色分支。模型在时间线上的垂直位置表示它们的发布日期。开源模型由实心方块表示,而闭源模型由空心方块表示。右下角的堆积条形图显示了各公司和机构的模型数量。从时间轴上,我们可以看到:2021年前,当 OpenAI 决定在,他们实际上是在逆流而上。

u010899985的博客 2万+

Hermes Agent 彩蛋大盘点:藏在终端里的浪漫

本文主要介绍了Hermes Agent 彩蛋大盘点:藏在终端里的浪漫,希望能对使用Hermes Agent的同学们有所帮助。 文章目录 1. 前言 2. Spinner 动画 3. Kawaii 表情 4. 思考动词 THINKING_VERBS 5. 皮肤主题 6. 启动 Banner 7. 工具 Emoji 8. 内置人格 9. SOUL.md —— Agent 的灵魂 10. BOOT.md —— 启动自动执行 11. 随机 Tips 12. 统计总览

weixin_43178406的博客 7万+

用Python+FastAPI打造语音通话Demo:融合语音识别与合成技术

语音交互是人工智能领域的基础应用之一,其核心链路包括语音识别(STT)与语音合成(TTS)。语音识别将人类语音转为文本,语音合成则将文本还原为自然语音,两者结合可构建出具备听、说能力的对话系统。在智能客服、虚拟主播、陪伴机器人等场景中,这类技术已广泛落地。本文基于FastAPI框架,结合Vosk离线语音识别与edge-tts语音合成,从零搭建一个模拟电话通话的语音交互Demo,完整展示录音上传、识别、对话决策与合成回复的工程过程。无需特殊硬件,浏览器即可运行,适合快速理解语音交互后端架构与实现要点。

weixin_34166472的博客 395

MDF和DHF、DMR、DHR三者差异?注册与备案文件?医疗器械产品技术要求编写指导原则

定义:设计历史文档(DHF ) 指的是描述某医疗器械成品设计过程的有关记录。内容:DHF包括设计开发活动的所有记录。从最初的策划、客户需求、设计输入,设计输出、设计验证、设计确认、所有的设计评审,设计转换,以及设计变更相关的所有记录。均属于DHF的一部分。要求:各制造商应为每个类型的器械建立并保持设计历史文件。设计历史文件应包含或引用必要的记录,以证实设计符合经批准的设计计划和法规的要求。

学海无涯的专栏 9110

从语音识别到智能决策:基于开源技术栈构建语音智能体实战

语音交互技术正从基础的自动语音识别(ASR)和语音合成(TTS)向具备认知与决策能力的智能体演进。其核心原理在于整合大语言模型(LLM)作为“思考中枢”,通过工具调用框架连接外部API,实现从“听清说准”到“理解意图并执行任务”的跨越。这一技术架构在智能客服、车载语音、个人助手等场景中具有重要价值,能够处理多轮对话、知识检索和任务规划等复杂交互。本文以实战项目为例,详细演示了如何使用Whisper、Ollama和FastAPI等开源组件,搭建一个具备基础“思考”能力的语音对话引擎原型,涵盖环境配置、核心模块

weixin_33895695的博客 345

1-Wire 单总线硬件结构及软件时序分析(实测波形+C代码分析)

1根线就可以通信,是不是很神奇?因为其节省I/O口的优点而被广泛使用!

记得诚 1万+

6.4 直流无刷电机(BLDC):测试与性能评估

本文系统阐述了直流无刷电机(BLDC)的测试与性能评估方法,涵盖参数测量、性能测试、测试平台设计及可靠性评估。详细介绍了绕组电阻、电感和反电动势的测量原理与修正方法,以及转矩-转速特性、效率分析和动态响应测试的技术要点。通过搭建高精度测功机系统,结合自动化数据处理,实现对电机性能的全面评估。最后讨论了温升、振动、EMC等特殊测试方法,为BLDC电机的设计验证和质量控制提供了完整的技术路径。

技术工作者 444

LiveKit+阿里云语音交互:实时语音对话Agent搭建实战

实时语音对话Agent是“听—想—说”闭环,核心依赖语音识别(ASR)和语音合成(TTS)。WebRTC作为实时通信底座,LiveKit提供了媒体传输、信令和会话管理能力。然而在中文场景下,直接使用海外语音服务面临延迟高、数据出境等问题。将ASR/TTS替换为阿里云智能语音交互,利用其国内节点和低延迟网关,能显著改善首包时延和稳定性。基于LiveKit与阿里云语音交互的架构设计、插件开发、部署上线到高频报错排查,完整呈现了实时语音对话Agent的落地实践,适合正在构建会话式AI应用的开发者参考。

weixin_33851177的博客 363

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

网络实现语音

这段代码为网友wysaid提供,所以我拿来学习了。 具体的功能是,输入一段文字,通过网络返回语音文件。 #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <wininet.h> #pragma comment(lib, "winine...

weixin_38166557的博客 80

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

从零构建语音交互AI智能体:基于LangChain与开源模型的实战指南

语音交互作为人机交互最自然的方式,其核心在于语音识别(ASR)与语音合成(TTS)技术的结合。ASR负责将人类语音转换为机器可理解的文本指令,而TTS则将机器生成的文本回复转化为自然语音,共同构成了智能体与外界沟通的感知与表达通道。这项技术的价值在于极大地降低了交互门槛,使得用户无需学习复杂界面,通过自然对话即可完成查询、控制等任务,从而在智能客服、个人助理、无障碍交互等场景中发挥关键作用。本文以构建一个名为“Viktor”的AI员工为例,详细演示了如何利用LangChain框架整合Qwen2.5等开源大语

weixin_34297704的博客 446

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Edge-TTS终极指南:如何免费使用微软高质量语音合成API

想要免费使用微软Edge的高质量文本转语音服务吗?Edge-TTS就是你的答案!这个强大的Python模块让你无需Microsoft Edge浏览器、Windows系统或API密钥,就能直接访问微软的神经网络语音合成技术。支持超过140种语言和400多种不同声音,完全免费且跨平台兼容! ## 🚀 快速开始:5分钟上手Edge-TTS ### 安装Edge-TTS 安装Edge-TTS非常简

gitblog_00141的博客 780

Edge-TTS深度解析:微软语音合成服务的Python逆向工程架构剖析

Edge-TTS作为一个开源Python模块,通过逆向工程微软Edge的在线文本转语音服务,实现了无需Microsoft Edge浏览器、Windows系统或API密钥即可访问高质量语音合成能力的技术突破。本文将从技术架构、实现原理、性能优化等角度深入剖析这一创新项目。 ## 1. 项目定位与价值主张:打破微软生态壁垒的桥梁技术 Edge-TTS的核心价值在于其作为**微软语音服务与开源生态的

gitblog_00568的博客 957

基于VITS开源TTS实现十二星座专属语音合成:从原理到工程实践

语音合成(TTS)技术旨在将文本转换为自然流畅的语音,其核心原理通常涉及文本分析、声学模型和声码器。随着深度学习的发展,端到端神经TTS模型在音质和自然度上取得了显著突破。这项技术的价值在于能够为各类应用提供高度定制化和可控的语音输出,从而提升用户体验和沉浸感。在游戏角色、虚拟助手、有声内容创作等应用场景中,对多样化、风格化的语音需求日益增长。本文聚焦于利用开源VITS框架,通过风格向量和说话人嵌入技术,低成本实现“十二星座专属声音”这类高度定制化的语音合成方案,并提供了从环境搭建、模型推理到Web服务部署

weixin_30905981的博客 416

基于FastAPI与开源引擎构建自部署语音处理后端实战指南

语音识别(ASR)与语音合成(TTS)作为人工智能语音交互的核心技术,通过将音频信号与文本信息相互转换,实现了人机自然语言沟通。其技术原理通常涉及声学模型、语言模型及信号处理,在数据隐私、成本控制与定制化需求场景下具有重要价值。本文聚焦于使用FastAPI框架,集成Vosk、Coqui TTS等开源引擎,从零构建一个可独立部署的轻量级语音处理后端服务,涵盖环境配置、核心模块封装、RESTful API设计及生产级优化方案,为开发内部工具或需要数据本地化的项目提供完整工程实践路径。

weixin_34072458的博客 413

Grok Voice 语音客服网关实战:用 FastAPI 与 ASR 服务 Starlink 用户

语音交互正在重塑客服与销售场景。以 Grok Voice 为代表的多模态语音能力,将语义理解、对话管理、语音合成整合在同一条链路中,为自动化客服提供了新的技术路径。在 Starlink 这类全球卫星互联网服务中,用户分布广泛、网络链路复杂,客服系统需处理弱网通信、噪声环境、多语言等问题。理解链路 QoS 指标,构建适配音频缓冲、丢包补偿的语音网关,才能保证服务稳定。本文从语音识别(ASR)与文本转语音(TTS)的基础原理出发,结合 WebSocket 实时通信与大模型桥接层,介绍如何设计并实现一套面向语音客

weixin_30236595的博客 367

基于Whisper与FFmpeg的本地化游戏语音高光剪辑自动化方案

语音识别(ASR)技术是实现音频内容结构化处理的基础,其核心原理是将连续的语音信号转换为可读的文本信息。在工程实践中,结合自然语言处理(NLP)技术,可以进一步对文本进行情感分析和关键信息提取,从而挖掘音频中的高价值片段。这一技术组合在内容创作领域具有重要价值,能够显著提升从海量原始素材中定位精彩内容的效率。其典型应用场景包括电竞集锦制作、直播切片、会议纪要自动生成等。本文聚焦于游戏语音处理,详细介绍了如何利用Whisper模型实现高精度语音转字幕,并结合自定义规则进行高光片段检测,最终通过FFmpeg完成

weixin_34274029的博客 439

15.ai关停后,如何用开源TTS方案实现本地AI语音合成部署

文本到语音(TTS)技术作为人工智能的重要分支,通过深度学习模型将文字信息转换为自然流畅的语音输出。其核心原理基于序列到序列的神经网络架构,能够学习文本与语音特征之间的复杂映射关系。这项技术的价值在于打破了人机交互的语音屏障,为无障碍访问、智能助手和多媒体内容创作提供了关键技术支撑。在实际应用场景中,TTS广泛应用于语音导航、有声读物、视频配音等领域。随着15.ai等在线服务的关停,本地部署开源TTS方案成为保障服务连续性的重要选择。以Coqui TTS为代表的开源工具支持多角色语音合成和情感控制,用户可以

weixin_30279671的博客 359
上一篇: python工具-base64-zip-json
下一篇: python工具-c-struct-decode
knowledgebao
博客等级 码龄15年 401粉丝 198原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值