poto-tts / index.html
michsethowusu's picture
Link the repo, PyPI, the voice and the mobile guide from the page
74f69d5 verified
Raw History Blame Contribute Delete
34 kB
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>poto-tts &mdash; Ghanaian English on Kokoro</title>
<style>
:root {
--bg: #fbfaf8; --fg: #1a1a1a; --muted: #5c5c5c; --line: #e3e0da;
--card: #ffffff; --accent: #1a6b4f;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--bg: #16181a; --fg: #eceae6; --muted: #9c9a95; --line: #2b2e31;
--card: #1d2022; --accent: #6cc4a1;
}
}
:root[data-theme="dark"] {
--bg: #16181a; --fg: #eceae6; --muted: #9c9a95; --line: #2b2e31;
--card: #1d2022; --accent: #6cc4a1;
}
* { box-sizing: border-box; }
body {
margin: 0; background: var(--bg); color: var(--fg); line-height: 1.55;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
-webkit-text-size-adjust: 100%;
}
.wrap { max-width: 900px; margin: 0 auto; padding: 40px 20px 80px; }
h1 { font-size: 1.7rem; margin: 0 0 .3em; letter-spacing: -.01em; }
.lede { color: var(--muted); max-width: 62ch; margin: 0 0 1.6em; }
.item { border: 1px solid var(--line); background: var(--card);
border-radius: 10px; padding: 18px 20px; margin: 0 0 16px; }
.txt { font-size: 1.03rem; margin: 0 0 14px; }
.grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 620px) { .grid { grid-template-columns: 1fr; } }
.side h3 {
font-size: .72rem; text-transform: uppercase; letter-spacing: .09em;
margin: 0 0 .5em; color: var(--muted); font-weight: 600;
}
.side.poto h3 { color: var(--accent); }
audio { width: 100%; height: 34px; }
.ipa {
font-size: .84rem; color: var(--muted); margin: .6em 0 0; word-break: break-word;
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.side.poto .ipa { color: var(--fg); }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; }
.tabs button {
font: inherit; font-size: .88rem; padding: .42em .9em; cursor: pointer;
background: var(--card); color: var(--muted);
border: 1px solid var(--line); border-radius: 999px;
}
.tabs button[aria-selected="true"] {
background: var(--accent); border-color: var(--accent); color: var(--bg);
font-weight: 600;
}
mark {
background: none; color: var(--accent); font-weight: 600;
border-bottom: 2px solid var(--accent); padding-bottom: 1px;
}
.legend { font-size: .84rem; color: var(--muted); margin: 0 0 26px; }
footer { margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--line);
color: var(--muted); font-size: .88rem; }
a { color: var(--accent); }
</style>
</head>
<body>
<div class="wrap">
<h1>poto-tts</h1>
<p class="lede">English text-to-speech that pronounces Ghanaian words properly.
Same model, same voice, same text &mdash; the only difference is the front-end.</p>
<p class="links">
<a href="https://github.com/GhanaNLP/poto-tts">GitHub</a> &middot;
<a href="https://pypi.org/project/poto-tts/"><code>pip install poto-tts</code></a> &middot;
<a href="https://huggingface.co/ghananlpcommunity/poto-tts-kokoro-gh">the voice</a> &middot;
<a href="https://github.com/GhanaNLP/poto-tts/blob/main/docs/MOBILE.md">Android &amp; iOS</a>
</p>
<div class="tabs" role="tablist" id="tabs"></div>
<p class="legend"><mark>Underlined</mark> words are in the Ghanaian lexicon, so
poto-tts pronounces them from it. Everything else is left to espeak's English and is
said exactly as British English would say it. Each voice reads different sentences,
drawn from a Ghanaian English news corpus. The Kokoro column is standard Kokoro --
its own package, weights and misaki grapheme-to-phoneme -- not this pipeline with the
dictionary removed.</p>
<section data-voice="Grace" hidden>
<div class="item">
<p class="txt"><mark>Akple</mark> and Ademe are traditional <mark>Ghanaian</mark> dishes, particularly popular among the <mark>Ewe</mark> people of the <mark>Volta</mark> Region.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Grace-0.kokoro.wav"></audio>
<p class="ipa">ˈakpᵊl and ədˈiːm ɑː tɹədˈɪʃənᵊl ɡɑːnˈAən dˈɪʃɪz, pətˈɪkjʊləli pˈɒpjʊlə əmˈʌŋ ðə jˈuː pˈiːpᵊl ɒv ðə vˈɒltə ɹˈiːʤᵊn.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Grace-0.poto.wav"></audio>
<p class="ipa">ˈakplɛ and ɐdˈiːm ɑː tɹɐdˈɪʃənə‍l ɡanˈean dˈɪʃɪz pətˈɪkjʊləli pˈɒpjʊləɹ ɐmˌʌŋ ðɪʲ ˈɛvɛ pˈiːpə‍l ɒvðə vˈɔlta ɹˈiːd‍ʒən</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Ayisha</mark> Modi has issued a stern warning to popular <mark>Ghanaian</mark> fetish priestess, <mark>Nana</mark> <mark>Agradaa</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Grace-1.kokoro.wav"></audio>
<p class="ipa">Iˈiːʃə mˈQdi haz ˈɪʃjuːd ɐ stˈɜːn wˈɔːnɪŋ tə pˈɒpjʊlə ɡɑːnˈAən fˈɛtɪʃ pɹiːstˈɛs, nˈɑːnə ˈaɡɹədˌɑː.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Grace-1.poto.wav"></audio>
<p class="ipa">ajˈiʃa mˈə‍ʊdi hɐz ˈɪʃuːd ɐ stˈɜːn wˈɔːnɪŋ tə pˈɒpjʊlə ɡanˈean fˈɛtɪʃ pɹˈiːstɛs nˈana aɡɹˈada</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">Following his installation, he has assumed the stool name <mark>Nii</mark> <mark>Otanka</mark> <mark>Okaija</mark> <mark>Akraman</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Grace-2.kokoro.wav"></audio>
<p class="ipa">fˈɒlQɪŋ hɪz ɪnstəlˈAʃᵊn, hiː haz əsjˈuːmd ðə stˈuːl nˈAm nˈɪI ɒtˈaŋkə ɒkˈAʤə ˈakɹamən.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Grace-2.poto.wav"></audio>
<p class="ipa">fˈɒlə‍ʊɪŋ hɪz ˌɪnstəlˈe‍ɪʃən hiː hɐz ɐsjˈuːmd ðə stˈuːl nˈe‍ɪm nˈiːʲ otˈaŋka ˌokaˈid‍ʒa akɹˈaman</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">Team <mark>Ghana</mark> were disqualified on infringement in the final changeover from Joseph <mark>Oduro</mark> <mark>Manu</mark> and Joseph <mark>Amoah</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Grace-3.kokoro.wav"></audio>
<p class="ipa">tˈiːm ɡˈɑːnə wɜː dɪskwˈɒlɪfId ˌɒn ɪnfɹˈɪnʤmᵊnt ɪn ðə fˈInᵊl ʧˈAnʤˌQvə fɹɒm ʤˈQzɪf QdjˈʊəɹQ mˈɑːnuː and ʤˈQzɪf ˈamQ.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Grace-3.poto.wav"></audio>
<p class="ipa">tˈiːm ɡˈana wɜː dɪskwˈɒlɪfˌa‍ɪd ˌɒn ɪnfɹˈɪnd‍ʒmənt ɪnðə fˈa‍ɪnə‍l t‍ʃˈe‍ɪnd‍ʒə‍ʊvə fɹɒm d‍ʒˈə‍ʊsəf odˈuɹo mˈanu and d‍ʒˈə‍ʊsəf amˈoa</p>
</div>
</div>
</div>
</section>
<section data-voice="Comfort" hidden>
<div class="item">
<p class="txt">They are skipper Christian <mark>Amoah</mark>, Winifred <mark>Ntumi</mark> and Sandra <mark>Mensimah</mark> <mark>Owusu</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Comfort-0.kokoro.wav"></audio>
<p class="ipa">ðˌA ɑː skˈɪpə kɹˈɪsʧᵊn ˈamQ, wˈɪnɪfɹɪd ˈɛntjˈuːmi and sˈandɹə mˈɛnsɪmə Qˈuːsuː.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Comfort-0.poto.wav"></audio>
<p class="ipa">ðe‍ɪ ɑː skˈɪpə kɹˈɪst‍ʃən amˈoa wˈɪnɪfɹɪd ntˈumi and sˈandɹə mɛnsˈima owˈusu</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">He is the son of the late Emma <mark>Naa</mark> <mark>Ameley</mark> <mark>Tagoe</mark> and hails from the <mark>Adanse</mark> Royal lineage.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Comfort-1.kokoro.wav"></audio>
<p class="ipa">hˌiː ɪz ðə sˈʌn ɒv ðə lˈAt ˈɛmə nˈɑː əmˈiːli tˈaɡQ and hˈAlz fɹɒm ði ədˈans ɹˈYəl lˈɪniɪʤ.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Comfort-1.poto.wav"></audio>
<p class="ipa">hiːʲ ɪz ðə sˈʌn ɒvðə lˈe‍ɪt ˈɛmə nˈa ˌamelˈei taɡˈɔe and hˈe‍ɪlz fɹʌmðɪʲ adˈansi ɹˈɔ‍ɪə‍l lˈɪnɪʲɪd‍ʒ</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Didi</mark> began his youth career with <mark>Bolga</mark> Soccer Masters at <mark>Bolgatanga</mark> in the Upper East Region of <mark>Ghana</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Comfort-2.kokoro.wav"></audio>
<p class="ipa">dˈiːdi bɪɡˈan hɪz jˈuːθ kəɹˈɪə wɪð bˈɒlɡə sˈɒkə mˈɑːstəz at bˌɒlɡətˈaŋɡə ɪn ði ˈʌpə ˈiːst ɹˈiːʤᵊn ɒv ɡˈɑːnə.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Comfort-2.poto.wav"></audio>
<p class="ipa">dˈɪdɪ bɪɡˈan hɪz jˈuːθ kəɹˈi‍ə wɪð bˈolɡa sˈɒkə mˈastəz at bˌolɡatˈaŋɡa ɪnðɪʲ ˌʌpəɹ ˈiːst ɹˈiːd‍ʒən ɒv ɡˈana</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">The arrests occurred in <mark>Blorkorfe</mark> and <mark>Awakpedome</mark>, both suburbs of <mark>Adidome</mark> in the Central <mark>Tongu</mark> District.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Comfort-3.kokoro.wav"></audio>
<p class="ipa">ði əɹˈɛsts əkˈɜːd ɪn blˈɔːkɔːf and əwˈakpɪdˌQm, bˈQθ sˈʌbəːbz ɒv ˈadɪdˌQm ɪn ðə sˈɛntɹᵊl tˈʌŋɡuː dˈɪstɹɪkt.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Comfort-3.poto.wav"></audio>
<p class="ipa">ðɪʲ ɐɹˈɛsts əkˈɜːd ɪn blɔːkˈɔfe and ˌawakpedˈome bˈə‍ʊθ sˈʌbɜːbz ɒv ˌadidˈome ɪnðə sˈɛntɹə‍l tˈɔŋɡu dˈɪstɹɪkt</p>
</div>
</div>
</div>
</section>
<section data-voice="Mercy" hidden>
<div class="item">
<p class="txt">This ruling was widely interpreted as a validation of <mark>Nii</mark> <mark>Adama</mark> Latse&#x27;s claim to the <mark>Ga</mark> <mark>Mantse</mark> title.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Mercy-0.kokoro.wav"></audio>
<p class="ipa">ðˌɪs ɹˈuːlɪŋ wɒz wˈIdli ɪntˈɜːpɹɪtɪd az ɐ vˌalɪdˈAʃᵊn ɒv nˈɪI adˈɑːmə lˈatsiɪz klˈAm tə ðə ɡˈɑː mˈantsi tˈItᵊl.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Mercy-0.poto.wav"></audio>
<p class="ipa">ðɪs ɹˈuːlɪŋ wɒz wˈa‍ɪdliʲ ɪntˈɜːpɹɪtɪd az ɐ vˌalɪdˈe‍ɪʃən ɒv nˈiːʲ adˈama lˈatseɪz klˈe‍ɪm tə ðə ɡˈa mˈantsɛ tˈa‍ɪtə‍l</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">Adams <mark>Atidana</mark> Oliver won gold while <mark>Ofori</mark> <mark>Appiah</mark> Joel and Samuel <mark>Owusu</mark> won silver and bronze respectively.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Mercy-1.kokoro.wav"></audio>
<p class="ipa">ˈadəmz ˌatɪdˈɑːnə ˈɒlɪvə wˈʌn ɡˈQld wˌIl ɒfˈɔːɹi əpˈIə ʤˈQəl and sˈamjʊəl Qˈuːsuː wˈʌn sˈɪlvə and bɹˈɒnz ɹɪspˈɛktɪvli.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Mercy-1.poto.wav"></audio>
<p class="ipa">ˈadəmz ˌatidˈana ˈɒlɪvə wˈʌn ɡˈə‍ʊld wˌa‍ɪl ofˈoɹiʲ apˈiʲa d‍ʒˈə‍ʊl and sˈamjuːl owˈusu wˈʌn sˈɪlvə and bɹˈɒnz ɹɪspˈɛktɪvli</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Juabenhene</mark> <mark>Nana</mark> <mark>Otuo</mark> <mark>Sereboe</mark> II was among the chiefs who pleaded on their behalf.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Mercy-2.kokoro.wav"></audio>
<p class="ipa">ʤjˈuːAbənhˌiːn nˈɑːnə ˈɒtjuːˌQ səɹˈiːbQ ˌIˈI wɒz əmˈʌŋ ðə ʧˈiːfs hˌuː plˈiːdɪd ˌɒn ðɛː bɪhˈɑːf.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Mercy-2.poto.wav"></audio>
<p class="ipa">d‍ʒˌuabɛnhˈɛnɛ nˈana otˈuo sˌeɹebˈuo ɹˌə‍ʊmən tˈuː wɒz ɐmˌʌŋ ðə t‍ʃˈiːfs hˌuː plˈiːdɪd ˌɒn ðe‍ə bɪhˈɑːf</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Chirano</mark> is a mining community in the <mark>Bibiani</mark> <mark>Ahweso</mark> <mark>Bekai</mark> Municipality in the Western North.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Mercy-3.kokoro.wav"></audio>
<p class="ipa">kIɹˈɑːnQ ɪz ɐ mˈInɪŋ kəmjˈuːnɪti ɪn ðə bIbɪˈɑːni ɑːwˈiːsQ bɪkˈI mjʊnˌɪsɪpˈalɪti ɪn ðə wˈɛstᵊn nˈɔːθ.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Mercy-3.poto.wav"></audio>
<p class="ipa">t‍ʃiɹˈano ɪz ɐ mˈa‍ɪnɪŋ kəmjˈuːnɪtiʲ ɪnðə bibiʲˈaniʲ ahwˈesɔ bˈɛka‍ɪ mjuːnˈɪsɪpˈalɪtiʲ ɪnðə wˈɛstən nˈɔːθ</p>
</div>
</div>
</div>
</section>
<section data-voice="Patience" hidden>
<div class="item">
<p class="txt">The consignment originated from <mark>Kwahu</mark> <mark>Fodoa</mark> and was en route to <mark>Togo</mark> through <mark>Aflao</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Patience-0.kokoro.wav"></audio>
<p class="ipa">ðə kənsˈInmᵊnt əɹˈɪʤɪnAtɪd fɹɒm kwˈɑːhuː fədˈQə and wɒz ˈɛn ɹˈuːt tə tˈQɡQ θɹuː əflˈW.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Patience-0.poto.wav"></audio>
<p class="ipa">ðə kənsˈa‍ɪnmənt əɹˈɪd‍ʒɪnˌe‍ɪtɪd fɹɒm kwˈahu fodˈoa and wɒz ɒn ɹˈuːt tə tˈoːɡoː θɹuː aflˈaɔ</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">Following the fight, <mark>Ghanaians</mark> have been recalling the similar annihilation <mark>Bastie</mark> Samir handed to <mark>Bukom</mark> <mark>Banku</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Patience-1.kokoro.wav"></audio>
<p class="ipa">fˈɒlQɪŋ ðə fˈIt, ɡɑːnˈAənz hav biːn ɹɪkˈɔːlɪŋ ðə sˈɪmɪlə ənˌIəlˈAʃᵊn bˈasti sˈamɪə hˈandɪd tə bjˈuːkəm bˈaŋkuː.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Patience-1.poto.wav"></audio>
<p class="ipa">fˈɒlə‍ʊɪŋ ðə fˈa‍ɪt ɡanˈeanz hɐvbɪn ɹɪkˈɔːlɪŋ ðə sˈɪmɪləɹ ɐnˌa‍ɪəlˈe‍ɪʃən bˈasti sˈami‍ə hˈandɪd tə bˈukɔm bˈaŋku</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">The NPP&#x27;s Solomon <mark>Kwame</mark> <mark>Asumadu</mark> is contesting the <mark>Akwatia</mark> seat against the NDC&#x27;s Bernard <mark>Bediako</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Patience-2.kokoro.wav"></audio>
<p class="ipa">ði ˌɛnpˌiːpˈiːz sˈɒləmən kwˈAm əsuːmˈɑːduː ɪz kəntˈɛstɪŋ ði akwˈAʃə sˈiːt əɡˈɛnst ði ˌɛndˌiːsˈiːz bˈɜːnəd bɪdɪˈɑːkQ.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Patience-2.poto.wav"></audio>
<p class="ipa">ðɪʲ ˌɛnpˌiːpˈiːz sˈɒlɒmən kwˈame ˌasumˈadu ɪz kəntˈɛstɪŋ ðɪʲ ˌakwatˈiʲa sˈiːt ɐɡˈɛnst ðɪʲ ˌɛndˌiːsˈiːz bˈɜːnəd bˌɪdiʲˈakɔ</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Esa</mark> Payin gave birth to <mark>Bediako</mark> <mark>Ntim</mark>, who became the successor of <mark>Opon</mark> Payin.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Patience-3.kokoro.wav"></audio>
<p class="ipa">ˈɛsə pˈAɪn ɡˈAv bˈɜːθ tə bɪdɪˈɑːkQ ˈɛntˈɪm, hˌuː bɪkˈAm ðə səksˈɛsə ɒv ˈɒpɒn pˈAɪn.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Patience-3.poto.wav"></audio>
<p class="ipa">ˈɛsa pˈe‍ɪɪn ɡˈe‍ɪv bˈɜːθ tə bˌɪdiʲˈakɔ ntˈim hˌuː bɪkˌe‍ɪm ðə səksˈɛsəɹ ɒv ˈopon pˈe‍ɪɪn</p>
</div>
</div>
</div>
</section>
<section data-voice="Emmanuel" hidden>
<div class="item">
<p class="txt"><mark>Volivo</mark> to <mark>Dorfor</mark> <mark>Adidome</mark> Bridge across the <mark>Volta</mark> River has been revived.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Emmanuel-0.kokoro.wav"></audio>
<p class="ipa">vəlˈɪvQ tə dˈɔːfə ˈadɪdˌQm bɹˈɪʤ əkɹˈɒs ðə vˈɒltə ɹˈɪvə haz biːn ɹɪvˈIvd.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Emmanuel-0.poto.wav"></audio>
<p class="ipa">volˈivo tə dˈɔrfɔɹ ˌadidˈome bɹˈɪd‍ʒ əkɹˌɒs ðə vˈɔlta ɹˈɪvə hˈazbiːn ɹɪvˈa‍ɪvd</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Shatta</mark> Bandle was born <mark>Idris</mark> <mark>Firdaus</mark>, a Northerner from a small village called <mark>Karaga</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Emmanuel-1.kokoro.wav"></audio>
<p class="ipa">ʃˈatə bˈandᵊl wɒz bˈɔːn ˈIdɹɪs fˈɜːdWs, ɐ nˈɔːðənə fɹɒm ɐ smˈɔːl vˈɪlɪʤ kˈɔːld kaɹˈɑːɡə.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Emmanuel-1.poto.wav"></audio>
<p class="ipa">ʃˈata bˈandə‍l wɒz bˈɔːn ˈidɹis fɪrdˈaus ɐ nˈɔːðənə fɹɒm ɐ smˈɔːl vˈɪlɪd‍ʒ kˈɔːld kaɹˈaɡa</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">The Saviour Church of <mark>Ghana</mark> has named a school at <mark>Bonwire</mark> after her, <mark>Nana</mark> <mark>Konadu</mark> Saviour School.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Emmanuel-2.kokoro.wav"></audio>
<p class="ipa">ðə sˈAvjə ʧˈɜːʧ ɒv ɡˈɑːnə haz nˈAmd ɐ skˈuːl at bˈɒnwIə ˈɑːftə hˌɜː, nˈɑːnə kənˈɑːduː sˈAvjə skˈuːl.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Emmanuel-2.poto.wav"></audio>
<p class="ipa">ðə sˈe‍ɪvjə t‍ʃˈɜːt‍ʃ ɒv ɡˈana hɐz nˈe‍ɪmd ɐ skˈuːl at bonwˈiɹe ˈaftə hɜː nˈana kɔnˈadu sˈe‍ɪvjə skˈuːl</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Bofoakwa</mark> <mark>Tano</mark> have severed ties with coach <mark>Frimpong</mark> <mark>Manso</mark> after four months at the helm, the club announced.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Emmanuel-3.kokoro.wav"></audio>
<p class="ipa">bˈɒfQkwə tˈɑːnQ hav sˈɛvəd tˈIz wɪð kˈQʧ fɹˈɪmpɒŋ mˈansQ ˈɑːftə fˈɔː mˈʌnθs at ðə hˈɛlm, ðə klˈʌb ənˈWnst.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Emmanuel-3.poto.wav"></audio>
<p class="ipa">bˌɔfɔˈakwa tˈano hav sˈɛvəd tˈa‍ɪz wɪð kˈə‍ʊt‍ʃ fɹˈɪmpɔŋ mˈanso ˈaftə fˈɔː mˈʌnθs at ðə hˈɛlm ðə klˈʌb ɐnˈa‍ʊnst</p>
</div>
</div>
</div>
</section>
<section data-voice="Isaac" hidden>
<div class="item">
<p class="txt">Member of Parliament for <mark>Bawku</mark> Central, <mark>Mahama</mark> <mark>Ayariga</mark> has reported that three more people were killed in <mark>Bawku</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Isaac-0.kokoro.wav"></audio>
<p class="ipa">mˈɛmbə ɒv pˈɑːlɪmᵊnt fɔː bˈɔːkuː sˈɛntɹᵊl, mahˈɑːmə ˈIɑːɹˌɪɡə haz ɹɪpˈɔːtɪd ðat θɹˈiː mˈɔː pˈiːpᵊl wɜː kˈɪld ɪn bˈɔːkuː.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Isaac-0.poto.wav"></audio>
<p class="ipa">mˈɛmbəɹ ɒv pˈɑːləmənt fɔː bˈɔku sˈɛntɹə‍l mahˈama ˌajaɹˈiɡa hɐz ɹɪpˈɔːtɪd ðat θɹˈiː mˈɔː pˈiːpə‍l wɜː kˈɪld ɪn bˈɔku</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Ghanaian</mark> musician <mark>Stonebwoy</mark> has taken legal action against politician and entertainment critic, <mark>Baba</mark> <mark>Sadiq</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Isaac-1.kokoro.wav"></audio>
<p class="ipa">ɡɑːnˈAən mjuːzˈɪʃᵊn stˈQnbwY haz tˈAkᵊn lˈiːɡᵊl ˈakʃᵊn əɡˈɛnst pˌɒlɪtˈɪʃᵊn and ˌɛntətˈAnmᵊnt kɹˈɪtɪk, bˈɑːbɑː sˈadɪk.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Isaac-1.poto.wav"></audio>
<p class="ipa">ɡanˈean mjuːzˈɪʃən stˈoːnbwɔ‍ɪ hɐz tˈe‍ɪkən lˈiːɡə‍l ˈakʃən ɐɡˈɛnst pˌɒlɪtˈɪʃən and ˌɛntətˈe‍ɪnmənt kɹˈɪtɪk bˈaba sˈadik</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Ghana</mark> legend and former Asante <mark>Kotoko</mark> star <mark>Opoku</mark> <mark>Afriyie</mark> has passed away.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Isaac-2.kokoro.wav"></audio>
<p class="ipa">ɡˈɑːnə lˈɛʤᵊnd and fˈɔːmə əsˈant kətˈQkQ stˈɑː ˈɒpQkˌuː ˈafɹɪji haz pˈɑːst əwˈA.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Isaac-2.poto.wav"></audio>
<p class="ipa">ɡˈana lˈɛd‍ʒənd and fˈɔːməɹ ɐsˈant kotˈoko stˈɑːɹ opˈoku ˌafɹijˈiʲe hɐz pˈast ɐwˈe‍ɪ</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Ghanaians</mark> on social media are eulogising veteran Highlife musician, <mark>Nana</mark> <mark>Kwame</mark> <mark>Ampadu</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Isaac-3.kokoro.wav"></audio>
<p class="ipa">ɡɑːnˈAənz ˌɒn sˈQʃl mˈiːdɪə ɑː jˈuːləʤˌIzɪŋ vˈɛtəɹən hˈIlIf mjuːzˈɪʃᵊn, nˈɑːnə kwˈAm ampˈɑːduː.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Isaac-3.poto.wav"></audio>
<p class="ipa">ɡanˈeanz ˌɒn sˈə‍ʊʃə‍l mˈiːdiːʲəɹ ɑː jˈuːləd‍ʒˌa‍ɪzɪŋ vˈɛtəɹən hˈa‍ɪla‍ɪf mjuːzˈɪʃən nˈana kwˈame ampˈadu</p>
</div>
</div>
</div>
</section>
<section data-voice="Ebenezer" hidden>
<div class="item">
<p class="txt">The Information Minister, <mark>Kojo</mark> <mark>Oppong</mark> <mark>Nkrumah</mark> says government is working to stabilise the <mark>cedi</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Ebenezer-0.kokoro.wav"></audio>
<p class="ipa">ði ˌɪnfəmˈAʃᵊn mˈɪnɪstə, kˈQʤQ ˈɒpɒŋ ˈɛŋkɹˈuːmə sˈɛz ɡˈʌvnmᵊnt ɪz wˈɜːkɪŋ tə stˈAbəlIz ðə sˈiːdi.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Ebenezer-0.poto.wav"></audio>
<p class="ipa">ðɪʲ ˌɪnfəmˈe‍ɪʃən mˈɪnɪstə kˈɔd‍ʒɔ ˈɔpɔŋ ŋkɹˈuma sˈɛz ɡˈʌvənmənt ɪz wˈɜːkɪŋ tə stˈe‍ɪbəlˌa‍ɪz ðə sˈiːdi</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">The <mark>Adom</mark> TV <mark>Fufuo</mark> Party is underway at the forecourt of The Multimedia Group at <mark>Kokomlemle</mark> in <mark>Accra</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Ebenezer-1.kokoro.wav"></audio>
<p class="ipa">ði ədˈɒm tˌiːvˈiː fjˈuːfjuːˌQ pˈɑːti ɪz ˌʌndəwˈA at ðə fˈɔːkɔːt ɒv ðə mˌʌltɪmˈiːdɪə ɡɹˈuːp at kˈɒkəmlˌɛmᵊl ɪn əkɹˈɑː.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Ebenezer-1.poto.wav"></audio>
<p class="ipa">ðɪʲ ˈadɔm tˌiːvˈiː fufˈuo pˈɑːtiʲ ɪz ˌʌndəwˈe‍ɪ at ðə fˈɔːkɔːt ɒvðə mˌʌltɪmˈiːdiːʲə ɡɹˈuːp at kˌɔkɔmlˈɛmlɛ ɪn ˈakɹa</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">A court has ordered <mark>Marwako</mark> Fast Food in <mark>Accra</mark> to pay over a million <mark>Ghana</mark> <mark>cedis</mark> in damages.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Ebenezer-2.kokoro.wav"></audio>
<p class="ipa">ɐ kˈɔːt haz ˈɔːdəd mɑːwˈɑːkQ fˈɑːst fˈuːd ɪn əkɹˈɑː tə pˈA ˈQvə ɐ mˈɪljən ɡˈɑːnə sˈiːdiz ɪn dˈamɪʤɪz.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Ebenezer-2.poto.wav"></audio>
<p class="ipa">ɐ kˈɔːt hɐz ˈɔːdəd mawˈakɔ fˈast fˈuːd ɪn ˈakɹa tə pˈe‍ɪ ˌə‍ʊvəɹ ɐ mˈɪli‍ən ɡˈana sˈiːdiz ɪn dˈamɪd‍ʒɪz</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Sarkodie</mark>, <mark>Shatta</mark> <mark>Wale</mark> and <mark>Stonebwoy</mark> are undoubtedly three of Ghana&#x27;s biggest musicians.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Ebenezer-3.kokoro.wav"></audio>
<p class="ipa">sˈɑːkQdi, ʃˈatə wˈAl and stˈQnbwY ɑː ʌndˈWtɪdli θɹˈiː ɒv ɡˈɑːnəz bˈɪɡɪst mjuːzˈɪʃᵊnz.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Ebenezer-3.poto.wav"></audio>
<p class="ipa">sˌakodˈiʲe ʃˈata wˈale and stˈoːnbwɔ‍ɪ ɑːɹ ʌndˈa‍ʊtɪdli θɹˈiːʲ ɒv ɡˈanaz bˈɪɡɪst mjuːzˈɪʃənz</p>
</div>
</div>
</div>
</section>
<section data-voice="Bright" hidden>
<div class="item">
<p class="txt"><mark>Odododiodio</mark> MP Edwin <mark>Nii</mark> <mark>Lante</mark> <mark>Vanderpuye</mark>, will not return to Parliament after the expiration of his current term.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Bright-0.kokoro.wav"></audio>
<p class="ipa">ˌQdədˌQdɪˈQdɪˌQ ˌɛmpˈiː ˈɛdwɪn nˈɪI lˈant vˌandəpˈuːj, wɪl nˌɒt ɹɪtˈɜːn tə pˈɑːlɪmᵊnt ˈɑːftə ði ˌɛkspɪɹˈAʃᵊn ɒv hɪz kˈʌɹənt tˈɜːm.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Bright-0.poto.wav"></audio>
<p class="ipa">ˌododˌodiʲodˈiʲo ˌɛmpˈiːʲ ˈɛdwɪn nˈiː lˈante vˌandapˈuːje wɪl nˌɒt ɹɪtˈɜːn tə pˈɑːləmənt ˈaftə ðɪʲ ɛkspəɹˈe‍ɪʃən ɒv hɪz kˈʌɹənt tˈɜːm</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Ghanaian</mark> singer <mark>Kofi</mark> <mark>Mante</mark> has acknowledged <mark>Bisa</mark> Kdei&#x27;s influence on the highlife music genre.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Bright-1.kokoro.wav"></audio>
<p class="ipa">ɡɑːnˈAən sˈɪŋə kˈQfi mˈant haz əknˈɒlɪʤd bˈiːsə kˈAdˈAz ˈɪnflʊəns ˌɒn ðə hˈIlIf mjˈuːzɪk ʒˈɒnɹə.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Bright-1.poto.wav"></audio>
<p class="ipa">ɡanˈean sˈɪŋə kˈofi mˈantɛ hɐz ɐknˈɒlɪd‍ʒd bˈisa kˈe‍ɪdˈe‍ɪz ˈɪnfluːəns ɒnðə hˈa‍ɪla‍ɪf mjˈuːzɪk ʒˈɒnɹə</p>
</div>
</div>
</div>
<div class="item">
<p class="txt">Former President, John <mark>Dramani</mark> <mark>Mahama</mark> has condemned the killing of Al Jazeera journalist Shireen <mark>Abu</mark> <mark>Akleh</mark>.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Bright-2.kokoro.wav"></audio>
<p class="ipa">fˈɔːmə pɹˈɛzɪdᵊnt, ʤˈɒn dɹamˈɑːni mahˈɑːmə haz kəndˈɛmd ðə kˈɪlɪŋ ɒv ˈal ʤazˈiəɹə ʤˈɜːnəlɪst ʃˈIəɹiːn ˈabuː ˈaklA.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Bright-2.poto.wav"></audio>
<p class="ipa">fˈɔːmə pɹˈɛzɪdənt d‍ʒˈɒn dɹamˈani mahˈama hɐz kəndˈɛmd ðə kˈɪlɪŋ ɒv ˈal d‍ʒazˈi‍əɹə d‍ʒˈɜːnəlˌɪst ʃˈa‍ɪ‍əɹiːn ˈabu ˈaklɛ</p>
</div>
</div>
</div>
<div class="item">
<p class="txt"><mark>Ghanaian</mark> legal luminary <mark>Tsatsu</mark> <mark>Tsikata</mark> has proposed a solution to Ghana&#x27;s recurring <mark>Cedi</mark> depreciation.</p>
<div class="grid">
<div class="side">
<h3>Kokoro</h3>
<audio controls preload="none" src="audio/Bright-3.kokoro.wav"></audio>
<p class="ipa">ɡɑːnˈAən lˈiːɡᵊl lˈuːmɪnəɹi tsˈatsuː tsɪkˈɑːtə haz pɹəpˈQzd ɐ səlˈuːʃᵊn tə ɡˈɑːnəz ɹɪkˈɜːɹɪŋ sˈiːdi dɪpɹˌiːʃɪˈAʃᵊn.</p>
</div>
<div class="side poto">
<h3>poto-tts</h3>
<audio controls preload="none" src="audio/Bright-3.poto.wav"></audio>
<p class="ipa">ɡanˈean lˈiːɡə‍l lˈuːmɪnəɹi tsˈatsu tsikˈata hɐz pɹəpˈə‍ʊzd ɐ səlˈuːʃən tə ɡˈanaz ɹɪkˈɜːɹɪŋ sˈiːdi dɪpɹˌiːʃɪʲˈe‍ɪʃən</p>
</div>
</div>
</div>
</section>
<script>
const VOICES = ["Grace", "Comfort", "Mercy", "Patience", "Emmanuel", "Isaac", "Ebenezer", "Bright"];
const tabs = document.getElementById("tabs");
function show(voice) {
for (const b of tabs.children)
b.setAttribute("aria-selected", String(b.dataset.voice === voice));
for (const s of document.querySelectorAll("section[data-voice]")) {
const on = s.dataset.voice === voice;
s.hidden = !on;
if (!on) for (const a of s.querySelectorAll("audio")) a.pause();
}
}
for (const v of VOICES) {
const b = document.createElement("button");
b.type = "button"; b.textContent = v; b.dataset.voice = v;
b.setAttribute("role", "tab"); b.onclick = () => show(v);
tabs.appendChild(b);
}
show(VOICES[0]);
</script>
<footer>
Kokoro v1.0 through sherpa-onnx, eight British speakers. Pronunciation comes from
44,321 Ghanaian words compiled into espeak's own dictionary &mdash; data rather than
code, so Android, iOS and WebAssembly give the same result. The Kokoro column is
standard Kokoro: its own package, weights and misaki grapheme-to-phoneme.
<br><br>
<a href="https://github.com/GhanaNLP/poto-tts">GhanaNLP/poto-tts</a> &middot;
<a href="https://huggingface.co/ghananlpcommunity/poto-tts-kokoro-gh">the voice on the Hub</a>
&middot;
<a href="https://github.com/GhanaNLP/ghana-english-g2p">the lexicon</a> &middot;
<code>pip install poto-tts</code>
</footer>
</div>
</body>
</html>