Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Privacy-first audio tools that run entirely in your browser. No uploads, no acco
| **Audio Joiner** | [/audio-joiner/](https://audiotools.dev/audio-joiner/) | Web Audio API, crossfade |
| **Audio Compressor** | [/audio-compressor/](https://audiotools.dev/audio-compressor/) | Web Audio API + Mediabunny MP3 |

Chinese pages: [/zh/](https://audiotools.dev/zh/), [/zh/converter/](https://audiotools.dev/zh/converter/), and /zh/ versions of Volume Booster, Text to Speech, Audio Joiner and Audio Compressor.
Chinese pages: [/zh/](https://audiotools.dev/zh/) and a /zh/ version of every tool, for example [/zh/converter/](https://audiotools.dev/zh/converter/) and [/zh/voice-to-text/](https://audiotools.dev/zh/voice-to-text/).

## Architecture

Expand Down Expand Up @@ -57,7 +57,7 @@ audiotools.dev/

- `python3 scripts/seo_sync.py` rewrites the FAQPage JSON-LD on every page from the FAQ that is visible on that page, and refreshes `<lastmod>` in `sitemap.xml` from git. Run it after editing a FAQ or a page (needs `beautifulsoup4`).
- CI (`.github/workflows/seo-check.yml`) runs `scripts/seo_sync.py --check` and fails if the markup and the visible FAQ drift apart.
- `python3 scripts/build_zh.py` rebuilds the Chinese tool pages (volume booster, text to speech, joiner, compressor) from the English ones with the translation tables in the script, and keeps hreflang, the 中文/EN switch and the Chinese navigation in step. It stops if an English string it translates has changed, and runs `scripts/seo_sync.py` at the end.
- `python3 scripts/build_zh.py` rebuilds the Chinese tool pages (all tools except the converter, which is maintained by hand) from the English ones with the translation tables in the script, and keeps hreflang, the 中文/EN switch and the Chinese navigation in step. It stops if an English string it translates has changed, and runs `scripts/seo_sync.py` at the end.
- `python3 scripts/build_landing.py` rebuilds the format pages (`/mp4-to-mp3/`, `/video-to-mp3/`, `/mp3-to-wav/`, `/wav-to-mp3/` and their `/zh/` versions) from the converter pages: same code, own copy and FAQ, output format preselected via `<body data-default-format>`. Run it after changing a converter page; it also refreshes the "Popular conversions" links on the converters and runs `seo_sync.py`.
- Social preview images live in `og/` (1200×630, one per tool).

Expand Down
9 changes: 5 additions & 4 deletions assistant.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,8 @@
const takePending = () => store('readwrite', (s) => { const g = s.get('pending'); s.delete('pending'); return g; });

// ---------- tool pages: "continue with this file" after a result ----------
const ZH_PAGES = ['converter', 'volume-booster', 'text-to-speech', 'audio-joiner', 'audio-compressor']; // tools with a Chinese page
const ZH_PAGES = ['converter', 'volume-booster', 'text-to-speech', 'audio-joiner', 'audio-compressor',
'audio-trimmer', 'audio-speed-changer', 'voice-to-text']; // tools with a Chinese page
const NEXT = [['audio-compressor', 'Compress', '压缩'], ['audio-trimmer', 'Trim', '剪辑'], ['volume-booster', 'Boost volume', '增强音量'],
['converter', 'Convert format', '转换格式'], ['audio-speed-changer', 'Change speed', '变速'], ['audio-joiner', 'Join with more', '合并']];
window.offerNext = function (tool, anchor, file) {
Expand Down Expand Up @@ -204,16 +205,16 @@
'volume-booster': { url: ZH ? '/zh/volume-booster/' : '/volume-booster/', name: T('Volume Booster', '音量增强'),
kw: ['quiet', 'louder', 'volume', 'boost', 'normalize', 'amplify', 'gain',
'тих', 'громк', 'громч', 'усил', 'нормализ', '音量', '声音太小', '太小声', '放大', '增强', '标准化'] },
'audio-trimmer': { url: '/audio-trimmer/', name: T('Audio Trimmer', '音频剪辑'),
'audio-trimmer': { url: ZH ? '/zh/audio-trimmer/' : '/audio-trimmer/', name: T('Audio Trimmer', '音频剪辑'),
kw: ['trim', 'cut', 'crop', 'shorten', 'ringtone', 'clip', 'remove the start', 'remove the end',
'обрез', 'обреж', 'вырез', 'отрез', 'отреж', 'рингтон', 'укорот', '剪辑', '裁剪', '剪切', '铃声', '截取'] },
'audio-joiner': { url: ZH ? '/zh/audio-joiner/' : '/audio-joiner/', name: T('Audio Joiner', '音频合并'),
kw: ['join', 'merge', 'combine', 'concatenate', 'several files', 'multiple files',
'склеить', 'склей', 'объедин', 'соедин', 'несколько', '合并', '拼接', '连接', '多个'] },
'audio-speed-changer': { url: '/audio-speed-changer/', name: T('Speed Changer', '音频变速'),
'audio-speed-changer': { url: ZH ? '/zh/audio-speed-changer/' : '/audio-speed-changer/', name: T('Speed Changer', '音频变速'),
kw: ['speed', 'slow down', 'speed up', 'faster', 'slower', 'tempo',
'скорост', 'замедл', 'ускор', 'темп', '速度', '变速', '放慢', '加快', '加速', '减速'] },
'voice-to-text': { url: '/voice-to-text/', name: T('Voice to Text', '语音转文字'),
'voice-to-text': { url: ZH ? '/zh/voice-to-text/' : '/voice-to-text/', name: T('Voice to Text', '语音转文字'),
kw: ['transcri', 'to text', 'subtitle', 'speech to text', 'dictat', 'voice message', 'lecture', 'interview',
'расшифр', 'в текст', 'субтитр', 'голосов', 'лекци', 'диктов', '转文字', '转录', '字幕', '语音转', '听写'] },
'text-to-speech': { url: ZH ? '/zh/text-to-speech/' : '/text-to-speech/', name: T('Text to Speech', '文字转语音'),
Expand Down
4 changes: 4 additions & 0 deletions audio-speed-changer/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
<meta name="description" content="Slow down or speed up MP3, M4A or WAV from 0.25x to 4x without changing pitch: learn a song, practise a language or listen faster. Free, no upload.">
<meta name="keywords" content="audio speed changer, audio slow downer, slow down audio, slow down mp3, slow down m4a, slow down wav, slow down a song, speed up audio, change speed without changing pitch">
<link rel="canonical" href="https://audiotools.dev/audio-speed-changer/">
<link rel="alternate" hreflang="en" href="https://audiotools.dev/audio-speed-changer/">
<link rel="alternate" hreflang="zh" href="https://audiotools.dev/zh/audio-speed-changer/">
<link rel="alternate" hreflang="x-default" href="https://audiotools.dev/audio-speed-changer/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="AudioTools.dev">
<meta property="og:locale" content="en_US">
Expand Down Expand Up @@ -153,6 +156,7 @@
<a href="/text-to-speech/">Text to Speech</a>
<a href="/voice-to-text/">Voice to Text</a>
<a href="/">All tools</a>
<a href="/zh/audio-speed-changer/" class="at-lang" hreflang="zh" lang="zh">中文</a>
</div>
</div>
</nav>
Expand Down
4 changes: 4 additions & 0 deletions audio-trimmer/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
<meta name="description" content="Free online audio trimmer. Cut and trim MP3, WAV, FLAC, OGG files in your browser. Visual waveform editor, no upload required. 100% private.">
<meta name="keywords" content="audio trimmer online, cut mp3 online, trim audio file, audio cutter, mp3 cutter free, wav trimmer, cut audio online, trim mp3 no upload">
<link rel="canonical" href="https://audiotools.dev/audio-trimmer/">
<link rel="alternate" hreflang="en" href="https://audiotools.dev/audio-trimmer/">
<link rel="alternate" hreflang="zh" href="https://audiotools.dev/zh/audio-trimmer/">
<link rel="alternate" hreflang="x-default" href="https://audiotools.dev/audio-trimmer/">
<meta property="og:type" content="website">
<meta property="og:site_name" content="AudioTools.dev">
<meta property="og:locale" content="en_US">
Expand Down Expand Up @@ -146,6 +149,7 @@
<a href="/text-to-speech/">Text to Speech</a>
<a href="/voice-to-text/">Voice to Text</a>
<a href="/">All tools</a>
<a href="/zh/audio-trimmer/" class="at-lang" hreflang="zh" lang="zh">中文</a>
</div>
</div>
</nav>
Expand Down
6 changes: 6 additions & 0 deletions changelog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,12 @@
<main class="container content">
<h1>Changelog</h1>
<p>What's new on AudioTools.dev, newest first. The full history is on <a href="https://github.com/formeo/audiotools.dev/commits/main" rel="noopener">GitHub</a>.</p>
<section class="entry">
<h2><time datetime="2026-10-26">October 26, 2026</time></h2>
<ul>
<li>Every tool now has a Chinese page: <a href="/zh/audio-trimmer/">音频剪辑</a>, <a href="/zh/audio-speed-changer/">音频变速</a> and <a href="/zh/voice-to-text/">语音转文字</a> join the others. On the Chinese Voice to Text page, Chinese is the preselected language.</li>
</ul>
</section>
<section class="entry">
<h2><time datetime="2026-10-22">October 22, 2026</time></h2>
<ul>
Expand Down
2 changes: 1 addition & 1 deletion llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
- [About AudioTools.dev](https://audiotools.dev/about/): who builds it, how files stay on the device (and how to verify it in DevTools), what the site loads from the network, and how it is built.
- [Changelog](https://audiotools.dev/changelog/): dated list of everything that has shipped since January 2026.
- Format pages (the converter with the target format preselected): [MP4 to MP3](https://audiotools.dev/mp4-to-mp3/), [Video to MP3](https://audiotools.dev/video-to-mp3/) (MP4, MOV, MKV, WebM), [MP3 to WAV](https://audiotools.dev/mp3-to-wav/), [WAV to MP3](https://audiotools.dev/wav-to-mp3/). Chinese: /zh/mp4-to-mp3/, /zh/video-to-mp3/, /zh/mp3-to-wav/, /zh/wav-to-mp3/.
- Chinese versions: [homepage](https://audiotools.dev/zh/), [audio converter](https://audiotools.dev/zh/converter/), [volume booster](https://audiotools.dev/zh/volume-booster/), [text to speech](https://audiotools.dev/zh/text-to-speech/), [audio joiner](https://audiotools.dev/zh/audio-joiner/), [audio compressor](https://audiotools.dev/zh/audio-compressor/).
- Chinese versions: [homepage](https://audiotools.dev/zh/), [audio converter](https://audiotools.dev/zh/converter/), [volume booster](https://audiotools.dev/zh/volume-booster/), [text to speech](https://audiotools.dev/zh/text-to-speech/), [audio joiner](https://audiotools.dev/zh/audio-joiner/), [audio compressor](https://audiotools.dev/zh/audio-compressor/), [audio trimmer](https://audiotools.dev/zh/audio-trimmer/), [speed changer](https://audiotools.dev/zh/audio-speed-changer/), [voice to text](https://audiotools.dev/zh/voice-to-text/).

## Key Facts

Expand Down
Binary file added og/zh-audio-speed-changer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added og/zh-audio-trimmer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added og/zh-voice-to-text.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading