技能 编程开发 Wispr流语音转文本集成

Wispr流语音转文本集成

v20260423
wispr-hello-world
本技能演示了如何集成Wispr Flow实现强大的语音转文本功能。它支持两种模式:通过REST API上传文件进行异步转录,以及使用WebSocket进行实时流媒体转录。Wispr核心优势在于其开发者上下文感知能力,特别适用于构建需要理解代码和技术术语的专业语音输入系统。
获取技能
111 次下载
概览

Wispr Flow Hello World

Overview

Stream audio to Wispr Flow and receive real-time transcription. Wispr specializes in developer-context-aware dictation -- it understands code terms, CLI commands, and technical jargon.

Instructions

Step 1: Record and Transcribe (REST)

import requests, os

# Transcribe an audio file
with open("voice-memo.wav", "rb") as audio:
    response = requests.post(
        "https://api.wisprflow.ai/api/v1/transcribe",
        headers={"Authorization": f"Bearer {os.environ['WISPR_API_KEY']}"},
        files={"audio": audio},
        data={"language": "en", "context": "programming"},
    )

result = response.json()
print(f"Text: {result['text']}")
print(f"Confidence: {result.get('confidence', 'N/A')}")

Step 2: Real-Time Streaming (WebSocket)

// Stream microphone audio to Wispr Flow
const ws = new WebSocket('wss://api.wisprflow.ai/api/v1/ws');

// Browser audio capture
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
const context = new AudioContext({ sampleRate: 16000 });
const source = context.createMediaStreamSource(stream);

const processor = context.createScriptProcessor(4096, 1, 1);
source.connect(processor);
processor.connect(context.destination);

processor.onaudioprocess = (event) => {
  const audioData = event.inputBuffer.getChannelData(0);
  // Convert Float32Array to Int16Array for transmission
  const int16 = new Int16Array(audioData.length);
  for (let i = 0; i < audioData.length; i++) {
    int16[i] = Math.max(-32768, Math.min(32767, audioData[i] * 32768));
  }
  ws.send(int16.buffer);
};

ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  if (data.type === 'partial') {
    console.log(`Partial: ${data.text}`);
  } else if (data.type === 'final') {
    console.log(`Final: ${data.text}`);
  }
};

Output

Partial: implement a function that
Final: Implement a function that calculates the Fibonacci sequence using dynamic programming.

Error Handling

Error Cause Solution
Garbled text Wrong sample rate Use 16kHz mono PCM
No results Silence or noise Check microphone input
High latency REST endpoint Use WebSocket for streaming

Resources

Next Steps

Proceed to wispr-local-dev-loop for development workflow.

信息
Category 编程开发
Name wispr-hello-world
版本 v20260423
大小 2.87KB
更新时间 2026-04-28
语言