語音合成學(xué)習(xí)(三)學(xué)習(xí)筆記

語音合成學(xué)習(xí)(三)學(xué)習(xí)筆記


Gradio--搭建可視化演示環(huán)境

一、介紹

簡介

Gradio定位是快速構(gòu)建一個針對人工智能的python的webApp庫,在Hugging Face等提供各種模型推理展示的平臺廣告使用,阿里的魔塔展示也是基于此。

大家思考下,Gradio作為一款python庫,底層邏輯是什么?

  • 結(jié)果:Gradio展示的還是web元素
  • 過程:所以Gradio是即懂python又懂web開發(fā)(css/js/html)的開發(fā)者,通過python對這些web技術(shù)做了封裝
  • pipline:python語言--> css/js/html

Gradio是MIT的開源項目。

使用gradio,只需在原有的代碼中增加幾行,就能自動化生成交互式web頁面,并支持多種輸入輸出格式,比如圖像分類中的圖>>標(biāo)簽,超分辨率中的圖>>圖等。

同時還支持生成能外部網(wǎng)絡(luò)訪問的鏈接,能夠迅速讓你的朋友,同事體驗?zāi)愕乃惴ā?/p>

總結(jié)起來,它的優(yōu)勢有:

  • 自動生成頁面且可交互
  • 改動幾行代碼就能完成
  • 支持自定義多種輸入輸出
  • 支持生成可外部訪問的鏈接進行分享

目前已經(jīng)有很多優(yōu)秀的開源項目使用Gradio做demo頁面。那么該怎么使用Gradio,讓我們一起來玩玩~

Get start

0.安裝Gradio

pip install gradio 或
為了更快安裝,可以使用清華鏡像源。
pip install gradio  -i https://pypi.tuna.tsinghua.edu.cn/simple

1.寫個簡單的例子

# app.py
import gradio as gr

def greet(name):
    return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")

demo.launch(server_name="0.0.0.0")

# 啟動
# python web.py
# Running on local URL:  http://0.0.0.0:7860
# To create a public link, set `share=True` in `launch()`
image.png

上面的代碼就是簡單一個webApp,功能是輸入一個文本,輸出一個文本。代碼中關(guān)鍵點:

  • 導(dǎo)入包 import gradio as gr
  • gr.Interface 構(gòu)建一個app, 確定輸入inputs和輸出outputs的類型,已經(jīng)處理輸入inputs的函數(shù)(這個函數(shù)返回一個outputs的類型)
  • 提供一個app的功能模塊函數(shù)
  • launch 啟動一個web容器,對外提供服務(wù)

梳理下web渲染流程

  • 根據(jù)輸入輸出類型(如text)封裝html組件(with css樣式,布局等)
  • 點擊submit:通過js獲取輸入的值傳遞(ajax)給后臺處理函數(shù)(greet),通過js回調(diào)函數(shù)接收函數(shù)的返回值,然后通過js賦值給html元素

上面只是介紹了Gradio的簡單的使用,Gradio提供了豐富的html組件,如文本框,圖像,視頻,下拉框,單選框等等。

核心參數(shù)

gradio的核心是它的gr.Interface函數(shù),用來構(gòu)建可視化界面。inputs和outputs都是可以多個,Gradio根據(jù)類型展示相應(yīng)的組件

  • fn:放你用來處理的函數(shù)
  • inputs:寫你的輸入類型,這里輸入的是圖像,所以是"image"
  • outputs:寫你的輸出類型,這里輸出的是圖像,所以是"image"

最后我們用interface.lauch()把頁面一發(fā)布,一個本地靜態(tài)交互頁面就完成了!另外,可以通過.launch(share=True)來分享功能,這個功能可以生成一個域名,可以在外部直接訪問。

interface.launch(inbrowser=True, inline=False, validate=False, share=True)

inbrowser - 模型是否應(yīng)在新的瀏覽器窗口中啟動。

inline - 模型是否應(yīng)該嵌入在交互式python環(huán)境中(如jupyter notebooks或colab notebooks)。

validate - gradio是否應(yīng)該在啟動之前嘗試驗證接口模型兼容性。

share - 是否應(yīng)創(chuàng)建共享模型的公共鏈接。

2. 本人模擬了一個輸入文本轉(zhuǎn)換語音的例子

輸入文本輸出了指定的使用訓(xùn)練好的模型


image.png

gradio依賴包的版本

踩坑記錄

安裝的gradio 是3.0版本  當(dāng)前環(huán)境 tensorflow  1.9.0 ,執(zhí)行時候報錯 
image.png

原來是相互依賴,需要升級numpy的版本(當(dāng)前訓(xùn)練模型合成語音的項目環(huán)境需要numpy ==1.14.0)。于是,查一下版本不匹配為了不影響訓(xùn)練合成功能,進行g(shù)radio降級 => 安裝gradio2.0版本,搭建webUI界面顯示了,重新執(zhí)行了文件, 但是出現(xiàn)了語音無法合成,排查許久才發(fā)現(xiàn),自動把numpy升級了。針對合成和執(zhí)行實現(xiàn)web不能同時實現(xiàn)的問題:

<u>最終解決是通過多個包和版本一起指定</u>安裝 完美解決 (gradio和numpy 有依賴關(guān)系)

以上主要是對如何使用gradio的簡單介紹,也是用的較多的搭建可視化組件。


相關(guān)閱讀

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容