在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Python編寫的語音播放軟件

MEMS ? 作者:工程師李察 ? 2018-11-03 08:36 ? 次閱讀

單位經常使用廣播進行臨時事項的通知(將文字轉換為語音然后通過功放廣播),但是市面上多數語音播放軟件都是收費的,要么發音失真,要么不夠穩定——經常出現莫名其妙的故障,容易給工作帶來被動。學Python這么久不如動手寫一款自己的語音廣播軟件,即使發生故障也可以自行排除。

1

界面設計

在開始動工之前當然要分析需求,我要的核心功能是將一段文字通知輸入軟件,然后將其轉換為語音并播放出來。

這項功能雖然并不復雜,但也需要一個交互式的界面,所以決定使用Tkinter來實現這個功能。

第一步:建立一個窗體

設置標題、大小等要素,為了避免顯示格式錯亂將其設定為不可改變大小,代碼如下:

第二步,設置一個控件

用于接受收入的文字,這里選擇帶滾動條的Text,代碼如下:

第三步,提供選項

作為一款語音播放軟件,最基本的語速、音調等風格設置還是要有的,這里使用Combobox控件提供固定選項,用戶可以根據情況選擇不同的發音、語速和語調。

第四步,建立功能事件的觸發接口

設置三個Button控件分別用于觸發“語音播放”、“文本清除”和“界面退出”功能。

最終界面效果如下:

2

語音播放

關于“清除”、“退出”等功能相對比較簡單,這里重點對本次的核心功能——語音播放進行詳細說明。

1).語音接口

文本轉換語音推薦使用百度云的REST API 接口,登錄網站http://ai.baidu.com/,依次進入控制臺——語音技術頁面,創建自己的語音應用(下圖),其中AppID 、API Key 、Secret Key 三個參數在代碼中會用到。

然后使用 pip install baidu-aip 安裝python SDK模塊,我們來看一下函數原型:


APP_ID='XXXXXX'

API_KEY='XXXXXXXXXXXXX'

SECRET_KEY='XXXXXXXXXXXXXXXXXXXXXX'

client=AipSpeech(APP_ID,API_KEY,SECRET_KEY)

result=client.synthesis(text,'zh',1,{'per':1,'vol':15,'pit':9,'spd':5})

text:需要轉換的文字。

per:發音人選擇, 0為女聲,1為男聲,3為情感合成-度逍遙,4為情感合成-度丫丫,默認為普通女聲。vol:音量,取值0-15,默認為5中音量

pit:音調,取值0-9,默認為5中語調。

spd:語速,取值0-9,默認為5中語速。‘zh’和1分別為語音模式和客戶端類型,該兩項均為固定值,不支持修改。

可以看到,我們需要的發音、音調、語速三種風格都可以通過修改參數來實現。

2).功能設計

解決了語音合成接口的問題,就可以結合界面設置來實現具體功能了。

首先,要將界面中的語音風格選項與語音合成函數參數一一對應起來,這是一個典型的鍵與值的對應關系,使用字典這種數據結構再合適不過了。

然后對于發音風格,選取了男聲、女聲、混合三種模式;

最后對于音調和語速,沒必要設置過細的精度等級,這里分別選取了三個跨度明顯的等級進行區分。

當“播放”按鈕點擊時,要從Text控件中讀取文本,如果文本為空則彈出提示框要求重新輸入;若文本不為空則將文本轉換為音頻文件并使用playsound進行播放。

這里有一個問題需要特別注意,那就是在軟件運行過程中,生成并播放的音頻文件不可刪除、不可修改、不可覆蓋,所以每次轉換生成的音頻文件名稱絕對不能重復,否則在進行多次“播放”操作時,會因為新生成的音頻文件無法保存而發生故障。

3

打包封裝

到目前為止,這個軟件的運行要依賴于本地的python開發環境,不能方便地提供給他人使用,這里推薦Pyinstaller的第三方庫來對python程序進行打包,首先進入剛才的py文件所在目錄,執 行以下cmd命令。其中“-w”的作用是是不顯示命令窗口,tk_voice是剛才的py文件名稱。

pyinstaller-wtk_voice.py

這時,在同一目錄下會生成一個dist文件夾,這里面就是打包后的程序文件了。我們運行一下其中的.exe文件,就會出現之前設計的程序界面,在文本框中輸入一段測試文字:“全體人員請注意,全體人員請注意,請立即下樓集合開飯。”,點擊“播放”按鈕試一下效果:

插入音頻————測試.mp3

最后,關于Pyinstaller的使用有幾點需要注意的地方:

該方法僅適用于windows系統,而且對系統版本有比較嚴格的要求,比如64位系統下打包的程序無法在32位系統下運行。

如果需要打包的程序中調用了外部的一些圖片或其他資源文件,則需要手動復制到打包后的文件夾內,因為對于這些文件Pyinstaller不會進行打包。

使用Pyinstaller打包如果出現中途失敗的情況,可能會導致原py文件內容丟失,所以打包之前最好先進行備份。

使用import導入其他庫的時候盡量有選擇性,不要導入整個庫,不然打包后的文件會非常龐大。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4806

    瀏覽量

    84931
  • 播放軟件
    +關注

    關注

    0

    文章

    2

    瀏覽量

    4809

原文標題:營收15年增長30倍,“下一代”是瑞聲科技的最大“功臣”

