{"id":1328,"date":"2026-11-07T17:41:55","date_gmt":"2026-11-08T01:41:55","guid":{"rendered":"https:\/\/salemdata.net\/johnpress\/?p=1328"},"modified":"2026-11-07T17:41:55","modified_gmt":"2026-11-08T01:41:55","slug":"train-tracker","status":"publish","type":"post","link":"https:\/\/salemdata.net\/johnpress\/?p=1328","title":{"rendered":"Train Tracker"},"content":{"rendered":"<div class=\"gfmr-markdown-container\"><div class=\"gfmr-markdown-source\" style=\"display: none;\">&lt;p&gt;Once again, I am in need of knowing when trains travel nearby at the crossing of Court ST and other crossings nearby.\u00a0 This time is to confirm my readings from a pressure transducer (really just like a microphone but gives out voltages) on the assumption that freight trains emit infrasounds through the air.\u00a0 I&#8217;ve already confirmed they emit seismic waves through the ground.\u00a0 So, it&#8217;s back to 24\/7 audio recordings listening for train toots.\u00a0 Here&#8217;s a current comparison of geophone activity to transducer.\u00a0 You can see that a nearby heat pump compressor is causing repeated readings.&lt;\/p&gt;\n&lt;img class=&quot; wp-image-1331&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_195331_Fri.png&quot; alt=&quot;&quot; width=&quot;609&quot; height=&quot;311&quot; \/&gt; Geophone + 2 Transducers\n&lt;p&gt;The problem is: how do I determine when a train was nearby? I have a Raspberry Pi\u00a0 which continuously records outside the bay window of my house and picks up train horns for advancing and receding trains.\u00a0 The next step is to slog through 24 hours of audio recordings and identify the trains by their horns.\u00a0 That&#8217;s not in my job description, but it is a task well suited for an computer using artificial intelligence models.&lt;\/p&gt;\n&lt;p&gt;Previously, I have been sending myself emails when I hear a train to document the event so I have a date and time reference.&lt;\/p&gt;\n&lt;img class=&quot;size-full wp-image-1329&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194051_Fri.png&quot; alt=&quot;&quot; width=&quot;804&quot; height=&quot;224&quot; \/&gt; Emails To Myself\n&lt;p&gt;But typing on a tablet in bed is very problematic for me and it takes time, so my ability to synchronize the time exactly (all my machines on my network are within 1 second of another synchronized to satellite time).\u00a0 And at 2:00 AM in the morning?\u00a0 That&#8217;s asking an awful lot.&lt;\/p&gt;\n&lt;p&gt;I&#8217;ve had chatGPT build a simple web page where all you have to do is push a button and it will log that you heard a train.\u00a0 I&#8217;ve asked my wife to have the page open on her phone so if she hears a train horn, all she has to do click a button.&lt;\/p&gt;\n&lt;img class=&quot;size-full wp-image-1330&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194356_Fri.png&quot; alt=&quot;&quot; width=&quot;997&quot; height=&quot;726&quot; \/&gt; Train Logger\n&lt;p&gt;But &#8220;we want more&#8221; &#8212; Andreas Spiess, the man with the Swiss accent whose 500 YouTube videos have drawn me into the world of electronics. So in addition to our manually logging train events when, and if, we should hear them, I now have an automated method using computers.&lt;\/p&gt;\n&lt;p&gt;Now ChatGPt and I have built a software processor which can detect train horns in a recording.\u00a0 It take a &lt;em&gt;couple of minutes&lt;\/em&gt; to process an entire day&#8217;s worth of audio recordings thank to a graphics card processor I recently purchased.\u00a0 Here&#8217;s an example of results for the last 26 hours:&lt;\/p&gt;\n&lt;table&gt;\n&lt;thead&gt;\n&lt;tr&gt;\n&lt;th&gt;Date &amp; Time (PST)&lt;\/th&gt;\n&lt;th style=&quot;text-align: right;&quot;&gt;Event&lt;\/th&gt;\n&lt;th style=&quot;text-align: right;&quot;&gt;Duration&lt;\/th&gt;\n&lt;th style=&quot;text-align: right;&quot;&gt;Horn Score&lt;\/th&gt;\n&lt;\/tr&gt;\n&lt;\/thead&gt;\n&lt;tbody&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 5, 2026, 6:24:09 PM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;1&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;2.88 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.305&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 2:51:13 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;1&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.96 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.284&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 2:51:22 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;2&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;2.40 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.367&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 2:51:32 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;3&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.96 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.463&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 6:19:39 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;1&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.96 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.122&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 6:21:06 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;1&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.96 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.105&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 8:57:00 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;1&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.96 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.212&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;tr&gt;\n&lt;td&gt;Nov 6, 2026, 9:50:27 AM&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;1&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.96 s&lt;\/td&gt;\n&lt;td style=&quot;text-align: right;&quot;&gt;0.204&lt;\/td&gt;\n&lt;\/tr&gt;\n&lt;\/tbody&gt;\n&lt;\/table&gt;\n&lt;p&gt;Generated by yamnet_events_to_markdown.awk | 2026-11-06 19:29:37 PST&lt;\/p&gt;\n&lt;p&gt;Maybe I can sleep better at night knowing that any loud trains will not sneak by unnoticed and then evaluated for the low frequency emissions.&lt;\/p&gt;\n&lt;p&gt;This Hyperscale Sound Monitor Project has intrigued me because: I have to capture &lt;em&gt;that&lt;\/em&gt; which I cannot hear.\u00a0 (Meaning low frequency &#8220;infrasound&#8221; waves below 20 Hz) That problem keeps me awake at night, so now I may be able to sleep better knowing I have a tool which can help document the presence of trains and fix them to a high precision time.&lt;\/p&gt;\n<\/div><div class=\"gfmr-markdown-rendered\"><p>Once again, I am in need of knowing when trains travel nearby at the crossing of Court ST and other crossings nearby.\u00a0 This time is to confirm my readings from a pressure transducer (really just like a microphone but gives out voltages) on the assumption that freight trains emit infrasounds through the air.\u00a0 I&#8217;ve already confirmed they emit seismic waves through the ground.\u00a0 So, it&#8217;s back to 24\/7 audio recordings listening for train toots.\u00a0 Here&#8217;s a current comparison of geophone activity to transducer.\u00a0 You can see that a nearby heat pump compressor is causing repeated readings.<\/p>\n<figure id=\"attachment_1331\" aria-describedby=\"caption-attachment-1331\" style=\"width: 609px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1331\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_195331_Fri.png\" alt=\"\" width=\"609\" height=\"311\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_195331_Fri.png 1346w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_195331_Fri-300x153.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_195331_Fri-768x392.png 768w\" sizes=\"auto, (max-width: 609px) 100vw, 609px\" \/><figcaption id=\"caption-attachment-1331\" class=\"wp-caption-text\">Geophone + 2 Transducers<\/figcaption><\/figure>\n<p>The problem is: how do I determine when a train was nearby? I have a Raspberry Pi\u00a0 which continuously records outside the bay window of my house and picks up train horns for advancing and receding trains.\u00a0 The next step is to slog through 24 hours of audio recordings and identify the trains by their horns.\u00a0 That&#8217;s not in my job description, but it is a task well suited for an computer using artificial intelligence models.<\/p>\n<p>Previously, I have been sending myself emails when I hear a train to document the event so I have a date and time reference.<\/p>\n<figure id=\"attachment_1329\" aria-describedby=\"caption-attachment-1329\" style=\"width: 804px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1329\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194051_Fri.png\" alt=\"\" width=\"804\" height=\"224\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194051_Fri.png 804w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194051_Fri-300x84.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194051_Fri-768x214.png 768w\" sizes=\"auto, (max-width: 804px) 100vw, 804px\" \/><figcaption id=\"caption-attachment-1329\" class=\"wp-caption-text\">Emails To Myself<\/figcaption><\/figure>\n<p>But typing on a tablet in bed is very problematic for me and it takes time, so my ability to synchronize the time exactly (all my machines on my network are within 1 second of another synchronized to satellite time).\u00a0 And at 2:00 AM in the morning?\u00a0 That&#8217;s asking an awful lot.<\/p>\n<p>I&#8217;ve had chatGPT build a simple web page where all you have to do is push a button and it will log that you heard a train.\u00a0 I&#8217;ve asked my wife to have the page open on her phone so if she hears a train horn, all she has to do click a button.<\/p>\n<figure id=\"attachment_1330\" aria-describedby=\"caption-attachment-1330\" style=\"width: 997px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1330\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194356_Fri.png\" alt=\"\" width=\"997\" height=\"726\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194356_Fri.png 997w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194356_Fri-300x218.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/11\/20261106_194356_Fri-768x559.png 768w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><figcaption id=\"caption-attachment-1330\" class=\"wp-caption-text\">Train Logger<\/figcaption><\/figure>\n<p>But &#8220;we want more&#8221; &#8212; Andreas Spiess, the man with the Swiss accent whose 500 YouTube videos have drawn me into the world of electronics. So in addition to our manually logging train events when, and if, we should hear them, I now have an automated method using computers.<\/p>\n<p>Now ChatGPt and I have built a software processor which can detect train horns in a recording.\u00a0 It take a <em>couple of minutes<\/em> to process an entire day&#8217;s worth of audio recordings thank to a graphics card processor I recently purchased.\u00a0 Here&#8217;s an example of results for the last 26 hours:<\/p>\n<table>\n<thead>\n<tr>\n<th>Date &amp; Time (PST)<\/th>\n<th style=\"text-align: right\">Event<\/th>\n<th style=\"text-align: right\">Duration<\/th>\n<th style=\"text-align: right\">Horn Score<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Nov 5, 2026, 6:24:09 PM<\/td>\n<td style=\"text-align: right\">1<\/td>\n<td style=\"text-align: right\">2.88 s<\/td>\n<td style=\"text-align: right\">0.305<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 2:51:13 AM<\/td>\n<td style=\"text-align: right\">1<\/td>\n<td style=\"text-align: right\">0.96 s<\/td>\n<td style=\"text-align: right\">0.284<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 2:51:22 AM<\/td>\n<td style=\"text-align: right\">2<\/td>\n<td style=\"text-align: right\">2.40 s<\/td>\n<td style=\"text-align: right\">0.367<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 2:51:32 AM<\/td>\n<td style=\"text-align: right\">3<\/td>\n<td style=\"text-align: right\">0.96 s<\/td>\n<td style=\"text-align: right\">0.463<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 6:19:39 AM<\/td>\n<td style=\"text-align: right\">1<\/td>\n<td style=\"text-align: right\">0.96 s<\/td>\n<td style=\"text-align: right\">0.122<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 6:21:06 AM<\/td>\n<td style=\"text-align: right\">1<\/td>\n<td style=\"text-align: right\">0.96 s<\/td>\n<td style=\"text-align: right\">0.105<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 8:57:00 AM<\/td>\n<td style=\"text-align: right\">1<\/td>\n<td style=\"text-align: right\">0.96 s<\/td>\n<td style=\"text-align: right\">0.212<\/td>\n<\/tr>\n<tr>\n<td>Nov 6, 2026, 9:50:27 AM<\/td>\n<td style=\"text-align: right\">1<\/td>\n<td style=\"text-align: right\">0.96 s<\/td>\n<td style=\"text-align: right\">0.204<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Generated by yamnet_events_to_markdown.awk | 2026-11-06 19:29:37 PST<\/p>\n<p>Maybe I can sleep better at night knowing that any loud trains will not sneak by unnoticed and then evaluated for the low frequency emissions.<\/p>\n<p>This Hyperscale Sound Monitor Project has intrigued me because: I have to capture <em>that<\/em> which I cannot hear.\u00a0 (Meaning low frequency &#8220;infrasound&#8221; waves below 20 Hz) That problem keeps me awake at night, so now I may be able to sleep better knowing I have a tool which can help document the presence of trains and fix them to a high precision time.<\/p>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>&lt;p&gt;Once again, I am in need of knowing when trains travel nearby at the crossing of Court ST and other crossings nearby.\u00a0 This time is to confirm my readings from a pressure transducer (really just like a microphone but gives out voltages) on the assumption that freight trains emit infrasounds through the air.\u00a0 I&#8217;ve already [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1334,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gfmr_meta_descriptions":[],"_gfmr_multilingual_taxonomy_terms":[],"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/1328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1328"}],"version-history":[{"count":2,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/1328\/revisions"}],"predecessor-version":[{"id":1333,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/1328\/revisions\/1333"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/media\/1334"}],"wp:attachment":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}