【硬核HeyGen平替】在window平臺上使用MyHeyGen

最近在研究HeyGen的平替開源項目,然后發現了MyHeyGen這個項目,但是文檔上面并沒有說明如果在window平臺上使用,考慮到非window平臺安裝顯卡驅動什么的比較繁瑣,所以嘗試硬著頭皮干...

前提

開源項目中所需的環境準備要先準備好

1.拉取項目

git clone https://github.com/AIFSH/MyHeyGen.git

調整安裝腳本?install.sh,注釋掉底下的 apt 安裝,這里主要是要安裝 ffmpeg,這個稍后需要在window平臺上安裝。

pip install ninja==1.10.2.3
pip install dlib --verbose
# pip install librosa==0.9.2#apt update
#apt install ffmpeg

然后就可以通過pip安裝所需要的組件庫了

2.安裝 pip 組件庫

這里碰到的第一個問題就是window的命令窗口不能夠直接執行 sh 腳本,bash 命令window平臺并沒有,那么我們可以用 Git Bash,這里面執行這個腳本,同時,也能解決 window 平臺沒有Linux的一些常用命令,如cp、mv和rm等命令。

3.安裝 ffmpeg

ffmpeg下載地址

筆者選擇的是release-full版本,跟shared版本沒太大區別。

?

解壓出來的目錄文件,bin目錄下只有三個執行文件。

然后配置系統環境變量,就是在系統變量的path里面,添加這個bin目錄路徑就可以了。

要驗證是否配置好了,重新打開一個命令行窗口,輸入: ffmpeg -version,有版本信息輸出,則證明配置成功。

3.安裝 Microsoft C++ 庫

在安裝TTS的時候,可能會提示錯誤 "ERROR: Could not build wheels for tts, which is required to install pyproject"。

下載Microsoft C++ 生成工具,并安裝。

4.執行轉換

作者給的測試命令是基于 Linux 環境的,但是我們是window平臺,所以這里就需要解決文件路徑的問題。

1)video-retalking目錄下的?inference.py

第一個調整點:

這個腳本涉及到轉換過程中的文件復制刪除、截取文件名等操作,所以要調整為window風格的。

可以打開文本編輯器,全文搜索一下 split 關鍵詞,要將這里的 "/" 改為 "\\",這種情況有多處的,全部都需要修改一下。

調整后

第二個調整點:

不清楚是不是ffmpeg版本的問題,走到這行的時候,會提示 rf 是一個不合法的參數,所以筆者將后面的刪除操作去掉了,這里應該是清除一些臨時文件。

調整后

5.其他?

剩下的就是安裝過程中,pip組件庫的版本沖突,不兼容,網絡超時等情況,這些都好解決...

如有小伙伴們有遇到什么問題,也歡迎一起討論

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163783.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測試15k薪資第1步 —— 自動化測試理論基礎

目錄 1、自動化測試定義 2、自動化測試分類&工具 3、未來發展趨勢 1.1、什么是自動化測試 自動化測試指的是利用軟件工具或腳本來執行測試任務,以替代手動測試過程的一種測試方法。它的主要目的是通過自動化執行、驗證和評估軟件應用的功能、穩定性、性能等方面…

Kotlin(十一) 標準函數with、run和apply

with with函數接收兩個參數:第一個參數可以是一個任意類型的對象,第二個參數是一個Lambda表達式。with函數會在Lambda表達式中提供第一個參數對象的上下文,并使用Lambda表達式中的最后一行代碼作為返回值返回。示例代碼如下: va…

python常用第三方模塊 --- Pyinstaller(把程序打包成可執行程序)

打包方法: 在cmd下進行 pyinstaller -F 路徑/程序文件名 注意:使用pyinstaller之前需要安裝 pip install pyinstaller

ELK架構

經典的ELK 經典的ELK主要是由Filebeat Logstash Elasticsearch Kibana組成,如下圖:(早期的ELK只有Logstash Elasticsearch Kibana) 此架構主要適用于數據量小的開發環境,存在數據丟失的危險。 整合消息隊列Ngin…

如何用網格交易做ETF套利

ETF套利是指利用ETF基金的交易機制,通過短期的買賣差價或組合投資來獲取利潤。 具體來說,ETF套利最常用的套利方法則是:價格套利和波動套利。 1. 價格套利:當ETF二級市場的價格與一級市場的凈值出現偏差時,投資者可以通…

【SwiftUI】7.預覽及其內部機制

上一篇講到了組件及組件化,從概念和優/缺點兩個方向說明了組件化的意義,更為重要的是,組件和組件化是一個在編程領域,放之四海皆可以的概念,理解和運用它是非常必要的,希望大家能掌握。今天我們介紹另一個特…

Element UI的Tabs 標簽頁位置導航欄去除線條

在實際開發中,我們調整了相關樣式,導致導航欄的相關樣式跟隨不上,如下圖所示: 因為我跳轉了前邊文字的樣式并以在導航欄添加了相關頭像,導致右邊的線條定位出現問題,我在想,要不我繼續調整右邊…

