我应该使用哪些技术来开发语音相关的应用程序

时间:2011-09-12 17:31:40

标签: voice web voicemail

我想开发一个在云端录制语音消息和存储的应用程序。

它像这样工作

1)用户拨打手机并录制留言。

2)录制的语音留言/语音留言应该可以通过网络/网络访问/通过所有其他用户以及用户电话号码。

对于web我可以使用PHP / python。

但我不知道如何通过网络/云保存语音邮件/语音邮件。

请帮帮我

2 个答案:

答案 0 :(得分:1)

为什么不使用TwilioTropoone of the other providers in this space来完成您的需求而无需保护实际的语音线路,硬件等?

Twilio有一个示例voicemail application,可能是您项目的良好开端。

如果您需要从电话提供商处访问语音邮件,则会有特定于提供商的详细信息,因此您应该更新您的帖子以包含您想要定位的提供商的信息(如果该提供商所在的地址信息可能包含地理信息)多个市场)。

答案 1 :(得分:0)

我建议使用Tropo脚本。特别是,请查看显示录音和转录的语音邮件系统的their example

前段时间我将一个简单的Sinatra应用程序放在一起,拍摄Tropo录音并将它们放入Amazon S3存储桶中。从那里,你可以随心所欲地使用它们。

%w(rubygems sinatra yaml logger aws/s3).each do |lib|
  require lib
end

# Open configuration file and connect to Amazon
AWS_CONFIG = YAML.load(File.open('config/amazon_s3.yml'))
AWS::S3::Base.establish_connection!(
  :access_key_id     => AWS_CONFIG['access_key_id'],
  :secret_access_key => AWS_CONFIG['secret_access_key']
)

# Exception class with HTTP error codes
class HTTPError < StandardError
  attr_reader :code
  def initialize(message, code = 500)
    super(message)
    @code = code
  end
end

# Put an uploaded file on S3
def handle_post(params)
  params['bucket'] ||= AWS_CONFIG['default_bucket']

  raise HTTPError.new("invalid token", 403) if params['token'] != AWS_CONFIG['api_token']
  raise HTTPError.new("missing filename", 400) unless params['name']
  raise HTTPError.new("bucket #{params['bucket']} is not allowed", 403) unless AWS_CONFIG['allowed_buckets'].include? params['bucket']

  AWS::S3::S3Object.store(params['name'],
                          File.open(params['filename'][:tempfile].path),
                          params['bucket'])
rescue HTTPError => ex
  error(ex.code)
rescue => ex
  puts ex
  error(500)
end


# Method that receives the file and sends to S3
# /save-to-s3?token=<token>[&bucket=<one-of-allowed-buckets>]&name=filename
post '/save-to-s3' do
  handle_post(params)
end

我在Heroku上运行应用程序,所以我添加了一个简单的config.ru文件,以便它可以被识别为Rack应用程序。

require 'tropo-audiofiles-to-s3'
run Sinatra::Application 

您不必使用Ruby。 Tropo脚本处理许多语言(它们都在JVM上运行,因为Tropo是在Voxeo的应用服务器上构建的),您也可以使用任何语言处理文件上传。

祝你好运。