Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
bd8c626
Initial version 0.1.0.
sam-s10s Sep 3, 2025
03165ad
missing type fix for rt and batch
sam-s10s Sep 3, 2025
a353400
Fix to README in voice examples
sam-s10s Sep 3, 2025
39d8eb4
added missing github tests
sam-s10s Sep 3, 2025
1f8cd40
missing release info in `RELEASE.md`
sam-s10s Sep 3, 2025
37c379e
fix missing utils package in voice examples
sam-s10s Sep 3, 2025
f3cb7be
typo fix in README
sam-s10s Sep 3, 2025
f8bea00
support a max delay to emitting finals
sam-s10s Sep 3, 2025
c417df0
add RT as dependency
sam-s10s Sep 9, 2025
9ea7199
add raw results to payload
sam-s10s Sep 9, 2025
a658f7a
updated processing
sam-s10s Sep 9, 2025
1d44298
move static methods to FragmentUtils
sam-s10s Sep 10, 2025
2b3e13a
add idx to fragments
sam-s10s Sep 10, 2025
67c5493
support for `Finalize` message + updated docs
sam-s10s Sep 10, 2025
0d2a8f8
fix to example
sam-s10s Sep 10, 2025
4cf3036
support for some tests of the STT and voice SDK
sam-s10s Sep 11, 2025
659ed56
updated tests
sam-s10s Sep 12, 2025
5f09cb1
Updated tests.
sam-s10s Sep 12, 2025
269fddd
Added example for logging to JSONL file.
sam-s10s Sep 12, 2025
470bba6
update example
sam-s10s Sep 12, 2025
6f7777c
Updated model for flags.
sam-s10s Sep 12, 2025
1ee35a3
updated tests
sam-s10s Sep 12, 2025
1e593e0
File fix.
sam-s10s Sep 12, 2025
c9f7948
updated tests and move to `_helpers` file.
sam-s10s Sep 12, 2025
108cf83
calculate end of utterance internally
sam-s10s Sep 14, 2025
eda02c1
ADAPTIVE end of utterance tests
sam-s10s Sep 14, 2025
69e6610
function change for fragment index
sam-s10s Sep 14, 2025
331b4fd
remove end of turn messages
sam-s10s Sep 14, 2025
d136660
test the receive interval
sam-s10s Sep 14, 2025
45b0e36
version bump
sam-s10s Sep 14, 2025
8decac0
version fix
sam-s10s Sep 14, 2025
32178bd
version bump
sam-s10s Sep 14, 2025
35f1f03
fix error in docs
sam-s10s Sep 14, 2025
325481c
fix to additional vocab entries
sam-s10s Sep 15, 2025
4380515
updated tests
sam-s10s Sep 15, 2025
52cfd55
LanguagePackInfo added + tests
sam-s10s Sep 15, 2025
a842f28
Added `SessionInfo` with the language info. Updated examples and tests.
sam-s10s Sep 15, 2025
b5485ad
Updated to use EndOfTurn and not EndOfUtterance
sam-s10s Sep 15, 2025
0abd1fb
fix to message value
sam-s10s Sep 15, 2025
85e9a71
updated tests, examples and docs
sam-s10s Sep 15, 2025
81399ed
updated README
sam-s10s Sep 15, 2025
dfdd5b2
format payloads as dicts
sam-s10s Sep 15, 2025
effb862
README for 0.1.4
sam-s10s Sep 15, 2025
1874236
README update
sam-s10s Sep 15, 2025
fc76dd3
Updated version info.
sam-s10s Sep 16, 2025
95e97aa
Updated examples from original PR.
sam-s10s Sep 16, 2025
71e5e9d
Reduce superfluous messages when no changes.
sam-s10s Sep 16, 2025
4a8bc58
README with pipeline info
sam-s10s Sep 16, 2025
cea5762
updated docs and add preview attribute
sam-s10s Sep 17, 2025
3323268
preview feature
sam-s10s Sep 17, 2025
1c6b5b1
change to extra debugging
sam-s10s Sep 17, 2025
946251c
Updated comment and message type.
sam-s10s Sep 19, 2025
34bfea4
Move to a message queue to process in turn
sam-s10s Sep 19, 2025
e9ac289
fix to EOU handling and finals being received; updated tests
sam-s10s Sep 22, 2025
42313d9
updated test
sam-s10s Sep 22, 2025
4122d51
updated tests
sam-s10s Sep 22, 2025
a0ce465
fix metadata
sam-s10s Sep 22, 2025
682326f
Version bump.
sam-s10s Sep 22, 2025
846ff63
Version 0.1.6
sam-s10s Sep 22, 2025
54f0de5
test other language transcription
sam-s10s Sep 24, 2025
5706951
Added Mandarin to tests and employ CER (optional)
sam-s10s Sep 24, 2025
63108e0
Merge branch 'feature/voice-queue' into feature/voice-package-update
sam-s10s Sep 24, 2025
e0ca82e
Add Japanese test (with custom CER value).
sam-s10s Sep 24, 2025
084634b
Update for "previous" and "next" attachment.
sam-s10s Sep 24, 2025
33892a1
Add Spanish and Thai to tests (for RTL language).
sam-s10s Sep 24, 2025
438e81c
version 0.1.7
sam-s10s Sep 24, 2025
9420883
Filter unchanged segments and trigger on finals.
sam-s10s Sep 24, 2025
7411469
Updated tests.
sam-s10s Sep 25, 2025
0f6ee67
Fix version for build system.
sam-s10s Sep 25, 2025
93ac69b
Updated bug issues.
sam-s10s Sep 25, 2025
b44a2d8
Updated example.wav reference
sam-s10s Sep 25, 2025
7438dca
Migrate to Pydantic models for future WebSocket interface.
sam-s10s Sep 25, 2025
496968d
Fix to Optional[] for older Python
sam-s10s Sep 25, 2025
e4ce8fc
updated makefile
sam-s10s Sep 26, 2025
5afea07
update test audio files
sam-s10s Sep 26, 2025
9ac2222
test diarization controls
sam-s10s Sep 26, 2025
670c713
path fix
sam-s10s Sep 26, 2025
1b1fa38
use Optional in tests
sam-s10s Sep 26, 2025
6675a74
Support testing speaker id
sam-s10s Sep 26, 2025
b827f52
updated speaker id test
sam-s10s Sep 26, 2025
d7a2c13
updated comments
sam-s10s Sep 26, 2025
5e4e39b
updated speaker id test
sam-s10s Sep 26, 2025
9c5ddb6
close session with END_OF_STREAM
sam-s10s Sep 26, 2025
adfb043
updated audio sender and silence utility
sam-s10s Sep 26, 2025
2cb1a7f
updated tests for sending audio
sam-s10s Sep 26, 2025
751d01b
updated test info
sam-s10s Sep 26, 2025
73ab3a1
Support for AudioBuffer
sam-s10s Oct 3, 2025
ce3e220
Updated tests.
sam-s10s Oct 3, 2025
4ad3e94
Skip audio tests on GitHub.
sam-s10s Oct 5, 2025
2c8dd68
Fade out audio from the buffer (as required).
sam-s10s Oct 5, 2025
bd4b451
Updated audio buffer config options.
sam-s10s Oct 5, 2025
22a83a9
Merge branch 'main' into feature/voice-package-update
sam-s10s Oct 5, 2025
1927bd3
smart turn work
sam-s10s Oct 5, 2025
ca83e77
Updated audio handling and smart turn work.
sam-s10s Oct 7, 2025
31f599a
Remove smart turn test.
sam-s10s Oct 7, 2025
7e06a57
Fix for asyncio error on message queue at end of session.
sam-s10s Oct 7, 2025
36746f7
Update for new Speaker ID format.
sam-s10s Oct 7, 2025
dd05b2a
try and use env variable for tests
sam-s10s Oct 9, 2025
86c6ed7
Merge branch 'main' into feature/voice-package-update
sam-s10s Oct 9, 2025
ef45b65
fix to sdout in examples
sam-s10s Oct 9, 2025
d850e3e
close the session and emit final messages
sam-s10s Oct 10, 2025
51181ef
speaker id example
sam-s10s Oct 10, 2025
9f5a076
change `_type` to `type_` (pedantic Pydantic!)
sam-s10s Oct 10, 2025
62180fb
updates to timer for ADAPTIVE
sam-s10s Oct 10, 2025
2ff5558
updated gitignore
sam-s10s Oct 10, 2025
bb96982
updated test with GeoRouter vocab
sam-s10s Oct 10, 2025
ec7348c
smart turn prediction
sam-s10s Oct 11, 2025
dcd13cb
exclude cached models from git
sam-s10s Oct 11, 2025
70af0bc
catch model not downloaded
sam-s10s Oct 11, 2025
9c91f79
SMART_TURN_HF_URL env variable to override the default model
sam-s10s Oct 11, 2025
f67c823
lower onnxruntime requirements for python 3.9
sam-s10s Oct 11, 2025
9754d7c
try and skip CI tests (known to fail on GitHub)
sam-s10s Oct 11, 2025
b905042
updated comments in tests
sam-s10s Oct 11, 2025
c81be68
updated warnings
sam-s10s Oct 11, 2025
5a3ed4e
add `time` to speaker started / ended event
sam-s10s Oct 11, 2025
0040438
updated tests
sam-s10s Oct 11, 2025
ea7993f
updated voice test
sam-s10s Oct 11, 2025
bf2d48f
updated model docs and SMART_TURN option for EndOfUtteranceMode
sam-s10s Oct 12, 2025
9efe639
extra smart turn tests
sam-s10s Oct 12, 2025
3a8a703
updated smart turn
sam-s10s Oct 12, 2025
22ad4e3
update to smart turn and use of turn manager for timings
sam-s10s Oct 13, 2025
ca8e55c
re-organised files logically; split utils and turn into their own files.
sam-s10s Oct 13, 2025
dd3e39a
updated docs and async client
sam-s10s Oct 13, 2025
fed3cf3
updated examples and new cli
sam-s10s Oct 13, 2025
9d0408d
Add Speechmatics to the default vocab in the examples
sam-s10s Oct 13, 2025
dfba972
switch to additive weights for end of turn delay
sam-s10s Oct 13, 2025
8f39f75
minor fixes
sam-s10s Oct 13, 2025
efea26b
updated CLI example
sam-s10s Oct 14, 2025
ad0796a
updated CLI
sam-s10s Oct 14, 2025
3f40c14
Added endofturnprediction message
sam-s10s Oct 14, 2025
3476681
updated verbose setting
sam-s10s Oct 14, 2025
0d04ab5
smart turn config in separate model
sam-s10s Oct 14, 2025
81aa614
add turn id to prediction.
sam-s10s Oct 14, 2025
88bb3de
split finalized segments early
sam-s10s Oct 15, 2025
df19672
updates to delay calculation for end of turn; add speaker metrics
sam-s10s Oct 15, 2025
e3bcb93
fix to speaker metrics - emitted on final segments only.
sam-s10s Oct 15, 2025
d7109a5
Merge branch 'main' into feature/voice-package-update
sam-s10s Oct 15, 2025
e4088f9
Make `SMART_TURN` dependencies optional.
sam-s10s Oct 15, 2025
67f5b0c
update RT dependency
sam-s10s Oct 15, 2025
f7729df
update file path for RT example
sam-s10s Oct 15, 2025
f31957c
Emit START_OF_TURN message
sam-s10s Oct 15, 2025
3c6b9ce
correction to start of turn message
sam-s10s Oct 15, 2025
007b28f
Moved utilities to _utils
sam-s10s Oct 16, 2025
ded1109
updated constant names
sam-s10s Oct 17, 2025
4614ae6
Fix to race condition of finals being processed ahead of partials.
sam-s10s Oct 17, 2025
9518377
support for control of how segments are emitted
sam-s10s Oct 17, 2025
e485f0d
updated with segment emit for tests and examples
sam-s10s Oct 17, 2025
fb32f2f
better turn event handling
sam-s10s Oct 17, 2025
f9a4e26
support for language from CLI
sam-s10s Oct 17, 2025
77daffb
Updated CLI to take a JSON config.
sam-s10s Oct 23, 2025
4b11cfa
Dump the config to terminal.
sam-s10s Oct 23, 2025
affd28a
Show config on screen.
sam-s10s Oct 24, 2025
90c6202
CLI doc update
sam-s10s Oct 26, 2025
64f5b96
Fix API_KEY references in tests and segment count for speaker ID test.
sam-s10s Oct 26, 2025
28470da
Standardise SPEECHMATICS_RT_URL in docs and tests.
sam-s10s Oct 26, 2025
51e158a
fix for adding missing trailing EOS
sam-s10s Oct 26, 2025
3d1892b
Default smart turn threshold to 0.5 after discussion with Pipecat
sam-s10s Oct 26, 2025
2ac5f9e
Presets for voice agent configs. (BETA)
sam-s10s Oct 26, 2025
b95c46c
updated presets
sam-s10s Oct 27, 2025
6302b86
Updated preset based on Aaron's work.
sam-s10s Oct 27, 2025
1d13622
Updated end of utterance and end of turn timers
sam-s10s Oct 27, 2025
4672bb8
updated tests
sam-s10s Oct 27, 2025
671b700
updated CLI example
sam-s10s Oct 27, 2025
5313305
close connection on transport error
sam-s10s Oct 27, 2025
1850287
fix typo on test
sam-s10s Oct 27, 2025
579c43b
Updated test README for Linux.
sam-s10s Oct 27, 2025
67012e6
Remove un-required dependency from examples.
sam-s10s Oct 28, 2025
1e83944
Updated for Windows and Ubuntu with instructions.
sam-s10s Oct 28, 2025
7551a42
Updated example README.
sam-s10s Oct 28, 2025
69d338a
Update verbosity in CLI example.
sam-s10s Oct 28, 2025
550a255
Updated models for output messages.
sam-s10s Oct 28, 2025
af3c8db
rename examples for clarity
sam-s10s Oct 28, 2025
f293221
updated tests
sam-s10s Oct 28, 2025
3630bfe
updated CLI readme
sam-s10s Oct 28, 2025
d267d64
only calculate metrics if there are listeners
sam-s10s Oct 28, 2025
68e4028
adjust TTFB calculation and speaker metrics
sam-s10s Oct 28, 2025
168ff09
move certify in smart turn to conditional block
sam-s10s Oct 28, 2025
94492d4
better metrics handling
sam-s10s Oct 29, 2025
d779e96
Merge branch 'main' into feature/voice-package-update
sam-s10s Oct 29, 2025
f2a6eb3
Use new RT package messages.
sam-s10s Oct 29, 2025
1cb8437
fix to language test
sam-s10s Oct 29, 2025
bf1edd2
support processing time in payloads (as well as metric messages).
sam-s10s Oct 29, 2025
a511424
support engine config messages (internal servers).
sam-s10s Oct 29, 2025
ba20f17
emit EndOfTurnReset when user(s) speak during waiting for turn to end…
sam-s10s Oct 29, 2025
6a79ce3
remove DEBUG_MORE and update RT dependency
sam-s10s Oct 30, 2025
97afd86
support for presets and update tests
sam-s10s Oct 30, 2025
9e012da
update attribute name in __str__
sam-s10s Oct 30, 2025
e3af4da
updated handling of end of turn; faster response with preview server;…
sam-s10s Oct 30, 2025
1e79f29
ambient scribe example
sam-s10s Oct 30, 2025
afe6ac5
updated examples
sam-s10s Oct 30, 2025
19f1d9f
split processing functions within client. support excluding partial f…
sam-s10s Nov 1, 2025
3d4b7db
Update release-voice.yaml
sam-s10s Nov 1, 2025
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
14 changes: 9 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
---
name: Bug report
about: Create a report to help us improve
title: '[BUG] '
labels: 'bug'
assignees: ''
title: "[BUG] "
labels: "bug"
assignees: ""
---

**Which SDK are you using?**

- [ ] speechmatics-rt (Real-Time SDK)
- [ ] speechmatics-batch (Batch SDK)
- [ ] Both
- [ ] speechmatics-voice (Voice SDK)
- [ ] All

**Package Information**
- **Package Name**: (e.g., speechmatics-rt, speechmatics-batch)

- **Package Name**: (e.g., speechmatics-rt, speechmatics-batch, speechmatics-voice)
- **Package Version**: (e.g., 1.0.0)
- **Python Version**: (e.g., 3.9, 3.10, 3.11, 3.12, 3.13)
- **Operating System**: (e.g., Windows 10, macOS 12, Ubuntu 20.04)
Expand All @@ -22,6 +25,7 @@ A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:

1.
2.

Expand Down
14 changes: 9 additions & 5 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,24 @@
---
name: Question
about: Ask a question or request support
title: '[QUESTION] '
labels: 'question'
assignees: ''
title: "[QUESTION] "
labels: "question"
assignees: ""
---

**Which SDK is your question about?**

- [ ] speechmatics-rt (Real-Time SDK)
- [ ] speechmatics-batch (Batch SDK)
- [ ] Both SDKs
- [ ] speechmatics-voice (Voice SDK)
- [ ] All
- [ ] General usage question
- [ ] Setup/Installation
- [ ] Not sure

**Package Information** (if applicable)
- **Package Name**: (e.g., speechmatics-rt, speechmatics-batch)

- **Package Name**: (e.g., speechmatics-rt, speechmatics-batch, speechmatics-voice)
- **Package Version**: (e.g., 1.0.0)
- **Python Version**: (e.g., 3.9, 3.10, 3.11, 3.12, 3.13)
- **Operating System**: (e.g., Windows 10, macOS 12, Ubuntu 20.04)
Expand All @@ -35,4 +38,5 @@ What result or behavior are you hoping to achieve?

**Related issues**
Link any related issues or discussions:

- Related to #
47 changes: 47 additions & 0 deletions .github/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ This document outlines the release process for the Speechmatics Python SDK packa
## Overview

The Speechmatics Python SDK repository contains two separate packages:

- `speechmatics-rt` - Real-Time API Client
- `speechmatics-batch` - Batch API Client
- `speechmatics-flow` - Flow API Client
- `speechmatics-voice` - Voice Agent API Client

Each package is released independently with its own versioning and release workflow.

Expand All @@ -16,17 +18,20 @@ Each package is released independently with its own versioning and release workf
Before creating a release, ensure the following steps are completed:

### Code Quality

- [ ] All tests pass locally (`make test-all`)
- [ ] Linting passes (`make lint-all`)
- [ ] Type checking passes (`make type-check-all`)
- [ ] Examples work correctly with the new version
- [ ] Documentation is up to date

### Version Management

- [ ] Review and update README files if needed
- [ ] Verify dependencies are correct in `pyproject.toml`

### Testing

- [ ] Test examples with fresh installations
- [ ] Verify environment variables work correctly
- [ ] Test error handling scenarios
Expand All @@ -39,13 +44,15 @@ Before creating a release, ensure the following steps are completed:
To release a new version of the RT SDK:

1. **Create a Release Tag**

```bash
git tag rt/v1.0.0
git push origin rt/v1.0.0
```

2. **Automated Workflow**
The `release-rt.yaml` workflow will automatically:

- Extract version from tag (e.g., `rt/v1.0.0` → `1.0.0`)
- Run comprehensive tests across Python versions
- Update version in `sdk/rt/speechmatics/rt/__init__.py`
Expand All @@ -63,13 +70,15 @@ To release a new version of the RT SDK:
To release a new version of the Batch SDK:

1. **Create a Release Tag**

```bash
git tag batch/v1.0.0
git push origin batch/v1.0.0
```

2. **Automated Workflow**
The `release-batch.yaml` workflow will automatically:

- Extract version from tag (e.g., `batch/v1.0.0` → `1.0.0`)
- Run comprehensive tests across Python versions
- Update version in `sdk/batch/speechmatics/batch/__init__.py`
Expand All @@ -87,13 +96,15 @@ To release a new version of the Batch SDK:
To release a new version of the Flow SDK:

