Potrzebna pomoc w integracji z text to speech - speech to text
Привет, вот ТЗ, там где на месте исполнителя стоят ??? значит это возможно вы.
Жду предложений
1. Настройка Asterisk FreePBX
Исполнитель: Владимир
Задачи:
- Настроить транки для маршрутизации входящих звонков:
Убедись, что все транки настроены правильно для обработки входящих вызовов через SIP-провайдера.
```bash
nano /etc/asterisk/sip.conf
```
Пример конфигурации транка:
```ini
[my-trunk]
type=peer
host=sip.provider.com
username=my_user
secret=my_secret
fromuser=my_user
context=from-trunk
insecure=invite,port
disallow=all
allow=ulaw
```
- Настроить IVR-меню:
IVR будет перенаправлять звонки на внешний сервис или API для последующей обработки. Настрой IVR-меню через FreePBX GUI, указав правильные внешние маршруты для передачи звонков.
Пример конфигурации:
```ini
[ivr-menu]
exten => s,1,Answer()
exten => s,n,Background(custom/welcome_message)
exten => s,n,WaitExten()
exten => 1,1,Dial(SIP/customer_service,20)
exten => 2,1,Goto(api-processing,s,1)
```
- Проверить правильность передачи звонков через IVR.
---
2. Интеграция Google TTS (Text-to-Speech)
Исполнитель: ???
Задачи:
- Настроить API для связи с Google TTS. Используй официальную библиотеку Google Cloud для TTS на Python:
```bash
pip install google-cloud-texttospeech
```
Пример Python-кода для передачи текста и получения аудио:
```python
from google.cloud import texttospeech
client = texttospeech.TextToSpeechClient()
synthesis_input = texttospeech.SynthesisInput(text="Your response text")
voice = texttospeech.VoiceSelectionParams(
language_code="en-US",
ssml_gender=texttospeech.SsmlVoiceGender.NEUTRAL)
audio_config = texttospeech.AudioConfig(audio_encoding=texttospeech.AudioEncoding.MP3)
response = client.synthesize_speech(
input=synthesis_input, voice=voice, audio_config=audio_config)
# Save the audio output
with open("output.mp3", "wb") as out:
out.write(response.audio_content)
```
- Обеспечить передачу аудиофайла обратно в Asterisk.
Используй команду AGI для воспроизведения аудиофайлов в Asterisk:
```bash
exten => s,n,AGI(google_tts.py,"Your text here")
```
---
3. Интеграция Binom AI
Исполнитель: ???
Задачи:
- Интегрировать с API для передачи аудио запроса клиента в Binom AI.
Вот пример API:
POST https://prod-api.binomai.com/api/public/chats
Request schema: ChatRequest
Response schema: Chat
Instructions:
Inactive chat lifetime should be no longer than 3 days to protect context from growing and increase resource costs. Please implement chat rotation logic on your side to always create a new chat when an old chat has no activity for the last 3 days.
Example:
curl https://prod-api.binomai.com/api/public/chats \
-u RLCacg7CTz2FlTlzdeoD9w==: \
-d chat_id="chat_id_on_your_side"
POST https://prod-api.binomai.com/api/public/chats/{chat_id}/messages
Request schema: MessageRequest
Response schema: Message
Example:
curl https://prod-api.binomai.com/api/public/chats/{chat_id}/messages \
-u RLCacg7CTz2FlTlzdeoD9w==: \
-d chat_id="chat_id_on_your_side" \
-d "file_urls[]=https://example.com/path/to/file1.mp3"
GET https://prod-api.binomai.com/api/public/chats/{chat_id}/messages
Response schema: MessageList
Instructions:
MessageList response will return a run_in_progress parameter. When it's true, we are preparing a response from AI. Please pull the list not often than every 5000 milliseconds (5 seconds) and stop pulling when run_in_progress returns a false value.
Example:
curl https://prod-api.binomai.com/api/public/chats/{chat_id}/messages \
-u RLCacg7CTz2FlTlzdeoD9w==:
ChatRequest: {
type: :object,
required: [],
properties: {
integration_chat_id: { type: :string }
}
}
Chat: {
type: :object,
required: [:id, :form, :created_at],
properties: {
id: { type: :string, format: :uuid },
form: { type: :string, enum: [:public_chat, :widget, :helpcrunch, :api] },
integration_chat_id: { type: :string },
created_at: { type: :string, format: 'date-time' }
}
}
MessageRequest: {
type: :object,
required: [:content],
properties: {
content: { type: :string },
file_urls: { type: :array, items: {
type: :string
} }
}
}
Message: {
type: :object,
required: [:id, :content, :role, :created_at],
properties: {
id: { type: :string, format: :uuid },
content: { type: :string },
role: { type: :string, enum: [:user, :assistant, :system, :operator] },
files: { type: :array, items: {
type: :object,
required: [:id, :signed_id, :content_type, :url],
properties: {
id: { type: :string },
name: { type: :string },
signed_id: { type: :string },
content_type: { type: :string },
url: { type: :string },
thumb: { type: :string },
transcription: { type: :string }
}
} },
message_feedback: {
type: :object,
required: [:id, :state, :comment, :created_at],
properties: {
id: { type: :string },
state: { type: :string, enum: [:like, :dislike] },
comment: { type: :string },
created_at: { type: :string, format: 'date-time' }
}
},
created_at: { type: :string, format: 'date-time' }
}
}
4. Интеграция Google STT (Speech-to-Text)
Исполнитель: ???
Задачи:
- Настроить API для передачи аудиозапросов в Google STT. Используй официальную библиотеку Google Cloud для STT:
```bash
pip install google-cloud-speech
```
Пример Python-кода для преобразования аудио в текст:
```python
from google.cloud import speech
client = speech.SpeechClient()
def transcribe_audio(audio_file):
with open(audio_file, "rb") as audio:
audio_content = audio.read()
audio = speech.RecognitionAudio(content=audio_content)
config = speech.RecognitionConfig(
encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=16000,
language_code="en-US",
)
response = client.recognize(config=config, audio=audio)
return response.results[0].alternatives[0].transcript
```
- Передать полученный текст в Binom AI через API.
---
5. Возвращение данных в Asterisk и воспроизведение аудио клиенту
Исполнитель: Владимир
Задачи:
- Проверить корректную передачу аудиофайлов из Google TTS обратно в Asterisk. Аудио должно воспроизводиться через AGI-скрипт или встроенную команду `Playback`:
```bash
exten => s,n,Playback(/path/to/output.mp3)
```
- Убедиться, что клиент получает ответ в аудиоформате без задержек и с корректной качественной обработкой.
___
Дополнительные моменты:
- Логирование: Все этапы должны логироваться для отслеживания ошибок. Логи должны включать обработку запросов в Google TTS, STT, и Binom AI.
- Мониторинг: Добавь систему мониторинга для проверки состояния всех сервисов.
-
11 dni5112 PLN
8788 60 0 1 11 dni5112 PLNDzień dobry!
Jestem gotów zrealizować integracje Google STT (Speech-to-Text), Binom AI, Google TTS (Text-to-Speech)
Mam doświadczenie w realizacji podobnych projektów. Mogę przedstawić przypadek w wiadomości prywatnej.
Portfolio:Freelancehunt
Będę zadowolony, aby omówić projekt!
Aktualne zlecenia dla freelancerów w kategorii Programowanie stron internetowych
Wprowadzenie poprawek na stronie (WP, Elementor)Dzień dobry. Trzeba wprowadzić 2 poprawki na stronie: 1. Menu główne "pływa" przy najechaniu kursorem, plus w wersji ukraińskiej jest wyśrodkowane pionowo (tak ma być), a w rosyjskiej - bez wyśrodkowania, na górze. Trzeba wyśrodkować rosyjskie jak w ukraińskim. 2. Na stronie… Programowanie stron internetowych ∙ 1 godzina 7 minut temu ∙ 28 ofert |
Należy zmodernizować panel administracyjny w Open Cart dla wygody.Specyfikacja techniczna dotycząca konfiguracji/rozwoju OpenCart 1. Katalog → Produkty Zadanie 1. Dodać kolumnę „Kategoria” do listy produktów Zadanie 2. Dodać kolumnę „Artykuł” do listy produktów Zadanie 3. Dodać kolumnę „Data i czas utworzenia produktu” Zadanie 4. Szybka edycja… Programowanie stron internetowych ∙ 1 godzina 23 minuty temu ∙ 29 ofert |
Dopracowanie katalogu dla strony internetowejNa stronie katalogu należy wprowadzić poprawki: (pracę można podzielić na etapy lub wziąć część według kwalifikacji) 1. W panelu administracyjnym możliwość wgrywania plików SQL do aktualizacji cen (w archiwum jest plik price_balluff_2026_for_site.sql). (obecnie są wgrane przez… AI tekst, Programowanie stron internetowych ∙ 1 godzina 31 minut temu ∙ 17 ofert |
WhatsApp Business API / Meta Cloud API.Witaj. Potrzebuję pomocy w oficjalnym podłączeniu WhatsApp Business API / Meta Cloud API. Sytuacja jest następująca: Posiadam już działający numer WhatsApp Business. Jest on obecnie używany na telefonie w aplikacji WhatsApp Business. Nie chcę usuwać aplikacji, przenosić numeru… Programowanie stron internetowych ∙ 2 godziny 15 minut temu ∙ 13 ofert |
Konta ShopifySzukam osoby do skonfigurowania istniejącego sklepu z meblami dziecięcymi, sklep jeszcze nie działał, ale jest częściowo wypełniony. Programowanie stron internetowych ∙ 2 godziny 29 minut temu ∙ 15 ofert |