コード例 #1
0
        public async Task <IActionResult> DeleteJob(string name)
        {
            ITranscriber proxy = ActorProxy.Create <ITranscriber>(new ActorId(name), new Uri("fabric:/AudioTranscriptionApp/TranscriberActorService"));
            await proxy.DeleteJob(name);

            return(Ok());
        }
コード例 #2
0
        public async Task <IActionResult> SubmitFileJob()
        {
            //var configPackage = this.Context.CodePackageActivationContext.GetConfigurationPackageObject("Config");
            //string connectionString = configPackage.Settings.Sections["JobManagerConfig"].Parameters["StorageConnectionString"].Value;
            string connectionString            = "[Storage Account Connection String]";
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient     blobClient     = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer  container      = blobClient.GetContainerReference("clips");

            foreach (var file in Request.Form.Files)
            {
                CloudBlockBlob blockBlob = container.GetBlockBlobReference(file.Name);
                await blockBlob.UploadFromStreamAsync(file.OpenReadStream());

                ITranscriber proxy = ActorProxy.Create <ITranscriber>(ActorId.CreateRandom(), new Uri("fabric:/AudioTranscriptionApp/TranscriberActorService"));
                proxy.SubmitJob(file.Name, GetUserName().Result);
            }
            return(Ok());
        }
コード例 #3
0
        public async void Start()
        {
            if (!string.IsNullOrEmpty(NotificationsJson))
            {
                targets = NotificationTargetRequest.ParseJSON(NotificationsJson);
            }

            var notification = new Notification()
            {
                Level   = Level.Info,
                Subject = "Session started",
                Message = string.Format("A new session with ID {0} was started on {1}", Id, DateTime.UtcNow)
            };

            notification.TargetRequests.AddRange(targets);
            notification.Send();

            systemLog.Debug($"{ LOG_PREFIX } Loading converter extension");

            try
            {
                converter = Shared.Extensions.Instance.Converters
                            .FirstOrDefault(t => t.Metadata.Name.Equals("CEA608") && t.Metadata.Version.Equals("1.0"))?
                            .Value;
            }
            catch (Exception ex)
            {
                systemLog.Error($"{ LOG_PREFIX } Could not load converter extension; { ex.Message }");
                systemLog.Debug(ex.StackTrace);
            }

            try
            {
                archive = Shared.Extensions.Instance.CaptionProviders
                          .FirstOrDefault(t => t.Metadata.Name.Equals("Archive"))
                          .Value;

                if (archive != null)
                {
                    archive.SessionId = Id;
                    archive.Init();
                }
            }
            catch (Exception ex)
            {
                systemLog.Error(LOG_PREFIX + " Could not load archive extension", ex);
            }

            systemLog.Debug("Loading provider extension");

            if (Encoder.EncoderType.Provider == null)
            {
                systemLog.Error(LOG_PREFIX + " Could not load provider extension");
                return;
            }

            provider = Encoder.EncoderType.Provider.Value;

            if (provider == null)
            {
                systemLog.Error(LOG_PREFIX + " Could not load provider extension");
                return;
            }

            switch (Encoder.EncoderType.Protocol)
            {
            case ProtocolType.Phone:
                provider.Endpoint = Encoder.PhoneNumber;
                break;

            case ProtocolType.Telnet:
                provider.Endpoint = Encoder.IpAddress + ":" + Encoder.Port;
                break;

            default:
                break;
            }

            provider.SessionId = Id;
            provider.Init();

            systemLog.Debug(LOG_PREFIX + " Loading transcriber extensions");

            try
            {
                //transcriber = Shared.Extensions.Instance.Transcribers
                //    .FirstOrDefault(t => t.Metadata.Name.Equals("Microsoft Bing") && t.Metadata.Version.Equals("1.0"))?
                //        .Value;
                transcriber = Shared.Extensions.Instance.Transcribers
                              .FirstOrDefault(t => t.Metadata.Name.Equals("Watson") && t.Metadata.Version.Equals("2.0"))?
                              .Value;
                //transcriber = Shared.Extensions.Instance.Transcribers
                //    .FirstOrDefault(t => t.Metadata.Name.Equals("Google Cloud Speech") && t.Metadata.Version.Equals("1.0"))?
                //        .Value;
            }
            catch (Exception ex)
            {
                systemLog.Error(LOG_PREFIX + " Could not load transcriber extension", ex);
            }

            if (transcriber != null)
            {
                systemLog.Debug(LOG_PREFIX + " Start transcribing");

                transcriber.TextAvailable += HandleText;
                transcriber.Start();

                State     = SessionState.Active;
                StartTime = DateTime.UtcNow;

                sessionLog.Info($"{ LOG_PREFIX } Session { Id } started");
            }

            if (Record)
            {
                StartRecording();
            }

            if (Consumer != null)
            {
                Consumer.DataAvailable += HandleData;
                Consumer.Start();
            }

            using (var entities = new Entities())
            {
                entities.Entry(this).State = EntityState.Modified;
                await entities.SaveChangesAsync();
            }
        }