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
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// A launch configuration that compiles the extension and then opens it inside a new window
{
"version": "0.4.0",
"version": "0.2.0",
"configurations": [
{
"name": "Launch Extension",
Expand Down
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,57 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.0.18] - 2026-02-22

### Changed

- **Audio playback now happens inside VS Code** — Generated speech audio is played in a built-in WebView panel instead of launching an external application such as QuickTime Player or Windows Media Player
- **AWS authentication now uses AWS profiles** — Instead of entering an AWS Access Key ID and Secret Access Key directly in the extension settings, the extension now uses AWS named profiles (configured via `~/.aws/credentials` or `~/.aws/config`). This is more secure and follows AWS best practices

### Added

- New setting `speechmarkdown.aws.profile` — Specifies which AWS named profile to use for authentication. If not set, falls back to the `AWS_PROFILE` environment variable, then the `default` profile
- New setting `speechmarkdown.deleteAudioAfterPlayback` — When enabled (default: on), the temporary audio file is automatically deleted when the audio player panel is closed

### Removed

- `speechmarkdown.aws.accessKeyId` setting — Replaced by AWS profile-based authentication
- **"Set AWS Secret Access Key"** command — No longer needed with profile-based authentication
- **"Clear AWS Secret Access Key"** command — No longer needed with profile-based authentication

### Migration

If you previously configured `speechmarkdown.aws.accessKeyId` and the AWS Secret Access Key, switch to using an AWS profile:

1. Ensure your credentials are configured in `~/.aws/credentials` or via `aws configure`
2. Set `speechmarkdown.aws.profile` in VS Code settings to your profile name (or set it to `default` to use the default profile)


## [0.0.17] - 2026-02-21

- fixed typos in snippets

## [0.0.16] - 2026-02-21

- Added new Polly voices and language codes to snippets
- Upgraded to speechmarkdown-js 2.3.0
- Added support for new voice platforms in speechmarkdown-js 2.3.0

## [0.0.15] - 2024-04-27

- Added new Polly voices to snippets
- Supported VoiceId mappings for AWS Polly client
- Minor bug fixes

## [0.0.14] - 2023-03-25

- Minor readme updates
- Upgraded dependency versions
- Added ap-south-1 to list of AWS regions in extension configuration
- Required minimum 1.76.0 engines.vscode

## [0.0.13] - 2022-12-23

- Fixed typos
- Upgraded to speechmarkdown-js 2.1.0

Expand Down
55 changes: 42 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,34 @@ Play SSML generated from Speech Markdown. Highlight and select Speech Markdown i
- Speak Selected SSML (Amazon Polly)
- Speak Selected SSML (Amazon Neural)

This will invoke the Amazon Polly API and play the generated MP3 file from your system's default MP3 player. In order to authenticate, you need an AWS account and your credentials:
This will invoke the Amazon Polly API and play the generated MP3 file in VS Code's audio player. In order to authenticate, you need an AWS account and your credentials:

#### AWS Credentials Update

The extension now supports AWS profiles, which is the recommended and more secure way to configure AWS credentials:

- **AWS Profile** — Set this in VS Code settings to specify which AWS profile to use
- **AWS Region** — Set your AWS region in VS Code settings
- **AWS Polly Voice** — Choose your preferred voice

If no profile is specified, the extension will use the `AWS_PROFILE` environment variable. AWS profiles handle credentials automatically through:
- AWS credentials file (`~/.aws/credentials`)
- AWS config file (`~/.aws/config`)
- IAM roles (for EC2 instances)
- AWS SSO

For more information, please see see the [AWS CLI documentation](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html).

<img src="https://raw.githubusercontent.com/speechmarkdown/speechmarkdown-vscode/master/images/awsconfig.png" width="75%" alt="AWS Configuration"/>

**Deprecated: Manual Key Configuration**

> **⚠️ Deprecated (v0.0.18):** Manual AWS Access Key ID and Secret Access Key configuration has been deprecated in favor of AWS profiles. The following settings and commands have been removed:
> - AWS Access Key ID
> - AWS Secret Access Key
>
> **Migration:** Switch to using AWS profiles by configuring the AWS Profile setting or setting the `AWS_PROFILE` environment variable. This provides better security and follows AWS best practices.

### IntelliSense

As of version 0.0.6, IntelliSense is supported in strings. By default, Visual Studio Code does not support IntelliSense in strings. In order to enable it, please see section [Enable Intellisense in TypeScript and JavaScript](#enable-intellisense-in-typescript-and-javascript).
Expand Down Expand Up @@ -158,7 +182,7 @@ Add (1+1/2)[fraction] cups of flour.
```
You say, (pecan)[ipa:"pɪˈkɑːn"].
```
- smd lang - Add a lang modifier. Valid values are en-US, en-AU, en-GB, en-IN, de-DE, es-ES, it-IT,j a-JP, fr-FR.
- smd lang - Add a lang modifier. Valid values are ar-AE, arb, ca-ES, cmn-CN, cs-CZ, cy-GB, da-DK, de-AT, de-CH, de-DE, en-AU, en-GB, en-GB-WLS, en-IE, en-IN, en-NZ, en-SG, en-US, en-ZA, es-ES, es-MX, es-US, fi-FI, fr-BE, fr-CA, fr-FR, hi-IN, is-IS, it-IT, ja-JP, ko-KR, nb-NO, nl-BE, nl-NL, pl-PL, pt-BR, pt-PT, ro-RO, ru-RU, sv-SE, tr-TR, and yue-CN.
```
In Paris, they pronounce it (Paris)[lang:"fr-FR"].
```
Expand Down Expand Up @@ -193,14 +217,18 @@ The time is (2:30pm)[time:"hms12"].
The time is (2:30pm)[time:"hms24"].
```
- smd unit - Speaks the value as a unit. Can be a number and unit or just a unit. (e.g. 10 foot, 10 ft, 10 mi, foot, ft, 6'3")

```
I would walk (500 mi)[unit]
```

- smd volume - Modify the volume of the speech. Valid volume modifiers are silent, x-soft, soft, medium, loud, x-loud. Default to medium if not specified.

```
Normal volume for the first sentence. (Louder volume for the second sentence)[volume:"x-loud"].
```
- smd voice - Apply voice modifier and use any Alexa voice. Valid values are Ivy,Joanna, Joey, Justin,Kendra, Kimberly, Matthew, Salli, Nicole, Russell, Amy, Brian, Emma, Aditi, Raveena, Hans, Marlene, Vicki, Conchita, Enrique, Carla, Giorgio, Mizuki, Takumi, Celine, Lea, and Mathieu.

- smd voice - Apply voice modifier and use any Amazon Polly voice. Valid values are Aditi, Adriano, Alba, Amy, Andrés, Aria, Arlet, Arthur, Astrid, Ayanda, Bianca, Brian, Burcu, Camila, Carmen, Carla, Celine, Chantal, Conchita, Cristiano, Daniel, Danielle, Dora, Elin, Emma, Enrique, Ewa, Filiz, Gabrielle, Geraint, Giorgio, Gregory, Gwyneth, Hala, Hannah, Hans, Hiujin, Ida, Inês, Isabelle, Ivy, Jacek, Jan, Jasmine, Jihye, Jitka, Joanna, Joey, Justin, Kajal, Karl, Kazuha, Kendra, Kevin, Kimberly, Laura, Lea, Liam, Lisa, Liv, Lotte, Lucia, Lupe, Mads, Maja, Marlene, Mathieu, Matthew, Maxim, Mia, Miguel, Mizuki, Naja, Niamh, Nicole, Ola, Olivia, Patrick, Pedro, Penelope, Raúl, Raveena, Rémi, Ricardo, Ruben, Russell, Ruth, Sabrina, Salli, Seoyeon, Sergio, Sofie, Stephen, Suvi, Takumi, Tatyana, Thiago, Tomoko, Vicki, Vitória, Zayd, Zeina, and Zhiyu.
```
Why do you keep switching voices (from one)[voice:"Brian"] (to the other)[voice:"Kendra"]?
```
Expand All @@ -216,39 +244,39 @@ Why do you keep switching voices (from one)[voice:"Brian"] (to the other)[voice:
```
#[dj] Welcome back to the Morning Zoo!
```
- smd voice de-DE - Apply voice modifier and limit to de-DE Alexa voices. Valid values are Hans, Marlene, and Vicki.
- smd voice de-DE - Apply voice modifier and limit to de-DE voices. Valid values are Daniel, Hans, Marlene, and Vicki.
```
(Wie geht's?)[voice:'Vicki';lang:'de-DE']
```
- smd voice en-AU - Apply voice modifier and limit to en-AU Alexa voices. Valid values are Nicole and Russell.
- smd voice en-AU - Apply voice modifier and limit to en-AU voices. Valid values are Nicole, Olivia, and Russell.
```
(Bob's gone walkabout)[voice:'Nicole';lang:'en-AU']
```
- smd voice en-ES - Apply voice modifier and limit to es-ES Alexa voices. Valid values are Conchita and Enrique.
- smd voice es-ES - Apply voice modifier and limit to es-ES voices. Valid values are Alba, Conchita, Enrique, Lucia, Raúl, and Sergio.
```
(Ser pan comido)[voice:'Conchita';lang:'en-ES']
(Ser pan comido)[voice:'Conchita';lang:'es-ES']
```
- smd voice en-GB - Apply voice modifier and limit to en-GB Alexa voices. Valid values are Amy, Brian, and Emma.
- smd voice en-GB - Apply voice modifier and limit to en-GB voices. Valid values are Amy, Arthur, Brian, and Emma.
```
(Look on the bright side of life)[voice:'Brian';lang:'en-GB']
```
- smd voice en-IN - Apply voice modifier and limit to en-IN Alexa voices. Valid values are Aditi and Raveena.
- smd voice en-IN - Apply voice modifier and limit to en-IN voices. Valid values are Aditi, Kajal, and Raveena.
```
(How are you?)[voice:'Aditi';lang:'en-IN']
```
- smd voice en-US - Apply voice modifier and limit to en-US Alexa voices. Valid values are Ivy, Joanna, Joey, Justin, Kendra, Kimberly, Matthew, and Salli.
- smd voice en-US - Apply voice modifier and limit to en-US voices. Valid values are Danielle, Gregory, Ivy, Joanna, Joey, Justin, Kendra, Kevin, Kimberly, Matthew, Patrick, Ruth, Salli, and Stephen.
```
(I don't sound like Alexa.)[voice:'Salli';lang:'en-US']
```
- smd voice fr-FR - Apply voice modifier and limit to fr-FR Alexa voices. Valid values are Celine, Lea, and Mathieu.
- smd voice fr-FR - Apply voice modifier and limit to fr-FR voices. Valid values are Celine, Lea, Mathieu, and Rémi.
```
(Ça marche!)[voice:'Mathieu';lang:'fr-FR']
```
- smd voice it-IT - Apply voice modifier and limit to it-IT Alexa voices. Valid values are Carla and Giorgio.
- smd voice it-IT - Apply voice modifier and limit to it-IT voices. Valid values are Adriano, Bianca, Carla, and Giorgio.
```
(In bocca al lupo)[voice:'Carla';lang:'it-IT']
```
- smd voice ja-JP - Apply voice modifier and limit to ja-JP Alexa voices. Valid values are Mizuki and Takumi.
- smd voice ja-JP - Apply voice modifier and limit to ja-JP voices. Valid values are Kazuha, Mizuki, Takumi, and Tomoko.
```
(海千山千)[voice:'Mizuki';lang:'ja-JP']
```
Expand All @@ -260,6 +288,7 @@ Why do you keep switching voices (from one)[voice:"Brian"] (to the other)[voice:
```
I want to tell you a secret. (I am not a real human.)[whisper]
```

There are two approaches to applying snippets.

#### Text Selection
Expand Down
Binary file modified images/awsconfig.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 modified images/config01.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