📄 voice_faq
字号:
FREQUENTLY ASKED QUESTIONS ABOUT VOICE--------------------------------------INDEX* Question 1: Garbled voice with U.S. Robotics Modem* Question 2: Converting voice files to .wav, .au or .snd* Question 3: How to do a PPP dialin* Question 4: How do I select playback/record device?* Question 5: Compiling error - `TCGETS' undeclared--------------------------------------* Question 1: Garbled voice with U.S. Robotics ModemI got it to record and playback a file, except the when I play back thefile it just sounds like garbage. I have a USR Sporster 33.6 faxmodemwith personal voice mail.* AnswerNOTE: This should happen only with voice versions before 0.6.The default voice compression method used by the USR Sportster Voicemodem is the GSM-USR, which is very sensible to byte loss; i.e. if justa single byte of the data stream is dropped, the resulting file isunusable. The scripts vrec, vplay and ans before version 0.6 use twodifferent commands to start voice receiving and to do voice capturing,so if some bytes are lost between, the resulting voice message isdamaged.Starting with version 0.6, a single vmcp call (with -W option) is usedto start voice receiving and to do voice capturing; so no bytes shouldbe lost and the voice should recorded correctly.But someone may prefere to use a less sensible voice compression methodselecting ADPCM voice compression instead of the default GSM one. Figureout which compression method and which voice sample rate your modemsupports by issuing the AT#VSM=? command while in Voice Mode (AT#CLS=8).In the vrec and vplay scripts add a line like this: $VMCP -c"AT#VSM=129,8000" -wOKwhere 129 and 8000 are parameter obtained from the VSM command. The linemust be added just after the command <$VMCP -c"AT#CLS=8" -wOK>. In theans script change the line that starts with AT_VINIT= with somethinglike this: AT_VINIT="AT#CLS=8#VSM=129,8000..."--------------------------------------* Question 2: Converting voice files to .wav, .au or .sndIs there a way for me to convert between your voice files and othersound files (e.g., WAV, SND, etc.). I was able to find a program fromRockwell that converts from RIFF and WAV, but it seems that your is notthe same as RIFF* AnswerNo, unfortunately the voice encoding is modem-dependent, i.e. despitesome modems uses the same commands set, they encode the voice withdifferent algorythms. Generally the Windows software boundled with themodem is able to do the conversion, but it is an hard task (for me) toreverse-engineer the code or to find good documentation.--------------------------------------* Question 3: How to do a PPP dialinEvery time I try to dialin as a data call and I use this data call as aterminal everything works fine. Every time I dialin and establish a pppconnection (login as user ppp with diplogin as login shell), the servermodem doesn't hang up properly if the client closes the connection.* AnswerAfter a regular login, I use this script to switch the line to ppp:#!/bin/sh## start_ppp Convert the (serial) line to PPP. The remote host# is assigned an IP address resolving the name ptp0.## Version /usr/local/bin/start_ppp 1.2 10/15/96## Author: Niccolo Rigacci, <fd131@cleveland.freenet.edu>#ECHO=/bin/echoMESG=/usr/bin/mesgSTTY=/bin/sttyTTY=/usr/bin/ttyPPPD=/usr/sbin/pppdARGS="-detach silent :ptp0 proxyarp"case $($TTY) in /dev/ttyS[0-3]) $MESG n $STTY -echo $ECHO "Now switching to PPP..." exec $PPPD $ARGS ;; *) $ECHO "Can't do PPP: you are *NOT* on a serial line." ;;esac--------------------------------------* Question 4: How do I select record/playback device?Voice modems can use different devices for recording and playing backvoice. They can use internal microphone and speaker, or external ones.They can also use the connected handset as a microphone/speaker system.The capabilities of your modem are listed by the AT#VLS=? command.This is an example:AT#CLS=8OKAT#VLS=?0,1,2,3,4,6OKThe modem answered that it can use:a telephone line (type 0)a transmit/receive device - like an attached handset - (type 1)a transmit only device - like an external speaker - (type 2)a receive only device - like an external microphone - (type 3)a telephone line with speaker on (type 4)a telephone line with speaker and microphone on (type 6).Not all the modems can use the same devices; for example a SportsterVoice 33.6 Faxmodem I have can use only devices of type 0,2,3,4,6 (andit lists this values at the #VLS=? command), and some multi-line modemscan show multiple zeroes at the begin of the list.When you want to select a specified device you must issue the AT#VLS=ncommand, where n is *NOT* the device type, but the device position!So if your modem answered 0,2,3,4,6 as the list of device types, and youwant to select the microphone for recording a message (a receive onlydevice, type 3), you must use the command AT#VLS=2, as the "3" is shownin the 2nd position (0 is the first).--------------------------------------* Question 5: Compiling error - `TCGETS' undeclaredWhen I try to compile with the make command, I receive severalerrors like that:vmcp.c: In function `main':vmcp.c:211: `TCGETS' undeclared (first use this function)vmcp.c:211: (Each undeclared identifier is reported only oncevmcp.c:211: for each function it appears in.)vmcp.c:217: `TCSETS' undeclared (first use this function)* AnswerNOTE: This should happen only with voice versions before 0.6.1.The termios.h file included in vmcp.c sould be searched in thelinux subdirectory:#include <linux/termios.h>This problem is fixed in voice-0.6.1.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -