{"id":17213,"date":"2023-05-30T22:29:15","date_gmt":"2023-05-31T02:29:15","guid":{"rendered":"https:\/\/scruss.com\/blog\/?p=17213"},"modified":"2023-12-02T09:00:34","modified_gmt":"2023-12-02T14:00:34","slug":"a-terrible-guide-to-singing-with-dectalk","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2023\/05\/30\/a-terrible-guide-to-singing-with-dectalk\/","title":{"rendered":"A terrible guide to singing with DECtalk"},"content":{"rendered":"\n<p>It&#8217;s now possible to build and run the <a href=\"https:\/\/github.com\/dectalk\/dectalk\">DECtalk<\/a> text to speech system on Linux. It even builds under emscripten, enabling <a href=\"https:\/\/webspeak.terminal.ink\/#home\">DECtalk for Web<\/a> in your browser. You too can annoy everyone within earshot making it prattle on about John Madden.<\/p>\n\n\n\n<p>But DECTalk can sing! Because it&#8217;s been around so long, there are huge archives of songs in DECtalk format out there. The largest archive is at <a href=\"http:\/\/theflameofhope.co\/index.html\">THE FLAME OF HOPE<\/a> website, under the <a href=\"http:\/\/theflameofhope.co\/DECTALK.html\">Dectalk<\/a> section.<\/p>\n\n\n\n<p>Building DECtalk songs isn&#8217;t easy, especially for a musical numpty like me. You need a decent grasp of music notation, phonemic\/phonetic markup and patience with DECtalk&#8217;s weird and ancient text formats.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DECtalk phonemes<\/h2>\n\n\n\n<p>While DECtalk can accept text and turn it into a fair approximation of spoken English, for singing you have to use phonemes. Let&#8217;s say we have a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Solf%C3%A8ge\"><em>solf\u00e8ge<\/em><\/a>-ish major scale:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">do re mi fa sol la ti do<\/pre>\n\n\n\n<p>If we&#8217;re all fancy-like and know our <a href=\"https:\/\/en.wikipedia.org\/wiki\/International_Phonetic_Alphabet\">International Phonetic Alphabet (IPA)<\/a>, that would translate to:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\/do\u028a \u0279e\u026a mi\u02d0 fa\u02d0 so\u028a la\u02d0 ti\u02d0 do\u028a\/<\/pre>\n\n\n\n<p>or if your fonts aren&#8217;t up to IPA:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"336\" height=\"39\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/Screenshot-2023-05-30-at-22-25-01-Screenshot.png\" alt=\"\/do\u028a \u0279e\u026a mi\u02d0 fa\u02d0 so\u028a la\u02d0 ti\u02d0 do\u028a\/\n(maybe)\n\n\/do? ?e? mi? f?? so? l?? ti? do?\/\n\n(sorry about this, my website hates Unicode still)\" class=\"wp-image-17218\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/Screenshot-2023-05-30-at-22-25-01-Screenshot.png 336w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/Screenshot-2023-05-30-at-22-25-01-Screenshot-320x37.png 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/Screenshot-2023-05-30-at-22-25-01-Screenshot-160x19.png 160w\" sizes=\"auto, (max-width: 336px) 100vw, 336px\" \/><\/figure>\n\n\n\n<p>DECtalk uses a variant on the <a href=\"https:\/\/en.wikipedia.org\/wiki\/ARPABET#\">ARPABET<\/a> convention to represent IPA symbols as ASCII text. The initial consonant sounds remain as you might expect: <strong>D<\/strong>, <strong>R<\/strong>, <strong>M<\/strong>, <strong>F<\/strong>, <strong>S<\/strong>, <strong>L<\/strong> and <strong>T<\/strong>. The vowel sounds, however, are much more complex. This will give us a DECtalk-speakable phrase:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[dow rey miy faa sow laa tiy dow].<\/pre>\n\n\n\n<p>Note the opening and closing brackets and the full stop at the end. The brackets introduce phonemes, and the full stop tells DECtalk that the text is at an end. Play it in the <a href=\"https:\/\/webspeak.terminal.ink\/#home\">DECtalk for Web<\/a> window and be unimpressed: while the pitch changes are non-existent, the sounds are about right.<\/p>\n\n\n\n<p>For more information about DECtalk phonemes, please see <a href=\"https:\/\/dectalk.github.io\/dectalk\/idh_ref_3_phonemic_symbols.htm\">Phonemic Symbols Listed By Language<\/a> and chapter 7 of <a href=\"https:\/\/archive.org\/details\/ek-dtc-03-om-001\/page\/73\/mode\/1up?q=phonemic\">DECtalk DTC03 Text-to-Speech System Owner&#8217;s Manual<\/a>.<\/p>\n\n\n\n<p>If you want to have a rough idea of what the phonemes in a phrase might be, you can use DECtalk&#8217;s <em>:log phonemes<\/em> option. You might still have to massage the input and output a bit, like using sed to remove language codes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">say -l us -pre '[:log phonemes on]' -post '[:log phonemes off]' -a \"doe ray me fah so lah tea doe\" | sed 's\/us_\/\/g;'\nd ' ow  r ' ey  m iy  f ' aa) s ow  ll' aa  t ' iy  d ' ow.<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Music notation<\/h2>\n\n\n\n<p>To me \u2014 a not very musical person \u2014 staff notation looks like it was designed by a maniac. A more impractical system to indicate arrangement of notes and their durations I don&#8217;t think I could come up with: and yet we&#8217;re stuck with it.<\/p>\n\n\n\n<p>DECtalk uses a series of numbered pitches plus durations in milliseconds for its singing mode. The notes (1\u201337) correspond to C2 to C5. If you&#8217;re familiar with <a href=\"https:\/\/www.inspiredacoustics.com\/en\/MIDI_note_numbers_and_center_frequencies\">MIDI note numbers<\/a>, DECtalk&#8217;s 1\u201337 correspond to MIDI note numbers 36\u201372. This is how DECtalk&#8217;s pitch numbers would look as major scales on the treble clef:<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"95\" height=\"22\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/doremi.svg\" alt=\"a treble clef showing quarter notes from C2 to C5 in the scale of C Major\" class=\"wp-image-17212\" style=\"width:636px;height:149px\"\/><figcaption class=\"wp-element-caption\">The entire singing range of DECtalk as a C Major scale, from note 1 (C2, 65.4 Hz) to note 37 (C5, 523.4 Hz)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/doremi-abc.mp3\"><\/audio><\/figure>\n\n\n\n<p>I&#8217;m not sure browsers can play MIDI any more, but here you go (<a href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/doremi-abc.mid\">doremi-abc.mid<\/a>):<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/doremi-abc.mid\"><\/audio><\/figure>\n\n\n\n<p>and since I had to learn <a href=\"https:\/\/abcnotation.com\/\">abc notation<\/a> to make these noises, here is the source:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">%abc-2.1\nX:1\nT:Do Re Mi\nC:Trad.\nM:4\/4\nL:1\/4\nQ:1\/4=120\nK:C\n%1\nC,, D,, E,, F,,| G,, A,, B,, C,| D, E, F, G,| A, B, C D| E F G A| B c z2 |]\nw:do re mi fa sol la ti do re mi fa sol la ti do re mi fa sol la ti do<\/pre>\n\n\n\n<p>Each element of a DECtalk song takes the following form:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phoneme &lt;duration, pitch number&gt;<\/pre>\n\n\n\n<p>The older DTC-03 manual hints that it takes around 100 ms for DECtalk to hit pitch, so for each \u00bd second utterance (or quarter note at 120 bpm, ish), I split it up as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>100 ms of the initial consonant;<\/li>\n\n\n\n<li>337 ms of the vowel sound;<\/li>\n\n\n\n<li>63 ms of pause (which has the phoneme code \u201c_\u201d). Pauses don&#8217;t need pitch numbers, unless you want them to preempt DECtalk&#8217;s pitch-change algorithm.<\/li>\n<\/ul>\n\n\n\n<p>So the three lowest notes in the major scale would sing as:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[d&lt;100,1&gt;ow&lt;337,1&gt;_&lt;63&gt;\n r&lt;100,3&gt;ey&lt;337,3&gt;_&lt;63&gt;\n m&lt;100,5&gt;iy&lt;337,5&gt;_&lt;63&gt;].<\/pre>\n\n\n\n<p>I&#8217;ve split them into line for ease of reading, but DECtalk adds extra pauses if you include spaces, so don&#8217;t.<\/p>\n\n\n\n<p>The full three octave major scale looks like this:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[d&lt;100,1&gt;ow&lt;337,1&gt;_&lt;63&gt;r&lt;100,3&gt;ey&lt;337,3&gt;_&lt;63&gt;m&lt;100,5&gt;iy&lt;337,5&gt;_&lt;63&gt;f&lt;100,6&gt;aa&lt;337,6&gt;_&lt;63&gt;s&lt;100,8&gt;ow&lt;337,8&gt;_&lt;63&gt;l&lt;100,10&gt;aa&lt;337,10&gt;_&lt;63&gt;t&lt;100,12&gt;iy&lt;337,12&gt;_&lt;63&gt;d&lt;100,13&gt;ow&lt;337,13&gt;_&lt;63&gt;r&lt;100,15&gt;ey&lt;337,15&gt;_&lt;63&gt;m&lt;100,17&gt;iy&lt;337,17&gt;_&lt;63&gt;f&lt;100,18&gt;aa&lt;337,18&gt;_&lt;63&gt;s&lt;100,20&gt;ow&lt;337,20&gt;_&lt;63&gt;l&lt;100,22&gt;aa&lt;337,22&gt;_&lt;63&gt;t&lt;100,24&gt;iy&lt;337,24&gt;_&lt;63&gt;d&lt;100,25&gt;ow&lt;337,25&gt;_&lt;63&gt;r&lt;100,27&gt;ey&lt;337,27&gt;_&lt;63&gt;m&lt;100,29&gt;iy&lt;337,29&gt;_&lt;63&gt;f&lt;100,30&gt;aa&lt;337,30&gt;_&lt;63&gt;s&lt;100,32&gt;ow&lt;337,32&gt;_&lt;63&gt;l&lt;100,34&gt;aa&lt;337,34&gt;_&lt;63&gt;t&lt;100,36&gt;iy&lt;337,36&gt;_&lt;63&gt;d&lt;100,37&gt;ow&lt;337,37&gt;_&lt;63&gt;].<\/pre>\n\n\n\n<p>You can paste that into the DECtalk browser window, or run the following from the command line on Linux:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">say -pre '[:PHONE ON]' -a '[d&lt;100,1&gt;ow&lt;337,1&gt;_&lt;63&gt;r&lt;100,3&gt;ey&lt;337,3&gt;_&lt;63&gt;m&lt;100,5&gt;iy&lt;337,5&gt;_&lt;63&gt;f&lt;100,6&gt;aa&lt;337,6&gt;_&lt;63&gt;s&lt;100,8&gt;ow&lt;337,8&gt;_&lt;63&gt;l&lt;100,10&gt;aa&lt;337,10&gt;_&lt;63&gt;t&lt;100,12&gt;iy&lt;337,12&gt;_&lt;63&gt;d&lt;100,13&gt;ow&lt;337,13&gt;_&lt;63&gt;r&lt;100,15&gt;ey&lt;337,15&gt;_&lt;63&gt;m&lt;100,17&gt;iy&lt;337,17&gt;_&lt;63&gt;f&lt;100,18&gt;aa&lt;337,18&gt;_&lt;63&gt;s&lt;100,20&gt;ow&lt;337,20&gt;_&lt;63&gt;l&lt;100,22&gt;aa&lt;337,22&gt;_&lt;63&gt;t&lt;100,24&gt;iy&lt;337,24&gt;_&lt;63&gt;d&lt;100,25&gt;ow&lt;337,25&gt;_&lt;63&gt;r&lt;100,27&gt;ey&lt;337,27&gt;_&lt;63&gt;m&lt;100,29&gt;iy&lt;337,29&gt;_&lt;63&gt;f&lt;100,30&gt;aa&lt;337,30&gt;_&lt;63&gt;s&lt;100,32&gt;ow&lt;337,32&gt;_&lt;63&gt;l&lt;100,34&gt;aa&lt;337,34&gt;_&lt;63&gt;t&lt;100,36&gt;iy&lt;337,36&gt;_&lt;63&gt;d&lt;100,37&gt;ow&lt;337,37&gt;_&lt;63&gt;].'<\/pre>\n\n\n\n<p>It sounds like this:<\/p>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/doremi-3octaves.mp3\"><\/audio><\/figure>\n\n\n\n<p>Singing a scale is hardly singing a tune, but hey, you were warned that this was a terrible guide at the outset. I hope I&#8217;ve given you a start on which you can build your own songs.<\/p>\n\n\n\n<p>(<s>One detail I haven&#8217;t tried yet: the older DTC-03 manual hints that singing notes can take Hz values instead of pitch numbers, and apparently loses the vibrato effect. It&#8217;s not that hard to convert from a note\/octave to a frequency. Whether this still works, I don&#8217;t know<\/s>.)<\/p>\n\n\n\n<p>This post from <a href=\"https:\/\/mindly.social\/@BorrisInABox\/110781717228039505\">Patrick Perdue<\/a> suggested to me I had to dig into the Hz value substitution because the results are so gloriously awful. Of course, I had to write a Perl regex to make the conversions from DECtalk 1\u201337 sung notes to frequencies from 65\u2013523 Hz:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">perl -pwle 's|(?&lt;=,)(\\d+)(?=&gt;)|sprintf(\"%.0f\", 440*2**(($1-34)\/12))|eg;'<\/pre>\n\n\n\n<p>(as one does).  So the sung scale ends up as this non-vibrato text:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">say -pre '[:PHONE ON]' -a '[d&lt;100,65&gt;ow&lt;337,65&gt;_&lt;63&gt;r&lt;100,73&gt;ey&lt;337,73&gt;_&lt;63&gt;m&lt;100,82&gt;iy&lt;337,82&gt;_&lt;63&gt;f&lt;100,87&gt;aa&lt;337,87&gt;_&lt;63&gt;s&lt;100,98&gt;ow&lt;337,98&gt;_&lt;63&gt;l&lt;100,110&gt;aa&lt;337,110&gt;_&lt;63&gt;t&lt;100,123&gt;iy&lt;337,123&gt;_&lt;63&gt;d&lt;100,131&gt;ow&lt;337,131&gt;_&lt;63&gt;r&lt;100,147&gt;ey&lt;337,147&gt;_&lt;63&gt;m&lt;100,165&gt;iy&lt;337,165&gt;_&lt;63&gt;f&lt;100,175&gt;aa&lt;337,175&gt;_&lt;63&gt;s&lt;100,196&gt;ow&lt;337,196&gt;_&lt;63&gt;l&lt;100,220&gt;aa&lt;337,220&gt;_&lt;63&gt;t&lt;100,247&gt;iy&lt;337,247&gt;_&lt;63&gt;d&lt;100,262&gt;ow&lt;337,262&gt;_&lt;63&gt;r&lt;100,294&gt;ey&lt;337,294&gt;_&lt;63&gt;m&lt;100,330&gt;iy&lt;337,330&gt;_&lt;63&gt;f&lt;100,349&gt;aa&lt;337,349&gt;_&lt;63&gt;s&lt;100,392&gt;ow&lt;337,392&gt;_&lt;63&gt;l&lt;100,440&gt;aa&lt;337,440&gt;_&lt;63&gt;t&lt;100,494&gt;iy&lt;337,494&gt;_&lt;63&gt;d&lt;100,523&gt;ow&lt;337,523&gt;_&lt;63&gt;].'\n<\/pre>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/07\/doremi-3octaves-no_vibrato.mp3\"><\/audio><\/figure>\n\n\n\n<p>That doesn&#8217;t sound as wondrously terrible as it should, most probably as they are very small differences between each sung word. So how about we try something better? Like the refrain from The Turtles&#8217; <a href=\"https:\/\/www.youtube.com\/watch?v=mRCe5L1imxg\">Happy Together<\/a>, as posted on <a href=\"http:\/\/theflameofhope.co\/dectalk%20speak%20window\/ROCK\/HAPPY%20TOGETHER.EN\">TheFlameOfHope<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">say -pre '[:PHONE ON]' -a '[:nv] [:dv gn 73] [AY&lt;400,29&gt; KAE&lt;200,24&gt; N&lt;100&gt; T&lt;100&gt; SIY&lt;400,21&gt; MIY&lt;400,17&gt; LAH&lt;200,15&gt; VAH&lt;125,19&gt; N&lt;75&gt; NOW&lt;400,22&gt; BAH&lt;200,26&gt; DXIY&lt;200,27&gt; BAH&lt;300,26&gt; T&lt;100&gt; YU&lt;600,24&gt; FOR&lt;200,21&gt; AO&lt;300,24&gt; LX&lt;100&gt; MAY&lt;400,26&gt; LAY&lt;900,27&gt; F&lt;300&gt; _&lt;400&gt; WEH&lt;300,29&gt; N&lt;100&gt; YXOR&lt;400,24&gt; NIR&lt;400,21&gt; MIY&lt;400,17&gt; BEY&lt;200,15&gt; BIY&lt;200,19&gt; DHAX&lt;400,22&gt; SKAY&lt;125,26&gt; Z&lt;75&gt; WIH&lt;125,27&gt; LX&lt;75&gt; BIY&lt;400,26&gt; BLUW&lt;600,24&gt; FOR&lt;200,21&gt; AO&lt;300,24&gt; LX&lt;100&gt; MAY&lt;400,26&gt; LAY&lt;900,27&gt; F&lt;300&gt; _&lt;300&gt; ].'<\/pre>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/07\/happy_together.mp3\"><\/audio><\/figure>\n\n\n\n<p>&#8220;Refrain&#8221; is a good word, as it&#8217;s exactly what I should have done, rather than commit a terribleness on the audio by de-vibratoing it:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">say -pre '[:PHONE ON]' -a '[:nv] [:dv gn 73] [AY&lt;400,330&gt; KAE&lt;200,247&gt; N&lt;100&gt; T&lt;100&gt; SIY&lt;400,208&gt; MIY&lt;400,165&gt; LAH&lt;200,147&gt; VAH&lt;125,185&gt; N&lt;75&gt; NOW&lt;400,220&gt; BAH&lt;200,277&gt; DXIY&lt;200,294&gt; BAH&lt;300,277&gt; T&lt;100&gt; YU&lt;600,247&gt; FOR&lt;200,208&gt; AO&lt;300,247&gt; LX&lt;100&gt; MAY&lt;400,277&gt; LAY&lt;900,294&gt; F&lt;300&gt; _&lt;400&gt; WEH&lt;300,330&gt; N&lt;100&gt; YXOR&lt;400,247&gt; NIR&lt;400,208&gt; MIY&lt;400,165&gt; BEY&lt;200,147&gt; BIY&lt;200,185&gt; DHAX&lt;400,220&gt; SKAY&lt;125,277&gt; Z&lt;75&gt; WIH&lt;125,294&gt; LX&lt;75&gt; BIY&lt;400,277&gt; BLUW&lt;600,247&gt; FOR&lt;200,208&gt; AO&lt;300,247&gt; LX&lt;100&gt; MAY&lt;400,277&gt; LAY&lt;900,294&gt; F&lt;300&gt; _&lt;300&gt; ].'<\/pre>\n\n\n\n<figure class=\"wp-block-audio\"><audio controls src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/07\/unhappy_together.mp3\"><\/audio><\/figure>\n\n\n\n<p>Oh dear. You can&#8217;t unhear that, can you?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s now possible to build and run the DECtalk text to speech system on Linux. It even builds under emscripten, enabling DECtalk for Web in your browser. You too can annoy everyone within earshot making it prattle on about John Madden. But DECTalk can sing! Because it&#8217;s been around so long, there are huge archives [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[2960,47,3320,3319],"class_list":["post-17213","post","type-post","status-publish","format-standard","hentry","category-computers-suck","tag-dectalk","tag-music","tag-notation","tag-singing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-4tD","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=17213"}],"version-history":[{"count":6,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17213\/revisions"}],"predecessor-version":[{"id":17479,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17213\/revisions\/17479"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=17213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=17213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=17213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}