使用さくら的AI引擎对Asterisk的语音留言进行转录
服务器 编程
Published: 2025-09-26

使用Asterisk的ARI记录语音留言,并通过さくら的AI引擎的Whisper API进行转录。
转录的内容将通知到Slack。

开始

因为已经有Asterisk的环境,所以直接利用它。

启用ARI

编辑Asterisk的配置文件ari.conf以启用ARI。

  • ari.conf
    [general]
    enabled = yes
    
    [asterisk]
    type = user
    read_only = no
    password = asterisk
    password_format = plain
    

还需要启用Asterisk的HTTP服务器。

  • http.conf
    [general]
    servername=Asterisk
    enabled=yes
    bindaddr=127.0.0.1
    bindport=8088
    

这次我们将对999号进行语音留言。

  • extensions.conf
    [default]
    exten => 999,1,Wait(1)
      same => n,Stasis(rusudenkun)
      same => n,Hangup()
    

工作流程

  1. 收到999号电话
  2. 启动ARI应用程序rusudenkun
  3. 播放语音提示
  4. 开始录音
  5. 录音结束后,使用さくら的AI引擎的Whisper API转录录音的WAV文件
  6. 将转录的内容通知到Slack

因此,我用Go稍微实现了一下ARI应用程序。

实际拨打电话

拨打999号并进行语音留言。

root@asterisk:~# tail -f /var/log/rusudenkun.log
{"time":"2025-09-26T15:25:45.529096517+09:00","level":"INFO","msg":"StasisStart","channel":"1758867943.63"}
{"time":"2025-09-26T15:25:45.529204145+09:00","level":"INFO","msg":"Running app","channel":"1758867943.63"}
{"time":"2025-09-26T15:25:45.680639184+09:00","level":"INFO","msg":"playing announce","media":"sound:custom/rusuden"}
{"time":"2025-09-26T15:25:54.607939088+09:00","level":"INFO","msg":"announce finished"}
{"time":"2025-09-26T15:26:04.981533804+09:00","level":"INFO","msg":"completed recording"}
{"time":"2025-09-26T15:26:05.982012514+09:00","level":"INFO","msg":"recorded","path":"rusudenkun-1758867943.63.wav"}
{"time":"2025-09-26T15:26:06.69882038+09:00","level":"INFO","msg":"transcribed text","text":"语音留言的录音转录测试,语音留言的录音转录测试"}

录音的WAV文件保存在/var/lib/asterisk/sounds/rusudenkun-<channel>.wav中。
这个音频文件通过さくら的AI引擎的Whisper API进行转录。

Slack通知

成功进行了转录。

总结

  • 使用Asterisk的ARI成功录制了语音留言
  • 录制的WAV文件使用さくら的AI引擎的Whisper API进行了转录
  • 成功将转录的内容通知到Slack

老实说,我家里的电话很少响,所以免费额度的50次请求已足够了。