如何使用 Twilio Voice 转录通话录音?

问题描述 投票:0回答:1

我正在构建一个需要向客户进行出站呼叫的应用程序。 我需要对这些通话进行录音和转录。

我一直对如何实现这一目标感到非常困惑,但这是我迄今为止在我构建的用于触发调用的 NextJS API 端点中所拥有的:

import twilio from 'twilio'
import { NextResponse } from 'next/server'
const accountSid = process.env.TWILIO_ACCOUNT_SID
const authToken = process.env.TWILIO_AUTH_TOKEN
const twilioNumber = process.env.TWILIO_PHONE_NUMBER

interface OutBoundCall {
  to: string
}

export const POST = async (request: Request) => {
  const { to }: OutBoundCall = await request.json()
  if (!to) return NextResponse.json({ message: 'No to number provided' })
  try {
    const client = twilio(accountSid, authToken)
    client.calls
      .create({
        to: 'XXXXX', // <-- This is just my personal phone number for now whilst testing
        from: twilioNumber as string,
        twiml: `<Response><Dial><Number>${to}</Number></Dial></Response>`,
        record: true
      })
      .then(call => console.log(call.sid))
    return NextResponse.json({ message: `Call has been triggered to ${to}` })
  } catch (error) {
    console.log({ error })
    return NextResponse.json(error)
  }
}

当前正在拨打我的个人电话,然后在连接到我后拨打我传入的号码。

我发现如果我在 TwiML 中添加

<Record transcribe="true" />
,它实际上不会记录或转录。将
record: true
添加到
client/calls.create
方法确实有效,但它不接受
transcribe
参数。

我怎样才能实现这个目标?

我有一种感觉,无论如何我都做错了,因为在我的通话记录中,它显示为 2 个电话(一个给我,一个给我真正想要拨打的号码),所以我相信我被双重收费.

如果我做错了,我该怎么办?

在理想情况下我真正想要发生的事情:

  • 用户单击前端中的“呼叫”按钮
  • POST 请求发送到我的端点或 Twilio 端点
  • 我想要通话的号码开始通过用户计算机响起,并且只有一个呼叫直接从我的前端触发到用户

我确实尝试在我的反应前端中使用

Device
组件,但我永远无法让它工作。

这是我正在尝试的代码:

import { Device } from '@twilio/voice-sdk'

const makeCall = async () => {
  try {
    const device = new Device(
      'my-jwt-here' // (I can succesfully make JWTs)
    )

    const call = await device.connect({
      params: {
        To: 'XXXX', // The phone number I want to call
      }
    })
    console.log({ call })
  } catch (error) {
    console.log({ error })
  }
}

export const MakeACallPage = () => {
  return <button onClick={makeCall}>Make a call here</button>
}

我能找到的所有关于拨打外线电话的文档似乎都是一个简单的版本,其中呼叫只是向用户说出预定义的单词,并且没有显示如何拨打两个人可以互相交谈的电话。

我做错了什么?

非常感谢您的帮助

twilio twilio-api twilio-twiml twilio-click-to-call
1个回答
0
投票

不幸的是,Twilio 似乎不支持整个通话的转录。

<Record>
动词只能记录呼叫者。动词不支持嵌套,因此您不能同时运行任何其他动词。
<Record>
基本上仅用于录制语音邮件。

如果你真的想转录整个通话,似乎你必须使用另一个 API 来转录录音。 OpenAI是众多选择中的一个。

至于您使用 Voice JavaScript SDK 的问题,我建议为此创建一个单独的问题。恐怕我没有经验来帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.