文章出處:【微信號:MEMSensor,微信公眾號:MEMS】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    有沒有大神會用LabVIEW編寫一個音樂播放軟件啊~求教程

    有沒有大神會用LabVIEW編寫一個音樂播放軟件啊~求教程!求大神carry啊~新手學LabVIEW,第一次做項目想做一個音樂播放
    發表于 08-13 20:26

    語音快速播放

    MCU讀取spi flash中的語音數據后,采用pwm可以正常播放。但是如何控制播放速率?
    發表于 07-30 20:19

    基于pyaudio利用python進行語音生成和語音識別詳解

    ASR:基于pyaudio利用python進行語音生成、語音識別總結及其案例詳細攻略
    發表于 12-27 16:51

    如何在Python中將語音轉換為文本

      語音識別是計算機軟件識別口語中的單詞和短語,并將其轉換為可讀文本的能力。那么如何在Python中將語音轉換為文本?如何使用SpeechRecognition 庫在
    發表于 07-29 18:12

    如何使用PWM實現語音播放

    如何使用PWM實現語音播放
    發表于 02-14 06:59

    PWM語音播放器——基于Luminary單片機

    PWM語音播放器——基于Luminary單片機 詳述PWM語音播放器原理、硬件和軟件設計
    發表于 04-07 16:50 ?47次下載

    python編寫腳本方法

    對于具有484個引腳的芯片,如果手動一個一個設置引腳,必然是一場噩夢。網上有使用Capture進行自動導入的帖子,不過沒有找到AD方面的帖子。本文使用python編寫腳本,自動分配引腳。
    發表于 11-17 11:38 ?4960次閱讀

    如何使用Python編寫一個桌面軟件系統?步驟有哪些

    建議直接用python編寫一個網頁服務器,然后就在本機用瀏覽器來使用。
    的頭像 發表于 01-25 12:08 ?4893次閱讀

    如何使用Python編寫一個簡單的程序

    按照軟件行業傳統習慣,當你學習一種新的編程語言如Python時,首先編寫一個“Hello World! ”程序。請執行以下步驟,以創造你的“Hello World!” Python程序
    的頭像 發表于 01-16 15:21 ?2.2w次閱讀

    Python與NI:搭配使用Python與NI硬件和軟件

    Python與NI: 搭配使用Python與NI硬件和軟件 NI支持用戶自行選擇合適的編程語言。NI提供多種用于測試和測量的產品,并努力將產品與開源社區進行整合。借助出色的原生Python
    的頭像 發表于 05-29 11:36 ?5034次閱讀

    如何使用Warp在Python環境中編寫CUDA內核

      通常,實時物理模擬代碼是用低級 CUDA C ++編寫的,以獲得最佳性能。在這篇文章中,我們將介紹 NVIDIA Warp ,這是一個新的 Python 框架,可以輕松地用 Python
    的頭像 發表于 04-02 16:15 ?2598次閱讀

    OTP語音播放芯片如何實現應用?

    OTP語音播放芯片的應用廣泛,通常在不需要更換語音內容,語音時長不會過長的產品或者環境中有應用。OTP語音芯片的應用多種多樣,一個完整的
    的頭像 發表于 02-13 15:04 ?1429次閱讀

    利用Python編寫簡單網絡爬蟲實例

    利用 Python編寫簡單網絡爬蟲實例2 實驗環境python版本:3.3.5(2.7下報錯
    發表于 02-24 11:05 ?14次下載

    KT148A語音芯片的組合播放詳細說明 包含語音制作 壓縮 下載 播放

    KT148A語音芯片的組合播放詳細說明 ,包含:語音制作 、壓縮、下載、播放 這里總共的步驟大概分為5步,其實也很簡單 組合播放的原理,
    的頭像 發表于 10-13 11:17 ?877次閱讀
    KT148A<b class='flag-5'>語音</b>芯片的組合<b class='flag-5'>播放</b>詳細說明 包含<b class='flag-5'>語音</b>制作 壓縮 下載 <b class='flag-5'>播放</b>

    芯知識 | 什么是音頻藍牙播放語音芯片?

    隨著科技的不斷進步,音頻藍牙播放語音芯片成為嵌入式音頻系統中備受關注的創新解決方案。本文將深入解析什么是音頻藍牙播放語音芯片,以及其在實現無線音頻體驗方面的重要作用。一、什么是音頻藍牙
    的頭像 發表于 12-15 08:36 ?814次閱讀
    芯知識 | 什么是音頻藍牙<b class='flag-5'>播放</b><b class='flag-5'>語音</b>芯片?
    主站蜘蛛池模板: 国产精品久久国产三级国不卡顿| 国内露脸夫妇交换精品| 亚洲国产福利| 特级一级毛片免费看| 日韩一级免费视频| 男人都懂得网址| 黄录像欧美片在线观看| 色综合色综合| 国产精品午夜国产小视频| 2019天天干| 亚洲欧美一区二区三区图片| 久久第一页| 婷婷激情六月| 欧美在线免费| 国内外精品免费视频| 夜夜天天操| 黑人黄色大片| 中文字幕一区二区三区免费看 | 免费黄色大片网站| 国产一区二区高清在线| 中文网丁香综合网| 欧美爆插| 俺也啪| 高h水果榨汁play男男| 天堂国产| 可以直接看的黄色网址| a理论片| 国产亚洲精品久久午夜| 68日本xxxxxxxxx xx| 伊人久久香| 日本www.色| 成人网在线| 久操成人| 免费观看一级特黄欧美大片| 91插插视频| 优优国产在线视频| 欧美精品专区55页| 夜夜夜网| 男人操女人免费网站| 亚洲天堂网在线观看| 毛片一区|