New features needed when playing files - playback application
There are two features I need in the playback application for playing sound files for an IVR application I am developing. Maybe one feature is there but I don't think the other is but perhaps people could advise me about that. 1. I need to be able to start at a specified time offset in the file. When playing is interrupted, there is a variable that can tell the number of milliseconds of audio that was played. If I want to resume playing, I need to be able to start from that point, or in fact any arbitrary point, in the file. I think I can achieve this with the uuid_fileman API command so maybe that will work. When I last looked at this I was confused as to whether the seek parameter was samples or milliseconds. 2. I want to be able to vary the speed of playback but in such a way as to keep the overall pitch of the recorded voice unchanged. There are algorithms that do this and I presume they work by removing samples from or adding samples into the audio stream. I think uuid_fileman also has a speed subcommand which kind of worked when I played with it, but it was not constant pitch. The application I am working on is a replacement of a system that delivers human narrated information to blind people over the phone. The existing system uses old analogue Dialogic cards and has these features, and the replacement system should also have these capabilities. Recorded bulletins of information can be quite lengthy, maybe an hour or more to read right through. So this is perhaps not typical of IVR systems. People need to be able to skip around and possibly speed up or slow down the reading, but without altering the pitch of the narrator's voice. I know I can create the necessary functionality if I have the above features in the playback application. Note that the application will also use TTS to turn textual information into speech but that is a separate issue and not relevant here. The application still needs to handle human narrated information. Can anyone comment on these features and, if something needs to be added, how easy it would be to do this and how it might be done? Thank you. Clive Lansink Email: Clive@Lansink.Co.NZ Phone: +64 9 520-4242 Mobile: +64 21 663-999 Fax: +64 21 789-150
What you're after is 'audio timescale pitch modification', aka 'time-stretching'. It's a bit more specialised than a normal playback, so I suspect would better implemented in a new application/module. There's a few OSS libraries that might be of use. From a quick Google: http://www.surina.net/soundtouch/ (LGPL) http://breakfastquay.com/rubberband/ (GPL) -Steve On 21 March 2013 09:38, Clive Lansink <clive@lansink.co.nz> wrote:
There are two features I need in the playback application for playing sound files for an IVR application I am developing. Maybe one feature is there but I don't think the other is but perhaps people could advise me about that.
1. I need to be able to start at a specified time offset in the file. When playing is interrupted, there is a variable that can tell the number of milliseconds of audio that was played. If I want to resume playing, I need to be able to start from that point, or in fact any arbitrary point, in the file. I think I can achieve this with the uuid_fileman API command so maybe that will work. When I last looked at this I was confused as to whether the seek parameter was samples or milliseconds.
2. I want to be able to vary the speed of playback but in such a way as to keep the overall pitch of the recorded voice unchanged. There are algorithms that do this and I presume they work by removing samples from or adding samples into the audio stream. I think uuid_fileman also has a speed subcommand which kind of worked when I played with it, but it was not constant pitch.
The application I am working on is a replacement of a system that delivers human narrated information to blind people over the phone. The existing system uses old analogue Dialogic cards and has these features, and the replacement system should also have these capabilities. Recorded bulletins of information can be quite lengthy, maybe an hour or more to read right through. So this is perhaps not typical of IVR systems. People need to be able to skip around and possibly speed up or slow down the reading, but without altering the pitch of the narrator's voice. I know I can create the necessary functionality if I have the above features in the playback application.
Note that the application will also use TTS to turn textual information into speech but that is a separate issue and not relevant here. The application still needs to handle human narrated information.
Can anyone comment on these features and, if something needs to be added, how easy it would be to do this and how it might be done?
Thank you.
Clive Lansink Email: Clive@Lansink.Co.NZ Phone: +64 9 520-4242 Mobile: +64 21 663-999 Fax: +64 21 789-150
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
We have a mod_soundtouch, I don't remember what features are in there, check it out. On Mar 21, 2013, at 8:50 AM, Steven Ayre <steveayre@gmail.com> wrote:
What you're after is 'audio timescale pitch modification', aka 'time-stretching'.
It's a bit more specialised than a normal playback, so I suspect would better implemented in a new application/module.
There's a few OSS libraries that might be of use. From a quick Google: http://www.surina.net/soundtouch/ (LGPL) http://breakfastquay.com/rubberband/ (GPL)
-Steve
On 21 March 2013 09:38, Clive Lansink <clive@lansink.co.nz> wrote:
There are two features I need in the playback application for playing sound files for an IVR application I am developing. Maybe one feature is there but I don't think the other is but perhaps people could advise me about that.
1. I need to be able to start at a specified time offset in the file. When playing is interrupted, there is a variable that can tell the number of milliseconds of audio that was played. If I want to resume playing, I need to be able to start from that point, or in fact any arbitrary point, in the file. I think I can achieve this with the uuid_fileman API command so maybe that will work. When I last looked at this I was confused as to whether the seek parameter was samples or milliseconds.
2. I want to be able to vary the speed of playback but in such a way as to keep the overall pitch of the recorded voice unchanged. There are algorithms that do this and I presume they work by removing samples from or adding samples into the audio stream. I think uuid_fileman also has a speed subcommand which kind of worked when I played with it, but it was not constant pitch.
The application I am working on is a replacement of a system that delivers human narrated information to blind people over the phone. The existing system uses old analogue Dialogic cards and has these features, and the replacement system should also have these capabilities. Recorded bulletins of information can be quite lengthy, maybe an hour or more to read right through. So this is perhaps not typical of IVR systems. People need to be able to skip around and possibly speed up or slow down the reading, but without altering the pitch of the narrator's voice. I know I can create the necessary functionality if I have the above features in the playback application.
Note that the application will also use TTS to turn textual information into speech but that is a separate issue and not relevant here. The application still needs to handle human narrated information.
Can anyone comment on these features and, if something needs to be added, how easy it would be to do this and how it might be done?
+1, I'd forgotten that module. :o) http://wiki.freeswitch.org/wiki/Mod_soundtouch Looks like at least some of the functionality is there: - 7 temp down 0.05 - 9 tempo up 0.05 On 21 March 2013 13:02, Michael Jerris <mike@jerris.com> wrote:
We have a mod_soundtouch, I don't remember what features are in there, check it out.
On Mar 21, 2013, at 8:50 AM, Steven Ayre <steveayre@gmail.com> wrote:
What you're after is 'audio timescale pitch modification', aka 'time-stretching'.
It's a bit more specialised than a normal playback, so I suspect would better implemented in a new application/module.
There's a few OSS libraries that might be of use. From a quick Google: http://www.surina.net/soundtouch/ (LGPL) http://breakfastquay.com/rubberband/ (GPL)
-Steve
On 21 March 2013 09:38, Clive Lansink <clive@lansink.co.nz> wrote:
There are two features I need in the playback application for playing sound files for an IVR application I am developing. Maybe one feature is there but I don't think the other is but perhaps people could advise me about that.
1. I need to be able to start at a specified time offset in the file. When playing is interrupted, there is a variable that can tell the number of milliseconds of audio that was played. If I want to resume playing, I need to be able to start from that point, or in fact any arbitrary point, in the file. I think I can achieve this with the uuid_fileman API command so maybe that will work. When I last looked at this I was confused as to whether the seek parameter was samples or milliseconds.
2. I want to be able to vary the speed of playback but in such a way as to keep the overall pitch of the recorded voice unchanged. There are algorithms that do this and I presume they work by removing samples from or adding samples into the audio stream. I think uuid_fileman also has a speed subcommand which kind of worked when I played with it, but it was not constant pitch.
The application I am working on is a replacement of a system that delivers human narrated information to blind people over the phone. The existing system uses old analogue Dialogic cards and has these features, and the replacement system should also have these capabilities. Recorded bulletins of information can be quite lengthy, maybe an hour or more to read right through. So this is perhaps not typical of IVR systems. People need to be able to skip around and possibly speed up or slow down the reading, but without altering the pitch of the narrator's voice. I know I can create the necessary functionality if I have the above features in the playback application.
Note that the application will also use TTS to turn textual information into speech but that is a separate issue and not relevant here. The application still needs to handle human narrated information.
Can anyone comment on these features and, if something needs to be added, how easy it would be to do this and how it might be done?
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
participants (3)
-
Clive Lansink
-
Michael Jerris
-
Steven Ayre