Unity3D開發AI桌面精靈/寵物系列 【六】 人物模型 語音口型同步 LipSync 、梅爾頻譜MFCC技術、支持中英文自定義編輯- 基于 C# 語言開發

Unity3D開發AI桌面精靈/寵物系列 【六】 人物模型 語音口型同步 LipSync 、梅爾頻譜MFCC技術 C# 語言開發


該系列主要介紹怎么制作AI桌面寵物的流程,我會從項目開始創建初期到最終可以和AI寵物進行交互為止,項目已經開發完成,我會仔細梳理一下流程,分步講解。 這篇文章主要講關于人物模型 語音口型同步技術。


提示:內容純個人編寫,歡迎評論點贊,來指正我。

文章目錄

  • Unity3D開發AI桌面精靈/寵物系列 【六】 人物模型 語音口型同步 LipSync 、梅爾頻譜MFCC技術 C# 語言開發
  • 前言
  • 一、語音口型同步LipSync技術概述
          • ①技術原理
          • ②實現方法
          • ③應用場景
          • ④技術挑戰
  • 二、Unity開發準備階段
    • 1.Unity平臺
    • 2.插件:下載地址
    • 3.示例:中文
  • 三、uLipSync使用方法
    • 1. 模型重構
    • 2. 導入插件
    • 3. 添加LipSync組件
    • 4. 組件使用詳解
          • 1. uLipsyncBlendShape 組件
          • 2. uLipsync 組件
          • 2. MFCC 技術
          • 3. MFCC 頻譜中文數據提供
          • 4. 運行查看效果,人物口型和聲音同步,并實時變化,中英文的訓練是一樣的。
    • 然后就,大功告成了!!!
  • 四. 完結
  • 總結


前言

本篇內容主要講Unity開發桌面寵物的大模型交互功能,大家感興趣也可以了解一下這個開發方向,目前還是挺有前景的。

下面讓我們出發吧 ------------>----------------->


一、語音口型同步LipSync技術概述

人物語音口型同步(Lip Sync)是一種技術,用于確保動畫或虛擬人物的口型與配音或語音內容精確匹配。這種技術廣泛應用于動畫電影、視頻游戲、虛擬現實、增強現實以及實時視頻會議等領域,以增強角色的真實感和沉浸感。

①技術原理

人物語音口型同步通常通過分析語音信號的音素(Phoneme)來實現。音素是語言中最小的語音單位,每個音素對應特定的口型。系統通過語音識別技術將語音分解為音素序列,然后根據音素驅動角色的面部模型,生成相應的口型動畫。

②實現方法

基于規則的方法:通過預定義的規則將音素映射到特定的口型。這種方法需要手動調整每個音素對應的口型,適用于簡單的場景,但缺乏靈活性。

基于機器學習的方法:利用深度學習模型(如卷積神經網絡或循環神經網絡)自動學習語音與口型之間的映射關系。這種方法可以處理更復雜的語音和口型變化,適用于高質量的口型同步需求。

實時口型同步:在實時應用中(如視頻會議或虛擬主播),系統需要快速處理語音并生成相應的口型動畫。這通常需要高效的算法和硬件支持,以確保低延遲和高精度。

③應用場景

動畫制作:在動畫電影和電視劇中,人物語音口型同步用于確保角色的口型與配音完美匹配,提升觀眾的觀影體驗。

游戲開發:在視頻游戲中,口型同步技術用于增強角色的互動性和真實感,使玩家更沉浸于游戲世界。

虛擬現實和增強現實:在VR和AR應用中,口型同步技術用于創建逼真的虛擬人物,提升用戶的沉浸感。

實時視頻會議:在視頻會議中,口型同步技術可以用于虛擬形象或增強現實效果,使遠程溝通更加自然和生動。

④技術挑戰

多語言支持:不同語言的音素和口型差異較大,需要針對每種語言進行優化。

情感表達:除了口型,面部表情和情感表達也是重要因素,需要綜合處理。

實時性:在實時應用中,系統需要在極短的時間內完成語音分析和口型生成,對算法和硬件性能要求較高。

人物語音口型同步技術的發展不斷推動著動畫、游戲和虛擬現實等領域的進步,為用戶帶來更加真實和沉浸的體驗。
在這里插入圖片描述

二、Unity開發準備階段

1.Unity平臺

  • 該系列全部使用Unity2021.3.44開發;
  • 該系列前后文章存在關聯,不懂的可以看前面文章;
  • 該系列完成之后我會上傳源碼工程,著急的小伙伴可以自己寫框架,我就先編寫各模塊的獨立功能。

