import gradio as gr import os from gradio_client import Client from dotenv import load_dotenv load_dotenv() HF_TOKEN = os.environ['hf_token'] client = Client("Ghana-NLP/Southern-Ghana-TTS",hf_token=HF_TOKEN) def synthesize(text, lang, speaker): audio = result = client.predict( text=text, lang=lang, speaker=speaker, api_name="/predict") return audio title = "Khaya AI: Speech Synthesis for Southern Ghana" description = """ How to use: Enter some text and choose a language and speaker. """ examples = [ ["Amlɔ ɔ, bɔku ko ba ha a nɔ, nɛ gbi ko je bɔku ɔ mi de ke, “Nɔ nɛ ɔ ji ye bi nɛ i suɔ lɛ saminya a nɛ; nyɛɛ bu lɛ tue!”", "Dangme","Male (Low)"], ["Kɛkɛ nɛ nihi nɛ a bɔ mɛ apaa gbɔkuɛ ngmlɛ enuɔ ɔ ba, nɛ a ti nɔ tsuaa nɔ na sika hiɔ yi kake.", "Dangme","Female"], ["No hewɔ lɛ, mɔ fɛɛ mɔ ni kuɔ hegbɛ lɛ naa lɛ, Nyɔŋmɔ gbɛjianɔtoo lɛ eteɔ shi eshiɔ lɛ; ni mɛi ni teɔ shi nakai lɛ aaana amɛkojomɔ.", "Ga","Male (Low)"], ["Jeee nakai kulɛ ani afɔŋ afɔlei lɛ shãa? Ejaakɛ kulɛ mɛi ni bajaa Nyɔŋmɔ lɛ, kɛ atsuu amɛhe shi kome pɛ lɛ, amɛbɛ eshai ahe nilee kwraa dɔŋŋ.", "Ga","Female"], ["Wotee ɖe to, eye wòkpe fu, gake meke nu o. Wokplɔe abe alẽ ene yina wuwu ge. Ezi ɖoɖoe kpoo abe alẽ si le eƒe fukolawo ŋkume la ene, eye meke nu o.", "Ewe","Male (Low)"], ["Esime wòle to ɖom la, ahe eƒe susu ɣaɣlawo ɖe go, adze klo asubɔ Mawu eye wòaɖe gbeƒã be vavã Mawu le mia dome le afi ma.", "Ewe","Female"], ["Ebɔsoa aba pii akɔ haban mu, na kakrabaabi na ebɔboa ano aba fie; na mbɛbɛw bedzi.", "Fante","Male (Low)"], ["Na iyi nyinara so mpo mu no yeridzi nokwar ahyɛmu, na yɛrekyerɛw; na hɛn mbapɔmba, na hɛn Levifo, na hɛn asɔfoe, rosɔw ano.", "Fante","Female"], ["Nanso, ɛberɛ a mesuntiiɛ no, wɔde anigyeɛ boaa wɔn ho ano; ntohyɛsofoɔ twaa me ho hyiaaɛ a mennim na wɔdii me ho nsekuro a wɔantwa so da.", "Asante Twi","Male (Low)"], ["Ɛha nso, nnipa no nwiinwii bio tiaa Mose sɛ, “Ma yɛn nsuo nnom!”Mose ka kyerɛɛ wɔn sɛ, “Monyɛ dinn! Adɛn enti na mo ne me regye akyinnyeɛ? Adɛn enti na mopɛ sɛ mosɔ Awurade hwɛ?", "Asante Twi","Female"], ["Sɛ saa da no du a mode me din bebisa no biribiara a ɛho hia mo. Menka se me na mebisa Agya no ama mo.", "Akuapem Twi","Male (Low)"], ["Honhom Kronkron ka kyerɛɛ me se menntwentwɛn me nan ase na me ne wɔn nkɔ. Saa agyidifo baasa yi a wofi Yopa no kaa me ho kɔɔ Kaesarea ma yɛn nyinaa kɔɔ Kornelio fi.", "Akuapem Twi","Female"], ["Awie mɔɔ ka aneɛ ngakyile la ɛndendɛ ɛngile menli; ɔtendɛ ɔkile Nyamenle, ɔluakɛ awie biala ɛnde mɔɔ ɔka la abo. Mɔɔ ɔyɛ la a le kɛ ɔdua Nyamenle Sunsum ne tumi zo ɔka fealeranu ninyɛne ne mɔ anwo edwɛkɛ.", "Nzema","Male (Low)"], ["Bɛvale ɛzoanvolɛma ne bɛrale ayiama ne anyunlu bieko, bɛbilale bɛ empele, na bɛduale bɛ kɛ bɛmmabɔ Gyisɛse duma bieko ɛlɛ ɛleka biala; na bɛgyakyile bɛ.", "Nzema","Female"], ["Si dans une tribu, une femme reçoit des terres en héritage, elle doit se marier avec un homme appartenant à la tribu de son père. Ainsi, chaque tribu israélite gardera les terres reçues de ses ancêtres.", "French","Male (Low)"], ["I also know how to speak English, if you can believe that!", "English","Female"], ] gr.Interface( fn=synthesize, inputs=[ gr.Text(label="Input Text"), gr.Dropdown( label="Select Language", choices=["Akuapem Twi","Asante Twi","Dangme","Ewe","Fante", "French","Ga","Nzema","English"], value="Asante Twi", ), gr.Radio(label="Speaker", choices=[ "Female", "Male (Low)", "Male (High)" ], value="Female"), ], outputs=[ gr.Audio(label="Generated Speech", type="numpy"), ], title=title, description=description, examples=examples, ).launch()