火山引擎声音复刻API-2.0

火山引擎声音复刻API-2.0使用解释

付费模式解释:

1.字符版本按照字符付费

2.并发版 是按 并发连接数同时使用量 来收费的付费模式,常见于软件、API 服务、云服务等产品中。

上传音频文件demo代码

import base64
import os
import requests


host = "https://openspeech.bytedance.com"


def train(appid, token, audio_path, spk_id):
    url = host + "/api/v1/mega_tts/audio/upload"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer;" + token,
        "Resource-Id": "volc.megatts.voiceclone",
    }
    encoded_data, audio_format = encode_audio_file(audio_path)
    audios = [{"audio_bytes": encoded_data, "audio_format": audio_format}]
    data = {"appid": appid, "speaker_id": spk_id, "audios": audios, "source": 2,"language": 0, "model_type": 1}
    response = requests.post(url, json=data, headers=headers)
    print("status code = ", response.status_code)
    if response.status_code != 200:
        raise Exception("train请求错误:" + response.text)
    print("headers = ", response.headers)
    print(response.json())


def get_status(appid, token, spk_id):
    url = host + "/api/v1/mega_tts/status"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer;" + token,
        "Resource-Id": "volc.megatts.voiceclone",
    }
    body = {"appid": appid, "speaker_id": spk_id}
    response = requests.post(url, headers=headers, json=body)
    print(response.json())


def encode_audio_file(file_path):
    with open(file_path, 'rb') as audio_file:
        audio_data = audio_file.read()
        encoded_data = str(base64.b64encode(audio_data), "utf-8")
        audio_format = os.path.splitext(file_path)[1][1:]  # 获取文件扩展名作为音频格式
        return encoded_data, audio_format


if __name__ == "__main__":
    appid = "填入appid"
    token = "填入access token"
    spk_id = "填入声音ID"
    train(appid=appid, token=token, audio_path="填入音频路径", spk_id=spk_id)
    get_status(appid=appid, token=token, spk_id=spk_id)

00.最后一段填入参数。

报错处理01