2.插件:下載地址

  • uLipSync For Unity

3.示例:中文

  • 元音
    a:發音時,口張大,舌尖抵住下齒背,舌面中部稍微隆起,聲帶振動。如“啊”。
    o:發音時,口半開,舌尖抵住下齒背,舌面后部隆起,聲帶振動。如“哦”。
    e:發音時,口半開,舌尖抵住下齒背,舌面后部稍微隆起,聲帶振動。如“鵝”。
    i:發音時,口微開,舌尖抵住下齒背,舌面前部隆起,聲帶振動。如“衣”。
    u:發音時,口微開,舌尖抵住下齒背,舌面后部隆起,聲帶振動。如“烏”。
    ü:發音時,口微開,舌尖抵住下齒背,舌面前部隆起,聲帶振動。如“迂”。
  • 輔音
    b:發音時,雙唇緊閉,然后突然張開,氣流沖出,聲帶不振動。如“玻”。
    p:發音時,雙唇緊閉,然后突然張開,氣流沖出,聲帶不振動。如“坡”。
    m:發音時,雙唇緊閉,氣流從鼻腔流出,聲帶振動。如“摸”。
    f:發音時,上齒和下唇接觸,氣流從唇齒間摩擦而出,聲帶不振動。如“佛”。
    d:發音時,舌尖抵住上齒齦,氣流沖出,聲帶不振動。如“的”。
    t:發音時,舌尖抵住上齒齦,氣流沖出,聲帶不振動。如“特”。
    n:發音時,舌尖抵住上齒齦,氣流從鼻腔流出,聲帶振動。如“呢”。
    l:發音時,舌尖抵住上齒齦,氣流從舌兩側流出,聲帶振動。如“勒”。
    g:發音時,舌根抵住軟腭,氣流沖出,聲帶振動。如“哥”。
    k:發音時,舌根抵住軟腭,氣流沖出,聲帶不振動。如“科”。
    h:發音時,舌根靠近軟腭,氣流從舌根和軟腭之間摩擦而出,聲帶不振動。如“喝”。
    j:發音時,舌面前部抵住硬腭,氣流從舌面和硬腭之間摩擦而出,聲帶不振動。如“基”。
    q:發音時,舌面前部抵住硬腭,氣流從舌面和硬腭之間摩擦而出,聲帶不振動。如“七”。
    x:發音時,舌面前部靠近硬腭,氣流從舌面和硬腭之間摩擦而出,聲帶不振動。如“希”。
    zh:發音時,舌尖抵住硬腭前部,氣流從舌尖和硬腭之間摩擦而出,聲帶不振動。如“知”。
    ch:發音時,舌尖抵住硬腭前部,氣流從舌尖和硬腭之間摩擦而出,聲帶不振動。如“吃”。
    sh:發音時,舌尖靠近硬腭前部,氣流從舌尖和硬腭之間摩擦而出,聲帶不振動。如“詩”。
    r:發音時,舌尖靠近硬腭前部,氣流從舌尖和硬腭之間摩擦而出,聲帶振動。如“日”。
    z:發音時,舌尖抵住上齒齦,氣流從舌尖和上齒齦之間摩擦而出,聲帶不振動。如“資”。
    c:發音時,舌尖抵住上齒齦,氣流從舌尖和上齒齦之間摩擦而出,聲帶不振動。如“雌”。
    s:發音時,舌尖靠近上齒齦,氣流從舌尖和上齒齦之間摩擦而出,聲帶不振動。如“思”。
  • 復韻母
    ai:發音時,先發“a”,然后舌尖抵住下齒背,舌面前部稍微隆起,向“i”滑動,聲音由低到高。如“愛”。
    ei:發音時,先發“e”,然后舌尖抵住上齒齦,舌面前部稍微隆起,向“i”滑動,聲音由低到高。如“飛”。
    ui:發音時,先發“u”,然后舌尖抵住下齒背,舌面前部稍微隆起,向“i”滑動,聲音由低到高。如“歸”。
    ao:發音時,先發“a”,然后舌尖抵住下齒背,舌面后部稍微隆起,向“o”滑動,聲音由低到高。如“高”。
    ou:發音時,先發“o”,然后舌尖抵住下齒背,舌面后部稍微隆起,向“u”滑動,聲音由低到高。如“狗”。
    iu:發音時,先發“i”,然后舌尖抵住下齒背,舌面前部稍微隆起,向“u”滑動,聲音由低到高。如“游”。
    ie:發音時,先發“i”,然后舌尖抵住下齒背,舌面前部稍微隆起,向“e”滑動,聲音由低到高。如“爺”。
    üe:發音時,先發“ü”,然后舌尖抵住下齒背,舌面前部稍微隆起,向“e”滑動,聲音由低到高。如“月”。
    er:發音時,舌尖卷起,抵住硬腭,舌面中部稍微隆起,發出“er”的音。如“兒”。
  • 鼻韻母
    an:發音時,先發“a”,然后舌尖抵住上齒齦,舌面中部稍微隆起,發出“n”的音。如“安”。
    en:發音時,先發“e”,然后舌尖抵住上齒齦,舌面中部稍微隆起,發出“n”的音。如“恩”。
    in:發音時,先發“i”,然后舌尖抵住上齒齦,舌面中部稍微隆起,發出“n”的音。如“因”。
    un:發音時,先發“u”,然后舌尖抵住上齒齦,舌面中部稍微隆起,發出“n”的音。如“溫”。
    ün:發音時,先發“ü”,然后舌尖抵住上齒齦,舌面中部稍微隆起,發出“n”的音。如“云”。
    ang:發音時,先發“a”,然后舌尖抵住上齒齦,舌面后部稍微隆起,發出“ng”的音。如“昂”。
    eng:發音時,先發“e”,然后舌尖抵住上齒齦,舌面后部稍微隆起,發出“ng”的音。如“燈”。
    ing:發音時,先發“i”,然后舌尖抵住上齒齦,舌面后部稍微隆起,發出“ng”的音。如“丁”。
    ong:發音時,先發“o”,然后舌尖抵住上齒齦,舌面后部稍微隆起,發出“ng”的音。如“紅”

  • 上述操作很簡單
  • 重點來了