開發B2B商城的意義

開發B2B商城的意義主要體現在以下幾個方面: 采購成本低:利用互聯網采購,B2B商城的采購商可直接通過線上完成全部流程操作,在提高采購效率的同時,大大降低了B2B工業品企業采購成本。推廣優勢大:B2B商城的曝…

YM5411 WIFI 5模塊 完美替代AP6256

YM5411是沃特沃德推出的一款低成本,低功耗的模塊,該模塊具有Wi-Fi(2.4GHz和5GHz IEEE 802.11 a/b/g/n/ac)藍牙(BT5.0)功能,并通過了SRRC認證,帶mesh,完美替換AP6256。高度…

OpenHarmony之NAPI框架介紹

張志成 誠邁科技高級技術專家 NAPI是什么 NAPI的概念源自Nodejs,為了實現javascript腳本與C庫之間的相互調用,Nodejs對V8引擎的api做了一層封裝,稱為NAPI。可以在Nodejs官網(https://nodejs.org/dist/latest-v20.x/docs/api/n-api…

【python爬蟲】scrapy在pycharm 調試

scrapy在pycharm 調試 1、使用scrapy創建一個項目 scrapy startproject tutorial 2、在朋友pycharm中調試scrapy 2.1 通過文件run.py調試 在根目錄下新建一個文件run.py(與scrapy.cfg文件的同一目錄下), debug ‘run’即可 # -*- coding:utf-8 -*- from scrapy import c…

深入淺出理解libevent——2萬字總結

概述 libevent,libev,libuv都是c實現的異步事件庫,注冊異步事件,檢測異步事件,根據事件的觸發先后順序,調用相對應回調函數處理事件。處理的事件包括:網絡 io 事件、定時事件以及信號事件。這三個事件驅動著服務器的運…

數字人是真人嗎?

引言: 隨著科技的不斷進步,數字人作為一種新興技術正逐漸嶄露頭角。數字人是通過計算機生成的虛擬人物,具備逼真的外貌和行為,令人難以分辨其與真人的差異。本文將探討數字人是否可以被視為真人,并探索數字人技術在各個…

柯橋生活日語學習,打工人的日語你會嗎?

打工人在日語里有幾種說法: アルバイト 這是最常用的稱呼,直接對應中文的“打工”。 例句: 學生の頃はスーパーでアルバイトをしていた。(我學生時代在超市打過工。) バイト これはアルバイトの略稱でよく使われる。(這是アルバイト的簡稱,也很常用。) 例句: バイト先が決…

《第一行代碼:Android》第三版-2.4.1 if 語句

本文主要講解if語句,kotlin的if語句是可以有返回值的,就是if語句的最后一句話就是返回值。 /*** You can edit, run, and share this code.* play.kotlinlang.org*/fun main() {println("Hello, world!!!") val largelargerNumber(5,9) prin…

如何提高希音、亞馬遜、國際站店鋪流量轉化,自養號優勢及測評底層環境邏輯

隨著全球貿易數字化程度加快,尤其是跨境電商的發展日新月異,在外貿出口占比越來越高,在這其中,亞馬遜作為全球實力強勁的在線零售平臺之一,吸引了大量的優秀賣家。 而這也加劇了亞馬遜平臺的競爭程度,尤其…

HCIP數據通信——BGP協議

引言 我之前寫過一篇介紹ISIS的文章,我打算把BGP知識總結以后再做實驗。那么現在就講述一下BGP的一些特點和概念。 BGP特點 BGP屬于EGP(EGP也是BGP前身,指的是具體協議,被淘汰了成為了BGP),無類協議。 它…

C++(14):解決lambda生命期問題

C++(11):局部函數lambda_c++11 函數中定義函數-CSDN博客 中通過實例列舉了lambda使用過程中可能會有變量生命期問題。 C++14中可以通過重新定義變量,并轉移,解決這個問題: #include <iostream> using namespace std;class A { public:A(int data):m_data(data){cou…

繼承中:一般函數的virtual虛函數特性、析構函數的virtual虛函數特性

1、一般的同名函數 c規定&#xff0c;當一個成員函數被聲明為虛函數后&#xff0c;其派生類中的同名函數都自動成為虛函數。因此&#xff0c;在子類重新聲明該虛函數時&#xff0c;可以加&#xff0c;也可以不加&#xff0c;但習慣上每一層聲明函數時都加virtual,使程序更加清…

postgresql數據庫中update使用的坑

簡介 在數據庫中進行增刪改查比較常見&#xff0c;經常會用到update的使用。但是在近期發現update在oracle和postgresql使用卻有一些隱形區別&#xff0c;oracle 在執行update語句的時候set 后面必須跟著1對1的數據關聯而postgresql數據庫卻可以一對多&#xff0c;這就導致數據…