{"id":16674,"date":"2026-07-04T10:50:21","date_gmt":"2026-07-04T17:50:21","guid":{"rendered":"https:\/\/mattfife.com\/?p=16674"},"modified":"2026-07-03T11:04:00","modified_gmt":"2026-07-03T18:04:00","slug":"local-installation-of-fish-audio-on-windows-10","status":"publish","type":"post","link":"https:\/\/mattfife.com\/?p=16674","title":{"rendered":"Local installation of Fish Audio on Windows 10"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I&#8217;ve been exploring <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/fish.audio\/\" data-type=\"link\" data-id=\"https:\/\/fish.audio\/\">Fish Audio S2 Pro<\/a> is one of (if not the) best <a href=\"https:\/\/fish.audio\/developers\/\" data-type=\"link\" data-id=\"https:\/\/fish.audio\/developers\/\">text-to-speech solutions<\/a>. Getting it installed locally and working, however, isn&#8217;t so straightforward on Windows 10. There are at least 2 different ways to get this working. One of which is to download\/run <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 0: Use the free online version<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s not hard &#8211; but expect to be limited in usage. <a href=\"https:\/\/fish.audio\/app\/text-to-speech\">https:\/\/fish.audio\/app\/text-to-speech<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: Fish S2 Pro Zero Docker <\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"296\" data-attachment-id=\"16676\" data-permalink=\"https:\/\/mattfife.com\/?attachment_id=16676\" data-orig-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?fit=1677%2C775&amp;ssl=1\" data-orig-size=\"1677,775\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?fit=640%2C296&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?resize=640%2C296&#038;ssl=1\" alt=\"\" class=\"wp-image-16676\" srcset=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?resize=1024%2C473&amp;ssl=1 1024w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?resize=1536%2C710&amp;ssl=1 1536w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?resize=584%2C270&amp;ssl=1 584w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?resize=300%2C139&amp;ssl=1 300w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?resize=768%2C355&amp;ssl=1 768w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?w=1677&amp;ssl=1 1677w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-1.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the <a href=\"https:\/\/huggingface.co\/spaces\/artificialguybr\/fish-s2-pro-zero\" data-type=\"link\" data-id=\"https:\/\/huggingface.co\/spaces\/artificialguybr\/fish-s2-pro-zero\">Huggingface Fish Audio S3 Pro project page<\/a>.<\/li>\n\n\n\n<li>Ensure you&#8217;re logged into Huggingface, and you should see the &#8216;Run Locally&#8217; option Go up in the link <\/li>\n\n\n\n<li>Ensure Docker is installed on the Windows desktop and WSL support is enabled in the Docker options.<\/li>\n\n\n\n<li>Open a WSL session running Ubuntu 24.04 or similar.<\/li>\n\n\n\n<li>Enter the docker command:<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -it -p 7860:7860 --platform=linux\/amd64 --gpus all \\\nregistry.hf.space\/artificialguybr-fish-s2-pro-zero:latest python app.py<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">6. You&#8217;ll see the docker container download along with the models and start up:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>(base) me@DESKTOP:\/mnt\/c\/fish-audio-s2$ docker run -it -p 7860:7860 --platform=linux\/amd64 --gpus all registry.hf.space\/artificialguybr-fish-s2-pro-zero:latest python app.py\nCloning into 'fish-speech'\u2026\nremote: Enumerating objects: 6605, done.\nremote: Counting objects: 100% (1088\/1088), done.\nremote: Compressing objects: 100% (292\/292), done.\nremote: Total 6605 (delta 905), reused 796 (delta 796), pack-reused 5517 (from 2)\nReceiving objects: 100% (6605\/6605), 28.21 MiB | 10.42 MiB\/s, done.\nResolving deltas: 100% (4328\/4328), done.\nWarning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.\nFetching 13 files: 100%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588| 13\/13 &#91;02:19&lt;00:00, 10.72s\/it]Fetching 13 files: 62%|\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588 | 8\/13 &#91;02:19&lt;01:13, 14.78s\/itYou are using a model of type <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">fish_qwen3_omni<\/span> to instantiate a model of type <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">`. This may be expected if you are loading a checkpoint that shares a subset of the architecture (e.g., loading a<\/span>sam2_video <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">checkpoint into<\/span>Sam2Model<span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">), but is otherwise not supported and can yield errors. Please verify that the checkpoint is compatible with the model you are instantiating. Download complete: : 11.0GB &#91;02:19, 79.0MB\/s] 2026-07-03 18:59:16.787 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:504 - Injected Semantic IDs into Config: 151678-155773 2026-07-03 18:59:16.787 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:520 - Loading model from \/home\/user\/.cache\/huggingface\/hub\/models--fishaudio--s2-pro\/snapshots\/1de9996b6be38b745688de084d87a5633f714e4e, config: DualARModelArgs(model_type='dual_ar', vocab_size=155776, n_layer=36, n_head=32, dim=2560, intermediate_size=9728, n_local_heads=8, head_dim=128, rope_base=1000000, norm_eps=1e-06, max_seq_len=32768, dropout=0.0, tie_word_embeddings=True, attention_qkv_bias=False, attention_o_bias=False, attention_qk_norm=True, codebook_size=4096, num_codebooks=10, semantic_begin_id=151678, semantic_end_id=155773, use_gradient_checkpointing=True, initializer_range=0.01976423537605237, is_reward_model=False, scale_codebook_embeddings=True, audio_embed_dim=2560, n_fast_layer=4, fast_dim=2560, fast_n_head=32, fast_n_local_heads=8, fast_head_dim=128, fast_intermediate_size=9728, fast_attention_qkv_bias=False, fast_attention_qk_norm=False, fast_attention_o_bias=False, norm_fastlayer_input=True) 2026-07-03 18:59:46.228 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:552 - Loading sharded safetensors weights 2026-07-03 18:59:46.717 | INFO | fish_speech.models.text2semantic.llama:from_pretrained:588 - Model weights loaded - Status: &lt;All keys matched successfully> 2026-07-03 18:59:48.707 | INFO | fish_speech.models.text2semantic.inference:init_model:366 - Restored model from checkpoint 2026-07-03 18:59:48.708 | INFO | fish_speech.models.text2semantic.inference:init_model:371 - Using DualARTransformer\/usr\/local\/lib\/python3.10\/site-packages\/torch\/nn\/utils\/weight_norm.py:144: FutureWarning:<\/span>torch.nn.utils.weight_norm<code>is deprecated in favor of<\/code>torch.nn.utils.parametrizations.weight_norm`.\nWeightNorm.apply(module, name, dim)\n* Running on local URL: http:\/\/0.0.0.0:7860, with SSR &#x26a1; (experimental, to disable set <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">ssr_mode=False<\/span> in <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">launch()<\/span>)\n* To create a public link, set <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">share=True<\/span> in <span style=\"background-color: initial; font-family: inherit; font-size: inherit; text-align: initial; color: initial;\">launch()<\/span>.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">7. Open a browser to localhost:7860<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"331\" data-attachment-id=\"16677\" data-permalink=\"https:\/\/mattfife.com\/?attachment_id=16677\" data-orig-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?fit=1877%2C970&amp;ssl=1\" data-orig-size=\"1877,970\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;,&quot;alt&quot;:&quot;&quot;}\" data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?fit=640%2C331&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?resize=640%2C331&#038;ssl=1\" alt=\"\" class=\"wp-image-16677\" srcset=\"https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?resize=1024%2C529&amp;ssl=1 1024w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?resize=1536%2C794&amp;ssl=1 1536w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?resize=522%2C270&amp;ssl=1 522w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?resize=300%2C155&amp;ssl=1 300w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?resize=768%2C397&amp;ssl=1 768w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?w=1877&amp;ssl=1 1877w, https:\/\/i0.wp.com\/mattfife.com\/wp-content\/themes\/mattTheme\/headerimgs\/2026\/07\/image-2.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Method 2: Build and run locally<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"640\" height=\"360\" src=\"https:\/\/www.youtube.com\/embed\/pXZKo-5I0jE?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span>\n<\/div><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Clone the github project: <a href=\"https:\/\/github.com\/fishaudio\/fish-speech\">https:\/\/github.com\/fishaudio\/fish-speech<\/a><\/li>\n\n\n\n<li>Open a WSL Ubuntu 24.04 installation. <\/li>\n\n\n\n<li>Ensure you have <a href=\"https:\/\/mattfife.com\/?p=16492\" data-type=\"link\" data-id=\"https:\/\/mattfife.com\/?p=16492\">nVidia support in WSL installed<\/a>. Rebooting after this is often required.<\/li>\n\n\n\n<li><a href=\"https:\/\/speech.fish.audio\/install\/\" data-type=\"link\" data-id=\"https:\/\/speech.fish.audio\/install\/\">Follow the installation\/build instructions<\/a>.\n<ul class=\"wp-block-list\">\n<li>Run the conda setup steps<\/li>\n\n\n\n<li>Run the UV steps for CPU or GPU depending on your install<\/li>\n\n\n\n<li>Skip the docker part <\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>WebUI On the left menu, select the &#8216;Inference&#8217; from the list of items\n<ul class=\"wp-block-list\">\n<li>Download the model weights with the hf command\n<ul class=\"wp-block-list\">\n<li>You can test using the command line inference steps if you want to test it<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Scroll down to the WebUI inference<\/li>\n\n\n\n<li>Install Gradio if you want the older style (not so much recommended, but easier than Awesome WebUI)<\/li>\n\n\n\n<li>Install the &#8216;Awesome WebUI&#8217; <\/li>\n\n\n\n<li>Start the &#8216;Awesome WebUI&#8217; using the python command\n<ul class=\"wp-block-list\">\n<li>Open a browser on <a href=\"http:\/\/localhost:8888\/ui\">http:\/\/localhost:8888\/ui<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Server\n<ul class=\"wp-block-list\">\n<li>Select the &#8216;Server&#8217; item from the list of left-hand items<\/li>\n\n\n\n<li>Run the python command to start the server locally.<\/li>\n\n\n\n<li>Try out one of the api_client.py commands to test it out<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Things you can do with the server:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create your own <a href=\"https:\/\/speech.fish.audio\/inference\/#download-weights\" data-type=\"link\" data-id=\"https:\/\/speech.fish.audio\/inference\/#download-weights\">local cloned voice (.npy files) from sample wav files and transcribed text<\/a> from inference.py.<\/li>\n\n\n\n<li>Check out the <a href=\"https:\/\/fish.audio\/blog\/text-to-speech-api-developer-guide\/?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=FISH_Google_Search_US_purchase_AdsMarch_20260622&amp;utm_campaign_id=23967180427&amp;utm_assetgroup=&amp;utm_content=813694000747&amp;utm_network=g&amp;utm_device=c&amp;gad_source=1&amp;gad_campaignid=23967180427&amp;gbraid=0AAAAA-vL0ATgKdNO1ysLAwJcc-YTA9Tfi&amp;gclid=Cj0KCQjwjIPSBhCCARIsABGyK7s7BfDsQbNV0Jvq0GbE6PRcnXzYX3DUwp69p2apY5Nf2NpP95XLmMYaAsP3EALw_wcB\" data-type=\"link\" data-id=\"https:\/\/fish.audio\/blog\/text-to-speech-api-developer-guide\/?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=FISH_Google_Search_US_purchase_AdsMarch_20260622&amp;utm_campaign_id=23967180427&amp;utm_assetgroup=&amp;utm_content=813694000747&amp;utm_network=g&amp;utm_device=c&amp;gad_source=1&amp;gad_campaignid=23967180427&amp;gbraid=0AAAAA-vL0ATgKdNO1ysLAwJcc-YTA9Tfi&amp;gclid=Cj0KCQjwjIPSBhCCARIsABGyK7s7BfDsQbNV0Jvq0GbE6PRcnXzYX3DUwp69p2apY5Nf2NpP95XLmMYaAsP3EALw_wcB\">Text to Speech API Developer&#8217;s Guide<\/a>\n<ul class=\"wp-block-list\">\n<li>The <a href=\"https:\/\/docs.fish.audio\/api-reference\/endpoint\/openapi-v1\/text-to-speech\" data-type=\"link\" data-id=\"https:\/\/docs.fish.audio\/api-reference\/endpoint\/openapi-v1\/text-to-speech\">Text to Speech API<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><a href=\"https:\/\/fish.audio\/blog\/fish-audio-s2-fine-grained-ai-voice-control-at-the-word-level\/\" data-type=\"link\" data-id=\"https:\/\/fish.audio\/blog\/fish-audio-s2-fine-grained-ai-voice-control-at-the-word-level\/\">Check out the emotional cues you can add to the text<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Other links:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>List of emotive cues you might give: <a href=\"https:\/\/fish.audio\/blog\/fish-audio-s2-fine-grained-ai-voice-control-at-the-word-level\/\">https:\/\/fish.audio\/blog\/fish-audio-s2-fine-grained-ai-voice-control-at-the-word-level\/<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.reddit.com\/answers\/87985d52-37c3-491d-b1a7-f0b069633a35\/?q=Fish+Audio+S2+TTS&amp;source=SERP&amp;upstreamCID=0814eb63-914f-428f-a2b1-352e83001081&amp;upstreamIID=d8b45d0a-5343-492f-9f44-ac60759c8408&amp;upstreamQ=Fish+Audio+S2+TTS&amp;upstreamQID=2a6fec87-62c6-4650-870e-9234daa4a25b\" data-type=\"link\" data-id=\"https:\/\/www.reddit.com\/answers\/87985d52-37c3-491d-b1a7-f0b069633a35\/?q=Fish+Audio+S2+TTS&amp;source=SERP&amp;upstreamCID=0814eb63-914f-428f-a2b1-352e83001081&amp;upstreamIID=d8b45d0a-5343-492f-9f44-ac60759c8408&amp;upstreamQ=Fish+Audio+S2+TTS&amp;upstreamQID=2a6fec87-62c6-4650-870e-9234daa4a25b\">Reddit article<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been exploring Fish Audio S2 Pro is one of (if not the) best text-to-speech solutions. Getting it installed locally and working, however, isn&#8217;t so straightforward on Windows 10. There are at least 2 different ways to get this working. One of which is to download\/run Method 0: Use the free online version It&#8217;s not hard &#8211; but expect to be limited in usage. https:\/\/fish.audio\/app\/text-to-speech Method 1: Fish S2 Pro Zero Docker 6. You&#8217;ll see the docker container download along&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/mattfife.com\/?p=16674\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_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},"jetpack_post_was_ever_published":false},"categories":[28,9],"tags":[],"class_list":["post-16674","post","type-post","status-publish","format-standard","hentry","category-ai","category-cool"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4WECr-4kW","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/16674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16674"}],"version-history":[{"count":7,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/16674\/revisions"}],"predecessor-version":[{"id":16686,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/16674\/revisions\/16686"}],"wp:attachment":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}