Ich erstelle im Grunde genommen einen einfachen GPT -Assistenten über Telefonanrufe mit Twilio, wobei die Google Cloud -Sprache IM die Eingabe des Benutzers übertragen. Im Moment habe ich ein Beispiel TTS_Output4 eine Audiodatei, die ich nach Abschluss der Transkription gespielt werden möchte. Ich habe verschiedene Quellen angesehen, kann aber nichts finden, um das Audio abzuspielen.
Ich erstelle im Grunde genommen einen einfachen GPT -Assistenten über Telefonanrufe mit Twilio, wobei die Google Cloud -Sprache IM die Eingabe des Benutzers übertragen. Im Moment habe ich ein Beispiel TTS_Output4 eine Audiodatei, die ich nach Abschluss der Transkription gespielt werden möchte. Ich habe verschiedene Quellen angesehen, kann aber nichts finden, um das Audio abzuspielen.[code] import base64 import json import threading from io import BytesIO import time from pydub import AudioSegment current_sentence = "" last_timestamp = 0 sentence_timeout = 1.5
from flask import Flask, render_template from flask_sockets import Sockets from google.cloud.speech import RecognitionConfig, StreamingRecognitionConfig from gtts import gTTS import os import openai # GPT-4 integration
from SpeechClientBridge import SpeechClientBridge
# GPT-4 API setup openai.api_key = os.getenviron("OpenAI_API_key")
if is_final or (current_time - last_timestamp > sentence_timeout and stability > 0.8): # Append only the new part of the transcription if len(transcription) > len(current_sentence): current_sentence += transcription[len(current_sentence):]
# Convert the TTS audio to the required format for Twilio audio_segment = AudioSegment.from_mp3(audio_fp) audio_segment = audio_segment.set_frame_rate(8000).set_channels(1).set_sample_width(1) audio_data = BytesIO() audio_segment.export(audio_data, format="wav", codec="pcm_mulaw") audio_data = audio_data.getvalue()
# Split and send the audio data in chunks CHUNK_SIZE = 1024 # Adjust chunk size if necessary for i in range(0, len(audio_data), CHUNK_SIZE): chunk = audio_data[i:i + CHUNK_SIZE] audio_b64 = base64.b64encode(chunk).decode('utf-8') message = json.dumps({ "event": "media", "media": { "payload": audio_b64 } }) ws.send(message) # sleep(0.1) # Small delay to prevent overwhelming the WebSocket connection
print("Audio sent successfully")
except Exception as e: print(f"Error sending audio: {e}")
def send_static_audio(ws): try: # Load a static audio file (in PCM mu-law format) with open("tts_output4.wav", "rb") as f: audio_data = f.read()
while not ws.closed: message = ws.receive() if message is None: bridge.add_request(None) bridge.terminate() break
data = json.loads(message) if data["event"] in ("connected", "start"): print(f"Media WS: Received event '{data['event']}': {message}") continue if data["event"] == "media": media = data["media"] chunk = base64.b64decode(media["payload"]) bridge.add_request(chunk) if data["event"] == "stop": print(f"Media WS: Received event 'stop': {message}") print("Stopping...") break
bridge.terminate() print("WS connection closed")
if __name__ == "__main__": from gevent import pywsgi from geventwebsocket.handler import WebSocketHandler
server = pywsgi.WSGIServer( ("", HTTP_SERVER_PORT), app, handler_class=WebSocketHandler ) print("Server listening on: http://localhost:" + str(HTTP_SERVER_PORT)) server.serve_forever() < /code> Und nur als Referenz ist dies meine Streams.xml -Datei: < /p>
Hey, ich suche nach Anwendungsdaten in Twilio Webhook Event Stream. Derzeit gibt es eine Option namens StatusCallback -URL. Wir können Webhook -URL mit Abfrageparams zur Verfolgung der Daten...
Ich arbeite an der Java -Webanwendung. Ich muss SMS mithilfe dieser Anwendung mit Twilio SMS -API senden.
Hier ist der Beispielcode, den ich verwende.public class Example {
public static final String...
Der Code, den ich unten erwähnen werde, erzeugt einen sehr schlechten Ton (output.mp3), wie ich auf elevanlabs getestet habe. Was ist Ihrer Meinung nach der Grund dafür? Gibt es ein Problem mit den...
Ich habe versucht, SWR_Convert zu verwenden, um Audio -Frames von 44100 Hz auf 16000 Hz wiederzuproben und die Frames einzeln für Testzwecke zu verarbeiten. Das resultierende Audio scheint jedoch mit...
Ich möchte aktuelles Spielen Audio mithilfe von Audio -Working -Prozessor und Web -Audio -API aufnehmen und in Echtzeit mit einer möglichen Verzögerung von 100 ms aktuellen Audioquellen abspielen,...