日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python(九)- 音频文字转换

發布時間:2023/12/10 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python(九)- 音频文字转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python 是一門通用性很強的語言,本文主要講述其中的音頻模塊 gtts(Google文本到語音)的使用。


1.音頻模塊簡介

  • 文本轉語音:
    • gtts:谷歌模塊
    • aip:百度合成
  • 格式轉換:
    • pydub和ffmpeg:實現mp3轉wav格式
  • 發音:
    • pyttsx3:系統內置語音引擎實現發音,不生成mp3
    • win32com:Windows操作系統內置的語音引擎實現文字發音
  • 音頻轉文字:
    • SpeechRecognition:IBM speech to text

谷歌gTTS模塊:gtts文檔
百度語音合成api接口:api文檔

2.模塊安裝

pip install gTTS # 谷歌文字轉語音 pip install baidu-aip # 語音合成 pip install playsound # 語音播放 pip install pyttsx3 # 語音引擎實現發音 pip install SpeechRecognition # 音頻轉文字

3.文字轉音頻

3.1.gtts模塊使用

from gtts import gTTSdef text2voice():"""文字轉語音 - 谷歌 gtts模塊"""tts = gTTS(text="oh 寶貝! come on, baby!", lang="en")tts.save("test.mp3")

3.2.百度合成

進入語音合成網站,登錄創建應用

from aip import AipSpeechAPP_ID = '你的 App ID' API_KEY = '你的 Api Key' SECRET_KEY = '你的 Secret Key' client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 合成音頻 def text_mixin_vocie():result = client.synthesis('你好嗎?', 'zh', 1, {'vol': 5, })# 識別正確返回語音二進制 錯誤則返回dict if not isinstance(result, dict):with open('auido.mp3', 'wb') as f:f.write(result)# 讀取文件 def get_file_content(filePath):cmd_str = "ffmpeg -y -i %s -acodec pcm_s16le -f s16le -ac 1 -ar 16000 %s.pcm"%(filePath, filePath)os.system(cmd_str) # 調用系統命令ffmpeg,傳入音頻文件名即可with open(filePath + ".pcm", 'rb') as fp:return fp.read()# 識別本地文件 res = client.asr(get_file_content('audio.m4a'), 'pcm', 16000, {'dev_pid': 1536, # 1536表示能識別中文和英文,它的容錯率比較高 }) print(res) print(res['result'])

3.3.語音播放

from playsound import playsounddef play_voice():playsound("store/test.mp3") # 音頻文件路徑

3.4.文字發音

  • win32com 模塊
import win32com.client as windef word_pronunciation():speak = win.Dispatch("SAPI.SpVoice")speak.Speak("come on, baby!")speak.Speak("寶貝兒,你好!")
  • pyttsx3 模塊

pyttsx3 模塊可能會安裝失敗,可去官網下載指定版本

import pyttsx3def word_pronunciation_v2():engine = pyttsx3.init()engine.setProperty("voice", "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH - CN_HUIHUI_11.0")engine.say('開始語音合成中...')engine.say("你好嗎?寶兒姐...")engine.say('全世界都在說中國話...')engine.runAndWait()

4.音頻轉文字

4.1.注冊IBM應用

首先去Speech to text官網注冊.

4.2.獲取憑證

到管理頁面,獲取憑證

4.3.轉換實現

入門教程: Speech to Text

python接口使用參考

音頻轉換文字方式:

  • python 腳本運行命令轉錄音頻(參考文檔中的 curl 命令)
  • requests調用api接口(https://gateway-wdc.watsonplatform.net/speech-to-text/api/v1/recognize)
  • speech_recognition模塊
import speech_recognition as sr import requestsharvard = sr.AudioFile('audio.wav') # 文件路徑 r = sr.Recognizer() with harvard as source:audio = r.record(source) print(type(audio))IBM_USERNAME = '******' IBM_PASSWORD= '******' text = r.recognize_ibm(audio, username = IBM_USERNAME, password = IBM_PASSWORD, language='zh-CN') # 或者 text = r.recognize_google(audio, language = 'zh-CN')print(text)

5.音頻格式轉換

5.1.ffmpeg的使用

5.1.1.安裝ffmpeg

參考:ffmpeg使用參考

pip install ffmpeg

5.1.2.引入exe路徑:

  • 將 ffmpeg 添加到環境變量
  • 在代碼中引入 ffmpeg 路徑

5.1.3.實現轉換

def trans_voice_type():"""音頻格式轉換"""source_path = "xxx"save_path = 'xxx'source_file = os.listdir(source_path)for source in source_file:old_path = os.path.join(source_path, source)new_name = os.path.join(save_path, source[:-4]) # 截取音頻名字,刪除后綴print('正在轉換音頻:{}'.format(new_name))os.popen("C:\\python\\python36\\Tools\\ffmpeg\\bin\\ffmpeg.exe -i " + old_path + " " + new_name + ".wav")print('所有音頻轉換完畢!')

5.2.pydub的使用

5.2.1.安裝pydub

pip install pydub

5.2.2.實現轉換

from pydub import AudioSegmentdef convert_video(file_path):outfile = os.path.splitext(os.path.realpath(file_path))[0] + '.wav'AudioSegment.converter = "C:\\python\\python36\\Tools\\ffmpeg\\bin\\ffmpeg.exe"AudioSegment.from_file(file_path).export(outfile, format='wav')

以上關于pydub轉換時,會有FileNotFoundError報錯信息,這是由于依賴程序ffmpeg未找到,手動設置后,依舊沒解決,這里做個標記,后續解決再補充,或者有人知道的可以告訴我一下,感謝!


原文可見:我的博客 - 音頻文字轉換

總結

以上是生活随笔為你收集整理的Python(九)- 音频文字转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。