Skip to content

Python OpenAI Whisper version of speech to text that uses sidecar. During meeting we talked about creating a PR for both just in case, but the other one is purely JS and works almost as good, just a little slower#283

Open
jlocala1 wants to merge 4 commits intomainfrom
feature/speech-to-text

Conversation

@jlocala1
Copy link
Copy Markdown
Collaborator

Audio transcription using OpenAI whisper on python sidecar. Provides transcriptions with interactive timestamps of MP3 and MP4

ezhu15 and others added 4 commits April 5, 2026 17:06
… for viewing audio, and also updated the transcription file. transcription now shows the audio playing with timestamps and allows the user to click on a time stamp or line of audio and have the audio clip jump to that spot.
@jlocala1 jlocala1 requested a review from Deodat-Lawson April 15, 2026 05:35
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
launch-stack Ready Ready Preview, Comment Apr 15, 2026 5:35am
pdr-ai-v2 Ready Ready Preview, Comment Apr 15, 2026 5:35am

@Deodat-Lawson
Copy link
Copy Markdown
Owner

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a8d29a8ec7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docker-compose.yml
Comment on lines 149 to +151
volumes:
postgres_data:
seaweedfs_data:
sidecar_models:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep SeaweedFS volume declared

In docker-compose.yml, the seaweedfs service still mounts seaweedfs_data:/data (line 143), but the top-level volumes block no longer declares seaweedfs_data. When running with --profile local-storage, Compose treats this as an undeclared named volume and fails to bring up that profile, so local S3 storage is broken until the volume declaration is restored.

Useful? React with 👍 / 👎.

/** Infer display type from document for viewer rendering */
export function getDocumentDisplayType(doc: { url: string; title: string; mimeType?: string }): DocumentDisplayType {
// Check title first — transcription documents are stored as text/plain but should render as audio
if (doc.title.toLowerCase().includes("(transcription)")) return "audio";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not force all '(transcription)' docs into audio viewer

This unconditional title check routes any document whose title contains (transcription) to the audio viewer before MIME/extension checks run. That misclassifies non-audio files (for example, PDFs or text docs with that phrase in the title), causing DocumentViewer to render AudioViewer and breaking normal preview behavior for those documents.

Useful? React with 👍 / 👎.

Comment thread docker-compose.yml
ports:
- "8000:8000"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Ensure sidecar healthcheck uses an installed binary

The new healthcheck executes curl -f http://localhost:8000/health, but the sidecar image (see sidecar/Dockerfile) installs build-essential and ffmpeg only, so curl is not provided by this Dockerfile. In that setup the healthcheck returns command-not-found and marks the container unhealthy even when the API is actually running.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants