tag 标签: 教程

相关博文
  • 热度 1
    2023-9-20 10:57
    188 次阅读|
    0 个评论
    一、实验目的 了解FFT的作用,掌握FFT 算法的算法原理、计算量和算法特点,实现FFT算法并通过CCS图形窗口查看结果。 官方网站:www.tronlongtech.com 二、实验原理1、傅里叶变换 傅里叶变换可以将一个信号从时域变换到频域。时域信号在经过傅立叶变换的分解之后,变为了不同正弦波信号的叠加,我们再去分析这些正弦波的频率,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。 2、离散傅里叶变换 离散傅里叶变换作为信号处理中最基本和最常用的运算,在信号处理领域占有基础性的地位,如果直接按照离散傅里叶变换的公式进行计算,求出N点X(k)需要N^2次复数运算、N(N-1)次复数加法,当N很大时,运算量是非常大的,这对于实时处理是无法接受的。 3、FFT算法 傅里叶快速算法的提出,使傅里叶变换成为一种真正实用的算法。根据傅立叶变换的对称性和周期性,我们可以将DFT运算中有些项合并。 在计算机上进行的DFT,使用的输入值是时域的信号值,输入采样点的数量决定了转换的计算规模。变换后的频谱输出包含同样数量的采样点,但是其中有一半的值是冗余的,通常不会显示在频谱中,所以真正有用的信息是N/2+1个点。FFT算法的原理是通过许多小的更加容易进行的变换去实现大规模的变换,降低了运算要求,提高了与运算速度。FFT不是DFT的近似运算,它们完全是等效的,FFT的过程大大简化了在计算机中进行DFT的过程。 4、程序流程 程序流程设计中首先产生测试信号,接着确定FFT基和旋转因子,然后进行FFT和FFT逆变换运算,最后输出FFT结果 5、数字信号处理库 本实验中的FFT算法是基于TI提供的数字信号处理库完成的。 DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多,可以缩短应用程序开发时间。实验中使用的是 dsplib_c674x_3_4_0_0 。 6、dsplib_c674x_3_4_0_0 在CCS5.5 的安装路径安装DSPLIB后,会有相应的文件夹出现,包含组件库、头文件、测试示例和源码等。 7、函数源码FFT运算函数 程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后 查看。 调用的FFT函数中: 第一个参数是样本中FFT 的长度; 第二个参数是指向数据输入的指针; 第三个参数是指向复杂旋转因子的指针; 第四个参数是指向复杂输出数据的指针; 第五个参数是指向包含64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂; 第六个参数是4,否则 第六个参数是 2 ; 第五个参数是从主FFT开始的样本中的子 FFT偏移索引 。; 第六个参数是样本中主FFT的大小。 FFT逆变换函数 程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。 调用的IFFT函数中: 第一个参数是样本中FFT 的长度; 第二个参数是指向数据输入的指针; 第三个参数是指向复杂旋转因子的指针; 第四个参数是指向复杂输出数据的指针; 第五个参数是指向包含64 个条目的位反转表的指针 ; 如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2 ; 第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 ; 第八个参数是样本中主FFT的大小。 8、二进制位翻转 FFT和FFT 逆变换函数中的第五个参数brev是指向包含64个表项的位反转表的指针,因此程序中需要提供64个表项,程序中的位反向表是计算出来的,可以通过代码提前转换的。 采用位反转的原因是因为FFT算法的蝶形内部两点交叉使数据以反转的方式输出而不是数字反转顺序。 二进制位翻转表的原理 首先确认二进制数的位数,64个数只需要有6位的二进制位数; 接着将二进制数分成两部分,前五位一部分,最后一位一部分; 最后进行二进制翻转,把最后一位放到最高位,剩下的五位进行翻转依次放入。 数组内存放的依次是0~63的二进制翻转结果,我们可以来看一个例子, (点击鼠标)以数字5为例,(点击鼠标)转换为二进制数是000101 (点击鼠标)接着进行二进制翻转,将“00010”看为一个部分,“1”看为一个部分,那么将“1”放到第一位,然后将后面的数据翻转过来进行放置即可 (点击鼠标)最后进行十六进制转换得到0x28,所以在数组的第6个数字为0x28。 三、操作现象 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,程序执行完成后会在断点处停下。 Single Time"选择单时域信号图,在弹出的界面设置相关参数,可查看DSP计算的FFT结果。 FFT Magnitude",在弹出的界面设置相关参数,可查看CCS计算的FFT结果。 对比后,可发现CCS和DSP计算的FFT结果相同, 实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
  • 热度 2
    2023-8-8 14:23
    305 次阅读|
    0 个评论
    实验目的 本节视频的目的是学习USB OTG的运用和工作原理,并实现USB从方式,将实验板模拟成一个USB存储设备,实现主机和实验板之间的数据传输。 实验原理硬件原理图 实验过程中使用的是USBOG接口T 本节视频的目的是学习USB OTG的运用和工作原理,并实现USB从方式,将实验板模拟成一个USB存储设备,实现主机和实验板之间的数据传输。 USB(Universal Serial Bus) 通用串口总线,USB为解决即插即用PnP(Plug and Play)需求而诞生,支持热插拔。能在不断电的情况下,插拔USB设备。 USB协议版本有USB1.0、USB1.1、USB2.0、USB3.0等,USB2.0目前比较常用,以下以2.0为主介绍。由于USB是主从模式的结构(所有的通信都由主机发起,设备不能发起),故设备与设备之间、主机与主机之间不能互连,为解决这个问题,扩大USB的应用范围,出现了USB OTG,全拼 ON The Go。USB OTG连接的同一个设备,在不同的场合下可在主机和从机之间切换。 USB家族成员可以分为以下: USB Host:USB主机,一般是PC机。 USB Device:即USB设备,有USB键盘、U盘等,而USB Hub集线器是一种特殊的USB设备。 USB OTG:OTG即On-The-Go,同时具备USB主机和USB设备的功能,数码相机就带有OTG的功能。 USB OTG 根据USB接口所属协议,OTG可分为5类: USB2.0 OTG:理论传输速率480Mbps,即60MB/s Micro 5PIN OTG Mini 5PIN OTG Micro USB3.0 OTG:USB3.0的理论数据传输速率是5Gbps/10bitt=500MB/s Type C OTG USB接头匹配表 Micro、Mini和TypeC 是比较常见的接口,在本实验中使用的是Mini USB接口。 匹配USB连接线 本实验中使用的是Mini USB线 主机和从机 USB体系包括"主机"、"设备"、"物理连接"三个部分。 主机是一个提供USB接口及接口管理能力的硬件、软件的复合体,可以是PC,也可以是OTG设备。一个USB系统中仅有一个USB主机; 设备包括USB功能设备和USB集线器,最多支持127个设备,这是因为协议规定了每个USB设备具有一个7bit的地址(取值范围0~127,而地址0是保留给未初始化的设备使用的); 物理连接指的是USB的传输线使用屏蔽的双绞线。 A型母口插座 B型公口插头 设备的初始功能是通过定义连接器来实现的。OTG定义了一个叫做MiniAB的插孔,他能直接接入MiniA或者MiniB插口,MiniAB有一个ID引脚 上拉至电源端,MiniA插头有一个与地连接好的ID(R 100 kΩ)。当2个OTG设备连接到一起的时候 ,MiniA插头边的ID引脚会注入一个“0”状态,MiniB插头边的ID引脚为 “1”,ID为0的OTG设备默认为主机(Adevice),ID为1的OTG设备默认为从机(B device)。 数据流模型 USB接口层为OTG主机和OTG设备提供物理连接,USB系统软件使用主机控制器来管理主机与 USB设备的数据传输。USB系统软件相对于主机控制器而言,处理的是以客户角度观察的数据传输及客户与设备的交互。USB设备层为USB主机系统软件提供一个可用的逻辑设备。主机通过与之功能匹配的客户软件实现其各种功能。 OTG设备与以往的USB设备一样有两种通道:数据流通道和消息通道。数据流通道没有定义好的结果,而消息通道则有固定的结构。但是,每个通道都有一定的带宽、传输类型、传输方向和缓冲区大小。自供电设备配置一个默认的控制通道,由他提供该设备的配置和状态等信息。 程序流程 程序流程设计中首先要进行外设使能配置,接着初始化设备的状态,进行DSP和USB的中断初始化,初始化USB大容量设备和DMA,最后分配数据缓冲区并进行USB数据的接收传输 初始化源码初始化USB设备 使用StarterWare 库函数初始化大容量存储设备。相关函数通过“usbdmsc.h”文件引用。 StarterWare API 接口 void *USBDMSCInit(unsigned int ulIndex, const tUSBDMSCDevice *psDevice) 初始化USB大容量存储设备的函数源码和使用说明可以查看usbdmsc.c。其中,第一个参数是要为大容量存储类设备操作初始化的USB控制器的索引。第二个参数是指向包含自定义大容量存储设备操作的参数的结构。 DMA初始化源码初始化DMA 使用StarterWare 库函数初始化DMA。相关函数通过“cppi41dma.h”文件引用。 StarterWare API 接口 void Cppi41DmaInit(unsigned short usbDevInst, endpointInfo *epInfo, unsigned short numOfEndPoimts) 初始化DMA的函数源码和使用说明可以查看cppi41dma.c。其中,第一个参数是USB设备实例。第二个参数是端点信息结构。第三个参数是要配置的端点总数。 DMA数据接收传输源码DMA数据接收传输 使用StarterWare 库函数接收传输DMA数据。 相关函数通过“cppi41dma.h”文件引用。 StarterWare API 接口 void doDmaRxTransfer(unsigned short usbDevInst, unsigned int length, unsigned char *buff, unsigned int endPoint) DMA数据接收传输的函数源码和使用说明可以查看cppi41dma.c。其中,第一个参数是USB设备实例。第二个参数是数据缓冲区的长度。第三个参数是要数据缓冲区。第四个参数是接收数据的端点。 操作现象硬件连接 (1)使用Mini USB线连接实验板的USB OTG和电脑端的USB接口。 (2)连接仿真器和电脑的USB接口, (3)将拨码开关拨到DEBUG模式01111, (4)连接实验箱电源,拨动电源开关上电。 软件操作 导入工程,选择Demo文件夹下的对应工程 编译工程 将CCS连接开发板并加载程序 点击运行程序 可看到弹出格式化提示界面,点击”格式化磁盘”,点击”开始”,点击”确定”,可以在PC中看到新产生约48MByte大小的可移动磁盘盘符,可以像操作普通的U盘一样操作此磁盘。请保持实验箱状态和连接,进行下面的速度测试步骤。 双击测试软件文件,选择磁盘,选择32MByte空间,然后点击”开始”按钮,等待3分钟左右,可以在界面中看到文件读写速度测试结果。 可看到当传输文件达到64KByte以上,读和写速度可以分别稳定在24MByte/S和23MByte/S左右。 实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
  • 热度 3
    2023-6-27 11:53
    416 次阅读|
    0 个评论
    实验目的 本教程是基于创龙教仪TL6748-PlusTEB操作完成的。 本次教程学习的目的是了解HD7279A-SP驱动芯片特性和数码管控制的原理,并实现控制数码管的显示。 实验原理硬件原理图 找到NIXIE TUBE,可看到控制数码管的管脚分别为:GPIO6 )、SPI1_SCSn2、SPI1_CLK和SPI1_SIMO。由两个5461数码管组成,使用HD7279A-SP芯片控制数码管的显示。 功能框图 数码管分为共阴极和共阳极两种类型,TL6748-PlusTEB实验箱使用的5461数码管为共阴极,是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。 HD7279A-SP驱动芯片 HD7279A-SP驱动芯片是一片具有串行接口的、可同时驱动8位共阴式数码管或64只独立LED的智能显示驱动芯片。该芯片同时还可连接多达64键的键盘矩阵,单片即可完成LED显示及键盘接口的全部功能。 HD7279A-SP内部含有译码器,可直接接收BCD码或16进制码,并同时具有2种译码方式。此外,还具有多种控制命令,例如消隐、闪烁、左移、右移和段寻址等。 HD7279A具有片选信号,可方便地实现多于8位的数码管显示。 HD7279A一共有28个引脚,包含电源、地、片选信号、时钟信号、串行数据输入输出端口等。 HD7279A HD7279A采用的是通信方式是串行通信,串行数据从DATA引脚送入芯片,并由CLK端同步,当片选信号变为低电平之后,DATA引脚上的数据在CLK引脚的上升沿被写入HD7279A的缓冲寄存器。 方向配置源码 将GPIO配置为输出的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数时GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的方向。 数据配置源码 配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。 操作现象 导入工程 编译工程 将CCS连接开发板并加载程序 点击运行程序 可以看到数码管循环演示的各种显示效果。 (1)首先,数码管全部点亮闪烁,接着从00000快速计数到10000, (2)接着在第4位按不译码方式显示一字符”三”,"三"字向左运动3次,再向右运动3次。 (3)然后从左边开始依次显示 0123456789-EHLP,然后从右边开始依次显示0123456789AbCEF,显示完后,从左往右开始逐个消失, (4)最后,八个数码管的64个显示段被逐个点亮,同时将前一个显示段关闭。然后又重新恢复显示。数码管的每一段都可被正常点亮.
  • 热度 1
    2023-6-21 11:17
    138 次阅读|
    0 个评论
    实验目的 本教程是基于创龙教仪DSP教学实验箱:TL6748-PlusTEB完成录制的。 本节视频的目的是了解 UART 的功能和结构,学习RS485 串口通信协议,并实现RS485 串口收发功能。 实验原理 RS485 RS485是通信物理层的标准接口,一种信号传输方式,OSI(开放系统互连)模型的第一级。 创建 RS485 是为了扩展 RS232 接口的物理功能。 RS485是使用两根或三根电线的电缆完成的:一根数据线、一根带反转数据的电线,通常还有一根零线(接地,0 V)。主要思想是通过两根电线传输一个信号。 当一根电线传输原始信号时,另一根电线传输其反向副本。 用作传输线的双绞线可以是屏蔽或非屏蔽的。 ​ RS485接口的主要优点 (1)通过一对双绞线进行双向数据交换; (2)支持连接到同一条线路的多个收发器,即创建网络的能力; (3)通讯线长; (4)高传输速度。 RS485通信的主要特点 (1)双向半双工数据传输 串行数据流可以在一个方向传输,数据传输到另一侧需要使用收发器。 (2)对称通信通道 接收或传输数据需要两条等效的信号线。 电线用于在两个方向(交替)交换数据。 在双绞线电缆的帮助下,对称通道显着提高了信号的稳定性并抑制了有用信号产生的电磁辐射。 (3)多点通信 RS485通讯线可以连接多个接收器和收发器。 同时,一个发送器和多个接收器一次可以连接到一根通信线路上。 所有其他需要连接的发送器应等待通信线路空闲以进行数据传输。 RS485接口 控制管脚分别为: UART1_RXD 和 UART1_TXD。 CON16 是由 UART1 通过 ISO3082DW 串口转换芯片得到的 RS485 串口。 ​ UART 全称Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。 UART是一种通用串行数据总线,用于异步通信,异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,但在同一个字符中的两个相邻位间的时间间隔是固定的。该总线双向通信,可以实现全双工传输和接收。串行通信是指利用一条传输线将资料一位位地顺序传送,特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。在嵌入式设计中,UART用于主机与辅助设备通信,如PC机通信包括与监控调试器和其它器件。 ​ UART特点 (1)通用异步 (2)串行低速总线 (3)全双工 (4)需要约定通信速率 (5)只能点对点通信 UART功能框图 接收器的FIFO,可以缓冲一部分数据,能提高接收速率的效率 中断控制逻辑单元,用于产生中断信号让CPU响应 串转并的数据接收口 并转串的发送口 UART通信的整体流程是数据通过UARTn_RXD接收数据通过移位寄存器将串行通信转并行通信后经过一系列的协处理后最后通过发送寄存器将并行通信转为串行通信由UARTn_TXD发送出去 ​ UART通信模式 (1)单工:数据传输仅能沿一个方向,不能实现反向传输。 (2)半双工:数据传输可以沿两个方向,但需要分时进行(RS485) (3)全双工:数据可以同时进行双向传输。 ​ UART通信协议 起始位 : 发出一个逻辑 0 信号,表示传输字符的开始。 数据位 : 数据位的个数可以是 5、6、7、8 等,构成一个字符。通常采用ASCII码(7位),从最低位开始传送。 校验位 : 数据位加上这一位后,使得 1 的位数应为偶数(偶校验)或奇数(奇校验),以此来校验传输的正确性。 停止位 : 数据的结束标志。可以是 1 位、1.5 位、2 位的高电平。 空闲位 : 处于逻辑 1 状态,表示当前线路上没有数据传送。 ​ 波特率 指的是串口通信的速率,也就是串口通信时每秒钟可以传输多少个二进制。譬如每秒钟可以传输9600个二进制位,波特率就是9600。 串口通信的波特率不能随意设定,而应该在一些值中选择,一般常见的波特率是9600和115200(低端单片机如51常用9600,高端单片机和嵌入式SoC一般用115200)。 (1)通信双方必须事先设定相同的波特率这样才能成功通信,如果发送方和接受方按照不同的波特率通信则根本收不到,因此比特率最好是大家熟知的而不是随意指定的 (2)常用的波特率经过长久发展,就形成了共识,常用9600 和115200。 数据配置源码 配置GPIO输出值的函数源码和函数使用说明可以查看gpio.c。其中,第一个参数是GPIO的基地址,第二个参数是GPIO的编号,第三个参数设置GPIO的电平。 ​ 数据发送源码 配置UART数据发送的函数源码和函数使用说明可以查看uart.c。其中,第一个参数是UART正在使用的内存地址,第二个参数是要传输的字节。 ​ 数据接收源码 配置UART数据接收的函数源码和函数使用说明可以查看uart.c。输入的参数是UART正在使用的内存地址。 ​ 操作现象 实验设备 软件 本实验所需使用的软件是CCS5.5和串口调试工具Xshell。 ​ ​ 本实验使用的硬件接口为RS485接口,所需硬件为实验板、仿真器、RS485转串口模块、USB转RS232串口线和电源。 ​ 硬件连接 (1)使用 RS485 转串口模块和 USB 转 RS232 串口线连接实验板的 RS485 串口和电脑的 USB 口。 (2)连接仿真器和电脑的USB接口, (3)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 ​ 软件操作 (1)先在设备管理器查看串口的端口号; (2)再设置串口调试工具,波特率设置为115200。 ​ 导入工程,选择Demo文件夹下的对应工程 编译工程 将CCS连接实验箱并加载程序 点击运行程序,串口终端会打印相关信息 通过电脑键盘输入任意字符, 可在串口终端回显。 ​
  • 热度 2
    2019-7-7 11:33
    4433 次阅读|
    3 个评论
    【零基础】speech driven animation中文安装使用指南
    注:原项目名叫Speech-Driven Animation,所以我这里就简称为SDA 开局一张图,后面自动编   相信前段时间爆火的DeepNude(AI扒衣)让很多人惊掉了大牙,AI还能干这个?!如果你还不知道什么是DeepNude现在可以百度一下了,关注公众号“零基础爱学习”回复“DeepNude”也可以获取更多信息。   现在长江后浪推前浪,一浪更比一浪强啊,来自伦敦帝国学院的iBUG小组近日开源了一个AI项目SDA(Speech-Driven Animation),只需要一张图片,唱歌说话视频自动生成!比如:   施瓦辛格:      开始说话:      除了自动根据语音对口型,SDA还可以指定情绪,比如:   开心:      难过:      如果只是介绍下SDA就太没意思了,所以各位喜爱学习的程序员们有福了,本文其实是一篇完整的SDA安装和使用指南!(耗时一周整理完成!)。虽然本文已非常详细,不过开始之前还是有一点小小的要求:   1、必须要会用linux,熟悉Ubuntu最好   2、必须要会编程,熟悉python更好 Ubuntu与基础环境   使用SDA最大的坑就是操作系统一定要用Ubuntu!我一开始用centos来着,各种报错!换了Ubuntu各种顺利!比如项目需要用python3.6,而centos默认是2.7,安装的话一般会装3.8,结果就是不得行!必须是python3.6!项目也没啥文档,全靠自己摸索的!基础环境就两个重点:   1、操作系统:Ubuntu(重要!)     我下载的版本是这个“ubuntu-18.04.2-live-server-amd64.iso”   2、python3.6(Ubuntu默认自带python3.6) git与git lfs安装   SDA项目发布在git,其中AI训练生成的数据包大概有2G左右,所以需要使用git lfs(大文件专用)来下载项目源码    1、安装git   sudoapt install git    2、安装git lfs   sudo apt install git-lfs   sudogit init   sudo git lfs install 依赖包安装   SDA项目使用了大量的python扩展包,比如torch、scikit、opencv等等,这里我们先安装一些依赖包    1、pip,先安装pip,后面一些依赖包需要使用pip   sudo apt install python3-pip    2、setuptools,安装python扩展包必备工具   sudo apt install python3-setuptools    3、一些建议先安装的包(文末附下载方式)    这几个包是安装SDA时会自动下载安装的,如果你发现下载比较慢的话(torch有600多M)可以试试先从百度云下载(文末附下载链接)自行安装。    1)opencv     sudo pip3 install opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl    2)torch     sudo pip3 installtorch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl    3)scikit     sudo pip3 installscikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl    4)scipy     sudo pip3 installscipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl    4、ffmpeg, SDA涉及视频操作,所以ffmpeg是必须安装的,这里我们直接从git获取安装包     sudogit clone https://git.ffmpeg.org/ffmpeg.git ffmpeg   到下载的ffmpeg包中依次执行./configure、make、make install 安装SDA(speech-driven-animation)   SDA安装包可以通过git lfs直接获取(2G左右),也可以从云盘下载(文末附下载链接)。这里演示的是从git lfs下载。    1、获取SDA安装包   sudo git lfs clone https://github.com/DinoMan/speech-driven-animation.git    2、git会下载一个目录speech-driven-animation,进入该目录执行如下指令   sudopython3 setup.py build   sudo python3 setup.py install   (会自动下载一些依赖包)   SDA就算是安装好了,看似简简单单数个命令,却是辛苦一周试出来的啊! 依赖包安装2   前面安装的几个依赖包只是SDA安装需要的,想要使用SDA来干活儿还得继续安装!    1、libXrender   sudo apt install libxrender1    2、libSM   sudo apt install libsm6    3、torchaudio   sudo pip3 install git+https://github.com/pytorch/audio@d92de5b  //下载并安装老版本的torchaudio   (这里又是个坑,SDA需要torch和torchaudio,但是最新版torchaudio与torch有兼容性问题,所以需要使用老版本的torchaudio!)    4、sox   sudo aptinstall sox libsox-dev libsox-fmt-all   (这里也是个坑,只有Ubuntu能正常安装sox,centos不得行!)    5、torchvision   sudo pip3 install torchvision 编写测试代码   找到前面下载的speech-driven-animation目录,进入之,可以看到一个“example”目录,进入之,能看到audio.wav、image.bmp两个文件,是项目组提供测试的图片和音频文件,我们就在这里写一段测试代码:   vi test.py  //然后输入下列代码:    import sda   va = sda.VideoAnimator()   vid, aud = va("image.bmp", "audio.wav")   va.save_video(vid, aud, "/home/XXX(这里根据实际情况填写)/speech-driven-animation/example/test.mp4") //这里要写完整的路径,不要问为什么,反正不这么写就报错   保存后使用下列指令测试:   sudo python3 test.py   运行成功了吗?是不是又卡主了...应该会提示:   Downloading the face detection CNN. Please wait...   Downloading the Face Alignment Network(FAN). Please wait...   因为face_alignment这个扩展包的训练数据还没下载呢...你需要将:   s3fd_convert.pth、2DFAN-4.pth.tar这两个文件放到“/home/XXX(这里根据实际情况填写)/.face_alignment/data/”目录下(可搜索.face_alignment找到此目录),文末附下载方式。   好啦,现在再次执行测试:   sudo python3 test.py   没有报错的话,可以看看目录下是不是生成了一个test.mp4,赶紧下载到电脑上看看吧! 各种包下载方式   因为很多包从git、pypi下载很慢,所以我这里提供了几个比较大的包、关键文件的百度云下载。 关注公众号“零基础爱学习”,回复“SDA”获取下面的资料 :   1、speech-driven-animation.tar.gz  SDA源码包,已包含了训练文件(2G)   2、scipy-1.3.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   3、scikit_image-0.15.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   4、torch-1.1.0-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   5、opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl  SDA依赖包   6、s3fd_convert.pth、2DFAN-4.pth.tar  face_alignment训练文件   7、audio-d92de5b97fc6204db4b1e3ed20c03ac06f5d53f0.zip  老版本的torchaudio 常见报错   针对一些常见的报错现象,最后总结一下给大家   1、ModuleNotFoundError: No module named 'setuptools'   需要安装setuptools  sudo apt install python3-setuptools   2、torchaudio/torch_sox.cpp:3:10: fatal error: sox.h: No such file or directory   没有安装sox  sudo apt install sox libsox-dev libsox-fmt-all(需要是Ubuntu操作系统)   3、RuntimeError: Failed to parse the argument list of a type annotation: name 'Optional' is not defined   你可能是最新版torchaudio的受害者(新版torchaudio与torch间有bug),所以你需要的是老版本:sudo pip3 install git+https://github.com/pytorch/audio@d92de5b   4、libSM.so.6: cannot open shared object file: No such file or directory   缺包  sudo apt install libsm6   5、ImportError: libXrender.so.1: cannot open shared object file: No such file or directory   缺包  sudo apt install libxrender1   6、_pickle.UnpicklingError: invalid load key, 'v'.   如果你遇到这报错,最大的可能性是你直接在git上下载源码了吧,不得行的,项目使用了git lfs,所以需要使用lfs下载源码(将项目中的大文件一起下载了)   先装git和git lfs:sudo apt install git、sudo apt install git-lfs、git init、sudogit lfs install   再获取项目源码:git lfs clone https://github.com/DinoMan/speech-driven-animation.git   7、Error: Failed to call git rev-parse --git-dir --show-toplevel: "fatal: not a git repository (or any of theparent directories): .git\n"   git lfs install之前要先执行git init   8、speech-driven-animation测试时没有视频文件输出   va.save_video(vid, aud, "/home/XXX(这里根据实际情况填写)/speech-driven-animation/example/test.mp4") 这里需要填写完整的路径   9、ModuleNotFoundError: No module named 'torchvision'   缺少torchvision包  sudo pip3 install torchvision   10、ModuleNotFoundError: No module named 'torchaudio'   缺少torchaudio包  sudo pip3 install git+https://github.com/pytorch/audio@d92de5b   11、ImportError: libsox.so.2: cannot open shared object file: No such file or directory   没有安装sox,而且你可能正在使用非Ubuntu系统  sudo aptinstall sox libsox-dev libsox-fmt-all(需要是Ubuntu操作系统)   12、ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found    gcc版本低,而且你可能正在使用非Ubuntu系统 。使用Ubuntu就没有这个问题。当然你也可以下载最新的gcc来安装...   13、ImportError: /usr/local/lib/python3.6/site-packages/_torch_sox.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE   还是sox的问题,而且你可能正在使用非Ubuntu系统,换用Ubuntu就没这个问题了
相关资源
  • 所需E币: 0
    时间: 2023-9-18 10:16
    大小: 1.53KB
    SpringBoot3.0+RocketMq构建企业级数据中台,所谓数据中台,即实现数据的分层与水平解耦,沉淀公共的数据能力,笔者认为可分为三层,数据模型、数据服务与数据开发,通过数据建模实现跨域数据整合和知识沉淀,通过数据服务实现对于数据的封装和开放,快速、灵活满足上层应用的要求,通过数据开发工具满足个性化数据和应用的需要。过去三十年,企业数据管理都以传统的IT架构为基础。每当技术部门为业务部门解决问题时,需要从业务需求的探查、技术壁垒的打通等从上到下各个方面来建设新系统。每个系统的建成都自成一体,各自满足业务部门的需求。这种情况不仅耗费各部门大量的精力也使得各个系统难以打通管理,无法形成更强大的数据能力。SpringBoot3.0+RocketMq构建企业级数据中台,数据中台是能力共享平台。如今,很多产品应用研发初始都在强调功能性,各个功能存在或多或少的重复性。然而企业对这些产品功能的定义并不相同。当客户产生某些需求时,由于定义的不同,产品功能和功能间的数据很难打通,也无法实现能力共享。在数据中台基础上的应用开发并不强调功能性,更注重能力的共享。这种能力就像水电煤一样可以直接向外输出使用,从而满足业务部门和用户的不同需求。数据中台如何建设?SpringBoot3.0+RocketMq构建企业级数据中台,数据中台的建设包括三个阶段,分别是基础架构、技术体系和应用系统。基础架构主要由数据标准、数据质量、元数据等组成。在建设过程中,需要根据企业的实际情况进行合理布局。技术体系是数据中台的技术支撑,主要包括业务应用系统、ETL工具等。通过建立技术体系,可以提升企业在大数据处理上的效率和质量,同时也可以降低企业在大数据平台搭建过程中的成本。应用系统主要包含数据资产管理系统、数据运营管理系统、智能分析系统等。通过建立应用系统,可以有效地提高数据分析的效率。通过建立应用系统,企业可以对各种数据进行统计和分析,进而对业务起到指导作用。以上三个阶段是基础架构阶段,是建设数据中台的重要组成部分。通过基础架构阶段,企业可以更好地了解自身的业务情况以及现有的数据情况,在此基础上进行技术体系建设和应用系统建设。
  • 所需E币: 0
    时间: 2023-9-15 17:35
    大小: 1.64KB
    上传者: 开心就很好了
    Blender建模高级教程2023分享下载,Blender视频教程,Blender是一款免费开源三维图形图像软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。Blender拥有方便在不同工作下使用的多种用户界面,内置绿屏抠像、摄像机反向跟踪、遮罩处理、后期结点合成等高级影视解决方案。Blender内置有Cycles渲染器与实时渲染引擎EEVEE。同时还支持多种第三方渲染器。Blender建模高级教程其包含了多边形建模、曲线、曲面建模功能,修改器、雕刻、贴图展UV设定材质、烘培场景、骨骼绑定、动画创作、粒子效果、物理仿真模拟、光线追踪引擎Cycles、相机追踪、图像后期合成等丰富、强大的功能。Blender建模高级教程,Blender是一款开源的跨平台全能三维动画制作软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。Blender为全世界的媒体工作者和艺术家而设计,可以被用来进行3D可视化,同时也可以创作广播和电影级品质的视频,另外内置的实时3D游戏引擎,让制作独立回放的3D互动内容成为可能。建模前的装备为了让接下来的建模工作更加方便,首先需要进行各方面的准备。这里是以我个人为基准,如果你觉得不适合里的话可以忽略这一部分。画面的分割虽然在一个View里完成也不是不可以的,但是可以同时在各个方向中进行查看当然是更好的。因此,我们进行画面的分割。我个人比较推荐将画面分成3个。分割的方法非常的简单。3DView的右上(或是左下)有一个类似三角的形状,将鼠标指针移动到这里时,指针会变成+的形状。Blender建模软件从零建模(1)了解目标,制定大概计划目标:制作类似上图的3D模型工具:Blender,B站网课预计时间:1天内容安排:(重要)1:首先,我们要做中间的小黄人-----选定目标2:小黄人包括头角、身体、眼睛、嘴巴、眼球、眼睛、眼皮、腿-----成分分析3:身体–>脚–>角–>眼睛–>嘴巴-----制定顺序(2)基于计划,初步设计模型人物结构4:身体我们可以用(shift+A)立方体来代表,头角可以用锥体表示,眼球可以用经纬球or棱角球表示,眼睛也可以用球来表示,嘴巴可以用环体表示,脚可以用圆柱表示。
  • 所需E币: 0
    时间: 2023-9-1 10:37
    大小: 1.78KB
    上传者: huangyasir1990
    kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。k8s通常被描述为一个容器编排(containerorchestration)平台。为了理解这个含义,让我们重新审视容器的作用,这有助于知道容器有哪些不足,以及k8s如何弥补这些不足。为什么我们喜欢使用容器?容器提供了一个轻量级的机制来隔离应用程序的环境。对于一个给定的应用程序,我们可以指定其配置和所需要安装的依赖,而不用担心其与同一台物理机上其他的应用程序发生冲突。我们将每个应用程序封装在容器镜像(containerimage)中,容器镜像可以可靠地运行在任何机器(只要机器有能力运行容器镜像)上,能够提供可移植的能力,即支持应用开发到部署的平滑过渡。此外,因为每个应用是独立的,不用担心环境冲突,所以在同一台物理机上可以部署多个容器,实现更高的资源(内存和CPU)利用率,最终降低成本。日志搜集当我们在FlinkonK8s上运行一个作业,有一个功能性问题无法回避,就是日志。如果是运行在YARN上,YARN会帮我们做这件事,例如在Container运行完成时,YARN会把日志收集起来传到HDFS,供后期查看。但是K8s并未提供日志搜集与存储,所以我们可以有很多选择去做日志(收集、展示)的事情。尤其是当作业因为异常导致POD退出,POD退出后日志会丢失,这将导致异常排查变得非常困难。首先往Kubernetes集群提交了资源描述文件后,会启动Master和Worker的container。MasterContainer中会启动FlinkMasterProcess,包含Flink-ContainerResourceManager、JobManager和ProgramRunner。WorkerContainer会启动TaskManager,并向负责资源管理的ResourceManager进行注册,注册完成之后,由JobManager将具体的任务分给Container,再由Container去执行。需要说明的是,MasterContainer与WorkerContainer是用一个镜像启动的,只是启动参数不一样。session模式FlinkSession集群作为长时间运行的KubernetesDeployment执行。你可以在一个Session集群上运行多个Flink作业。每个作业都需要在集群部署完成后提交到集群。Kubernetes中的FlinkSession集群部署至少包含三个组件:运行JobManager的部署TaskManagers池的部署暴露JobManager的REST和UI端口的服务
  • 所需E币: 1
    时间: 2023-8-24 09:11
    大小: 21.44MB
    上传者: light
  • 所需E币: 0
    时间: 2023-8-17 11:11
    大小: 1.26KB
    全栈开发是指开发人员拥有前后端开发的能力,并且能够熟练地将前后端代码整合到一起。以下是全栈开发的完整攻略:1.学习前端基础知识全栈开发需要掌握前端基础知识,包括HTML、CSS、JavaScript等。HTML和CSS用于页面布局和样式,JavaScript用于网页交互和动态效果。2.掌握后端技术掌握后端技术是全栈开发的关键之一。后端主要使用框架和语言来开发API(应用程序接口),包括但不限于Node.js、RubyonRails、Django、Flask等。掌握后端技术可以使你能够开发API,处理数据和实现服务端今动态。3.学会使用数据库数据是应用程序中的核心,因此学会如何存储和检索数据是全栈开发的关键之一。数据库是一个可以定义,管理和访问数据的软件系统。MySQL,PostgreSQL,MongoDB和CouchDB等是一些常见的数据库可选项。全栈开发的工作职责是:能独立负责网站前台、后台开发和迭代,根据业务需要开发,制作和程序修改;参加制定网站研发及迭代方案制定;参与网站研发,按要求高质量完成编程开发;负责网站上线前的测试工作;负责跟进网站页面显示视觉效果。一个全栈开发人员是在应用程序或网站的前端和后端工作的软件程序员或Web开发人员。他们有能力处理Web开发项目,这些项目涉及构建面向用户的网站,管理数据库或在项目的规划阶段与客户合作。成为一名全栈开发人员并不一定意味着你需要掌握Web开发的前端或后端的所有内容。它只是意味着您有能力在两端工作,并了解应用程序开发中涉及的所有元素。
  • 所需E币: 1
    时间: 2023-7-29 17:52
    大小: 11.47MB
    上传者: Argent
    BLE入门与提高经典教程
  • 所需E币: 1
    时间: 2023-7-29 17:50
    大小: 6.18MB
    上传者: Argent
    高级教程之(BLE实战教程)
  • 所需E币: 1
    时间: 2023-7-29 17:29
    大小: 4.78MB
    上传者: Argent
    初级教程之(软件基础教程)
  • 所需E币: 0
    时间: 2023-7-29 08:52
    大小: 1.21KB
    上传者: 开心就很好了
    AIGC与NLP大模型实战-经典CV与NLP大模型及其下游应用任务实现视频教程下载,视频+源码+课件!AIGC全称AI-GeneratedContent,指基于人工智能通过已有数据寻找规律,并自动生成内容的生产方式。AIGC既是一种内容分类方式,也是一种内容生产方式,还是一种用于内容自动生成的一类技术集合。NLP是目前世界上最实用有效的一门心理行为科学。NLP全名是NeuroLinguisticProgramming,中文译为【神经语言程序学】。大模型又可以称为FoundationModel(基石)模型,模型通过亿级的语料或者图像进行知识抽取,学习进而生产了亿级参数的大模型。其实感觉就是自监督学习,利用大量无标签很便宜的数据去做预训练。AIGC是目前自然语言处理和计算机视觉领域的前沿技术之一。它可以被用于很多应用场景,比如:1、在商业领域,可以帮助企业进行智能客服、舆情监测、自然语言处理等方面的工作;2、在教育领域,它可以辅助学生写作、阅读理解、语言学习等方面的任务;3、在医疗领域,它可以帮助医生进行医学文献智能分析、病历自动填写等工作;4、在游戏领域,它可以用于游戏中的角色设计、场景设计和动画制作等方面,便于游戏开发者更为快速、更准确地创造出高质量的游戏素材,提高游戏的制作效率和品质。
  • 所需E币: 0
    时间: 2023-7-26 15:48
    大小: 1011B
    上传者: 蝴蝶结欧恩
    分享课程——ONNXRUNTIME计算机视觉模型部署与加速教程,附源码。课程全面介绍了ONNXRUNTIME版本的C++SDK的使用技巧,一步一步演示教学ONNXRUNTIME框架上如何部署主流图像分类、对象检测、实例分割、语义分割模型、姿态评估与关键点检测模型。使用Python脚本与工具行命令轻松实现TorchVision中各种模型导出与简化ONNX格式模型,工程化封装代码,实现推理代码复用,三行代码即可实现接口调用,支持CPU与GPU加速等各种开发实战技巧,全面提升深度学习模型部署与加速能力。ONNXRuntime:由微软推出,用于优化和加速机器学习推理和训练,适用于ONNX模型,是一个跨平台推理和训练机器学习加速器。ONNX(OpenNeuralNetworkExchange)是一种标准与开放的网络模型交换格式,直白点说就是tensorflow/pytorch/paddle等深度学习框架训练的模型都可以转换为ONNX格式,然后ONNX格式模型可以通过ONNXruntime组件实现模型的推理预测并加速,从而实现不基于原来框架的模型部署。
  • 所需E币: 3
    时间: 2023-7-25 11:29
    大小: 1.4MB
    上传者: 电子阔少
    柔性PCB制作方法AD教程
  • 所需E币: 1
    时间: 2023-7-20 14:41
    大小: 679.17KB
    上传者: 张红川
    Allegro16.6安装教程.docx
  • 所需E币: 0
    时间: 2023-7-19 16:55
    大小: 10.33MB
    上传者: zhusx123
    fpga开发语言——verilog语言详细教程
  • 所需E币: 3
    时间: 2023-7-16 15:25
    大小: 30.75MB
    上传者: 电子阔少
    linux完全教程.pdf
  • 所需E币: 3
    时间: 2023-7-17 18:38
    大小: 6.13MB
    上传者: 张红川
    《Python3教程-廖雪峰》.pdf
  • 所需E币: 1
    时间: 2023-7-12 09:38
    大小: 274.26KB
    上传者: 张红川
    AltiumDesigner入门4层智能车全套PCB设计教程.pdf
  • 所需E币: 1
    时间: 2023-7-12 09:24
    大小: 10.34MB
    上传者: 张红川
    CoDeSys+2.3+中文教程(学习PLC编程的最好教程).pdf
  • 所需E币: 1
    时间: 2023-7-12 09:11
    大小: 12.47MB
    上传者: 张红川
    FPGA至芯X教程v3.pdf
  • 所需E币: 1
    时间: 2023-7-10 16:02
    大小: 1.02MB
    上传者: 张红川
    gec6818开发板-刷机教程v1.1-new.pdf
  • 所需E币: 1
    时间: 2023-7-10 14:52
    大小: 955.13KB
    上传者: 张红川
    PID控制超详细教程.pdf