三、uLipSync使用方法

1. 模型重構

  • 重構模型 BlendShape組件
    在這里插入圖片描述
  • 中文加入以下組件:
    在這里插入圖片描述
  • 英文加入以下組件:

在這里插入圖片描述

  • 以上組件均為美工制作模型時添加,后續要用到,也可以用基礎自帶的52個BlendShape組件,只不過效果不是很好。

2. 導入插件

在這里插入圖片描述

在這里插入圖片描述

  • 導入成功

3. 添加LipSync組件

在這里插入圖片描述

  • 在模型根節點添加這兩個組件。

4. 組件使用詳解

1. uLipsyncBlendShape 組件

在這里插入圖片描述

  • ① 選擇你的模型上帶有BlendShape組件的物體
  • ② 調節口型變化的平滑度和最大最小值,根據需求自行調節
  • ③ BlendShape全部組件的值大小,默認是100,根據需求調整幅度
  • ④ 綁定你的美術資源上添加的BlendShape組件對應的某個音素,并自己命名區分
2. uLipsync 組件

在這里插入圖片描述

  • ① 選擇你的聲音來源,新建個AudioSource拖進來
  • ② 選擇當前物體,并選擇OnLipSyncUpdate方法,表示實時運行檢測
  • ③ 可以自己導入保存好的數據,也可以新建,接下來重點講MFCC
  • ④ 調整數據大小和采樣率的,默認我這種就可以
  • ⑤ 可以將數據保存到本地,其他資源可以直接使用,也可以導入其他數據
2. MFCC 技術

在這里插入圖片描述

  • ① 填入上個階段自己命名的音節,
  • ② 錄制的頻譜

那么怎么錄制頻譜呢?

  • ① 首先網上找到 a、o、e、i、u、v等音素的讀音片段,可以是mp4或者其他格式都行,我是在漢語拼音網上找的,讀音種類的數據越多越精準。
  • ② 導入到Unity中

接下來就是錄制了!

  • ① 首先運行Unity ,你會發現多了個按鈕 Calib
  • ② 第二步,在音頻組件上播放一個音素,循環播放
    在這里插入圖片描述
  • ③ 第三步,點擊Calib 按鈕,長按兩三秒,看到MFCC上有穩定均勻的頻譜寫入就代表成功了。
  • ④ 第四步,重復前面的操作,將所有音素依次錄入
  • ⑤ 可以點擊保存,下次可以直接使用
3. MFCC 頻譜中文數據提供

下面是我本人訓練的MFCC數據的Json文件可以導入直接用:

在這里插入圖片描述
訓練不好的小伙伴私我,這個文件數據太大,不知道以什么格式可以上傳。

