語音轉(zhuǎn)文字在許多不同領(lǐng)域都有著廣泛的應(yīng)用。以下是一些例子:
1.字幕制作:語音轉(zhuǎn)文字可以幫助視頻制作者快速制作字幕,這在影視行業(yè)和網(wǎng)絡(luò)視頻領(lǐng)域非常重要。通過使用語音轉(zhuǎn)文字工具,字幕制作者可以更快地生成字幕,從而縮短制作時(shí)間,節(jié)省人工成本,并提高制作效率。
2.法律文書:在法律領(lǐng)域,語音轉(zhuǎn)文字可以幫助律師和律所將聽證會(huì)、辯論和其他法律活動(dòng)的錄音轉(zhuǎn)化為文字文檔。這些文檔可以用于研究、起草文件和法律分析等目的,從而提高工作效率。
3.醫(yī)療文檔:醫(yī)療專業(yè)人員可以使用語音轉(zhuǎn)文字技術(shù)來記錄病人的醫(yī)療記錄、手術(shù)記錄和其他相關(guān)信息。這可以減少錯(cuò)誤和遺漏,提高記錄的準(zhǔn)確性和完整性,為患者提供更好的醫(yī)療服務(wù)。
4.市場(chǎng)調(diào)查和分析:語音轉(zhuǎn)文字可以幫助企業(yè)快速收集和分析消費(fèi)者反饋、電話調(diào)查和市場(chǎng)研究結(jié)果等數(shù)據(jù)。這可以幫助企業(yè)更好地了解其目標(biāo)受眾和市場(chǎng)趨勢(shì),從而制定更有效的營銷策略和商業(yè)計(jì)劃。
總之,語音轉(zhuǎn)文字技術(shù)在許多不同的行業(yè)和場(chǎng)景中都有著廣泛的應(yīng)用,可以提高工作效率、減少成本和錯(cuò)誤,并為企業(yè)和個(gè)人帶來更多商業(yè)價(jià)值。
語音轉(zhuǎn)文字是一項(xiàng)重要的技術(shù),但市場(chǎng)上大部分語音轉(zhuǎn)文字工具存在諸多問題,效果非常差。如果你需要高效而準(zhǔn)確的語音轉(zhuǎn)文字解決方案,你應(yīng)該考慮使用Whisper。下面是whisper的一段轉(zhuǎn)換示例:
", ".join([i["text"] for i in result["segments"] if i is not None])
# Out[12]: '我贏了啊你說你看到?jīng)]有沒有這樣沒有減息啊我們后面是降息, 你不要去博這個(gè)東西, 我真是害怕你啊, 你不要去博不確定性, 是不是不確定性是我們的敵人, 聽到?jīng)]有朋友們, 好吧, 來朋友們, 你們的預(yù)約點(diǎn)好了啊, 朋友們, 你們的預(yù)約一定要給我點(diǎn)好了吧, 晚上八點(diǎn)鐘是準(zhǔn)時(shí)開播的, 朋友們關(guān)注點(diǎn)好了, 我們盤中視頻見啊, 朋友們大家再見'
可以看到,即便是語速這么快的情況下,Whisper 依然實(shí)現(xiàn)了近乎完美的轉(zhuǎn)換。
在接下來的教程中,我們將介紹如何使用Whisper來輕松地完成語音轉(zhuǎn)文字任務(wù)。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。
請(qǐng)選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
- MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install openai-whisper
此外你還需要安裝ffmpeg。
安裝ffmpeg
Windows:
- 進(jìn)入 http://ffmpeg.org/download.html#build-windows,點(diǎn)擊 windows 對(duì)應(yīng)的圖標(biāo),進(jìn)入下載界面點(diǎn)擊 download 下載按鈕,
- 解壓下載好的zip文件到指定目錄
- 將解壓后的文件目錄中 bin 目錄(包含 ffmpeg.exe )添加進(jìn) path 環(huán)境變量中
- DOS 命令行輸入 ffmpeg -version, 出現(xiàn)以下界面說明安裝完成:
**Mac ** (打開終端(Terminal), 用 homebrew 安裝):
brew install ffmpeg --with-libvorbis --with-sdl2 --with-theora
apt-get install ffmpeg libavcodec-extra
2.使用Whisper進(jìn)行語音轉(zhuǎn)文字
簡單的使用例子:
import whisper
whisper_model = whisper.load_model("large")
result = whisper_model.transcribe(r"C:Userswin10Downloadstest.wav")
print(", ".join([i["text"] for i in result["segments"] if i is not None]))
首先,我們建議使用Whisper的large-v2模型。根據(jù)我的實(shí)測(cè)結(jié)果,這個(gè)模型的表現(xiàn)非常優(yōu)秀,它可以識(shí)別多種語言,包括中文,而且中文識(shí)別效果非常出色。在某些文字轉(zhuǎn)換的場(chǎng)景中,它的表現(xiàn)甚至優(yōu)于騰訊云、阿里云。
如果你無法下載到模型,可以用我們的模型鏡像下載地址:https://pythondict.com/download/openai-whisper-large-v2/
使用前將模型文件放到指定位置:
Windows: C:Users你的用戶名.cachewhisper/large-v2.pt
Linux/MacOS: ~/.cache/whisper/large-v2.pt
然后重新運(yùn)行程序即可得到轉(zhuǎn)換結(jié)果。比如我們轉(zhuǎn)換下面這個(gè)音頻:
whisper素材 **, Python實(shí)用寶典 ,**29秒
效果如下:
# 公眾號(hào):Python實(shí)用寶典
# 轉(zhuǎn)載請(qǐng)附帶注釋
import whisper
whisper_model = whisper.load_model("large")
result = whisper_model.transcribe(r"C:Userswin10Downloadstest.wav")
print(", ".join([i["text"] for i in result["segments"] if i is not None]))
# 我贏了啊你說你看到?jīng)]有沒有這樣沒有減息啊我們后面是降息, 你不要去博這個(gè)東西, 我真是害怕你啊, 你不要去博不確定性, 是不是不確定性是我們的敵人, 聽到?jīng)]有朋友們, 好吧, 來朋友們, 你們的預(yù)約點(diǎn)好了啊, 朋友們, 你們的預(yù)約一定要給我點(diǎn)好了吧, 晚上八點(diǎn)鐘是準(zhǔn)時(shí)開播的, 朋友們關(guān)注點(diǎn)好了, 我們盤中視頻見啊, 朋友們大家再見
此外,不建議一次性轉(zhuǎn)換長音頻。如果你要轉(zhuǎn)換長度很長的音頻,建議先做切割并降低碼率。參考我們以前moviepy的文章:
Python 一個(gè)快速視頻剪輯編輯神器 — Moviepy
3.Whisper轉(zhuǎn)換結(jié)果分析
Whisper的生成結(jié)果是一個(gè)字典:
{'text': '我贏了啊你說你看到?jīng)]有沒有這樣沒有減息啊我們后面是降息你不要去博這個(gè)東西我真是害怕你啊你不要去博不確定性是不是不確定性是我們的敵人聽到?jīng)]有朋友們好吧來朋友們你們的預(yù)約點(diǎn)好了啊朋友們你們的預(yù)約一定要給我點(diǎn)好了吧晚上八點(diǎn)鐘是準(zhǔn)時(shí)開播的朋友們關(guān)注點(diǎn)好了我們盤中視頻見啊朋友們大家再見', 'segments': [{'id': 0, 'seek': 0, 'start': 0.0, 'end': 4.8, 'text': '我贏了啊你說你看到?jīng)]有沒有這樣沒有減息啊我們后面是降息', 'tokens': [50364, 1654, 5266, 95, 2289, 4905, 42405, 16529, 4511, 17944, 17944, 21209, 17944, 6336, 237, 26460, 4905, 15003, 13547, 8833, 1541, 47421, 26460, 50604], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 1, 'seek': 0, 'start': 4.8, 'end': 6.7, 'text': '你不要去博這個(gè)東西', 'tokens': [50604, 2166, 11962, 6734, 5322, 248, 15368, 38409, 16220, 50699], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 2, 'seek': 0, 'start': 6.7, 'end': 8.2, 'text': '我真是害怕你啊', 'tokens': [50699, 1654, 6303, 1541, 14694, 21164, 2166, 4905, 50774], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 3, 'seek': 0, 'start': 8.2, 'end': 10.9, 'text': '你不要去博不確定性', 'tokens': [50774, 2166, 11962, 6734, 5322, 248, 1960, 38114, 106, 12088, 21686, 50909], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 4, 'seek': 0, 'start': 10.9, 'end': 13.200000000000001, 'text': '是不是不確定性是我們的敵人', 'tokens': [50909, 23034, 1960, 38114, 106, 12088, 21686, 1541, 15003, 1546, 7017, 234, 4035, 51024], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 5, 'seek': 0, 'start': 13.200000000000001, 'end': 14.4, 'text': '聽到?jīng)]有朋友們', 'tokens': [51024, 31022, 4511, 17944, 19828, 9497, 51084], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 6, 'seek': 0, 'start': 14.4, 'end': 15.1, 'text': '好吧', 'tokens': [51084, 40221, 51119], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 7, 'seek': 0, 'start': 15.1, 'end': 15.6, 'text': '來朋友們', 'tokens': [51119, 6912, 19828, 9497, 51144], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 8, 'seek': 0, 'start': 15.6, 'end': 17.0, 'text': '你們的預(yù)約點(diǎn)好了啊', 'tokens': [51144, 29806, 1546, 12501, 226, 16853, 99, 12579, 12621, 4905, 51214], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 9, 'seek': 0, 'start': 17.0, 'end': 17.3, 'text': '朋友們', 'tokens': [51214, 19828, 9497, 51229], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 10, 'seek': 0, 'start': 17.3, 'end': 18.900000000000002, 'text': '你們的預(yù)約一定要給我點(diǎn)好了吧', 'tokens': [51229, 29806, 1546, 12501, 226, 16853, 99, 48161, 49076, 12579, 12621, 6062, 51309], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 11, 'seek': 0, 'start': 18.900000000000002, 'end': 21.0, 'text': '晚上八點(diǎn)鐘是準(zhǔn)時(shí)開播的', 'tokens': [51309, 50157, 33453, 12579, 50064, 1541, 6336, 228, 15729, 18937, 49993, 1546, 51414], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 12, 'seek': 0, 'start': 21.0, 'end': 22.6, 'text': '朋友們關(guān)注點(diǎn)好了', 'tokens': [51414, 19828, 9497, 28053, 26432, 12579, 12621, 51494], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 13, 'seek': 0, 'start': 22.6, 'end': 24.1, 'text': '我們盤中視頻見啊', 'tokens': [51494, 15003, 5419, 246, 5975, 40656, 39752, 23813, 4905, 51569], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}, {'id': 14, 'seek': 0, 'start': 24.1, 'end': 25.400000000000002, 'text': '朋友們大家再見', 'tokens': [51569, 19828, 9497, 6868, 44176, 51634], 'temperature': 0.0, 'avg_logprob': -0.2088493855794271, 'compression_ratio': 1.649402390438247, 'no_speech_prob': 0.5881261825561523}], 'language': 'zh'}
text參數(shù)是沒有做任何分詞處理的純語音原文本。
我們要重點(diǎn)關(guān)注的是segments參數(shù)。segments參數(shù)對(duì)音頻內(nèi)人物語言做了"分段"操作,比如這一段話:
{
'id': 1,
'seek': 0,
'start': 4.8,
'end': 6.7,
'text': '你不要去博這個(gè)東西',
'tokens': [50604, 2166, 11962, 6734, 5322, 248, 15368, 38409, 16220, 50699],
'temperature': 0.0,
'avg_logprob': -0.2088493855794271,
'compression_ratio': 1.649402390438247,
'no_speech_prob': 0.5881261825561523
}
它就相當(dāng)于人一樣,去一幀幀校對(duì)每個(gè)詞說話的時(shí)間:start是起始時(shí)間,end是結(jié)束時(shí)間。即"你不要去博這個(gè)東西"發(fā)生在音頻的4.8秒到6.7秒之間。其他參數(shù):
temperature 是指在語音轉(zhuǎn)文本模型生成結(jié)果時(shí),控制輸出隨機(jī)性和多樣性的參數(shù)。
avg_logprob參數(shù)是語音轉(zhuǎn)文字模型預(yù)測(cè)的置信度評(píng)分的平均值。
compression_ratio參數(shù)是指音頻信號(hào)壓縮的比率。
no_speech_prob參數(shù)是指模型在某段時(shí)間內(nèi)檢測(cè)到?jīng)]有語音信號(hào)的概率。
重點(diǎn)在于如何應(yīng)用。start和end參數(shù)你可以用來直接生成視頻的字幕。大大提高生產(chǎn)效率。
置信度參數(shù)你可以用來提高識(shí)別準(zhǔn)確率,如果說置信度一直不高,可以單獨(dú)拎出來人工優(yōu)化。
總之,Whisper的Large-v2模型絕對(duì)是目前中文語音轉(zhuǎn)文字的頂級(jí)存在,有興趣的朋友趕緊試試吧。
-
語音
+關(guān)注
關(guān)注
3文章
399瀏覽量
38447 -
編輯器
+關(guān)注
關(guān)注
1文章
812瀏覽量
31626 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1469瀏覽量
34681 -
Whisper
+關(guān)注
關(guān)注
0文章
3瀏覽量
5037
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
看國內(nèi)外語音交互廠商如何定位人工智能
語音轉(zhuǎn)文字用這個(gè)操作方法,幾秒鐘實(shí)現(xiàn)音頻轉(zhuǎn)換文字
會(huì)議記錄太難?是你沒選好手機(jī)錄音轉(zhuǎn)文字的好幫手
基于Visual_Baisc旋轉(zhuǎn)文字效果演示實(shí)驗(yàn)
搜狗智能錄音筆C1可實(shí)現(xiàn)將語音準(zhǔn)確轉(zhuǎn)換為文字
谷歌Live Transcribe語音識(shí)別技術(shù)可轉(zhuǎn)文字
微信新iOS版本語音轉(zhuǎn)文字功能上線
微信偷偷上線了這個(gè)超好用的支持三種語音的文字功能
谷歌研發(fā)語音識(shí)別轉(zhuǎn)文字工具Live Transcribe
桌面版微信v2.9測(cè)試版體驗(yàn) 新增語音消息自動(dòng)轉(zhuǎn)文字功能

訊飛會(huì)議寶S8提升語音轉(zhuǎn)文字的速度,開啟高效記錄新時(shí)代
淺析語音識(shí)別技術(shù)的發(fā)展歷程
OpenAI官宣把ChatGPT API開放

評(píng)論