<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">John hit a key point:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">></span> GSUB operates at the glyph ID number level…<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">A GSUB type 2 lookup can replace a single glyph with a sequence of glyphs, but after the initial character-to-glyph mapping (from the cmap table), you’re dealing with glyph IDs. And glyph IDs are font-specific, not something that can interoperate
 outside the font. Text-to-speech systems currently don’t interact with the glyph processing, but even if they did they’d have no basis to interpret the glyph IDs.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Instead of an approach using font-internal details, a better approach would be for text-to-speech systems to recognize the emoji characters and then use dictionaries of emoji keyword data, which Unicode CLDR provides, to select a word or
 words to render as speech.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Peter<span style="font-size:11.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">mpeg-otspec <mpeg-otspec-bounces@lists.aau.at> on behalf of John Hudson <john@tiro.ca><br>
<b>Date: </b>Friday, December 23, 2022 at 9:09 AM<br>
<b>To: </b>mpeg-otspec@lists.aau.at <mpeg-otspec@lists.aau.at><br>
<b>Subject: </b>[EXTERNAL] Re: [MPEG-OTSPEC] Does OpenType have a one to many GSUB-like feature please?<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Yes, OTL GSUB has a one-to-many lookup type (GSUB lookup type 2), but I don’t think this is relevant to the issue of emoji in text-to-speech systems.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">I am wondering if a font could have a table where the codepoint (or postscript name) of an emoji is substituted by the codepoints of a sequence of regular text characters, with the output then routed to a
 text to speech system.<o:p></o:p></span></p>
</div>
</div>
</blockquote>
<p>GSUB operates at the glyph ID number level, not at the codepoint level. Text-to-speech and text-to-glyphs can be seen as parallel but separate presentation technologies, both sitting on top of Unicode encoded text, but presenting that text in different ways.
 Text-to-speech systems rely on natural language processing, and the reason they become clunky when dealing with emoji—as with other symbols and non-linguistic content—is that such characters do not participate in linguistic communication, so at best have to
 be named or described. But what is being named or described is still at the character level, not at the glyph level.<o:p></o:p></p>
<p>JH<o:p></o:p></p>
<pre>-- <o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>John Hudson<o:p></o:p></pre>
<pre>Tiro Typeworks Ltd    <a href="https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.tiro.com%2F&data=05%7C01%7Cpconstable%40microsoft.com%7C05315cbc8f57411b0d6c08dae5001b23%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638074085873408048%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=6j%2BUWj6l1CrFpD0Z6zh4DCz9RV0PwkJ%2BUKKkdhYyPko%3D&reserved=0">www.tiro.com</a><o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>Tiro Typeworks is physically located on islands <o:p></o:p></pre>
<pre>in the Salish Sea, on the traditional territory <o:p></o:p></pre>
<pre>of the Snuneymuxw and Penelakut First Nations.<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>__________<o:p></o:p></pre>
<pre><o:p> </o:p></pre>
<pre>EMAIL HOUR<o:p></o:p></pre>
<pre>In the interests of productivity, I am only dealing <o:p></o:p></pre>
<pre>with email towards the end of the day, typically <o:p></o:p></pre>
<pre>between 4PM and 5PM. If you need to contact me more <o:p></o:p></pre>
<pre>urgently, please use other means.<o:p></o:p></pre>
</div>
</body>
</html>