chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

MEMS ? 作者:工程師李察 ? 2018-11-03 08:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

1

界面設(shè)計(jì)

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

這項(xiàng)功能雖然并不復(fù)雜,但也需要一個(gè)交互式的界面,所以決定使用Tkinter來實(shí)現(xiàn)這個(gè)功能。

第一步:建立一個(gè)窗體

設(shè)置標(biāo)題、大小等要素,為了避免顯示格式錯(cuò)亂將其設(shè)定為不可改變大小,代碼如下:

第二步,設(shè)置一個(gè)控件

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

第三步,提供選項(xiàng)

作為一款語音播放軟件,最基本的語速、音調(diào)等風(fēng)格設(shè)置還是要有的,這里使用Combobox控件提供固定選項(xiàng),用戶可以根據(jù)情況選擇不同的發(fā)音、語速和語調(diào)。

第四步,建立功能事件的觸發(fā)接口

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

最終界面效果如下:

2

語音播放

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

1).語音接口

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

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


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:需要轉(zhuǎn)換的文字。

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

pit:音調(diào),取值0-9,默認(rèn)為5中語調(diào)。

spd:語速,取值0-9,默認(rèn)為5中語速?!畓h’和1分別為語音模式和客戶端類型,該兩項(xiàng)均為固定值,不支持修改。

可以看到,我們需要的發(fā)音、音調(diào)、語速三種風(fēng)格都可以通過修改參數(shù)來實(shí)現(xiàn)。

2).功能設(shè)計(jì)

解決了語音合成接口的問題,就可以結(jié)合界面設(shè)置來實(shí)現(xiàn)具體功能了。

首先,要將界面中的語音風(fēng)格選項(xiàng)與語音合成函數(shù)參數(shù)一一對應(yīng)起來,這是一個(gè)典型的鍵與值的對應(yīng)關(guān)系,使用字典這種數(shù)據(jù)結(jié)構(gòu)再合適不過了。

然后對于發(fā)音風(fēng)格,選取了男聲、女聲、混合三種模式;

最后對于音調(diào)和語速,沒必要設(shè)置過細(xì)的精度等級,這里分別選取了三個(gè)跨度明顯的等級進(jìn)行區(qū)分。

當(dāng)“播放”按鈕點(diǎn)擊時(shí),要從Text控件中讀取文本,如果文本為空則彈出提示框要求重新輸入;若文本不為空則將文本轉(zhuǎn)換為音頻文件并使用playsound進(jìn)行播放。

這里有一個(gè)問題需要特別注意,那就是在軟件運(yùn)行過程中,生成并播放的音頻文件不可刪除、不可修改、不可覆蓋,所以每次轉(zhuǎn)換生成的音頻文件名稱絕對不能重復(fù),否則在進(jìn)行多次“播放”操作時(shí),會因?yàn)樾律傻囊纛l文件無法保存而發(fā)生故障。

3

打包封裝

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

pyinstaller-wtk_voice.py

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

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

最后,關(guān)于Pyinstaller的使用有幾點(diǎn)需要注意的地方:

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

如果需要打包的程序中調(diào)用了外部的一些圖片或其他資源文件,則需要手動復(fù)制到打包后的文件夾內(nèi),因?yàn)閷τ谶@些文件Pyinstaller不會進(jìn)行打包。

使用Pyinstaller打包如果出現(xiàn)中途失敗的情況,可能會導(dǎo)致原py文件內(nèi)容丟失,所以打包之前最好先進(jìn)行備份。

使用import導(dǎo)入其他庫的時(shí)候盡量有選擇性,不要導(dǎo)入整個(gè)庫,不然打包后的文件會非常龐大。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86759
  • 播放軟件
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    4835

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

文章出處:【微信號:MEMSensor,微信公眾號:MEMS】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

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

    有沒有大神會用LabVIEW編寫一個(gè)音樂播放軟件啊~求教程!求大神carry啊~新手學(xué)LabVIEW,第一次做項(xiàng)目想做一個(gè)音樂播放
    發(fā)表于 08-13 20:26

    語音快速播放

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

    基于pyaudio利用python進(jìn)行語音生成和語音識別詳解

    ASR:基于pyaudio利用python進(jìn)行語音生成、語音識別總結(jié)及其案例詳細(xì)攻略
    發(fā)表于 12-27 16:51

    如何在Python中將語音轉(zhuǎn)換為文本

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

    如何使用PWM實(shí)現(xiàn)語音播放?

    如何使用PWM實(shí)現(xiàn)語音播放
    發(fā)表于 02-14 06:59

    PWM語音播放器——基于Luminary單片機(jī)

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

    python編寫腳本方法

    對于具有484個(gè)引腳的芯片,如果手動一個(gè)一個(gè)設(shè)置引腳,必然是一場噩夢。網(wǎng)上有使用Capture進(jìn)行自動導(dǎo)入的帖子,不過沒有找到AD方面的帖子。本文使用python編寫腳本,自動分配引腳。
    發(fā)表于 11-17 11:38 ?5085次閱讀

    如何使用Python編寫一個(gè)桌面軟件系統(tǒng)?步驟有哪些

    建議直接用python編寫一個(gè)網(wǎng)頁服務(wù)器,然后就在本機(jī)用瀏覽器來使用。
    的頭像 發(fā)表于 01-25 12:08 ?5132次閱讀

    如何使用Python編寫一個(gè)簡單的程序

    按照軟件行業(yè)傳統(tǒng)習(xí)慣,當(dāng)你學(xué)習(xí)一種新的編程語言如Python時(shí),首先編寫一個(gè)“Hello World! ”程序。請執(zhí)行以下步驟,以創(chuàng)造你的“Hello World!” Python程序
    的頭像 發(fā)表于 01-16 15:21 ?2.2w次閱讀

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

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

    如何使用Warp在Python環(huán)境中編寫CUDA內(nèi)核

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

    利用Python編寫簡單網(wǎng)絡(luò)爬蟲實(shí)例

    利用 Python編寫簡單網(wǎng)絡(luò)爬蟲實(shí)例2 實(shí)驗(yàn)環(huán)境python版本:3.3.5(2.7下報(bào)錯(cuò)
    發(fā)表于 02-24 11:05 ?14次下載

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

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

    芯知識 | 什么是音頻藍(lán)牙播放語音芯片?

    隨著科技的不斷進(jìn)步,音頻藍(lán)牙播放語音芯片成為嵌入式音頻系統(tǒng)中備受關(guān)注的創(chuàng)新解決方案。本文將深入解析什么是音頻藍(lán)牙播放語音芯片,以及其在實(shí)現(xiàn)無線音頻體驗(yàn)方面的重要作用。一、什么是音頻藍(lán)牙
    的頭像 發(fā)表于 12-15 08:36 ?1160次閱讀
    芯知識 | 什么是音頻藍(lán)牙<b class='flag-5'>播放</b><b class='flag-5'>語音</b>芯片?

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡單的Python程序。什么是
    的頭像 發(fā)表于 03-25 09:27 ?741次閱讀
    零基礎(chǔ)入門:如何在樹莓派上<b class='flag-5'>編寫</b>和運(yùn)行<b class='flag-5'>Python</b>程序?