4. 運行查看效果,人物口型和聲音同步,并實時變化,中英文的訓練是一樣的。

然后就,大功告成了!!!

  • 該系列基本功能差不多就完成了,就完結了,接下來我會將這些功能搭一下框架,或者把其他平臺的接入也展示出來。后續看計劃~

四. 完結

  • 大家可以從第一節開始學習,完整流程基本已經實現,現在可以實現對話了。
  • 下一期更新暫定:
    ① 更新框架
    ② 其他平臺的功能接入
    二選一哦!
  • 評論告訴我,下一期更新什么

在這里插入圖片描述
比心啦 ?(^_-)

在這里插入圖片描述

總結

  • 提示: 大家根據需求來做功能,后續繼續其他功能啦,不懂的快喊我。
  • 大家可以在評論區討論其他系列下一期出什么內容,這個系列會繼續更新的
  • 點贊收藏加關注哦~ 蟹蟹

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

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

相關文章

MoonBit正式入駐GitCode!AI時代的編程語言新星,開啟高性能開發新紀元

在AI與編程語言深度交融的今天,開發者們正見證一場技術生產力的革命。由IDEA研究院基礎軟件中心傾力打造的MoonBit(月兔)編程語言,自2023年橫空出世以來,憑借高性能、低延遲、輕量化的特性,迅速成為全球開發…

LLMs:《POE報告:2025年春季人工智能模型使用趨勢》解讀

LLMs:《POE報告:2025年春季人工智能模型使用趨勢》解讀 導讀:2025年5月13日,該報告基于 Poe 平臺的用戶數據,分析了 2025 年春季人工智能模型的使用趨勢。報告指出,人工智能格局快速演變,通用文…

STM32 之網口資源

