Huggingface入門實踐 Audio-NLP 語音-文字模型調用(一)

吳恩達LLM-Huggingface_嗶哩嗶哩_bilibili

目錄

0. huggingface 根據需求尋找開源模型

1. Whisper模型 語音識別任務

2. blenderbot 聊天機器人

3. 文本翻譯模型translator

4. BART 模型摘要器(summarizer)

5.?sentence-transformers 句子相似度


0. huggingface 根據需求尋找開源模型

https://huggingface.co/models?可以在huggingface官網上找對應的模型

根據任務task(CV NLP 多模態之類) language 等指標進行篩選。

還可以在右上角的Tasks里 了解各種機器學習任務

??

pipeline 是一個來自 Hugging Face Transformers 庫的高級接口。 可以快速調用預訓練模型完成常見任務,比如:文本分類、翻譯、摘要、問答、語音識別等等。調用方式如下:

from transformers import pipeline

我們后續會進行一些示例的調用 系統先會進行模型的下載和保存,建議事先設置一下環境變量HF_HOME 到某一希望保存的路徑,比如 'D:\huggingface_cache' 。

1. Whisper模型 語音識別任務

例如在tasks中挑選了一個?語音識別任務 Automatic Speech Recognition?

打開網址的右側會有一些 模型和數據集

選擇第一個 openai的模型之后 右上角的Use this model 展示如何調用這個模型

為了能夠讀取音頻 還需要安裝一下ffmpeg? ?以下為一個release版本的安裝包

https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip

再將 ffmpeg/bin 文件夾路徑添加到 系統環境變量的 PATH 中

并在cmd 中?ffmpeg -version 驗證安裝成功。

然后就可以進行直接調用? model="openai/whisper-large-v3"

