pages/garden/opti-speech/index.html

62 lines
39 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Opti-Speech | The Paper Pilot</title>
<meta name="description" content="The Paper Pilot's Digital Garden">
<meta name="generator" content="VitePress v1.2.2">
<link rel="preload stylesheet" href="/assets/style.DrJNvSQz.css" as="style">
<script type="module" src="/assets/app.S96_Rjtb.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.Sr2_9k8k.js">
<link rel="modulepreload" href="/assets/chunks/theme.DIkDoSxp.js">
<link rel="modulepreload" href="/assets/chunks/git.data.DXuIlcCL.js">
<link rel="modulepreload" href="/assets/garden_opti-speech_index.md.DuoLaBvi.lean.js">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Itim&amp;family=Roboto+Mono:ital,wght@0,400;0,600;1,400&amp;display=block">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#3a0839">
<link rel="shortcut icon" href="/favicon.ico">
<meta name="msapplication-TileColor" content="#00FFFF">
<meta name="msapplication-config" content="/browserconfig.xml">
<meta name="theme-color" content="#3B4252">
<link rel="alternate" type="text/mf2+html" href="/changelog">
<link rel="alternate" type="application/rss+xml" title="Changelog" href="/changelog/rss">
<link rel="alternate" type="application/atom+xml" title="Changelog" href="/changelog/atom">
<link rel="alternate" type="application/json+xml" title="Changelog" href="/changelog/json">
<link rel="me" href="mailto:thepaperpilot@incremental.social">
<link rel="me" href="https://incremental.social/u/thepaperpilot">
<link rel="me" href="https://matrix.to/#/@thepaperpilot:incremental.social">
<link rel="me" href="https://code.incremental.social/thepaperpilot">
<link rel="me" href="https://www.linkedin.com/in/anthony-lawn/">
<link rel="me" href="https://mastodon.gamedev.place/@thepaperpilot">
<link rel="me" href="https://beehaw.org/u/thepaperpilot">
<link rel="me" href="https://www.reddit.com/user/ThePaperPilot/">
<link rel="me" href="https://github.com/thepaperpilot">
<link rel="me" href="https://twitter.com/ThePaperPilot">
<link rel="authorization_endpoint" href="https://indie.incremental.social/auth">
<link rel="token_endpoint" href="https://indie.incremental.social/auth/token">
<link rel="micropub" href="https://indie.incremental.social/micropub">
<link rel="indieauth-metadata" href="https://indie.incremental.social/.well-known/oauth-authorization-server">
<script data-goatcounter="https://thepaperpilot.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
<meta name="og:title" content="Opti-Speech">
<meta name="og:description" content="">
<meta name="og:image" content="https://www.thepaperpilot.org/paperpilot_thumb.png">
<meta name="og:site_name" content="The Paper Pilot's Digital Garden">
<meta name="og:type" content="article">
<meta name="article:author" content="https://www.thepaperpilot.org/about">
</head>
<body>
<div id="app"><div class="Layout" data-v-9c819c6a data-v-5d98c3a5><!--[--><!--[--><!--]--><!----><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-ccf7ddec><div class="wrapper" data-v-ccf7ddec><div class="container" data-v-ccf7ddec><div class="title" data-v-ccf7ddec><div class="VPNavBarTitle has-sidebar" data-v-ccf7ddec data-v-ab179fa1><a class="title" href="/" data-v-ab179fa1><!--[--><!--]--><!----><span data-v-ab179fa1>The Paper Pilot</span><!--[--><!--]--></a></div></div><div class="content" data-v-ccf7ddec><div class="content-body" data-v-ccf7ddec><!--[--><!--]--><div class="VPNavBarSearch search" data-v-ccf7ddec><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-ccf7ddec data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://moddingtree.com" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Profectus</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://incremental.social" target="_blank" rel="noreferrer" tabindex="0" data-v-7f418b0f data-v-9c663999><!--[--><span data-v-9c663999>Incremental Social</span><!--]--></a><!--]--><!--]--></nav><!----><!----><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-ccf7ddec data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://code.incremental.social/thepaperpilot" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Forgejo</title><path d="M16.7773 0c1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.1175a7.0759 7.0759 0 0 1 4.148-1.4205l.1176-.001 1.3385.0002c.4973-.8827 1.4434-1.4788 2.5288-1.4788 1.6018 0 2.9004 1.2986 2.9004 2.9005s-1.2986 2.9004-2.9004 2.9004c-1.0854 0-2.0315-.596-2.5288-1.4787H12.91c-2.3322 0-4.2272 1.8718-4.2649 4.195l-.0007 2.319c.8827.4973 1.4788 1.4434 1.4788 2.5287 0 1.602-1.2986 2.9005-2.9005 2.9005-1.6018 0-2.9004-1.2986-2.9004-2.9005 0-1.0853.596-2.0314 1.4788-2.5287l-.0002-9.9831c0-3.887 3.1195-7.0453 6.9915-7.108l.1176-.001h1.3385C14.7458.5962 15.692 0 16.7773 0ZM7.2227 19.9052c-.6596 0-1.1943.5347-1.1943 1.1943s.5347 1.1943 1.1943 1.1943 1.1944-.5347 1.1944-1.1943-.5348-1.1943-1.1944-1.1943Zm9.5546-10.4644c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Zm0-7.7346c-.6596 0-1.1944.5347-1.1944 1.1943s.5348 1.1943 1.1944 1.1943c.6596 0 1.1943-.5347 1.1943-1.1943s-.5347-1.1943-1.1943-1.1943Z"/></svg></a><a class="VPSocialLink no-icon" href="https://matrix.to/#/@thepaperpilot:incremental.social" aria-label target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Matrix</title><path d="M.632.55v22.9H2.28V24H0V0h2.28v.55zm7.043 7.26v1.157h.033c.309-.443.683-.784 1.117-1.024.433-.245.936-.365 1.5-.365.54 0 1.033.107 1.481.314.448.208.785.582 1.02 1.108.254-.374.6-.706 1.034-.992.434-.287.95-.43 1.546-.43.453 0 .872.056 1.26.167.388.11.716.286.993.53.276.245.489.559.646.951.152.392.23.863.23 1.417v5.728h-2.349V11.52c0-.286-.01
. Last tended to <a href='https://code.incremental.social/thepaperpilot/pages/commit/5ac040e4c90a8c29635aec2017065e2dfd7e5a83' title='Wed Jun 26 09:56:04 2024 -0500'><time class='dt-updated' datetime='Wed Jun 26 09:56:04 2024 -0500'>2024-06-26</time></a>
.</span></p><hr><details><summary>Tags:</summary><a href="/garden/my-projects/index.md">My Projects</a></details><p>In college I continued development on the Opti-Speech project, originally built alongside the scientific paper <a href="https://www.researchgate.net/profile/Thomas-Campbell-11/publication/354182612_Opti-speech_a_real-time_3d_visual_feedback_system_for_speech_training/links/6424679ca1b72772e4360fa2/Opti-speech-a-real-time-3d-visual-feedback-system-for-speech-training.pdf" target="_blank" rel="noreferrer">Opti-speech: a real-time, 3d visual feedback system for speech training</a></p><h2 id="the-original-project" tabindex="-1">The Original Project <a class="header-anchor" href="#the-original-project" aria-label="Permalink to &quot;The Original Project&quot;"></a></h2><p>The Optispeech project involves designing and testing a real-time tongue model that can be viewed in a transparent head while a subject talks — for the purposes of treating speech errors and teaching foreign language sounds. This work has been conducted in partnership with Vulintus and with support from the National Institutes of Health (NIH).</p><div class="img-container"><img src="/garden/system-architecture-600_1717384793933_0.jpg" title="system-architecture-600.jpg"></div><iframe width="560" height="315" src="https://www.youtube.com/embed/9uHqIRs7ZjM" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="display:block;margin:auto;"></iframe><p>This video shows a talker with WAVE sensors placed on the tongue hitting a virtual target sphere located at the alveolar ridge. When an alveolar consonant is hit (e.g., /s/, /n/, /d/) the sphere changes color from red to green.</p><iframe width="560" height="315" src="https://www.youtube.com/embed/Oz42mKvlzqI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen style="display:block;margin:auto;"></iframe><p>This video shows an American talker learning a novel sound not found in English. When the post-alveolar consonant is hit, the target sphere changes color from red to green. Here, the NDI WAVE system serves as input.</p><h2 id="my-work" tabindex="-1">My Work <a class="header-anchor" href="#my-work" aria-label="Permalink to &quot;My Work&quot;"></a></h2><p>As the sole programmer at UT Dallas Speech Production Lab at the time, my changes involved updating to a more modern version of Unity, improving the interface, in general cleaning up tech debt so it can more easily support new features, and added support for additional EMA systems, namely the Carstens AG501.</p><div class="img-container"><img src="/garden/new-interface_1717384734845_0.png" title="new-interface.png"></div><p>In addition, the program now includes documentation and unit tests to improve program stability and maintainability going forward.</p><div class="img-container"><img src="/garden/documentation_1717384823218_0.png" title="documentation.png"></div><div class="img-container"><img src="/garden/unittests_1717384825666_0.png" title="unittests.png"></div></div></div></main><!----><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><!----><!--[--><footer class="vp-doc" data-v-9c819c6a><div data-v-9c819c6a>CC 2024 <a class="h-card" rel="me" href="/about" data-v-9c819c6a><img src="/me.jpg" alt="" data-v-9c819c6a>The Paper Pilot</a>. <a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" data-v-9c819c6a>CC BY-NC-SA 4.0</a>.</div><div data-v-9c819c6a>Any and all opinions listed here are my own and not representative of my employers; future, past and present.</div><div data-v-9c819c6a><a href="https://resume.incremental.social/thepaperpilot/thepaperpilot" data-v-9c819c6a>Resume</a> (not actively seeking new opportunities).</div><div data-v-9c819c6a>Site built from <a href="https://code.incremental.social/thepaperpilot/pages/commit/46548f5078c1ec182f8171a1111c7d2efdcdd707" data-v-9c819c6a>this commit</a> on <time data-v-9c819c6a>Wednesday, November
<script>window.__VP_HASH_MAP__=JSON.parse("{\"garden_anarchism_index.md\":\"BhDPzFts\",\"garden_advent-incremental_index.md\":\"DsfIymt0\",\"garden_activitypub_index.md\":\"CbzVNVPl\",\"garden_game-dev-tree_index.md\":\"DVDS7I79\",\"garden_garden-rss_index.md\":\"CaCDLd5e\",\"garden_pre-order-bonuses_index.md\":\"B0fH_gCM\",\"garden_gender_index.md\":\"6YuhYN24\",\"garden_gender-performativity_index.md\":\"CJEzth7w\",\"public_gamedevtree_docs_layer-features.md\":\"Crq83lMF\",\"garden_forgejo_index.md\":\"sJ3QtLcm\",\"garden_freeform-vs-chronological-dichotomy_index.md\":\"CrgR-MtC\",\"garden_cinny_index.md\":\"-iKVFf7z\",\"garden_capture-the-citadel_index.md\":\"M53LVw2Z\",\"public_lit_docs_infoboxes.md\":\"CuZo0M8o\",\"garden_kronos_index.md\":\"DU4kA8Kd\",\"garden_consensus-democracy_index.md\":\"uf68HCuG\",\"garden_chromatic-lattice_index.md\":\"Bk-E3Z13\",\"garden_chronological_index.md\":\"BUpS7p6T\",\"garden_babble-buds_index.md\":\"L_IBsDC5\",\"garden_guide-to-incrementals_index.md\":\"C32GL1YA\",\"garden_artificial-intelligence_index.md\":\"nw7HmyBq\",\"garden_davey-wreden_index.md\":\"BGWyNtaX\",\"garden_political-quizzes_index.md\":\"C-hBvHwt\",\"garden_chat-glue_index.md\":\"D-IGbPw2\",\"garden_guide-to-incrementals_what-is-content_index.md\":\"BDGDxA30\",\"garden_a-plea-to-organize_index.md\":\"DP9butpX\",\"garden_ivy-road_index.md\":\"j-vBYqYD\",\"garden_the-beginner-s-guide_index.md\":\"Bn6txCY5\",\"garden_the-indieweb_signature-blocks_index.md\":\"DGLbZgtl\",\"garden_technocracy_index.md\":\"0TTrtV-d\",\"garden_the-cozy-web_index.md\":\"DpIl5792\",\"garden_trans-athletes-in-sports_index.md\":\"BLkmjoXH\",\"garden_video-game-monetization_index.md\":\"CiS3aCIO\",\"garden_v-ecs_index.md\":\"CJz5sxyv\",\"garden_the-small-web_index.md\":\"CZ9AWq6C\",\"garden_this-knowledge-hub_index.md\":\"B3Vl4IdN\",\"garden_the-indieweb_amplification_index.md\":\"o9DnXoGW\",\"garden_webrings_index.md\":\"B4uh3uzx\",\"garden_weird_index.md\":\"C72Rd2U_\",\"guide-to-incrementals_index.md\":\"DHuqiktn\",\"garden_wanderstop_index.md\":\"DS8jvOlC\",\"garden_vitepress_index.md\":\"epH9rl5e\",\"guide-to-incrementals_design_criticism_index.md\":\"fC3RVNx7\",\"guide-to-incrementals_ludology_appeal-developers_index.md\":\"GgR_uH45\",\"guide-to-incrementals_ludology_content_index.md\":\"BuckhGqe\",\"guide-to-incrementals_ludology_definition_index.md\":\"CB1YDnKY\",\"index.md\":\"CV7PyMGc\",\"public_gamedevtree_docs_!general-info.md\":\"DE0Ke1e2\",\"public_gamedevtree_changelog.md\":\"33CNNJKT\",\"public_gamedevtree_docs_achievements.md\":\"C0yB95Wu\",\"public_gamedevtree_docs_bars.md\":\"CUbXgosN\",\"public_gamedevtree_docs_basic-layer-breakdown.md\":\"Yqwj_xfc\",\"public_kronos_docs_basic-layer-breakdown.md\":\"B8H1fhgA\",\"public_gamedevtree_docs_challenges.md\":\"CE_eHHwf\",\"public_gamedevtree_docs_buyables.md\":\"B23LDgI6\",\"public_gamedevtree_docs_clickables.md\":\"Ck1H6VJz\",\"public_gamedevtree_docs_getting-started.md\":\"hNeDDqaD\",\"garden_matrix_index.md\":\"CaSUSKDB\",\"public_gamedevtree_docs_infoboxes.md\":\"bLloeIuf\",\"public_gamedevtree_docs_subtabs-and-microtabs.md\":\"CMFhzxtB\",\"garden_mbin_index.md\":\"DhDMmMpL\",\"public_gamedevtree_docs_milestones.md\":\"CWaYObZs\",\"public_gamedevtree_docs_main-mod-info.md\":\"BCNaY-_6\",\"public_gamedevtree_docs_custom-tab-layouts.md\":\"DNTfGub2\",\"public_kronos_docs_achievements.md\":\"KsbXJC1r\",\"public_kronos_docs_!general-info.md\":\"DBOKRLme\",\"public_kronos_docs_bars.md\":\"CSguFZp_\",\"public_kronos_docs_challenges.md\":\"Cs3Vfgw-\",\"public_kronos_docs_clickables.md\":\"BjE13u2w\",\"public_kronos_docs_custom-tab-layouts.md\":\"livval5T\",\"public_kronos_docs_updating-tmt.md\":\"M9T22mdH\",\"public_kronos_docs_buyables.md\":\"Bnk8zkua\",\"public_kronos_docs_milestones.md\":\"C15QtFf1\",\"public_lit_docs_basic-layer-breakdown.md\":\"CsZKnxwf\",\"public_lit_docs_challenges.md\":\"Z9Rj0YIU\",\"public_lit_docs_buyables.md\":\"78Vp9b6u\",\"public_lit_docs_clickables.md\":\"BH0xyi8n\",\"public_lit_docs_custom-tab-layouts.md\":\"BoQJFtTn\",\"garden_my-political-belief
</body>
</html>