一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于Python編寫(xiě)的語(yǔ)音播放軟件

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

掃碼添加小助手

加入工程師交流群

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

1

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

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

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

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

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

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

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

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

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

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

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

最終界面效果如下:

2

語(yǔ)音播放

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

1).語(yǔ)音接口

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

然后使用 pip install baidu-aip 安裝python SDK模塊,我們來(lái)看一下函數(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中語(yǔ)調(diào)。

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

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

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

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

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

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

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

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

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

3

打包封裝

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

pyinstaller-wtk_voice.py

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

插入音頻————測(cè)試.mp3

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

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

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

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

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

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

    關(guān)注

    56

    文章

    4827

    瀏覽量

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

    關(guān)注

    0

    文章

    2

    瀏覽量

    4834

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    有沒(méi)有大神會(huì)用LabVIEW編寫(xiě)一個(gè)音樂(lè)播放軟件啊~求教程

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

    語(yǔ)音快速播放

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

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

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

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

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

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

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

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

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

    python編寫(xiě)腳本方法

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

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

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

    如何使用Python編寫(xiě)一個(gè)簡(jiǎn)單的程序

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

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

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

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

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

    利用Python編寫(xiě)簡(jiǎn)單網(wǎng)絡(luò)爬蟲(chóng)實(shí)例

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

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

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

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

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

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

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