1 網口資源介紹 STM32F407 是 STMicroelectronics 推出的高性能 ARM Cortex-M4 微控制器,具備多種外設接口,其中包括一個 Ethernet MAC 控制器(帶 IEEE 1588 支持)。這意味著你可以使用 STM32F407 實現網絡通信功能(通…

Almalinux中出現ens33 ethernet 未托管 -- lo loopback 未托管 --如何處理:

解決 AlmaLinux 中網絡接口 ens33 和 lo 顯示為“未托管”的問題 當 AlmaLinux 系統中的網絡接口(如 ens33 和 lo)顯示為“未托管”時,這意味著這些接口沒有被 NetworkManager 正常管理。以下是詳細的分析和解決方案: 1. 檢查 N…

數據庫中關于查詢選課問題的解法

前言 今天上午起來復習了老師上課講的選課問題。我總結了三個解法以及一點注意事項。 選課問題介紹 簡單來說就是查詢某某同學沒有選或者選了什么課。然后查詢出該同學的姓名,學號,課程號,課程名之類的。 sql文件我上傳了。大家可以嘗試練…

Qt圖表庫推薦指南與分析

目錄 一、核心圖表庫橫向對比1. Qt Charts2. QCustomPlot3. QWT (Qt Widgets for Technical Applications)4. KD Chart 二、性能與功能對比矩陣三、選型策略與組合方案1. 通用型需求:2. 技術型場景:3. 企業級開發: 四、未來趨勢與避坑指南1. …

LangGraph 2 - 智能體開發、流式傳輸、模型調用、工具、MCP、上下文、內存、人機協同、部署、UI

文章目錄 使用LangGraph進行智能體開發什么是智能體?核心特性高層構建模塊包生態系統 運行代理基礎用法輸入與輸出輸入格式使用自定義 Agent 狀態 輸出格式流式輸出最大迭代次數其他資源 流式傳輸代理進度監控LLM 令牌工具更新流式多模態傳輸禁用流式傳輸其他資源 L…

Android同屏采集并推送RTMP和啟動輕量級RTSP服務技術實踐

隨著視頻直播需求的不斷提升,如何實現高效的實時視頻采集和推流,成為了開發者們關注的重點。本文將結合大牛直播SDK,介紹如何在 Android 平臺實現 同屏采集、推送 RTMP 流,以及如何啟動輕量級 RTSP 服務,讓開發者快速搭…

如何自定義 Spring MVC 的配置?

我們可以通過實現 WebMvcConfigurer 接口來自定義 Spring MVC (尤其是在 Spring Boot 環境中) 的配置。 以下是通過實現 WebMvcConfigurer 接口的配置方法: 核心:創建一個 Configuration 類并實現 WebMvcConfigurer import org.springframework.conte…

如何提升新加坡SAP實施成功率?解答中企出海的“稅務合規密碼” | 工博科技SAP金牌服務商

目錄 中新雙邊經貿合作概況 ?編輯 新加坡數字化實施核心挑戰 一、財稅合規體系適配 稅務申報差異 會計準則協同 二、人力資源合規管理 薪酬體系配置 數據安全規范 企業實施建議方案 一、系統建設策略 選擇具備以下資質的實施服務商: 構建標準化功能模塊…

人工智能視角下的安全:可視化如何塑造惡意軟件檢測

摘要 惡意軟件是一種持續存在的網絡安全威脅,它越來越多地通過復雜的攻擊向量,瞄準互連的數字系統,如桌面、移動和物聯網平臺。通過利用這些漏洞,攻擊者會損害現代數字生態系統的完整性和彈性。為了應對這一風險,安全…

游戲引擎學習第293天:移動Familiars

回顧并為今天的內容定下基調 我們正在做一款完整的游戲,今天的重點是“移動模式”的正式化處理。目前雖然移動機制大致能運作,但寫法相對粗糙,不夠嚴謹,我們希望將其清理得更規范,更可靠一點。 目前腦邏輯&#xff0…

golang -- 如何讓main goroutine等一等

目錄 引言一、sync.WaitGroup二、channel創建channle操作緩沖多返回值模式單向通道 引言 在不做修飾的程序中,代碼是串行執行的 串行、并發與并行串行:事物按照一定的發展順序并發:同一時間段執行多個任務(一邊吃飯一邊看電視&am…

第31講 循環緩沖區與命令解析

串口在持續接收數據時容易發生數據黏包(先接收的數據尚未被處理,后面的數據已經將內存覆蓋)的情況,循環緩沖區的本質就是將串口接受到的數據馬上拷貝到另外一塊內存之中。為了避免新來的數據覆蓋掉尚未處理的數據,一方…

UE 材質基礎 第一天

課程:虛幻引擎【UE5】材質寶典【初學者材質基礎入門系列】-北冥沒有魚啊_-稍后再看-嗶哩嗶哩視頻 隨便記錄一些 黑色是0到負無窮,白色是1到無窮 各向異性 有點類似于高光,可以配合切線來使用,R G B 相當于 X Y Z軸,切…

編譯原理--期末復習

本文是我學習以下博主視頻所作的筆記,寫的不夠清晰,建議大家直接去看這些博主的視頻,他/她們講得非常好: 基礎知識概念: 1.【【編譯原理】期末復習 零基礎自學】,資料 2.【編譯原理—混子速成期末保過】&…

【DeepSeek論文精讀】11. 洞察 DeepSeek-V3:擴展挑戰和對 AI 架構硬件的思考

歡迎關注[【AIGC論文精讀】](https://blog.csdn.net/youcans/category_12321605.html)原創作品 【DeepSeek論文精讀】1. 從 DeepSeek LLM 到 DeepSeek R1 【DeepSeek論文精讀】7. DeepSeek 的發展歷程與關鍵技術 【DeepSeek論文精讀】11. 洞察 DeepSeek-V3&#xff…

寶塔面板部署前后端項目SpringBoot+Vue2

這篇博客主要用來記錄寶塔部署前端后端項目的過程。因為寶塔部署有點麻煩,至少在我看來挺麻煩的。我還是喜歡原始的ssh連接服務器進行操作。但是公司有項目用到了寶塔,沒辦法啊,只能摸索記錄一下。 我們需要提前準備好后端項目的jar包和前端項…

電機試驗平臺:創新科技推動電動機研究發展

電機試驗平臺是電機制造和研發過程中不可或缺的重要設備,其功能涵蓋了電機性能測試、電機壽命測試、電機質量評估等多個方面。隨著科技的不斷發展和電機應用領域的日益擴大,對電機試驗平臺的要求也越來越高。本文將從現代化電機試驗平臺的設計與應用兩個…

LangGraph 7 - Platform - Agentic RAG、監督、SQL代理、追蹤、私密對話、認證、RemoteGraph、LangSmith

文章目錄 代理式檢索增強生成(Agentic RAG)安裝 1、預處理文檔2、創建檢索器工具3、生成查詢4、文檔分級5、問題重寫6、生成答案7、構建流程圖8、運行智能RAG代理 多智能體監督系統安裝配置1、創建工作代理研究代理數學代理工具 2、使用 langgraph-super…