1. **Create a Release Tag**

```bash
git tag flow/v1.0.0
git push origin flow/v1.0.0
```

2. **Automated Workflow**
The `release-flow.yaml` workflow will automatically:

- Extract version from tag (e.g., `flow/v1.0.0` → `1.0.0`)
- Run comprehensive tests across Python versions
- Update version in `sdk/flow/speechmatics/flow/__init__.py`
Expand All @@ -106,36 +117,72 @@ To release a new version of the Flow SDK:
- Update GitHub release notes
- Announce the release

### 4. Voice Agent SDK Release

To release a new version of the Voice Agent SDK:

1. **Create a Release Tag**

```bash
git tag voice/v1.0.0
git push origin voice/v1.0.0
```

2. **Automated Workflow**
The `release-voice.yaml` workflow will automatically:

- Extract version from tag (e.g., `voice/v1.0.0` → `1.0.0`)
- Run comprehensive tests across Python versions
- Update version in `sdk/voice/speechmatics/voice/__init__.py`
- Build the package
- Publish to PyPI

3. **Manual Steps After Release**
- Verify the package is available on PyPI
- Test installation: `pip install speechmatics-voice==1.0.0`
- Update GitHub release notes
- Announce the release

## Version Management

### Version Format

Both packages follow semantic versioning (SemVer):

- `MAJOR.MINOR.PATCH` (e.g., `1.2.3`)
- `MAJOR.MINOR.PATCH-beta.N` for beta releases (e.g., `1.2.3-beta.1`)

### Version Update Process

1. **Development**: Versions remain as `0.0.0` in `__init__.py` files
2. **Release**: GitHub Actions automatically updates the version during release
3. **Post-Release**: The updated version remains in the repository

### Tag Naming Convention

- RT SDK: `rt/v{version}` (e.g., `rt/v1.0.0`)
- Batch SDK: `batch/v{version}` (e.g., `batch/v1.0.0`)
- Flow SDK: `flow/v{version}` (e.g., `flow/v1.0.0`)
- Voice Agent SDK: `voice/v{version}` (e.g., `voice/v1.0.0`)

## Environment Setup

### PyPI Configuration

Both packages are published to PyPI using GitHub Actions with OpenID Connect (OIDC):

- RT SDK: Uses `pypi-rt` environment
- Batch SDK: Uses `pypi-batch` environment
- Flow SDK: Uses `pypi-flow` environment
- Voice Agent SDK: Uses `pypi-voice` environment

### Required Secrets

No manual secrets are required as the workflows use OIDC for PyPI authentication.

## Testing Matrix

Both packages are tested against:

- Python versions: 3.9, 3.10, 3.11, 3.12, 3.13
- Operating system: Ubuntu (latest)
90 changes: 90 additions & 0 deletions .github/workflows/release-voice.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Release Voice Agent SDK

on:
push:
tags:
- "voice/v*"

permissions:
contents: read
id-token: write

jobs:
extract-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.extract.outputs.version }}
steps:
- name: Extract version from tag
id: extract
run: |
# Extract version from tag (voice/v1.0.0 -> 1.0.0)
VERSION=${GITHUB_REF#refs/tags/voice/v}
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"

test-voice:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Test Voice Agent SDK
run: |
make install-dev
make lint-voice
make test-voice

release-build:
runs-on: ubuntu-latest
needs: [extract-version, test-voice]
outputs:
version: ${{ needs.extract-version.outputs.version }}
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.13"

- name: Update package version in sdk/voice/speechmatics/voice/__init__.py
run: |
VERSION="${{ needs.extract-version.outputs.version }}"
sed -i "s/0\.0\.0/$VERSION/g" ./sdk/voice/speechmatics/voice/__init__.py
echo "Updated version to: $VERSION"
cat ./sdk/voice/speechmatics/voice/__init__.py | grep __version__

- name: Build Voice Agent SDK
run: |
make install-dev
make build-voice

- name: Upload dist
uses: actions/upload-artifact@v4
with:
name: voice-release-dist
path: sdk/voice/dist/

pypi-publish:
runs-on: ubuntu-latest
needs: [release-build]
environment:
name: pypi-voice
url: https://pypi.org/project/speechmatics-voice/${{ needs.release-build.outputs.version }}

steps:
- name: Retrieve release dist
uses: actions/download-artifact@v4
with:
name: voice-release-dist
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
password: ${{ secrets.PYPI_ORG_TOKEN }}
20 changes: 20 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,23 @@ jobs:
run: make test-flow
- name: Build Flow SDK
run: make build-flow

test-voice:
name: Test Voice Agent SDK
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: make install-dev
- name: Lint Voice Agent SDK
run: make lint-voice
- name: Test Voice Agent SDK
run: make test-voice
- name: Build Voice Agent SDK
run: make build-voice
27 changes: 11 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,27 +50,12 @@ coverage.xml
.hypothesis/
.pytest_cache/
cover/
.benchmarks/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/
Expand Down Expand Up @@ -171,3 +156,13 @@ cython_debug/

# PyPI configuration file
.pypirc

# Temporary files / directories
.tmp/
tmp/

# Model caches
.models/
.cache/
*.onnx
*.pkf
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ repos:
- id: bandit
files: ^sdk/.*/speechmatics/
args: [-r, -f, json, -ll]
additional_dependencies: ["pbr"]

- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
Expand Down
Loading
Loading