C:\Users\ASUS\PycharmProjects\PythonProject\.venv\Scripts\python.exe "C:\Users\ASUS\Downloads\uploadAndStatus (4).py" File "C:\Users\ASUS\Downloads\uploadAndStatus (4).py", line 51 train(appid=appid, token=token, audio_path="C:\Users\ASUS\Desktop\10_Intern\02_AI\Clone_voice", spk_id=spk_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXX

这种错误通常出现在处理文件路径时,因为 Windows 路径使用反斜杠\作为路径分隔符。例如,C:\Users\username\file.txt。在 Python 字符串中,反斜杠需要进行转义,或者使用原始字符串(以r开头)来避免转义。

并且要再最后加上文件名如\01.mp3,不能以所处文件夹结尾

报错处理02

C:\Users\ASUS\PycharmProjects\PythonProject\.venv\Scripts\python.exe "C:\Users\ASUS\Downloads\uploadAndStatus (4).py" Traceback (most recent call last): File "C:\Users\ASUS\Downloads\uploadAndStatus (4).py", line 3, in import requests ModuleNotFoundError: No module named 'requests' 进程已结束,退出代码为 1

这个报错是因为Python 环境中没有安装requests模块。requests是一个常用的用于 HTTP 请求的 Python 库。

pycahrm安装requests库_哔哩哔哩_bilibili

 


不重要的零碎更新,与正文无关


图形学快报

01运动提示视频生成

Motion Prompting: Controlling Video Generation with Motion Trajectories

“Motion Prompting: Controlling Video Generation with Motion Trajectories”可以理解为一种与视频生成相关的技术概念。

“Motion Prompting”指的是运动提示或运动引导。

“Controlling Video Generation”表示控制视频的生成。

“with Motion Trajectories”意思是通过运动轨迹来实现控制。

总的来说,它是利用运动轨迹作为提示或引导,来对视频的生成过程进行控制,以实现特定的运动效果

4D 通常指的是在三维空间(X、Y、Z 轴)的基础上加上时间维度(T)。

特征网格(Feature Grids)是一种用于表示三维场景或对象的数据结构。它将三维空间划分成规则的网格单元,每个单元包含有关该位置的特征信息,例如颜色、纹理、深度等。这些特征可以帮助描述和渲染三维场景。

点云序列(Point Cloud Sequences)则是一系列按时间顺序排列的点云数据。点云是由大量的点组成,每个点都具有位置(X、Y、Z 坐标)以及可能的其他属性,如颜色、法向量等。点云序列可以用来表示随时间变化的三维物体或场景,通过分析这些点在不同时间的位置和属性变化,来理解和呈现动态的三维信息。

以下是为您做的论文内容分段解释:

Step 1: Train a Track Conditioned Video Model(步骤 1:训练一个基于轨迹条件的视频模型)
这意味着首先要创建一个能够根据给定的运动轨迹信息来生成视频的模型。

Step 2: Prompt the model with Motion Prompts(步骤 2:用运动提示来引导模型)
通过提供特定的运动提示,让模型根据这些提示生成相应的视频。包括物体控制、新兴物理现象、几何控制、相机控制、物体与相机的联合控制、运动转移等方面。

Object Control(物体控制)
能够控制视频中物体的运动。

Emergent Physics(新兴物理现象)
模型可能会产生一些类似于现实物理但并非预先设定的现象。

Control with Geometry(几何控制)
通过几何形状来定义和控制运动。

Camera Control(相机控制)
控制相机的运动轨迹。

Object + Camera Control(物体与相机联合控制)
同时对物体和相机的运动进行控制。

Motion Transfer(运动转移)
将一个视频中的运动转移到另一个视频或图像的第一帧。

How to Read these Visualizations(如何解读这些可视化内容)
介绍了如何理解展示的轨迹、输入和生成的视频等可视化元素。

Overview(概述)
首先训练一个基于点轨迹的视频生成模型,这种运动表示非常灵活,可以编码各种类型的运动。通过构建运动提示,可以从视频模型中引出各种不同的行为和能力。

Interacting with Images(与图像交互)
通过用户鼠标的动作和拖动来创建运动提示,由于运动表示的灵活性,可以实现多种交互方式,还可能产生一些新兴现象。

Camera Control from Depth(基于深度的相机控制)
通过单目深度估计获取点云,然后根据用户提供的相机序列来定义期望的相机轨迹,实现各种相机运动效果。

Object Control with Geometric Primitives(用几何原语进行物体控制)
将鼠标动作解释为对几何原语的操作,从而更精细地控制物体运动。

Object and Camera Control by Composition(通过组合实现物体和相机控制)
将相机控制和物体控制的运动提示组合起来,实现同时的物体和相机运动。

Motion Transfer(运动转移)
从源视频向目标的第一帧转移期望的运动,即使是跨领域的运动也能实现,并且在暂停视频时会有特殊的感知效果。

Drag Based Image Editing(基于拖动的图像编辑)
通过对模型的条件设置,可以实现类似于基于拖动的图像编辑效果。

Motion Magnification(运动放大)
对输入视频中细微的运动进行放大并生成新视频。

Failures(失败情况)
有时候运动提示会产生意外和不理想的效果,这可能是由于运动提示的不明确或不够仔细,也可能揭示了视频模型的局限性。

Effect of Text Prompts(文本提示的效果)
在网页中使用文本提示描述图像而非运动,发现文本提示对运动的影响通常不显著。

Effect of Track Sparsity(轨迹稀疏性的影响)
轨迹密度是用户可调节的参数,不同的密度会对视频生成产生不同的影响,存在一个平衡的中间点。

Comparisons(比较)
展示了该方法与其他方法的比较。

Uncurated Samples and Cherry Picking(未筛选样本和精选)
展示了精选和未筛选的随机样本视频,同时也提到了选择输入时可能存在的隐性偏差。

总的来说,是一种复杂但具有创新性的视频生成和控制技术,涉及到多种控制方式和效果的展示,以及对其优缺点和各种影响因素的分析。

02多视角RGB视频重建长体积视频

Long Volumetric Video

 To solve this issue, we propose a novel 4D representation, named Temporal Gaussian Hierarchy, to compactly model long volumetric videos.

论文旨在解决从多视角 RGB 视频重建长体积视频的挑战。近期的动态视图合成方法虽利用强大的 4D 表示(如特征网格或点云序列)能实现高质量渲染,但通常局限于 1 - 2 秒的短视频,处理长视频时内存占用大。为解决此问题,提出了名为 “时间高斯层次结构(Temporal Gaussian Hierarchy)” 的新型 4D representation,能紧凑地对长体积视频建模。关键观察到动态场景通常有不同程度的时间冗余,包括不同变化速度的区域。大量实验表明,该方法在训练成本、渲染速度和存储使用方面优于其他方法,是首个能高效处理数分钟体积视频数据并保持先进渲染质量的方法。

“long volumetric videos”  “长体积视频”。

火山引擎(Vulcan Engine)中,设置USB摄像头驱动通常涉及到操作系统级别的配置和软件集成。以下是大致步骤: 1. **确认平台支持**:首先检查你的硬件平台是否支持USB-C相机,并确保该设备已经在Linux系统中识别。 2. **安装Linux库**:对于USB-C摄像头,你可能需要安装相应的Linux驱动库,如UVC (User-Visible Camera) 驱动,它是一个通用的框架,许多现代摄像头都可以通过它来访问。你可以使用包管理器如`apt-get`或`yum`来安装: ```sh sudo apt-get install libuvc-dev ``` 3. **找到并加载驱动**:如果你有特定的驱动程序,可以从制造商的网站下载并在内核模块下加载,例如`v4l2loopback`。如果不清楚,可以尝试使用`lsusb`命令查看相机的设备ID,并参考开源社区(如GitHub)的相关教程。 4. **配置Vulkan Pipeline**:在火山引擎中,你需要创建一个Vulkan图形管线来连接到摄像头。这通常涉及使用`VkDevice`实例上的`createImagePool`、`createBuffer`等函数,以及`vkCreateGraphicsPipelineLayout`和`vkCreateGraphicsPipeline`创建管道。 5. **读取数据**:使用`VkQueue`对象从分配的内存缓冲区中读取摄像头捕获的数据,然后处理成图像或者其他形式。 6. **监控和调试**:确保摄像头驱动能够正常工作,你可以在日志文件或控制台输出中查看调试信息。 **注意**:火山引擎可能是某个游戏引擎或应用平台的内部组件,具体的驱动设置可能会有所不同。上述步骤提供了一个通用的指南,实际操作时可能需要参考官方文档或者火山引擎的技术文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值