from transformers import pipeline
pipe = pipeline("automatic-speech-recognition",model="openai/whisper-large-v3",framework="pt", # 使用 PyTorch 框架chunk_length_s=30 # 每段音頻的最大長度(秒))
result = pipe("audio.m4a") # 自動識別語言轉換
print(result)
# {'text': '我愛南京大學。'}result = pipe("audio.m4a",generate_kwargs={"task": "translate"}) # 音頻轉文字并翻譯為英文
print(result)
# {'text': ' I love Nanjing University.'}

如果要設置一些其他的參數 可以看model的Usage解釋

比如 用generate_kwargs? ?language指定源語言(不指定則自動預測) translate可以翻譯為英語

還可以設定一些其他參數? 比如長度、束搜索、溫度、聲音大小閾值、概率對數閾值等

generate_kwargs = {"max_new_tokens": 448,  # 最大生成長度"num_beams": 1,  # 束搜索寬度"condition_on_prev_tokens": False,  # 是否依賴前token"temperature": (0.0, 0.2, 0.4, 0.6, 0.8, 1.0),  # 溫度生成多樣性"logprob_threshold": -1.0,  # 概率閾值"no_speech_threshold": 0.6,  # 靜音閾值"return_timestamps": True,  # 返回時間戳
}# 調用管道
result = pipe(sample, generate_kwargs=generate_kwargs)
print(result)

2. blenderbot 聊天機器人

https://huggingface.co/models?other=blenderbot&sort=trending?一些blenderbot模型

https://huggingface.co/facebook/blenderbot-400M-distill

使用預訓練的分詞器和模型? message -> 分詞器encode -> model -> 分詞器decode

模型參數量400M較小,效果不太好。 簡單版調用:

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM# 加載分詞器和模型
tokenizer = AutoTokenizer.from_pretrained("facebook/blenderbot-400M-distill")
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/blenderbot-400M-distill")# 用戶輸入
user_message = "Good morning."# 編碼輸入
inputs = tokenizer(user_message, return_tensors="pt").to(model.device)# 生成回復
outputs = model.generate(**inputs, max_new_tokens=40)# 解碼輸出
print("🤖 Bot:", tokenizer.decode(outputs[0], skip_special_tokens=True))
# 🤖 Bot:  Good morning to you as well. How is your morning going so far? Do you have any plans?

想實現上下文的記憶性,就要開一個字符串context把之前對話記錄下來 一起作為input

還可以再對分詞器和模型 分別加一些參數設置

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torchtokenizer = AutoTokenizer.from_pretrained("facebook/blenderbot-400M-distill")
model = AutoModelForSeq2SeqLM.from_pretrained("facebook/blenderbot-400M-distill").to("cuda" if torch.cuda.is_available() else "cpu"
)# 輪次分隔符
eos = tokenizer.eos_token or "</s>"
context = "" # 全局對話記錄上下文def chat_once(user_text, max_new_tokens=80):global context  # 聲明使用上面的全局 context# 構造提示:user 一句 + 以 bot: 結尾,便于模型續寫context += f"user: {user_text}{eos}bot:"inputs = tokenizer(context,return_tensors="pt",truncation=True,max_length=1024  # 防止過長).to(model.device)outputs = model.generate(**inputs,max_new_tokens=max_new_tokens,do_sample=True,temperature=0.7,top_p=0.9,num_beams=1,no_repeat_ngram_size=3)# 解碼整段,然后取出最后一個 "bot:" 之后的內容作為回復whole = tokenizer.decode(outputs[0], skip_special_tokens=True)reply = whole.split("bot:")[-1].strip()# 把本輪回復寫回上下文,并加分隔符context += f" {reply}{eos}"return replyprint("🤖", chat_once("Good morning."))
print("🤖", chat_once("What can you do?"))
print("🤖", chat_once("Recommend a movie for tonight."))'''🤖 Good morning! I hope you had a good day today.  Do you have any plans?
🤖 I am going to go on a vacation to visit my family! I can't wait!
🤖 Good morning, what movie are you going to see? I've got plans for this weekend.'''

3. 文本翻譯模型translator

NLLB-200 Distilled 600M 模型 200 種語言互譯

https://huggingface.co/facebook/nllb-200-distilled-600M?library=transformers

from transformers import pipeline
import torch# 加載翻譯模型
translator = pipeline(task="translation",model="facebook/nllb-200-distilled-600M",torch_dtype=torch.bfloat16  # 如果你的顯卡支持 bfloat16
)
# 要翻譯的文本
text = """My puppy is adorable. Your kitten is cute. Her panda is friendly. His llama is thoughtful. We all have nice pets!"""# 翻譯:從英文 -> 法語
text_translated = translator(text,src_lang="eng_Latn",   # 源語言:英語tgt_lang="fra_Latn"    # 目標語言:法語
)
print(text_translated)# [{'translation_text': 'Mon chiot est adorable, ton chaton est mignon, son panda est ami, sa lamme est attentive, nous avons tous de beaux animaux de compagnie.'}]# 翻譯:從英文 -> 中文
text_translated = translator(text,src_lang="eng_Latn",   # 源語言:英語tgt_lang="zho_Hans"    # 目標語言:中文
)
print(text_translated)# [{'translation_text': '我的狗很可愛,你的小貓很可愛,她的熊貓很友好,他的拉馬很有心情.我們都有好物!'}]

4. BART 模型摘要器(summarizer)

https://huggingface.co/facebook/bart-large-cnn

from transformers import pipeline
import torch# 創建摘要器(summarizer),用 BART 模型
summarizer = pipeline(task="summarization",model="facebook/bart-large-cnn",framework="pt",  # 若只用 PyTorch,不加載 TensorFlowtorch_dtype=torch.bfloat16
)# 輸入要摘要的文本(南京大學介紹)
text = """Nanjing University, located in Nanjing, Jiangsu Province, China,
is one of the oldest and most prestigious institutions of higher
learning in China. It traces its history back to 1902 and has played
a significant role in modern Chinese education. The university is
known for its strong programs in sciences, engineering, humanities,
and social sciences. It has a large number of distinguished alumni
and is recognized as a member of China's Double First-Class initiative.
The main campuses are located in Gulou and Xianlin, offering a modern
learning and research environment for both domestic and international students."""# 執行摘要 設置長度范圍
summary = summarizer(text,min_length=10,max_length=80
)print(summary[0]["summary_text"])
# Nanjing University is one of the oldest and most prestigious universities in China. It is known for its strong programs in sciences, engineering, and humanities.

5.?sentence-transformers 句子相似度

https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2

句子轉化為embedding 并用向量余弦值求相似度

from sentence_transformers import SentenceTransformer,util# 加載模型
model = SentenceTransformer("all-MiniLM-L6-v2")# 待編碼的句子 1
sentences1 = ['The cat sits outside','A man is playing guitar','The movies are awesome'
]
embeddings1 = model.encode(sentences1, convert_to_tensor=True) # 編碼得到向量
print(embeddings1)# 待編碼的句子 2
sentences2 = ['The dog plays in the garden','A woman watches TV','The new movie is so great'
]
embeddings2 = model.encode(sentences2, convert_to_tensor=True) # 編碼得到向量
print(embeddings2)
print(util.cos_sim(embeddings1, embeddings2))

6. Zero-Shot Audio Classification 零樣本音頻分類?https://huggingface.co/laion/clap-htsat-unfused

7. Text-to-Speech 文字轉語音?https://huggingface.co/kakao-enterprise/vits-ljs

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

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

相關文章

Python-Pandas GroupBy 進階與透視表學習

??一、數據分組&#xff08;GroupBy&#xff09;????核心概念??&#xff1a;將數據按指定字段分組&#xff0c;對每組進行聚合、轉換或過濾操作。??1. 分組聚合&#xff08;Aggregation&#xff09;??將分組數據聚合成單個值&#xff08;如平均值、總和&#xff09…

MQTT 核心概念與協議演進全景解讀(二)

MQTT 在物聯網中的應用實例智能家居中的設備聯動在智能家居系統里&#xff0c;MQTT 協議扮演著至關重要的角色&#xff0c;是實現設備間高效通信與智能聯動的核心樞紐。以常見的智能家居場景為例&#xff0c;當清晨的陽光緩緩升起&#xff0c;光線傳感器檢測到光照強度的變化&a…

燧原科技招大模型訓練算法工程師

高級大模型訓練算法工程師&#xff08;崗位信息已經經過jobleap.cn授權&#xff0c;可在csdn發布&#xff09;燧原科技 上海職位描述負責大模型在AI芯片預訓練和微調等研發和客戶支持工作&#xff1b; 參與大模型訓練精度分析和性能調優&#xff1b;職位要求985/211大學計算機…

基于Java虛擬線程的高并發作業執行框架設計與性能優化實踐指南

基于Java虛擬線程的高并發作業執行框架設計與性能優化實踐指南 一、技術背景與應用場景 在分布式系統和微服務架構中&#xff0c;后端常需承載海量異步作業&#xff08;如批量數據處理、定時任務、異步消息消費等&#xff09;&#xff0c;對作業執行框架提出了高并發、高吞吐、…

了解 PostgreSQL 的 MVCC 可見性基本檢查規則

1. 引言 根據 Vadim Mikheev 的說法&#xff0c;PostgreSQL 的多版本并發控制&#xff08;MVCC&#xff09;是一種“在多用戶環境中提高數據庫性能的高級技術”。該技術要求系統中存在同一數據元組的多個“版本”&#xff0c;這些版本由不同時間段內獲取的快照進行管理。換句話…

普通烘箱 vs 鎧德科技防靜電烘箱:深度對比與選擇指南

在電子制造、化工、航空航天等精密工業領域&#xff0c;烘箱作為關鍵工藝設備&#xff0c;其性能直接關系到產品可靠性和生產安全。普通烘箱與防靜電烘箱的核心差異在于靜電防護能力&#xff0c;而鎧德科技作為防靜電烘箱領域的專業廠商&#xff0c;其產品通過技術創新重新定義…

達夢數據庫巡檢常用SQL(一)

達夢數據庫巡檢常用SQL(一) 數據庫基本信息 數據庫用戶信息 數據庫對象檢查 數據庫基本信息 檢查授權信息: SELECT /*+DMDB_CHECK_FLAG*/ LIC_VERSION AS "許可證版本" ,SERIES_NO AS "序列號" ,CHECK_CODE AS "校驗碼" …

TypeScript的接口 (Interfaces)講解

把接口&#xff08;Interface&#xff09;想成一份“說明書”或“合同書”。說明書 比如電飯煲的說明書告訴你&#xff1a; 必須有“煮飯”按鈕必須有“保溫”功能顏色可以是白、黑、紅 接口在 TypeScript 里干的就是同樣的事&#xff1a;它規定一個對象“長什么樣”。 interfa…

Python本源詩話(我DeepSeek)

物理折行新注釋&#xff0c;直抒胸臆吾志名。 筆記模板由python腳本于2025-08-23 13:14:28創建&#xff0c;本篇筆記適合喜歡python和詩的coder翻閱。 學習的細節是歡悅的歷程 博客的核心價值&#xff1a;在于輸出思考與經驗&#xff0c;而不僅僅是知識的簡單復述。 Python官網…

博士招生 | 美國圣地亞哥州立大學 Yifan Zhang 課題組博士招生,AI 安全領域頂尖平臺等你加入!

內容源自“圖靈學術博研社”gongzhonghao學校簡介圣地亞哥州立大學&#xff08;San Diego State University, SDSU&#xff09;是美國加州南部久負盛名的公立研究型大學。學校坐落于科技產業高度活躍的南加州地區&#xff0c;與本地軟件、電信、生物科技、國防及清潔能源等領域…

Day22: Python渦輪增壓計劃:用C擴展榨干最后一絲性能!

目錄&#x1f525; 第一章&#xff1a;初識外掛 - ctypes初體驗1.1 C語言渦輪引擎1.2 Python調用秘籍? 第二章&#xff1a;Cython核彈級加速2.1 給Python穿上防彈衣2.2 編譯倒計時2.3 起飛測試&#x1f3ce;? 第三章&#xff1a;終極速度對決3.1 賽前準備3.2 比賽結果&#x…

如何修復“DNS服務器未響應”錯誤

“DNS服務器未響應”是一種常見的網絡錯誤&#xff0c;當設備無法與域名系統&#xff08;DNS&#xff09;服務器通信以將域名轉換為IP地址時&#xff0c;就會出現這種錯誤。DNS服務器的作用是將域名轉換為IP地址&#xff08;例如&#xff0c;將www.example.com轉換為192.168.1.…

數據結構與算法-算法-三數之和

題目&#xff1a; 15. 三數之和 - 力扣&#xff08;LeetCode&#xff09;15. 三數之和 - 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k &#xff0c;同時還滿足 nums[i] nums[j] nums[k] 0 。請你返回所…

ASCOMP PDF Conversa:高效精準的PDF轉換工具

在日常工作和學習中&#xff0c;PDF文件因其格式穩定、兼容性強而被廣泛使用。然而&#xff0c;PDF文件的編輯性較差&#xff0c;常常需要將其轉換為可編輯的格式&#xff0c;如Word文檔。ASCOMP PDF Conversa作為一款功能強大的PDF轉換工具&#xff0c;能夠將PDF文件轉換成可編…

JAVA核心基礎篇-集合

想要了解集合&#xff0c;首先要知道一個東西&#xff0c;叫數據結構。所謂數據結構&#xff0c;其實就是計算機存儲&#xff0c;組織數據的方式。常用的數據結構有8大類數組&#xff0c;鏈表&#xff0c;樹&#xff0c;堆&#xff0c;棧&#xff0c;隊列&#xff0c;哈希表&am…

大模型——深度評測智能體平臺Coze Studio

深度評測智能體平臺Coze Studio 7 月底字節跳動的 Coze-Studio 正式開源,算是 AI 智能體領域的一個大事件。這個月終于有時間在內網環境進行了部署和評測,希望能為團隊的企業知識庫和 AI 應用建設提供多一個選項。 其實,我們廠的知識庫系統一直是自研的。沒有直接采用市面…

UE5打包,LoadObject加載不出網格|動畫

由于筆者UE5加載模型和動畫使用的動態加載&#xff08;LoadObject&#xff09;&#xff0c;而這些資源&#xff08;XX001、XX002 等&#xff09;沒有被任何關卡或藍圖直接引用&#xff0c;在編輯器狀態下是可以正常加載的&#xff0c;但它們在打包時被當作“無用”資源而排除了…

C 語言標準輸入輸出頭文件stdio.h及其常見用法

在這篇文章中&#xff0c;我們來詳細聊一聊 C 語言標準輸入輸出頭文件 stdio.h 及其常見用法。1. stdio.h 是什么 stdio.h&#xff08;Standard Input and Output Header&#xff09;是 C 標準庫中的一個頭文件&#xff0c;提供了處理標準輸入輸出和一些文件操作的函數聲明。 它…

Js逆向 拼夕夕anti_content

前言 本文章中所有內容僅供學習交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代碼&#xff0c;抓包內容、敏感網址、數據接口等均已做脫敏處理&#xff0c;嚴禁用于商業用途和非法用途&#xff0c;否則由此產生的一切后果均與作者無關&#xff01;本文章未經…

大模型時代為什么需要向量數據庫?

這里寫自定義目錄標題1. 向量數據庫2. 向量嵌入3. 特征和向量4. 相似性測量4.1 歐幾里得距離4.2 余弦相似度5. 相似性搜索5.1 K-Means5.2 基于文本嵌入進行意圖匹配6. 問答助手7. 意圖匹配1. 向量數據庫 向量數據庫&#xff08;Vector Database&#xff09;&#xff0c;也叫矢…